首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
什么是孤儿进程,什么是僵尸进程,如何解决僵尸进程
[问答题]
什么是孤儿进程,什么是僵尸进程,如何解决僵尸进程
添加笔记
求解答(0)
邀请回答
收藏(204)
分享
纠错
35个回答
添加回答
37
别说天会黑
孤儿进程:父进程释放,子进程还在;僵尸进程:子进程释放,父进程不知道,此时子进程还占用着资源
发表于 2022-06-28 09:20:06
回复(0)
17
mixerzhan
孤儿进程:父进程死了,子进程没死没人管 僵尸进程:子进程死了,父进程没死而且没有回收子进程尸体
发表于 2023-02-21 22:58:22
回复(1)
6
题目好难做
孤儿进程指的是 一个进程他的父进程已经被释放 但子进程没有结束或被释放 僵尸进程值得是一个进程结束并退出 但父进程没有收回其占有的资源 可以用wait 或者waitpid或者发送信号收回其现有的资源(杀死僵尸进程
发表于 2022-08-24 01:07:14
回复(0)
4
牛客343869412号
在Linux里,每一个进程都有它的父进程。而进程的执行顺序是不被确定的?所以当父进程执行完成退出之后,子进程还未执行完,这个子进程就变成了孤儿进程。 僵尸进程。每个子进程在死亡的时候都需要父进程对他进行资源回收。因为子进程只能释放自己用户区的资源。对于内核区的资源它释放不掉。如果子进程退出时,父进程并没有对子进程进行资源回收。那么此时的子进程就成为了僵尸进程。 解决僵尸进程方法。杀死这个僵尸进程的父进程。那么该僵尸进程就会被守护进程给领养。从而守护进程,会对这个僵尸进程的内核区资源进行回收。
发表于 2022-10-20 09:27:34
回复(0)
3
hcodeboy
孤儿进程是指父进程已经结束运行,而子进程还在继续运行,这时候的子进程就称为孤儿进程,它会被init进程接收,当子进程完成执行时,init进程会回收子进程资源,因此,孤儿进程不会对系统造成影响。 僵尸进程是指父进程在一直运行,而子进程已经结束,父进程没有释放子进程PCB资源,这时的子进程就变为僵尸进程,僵尸进程会一直占用进程号,而系统的进程号数量是有限的,当系统中出现大量的僵尸进程时,就会导致无法为新的子进程分配进程号而造成严重危害。 解决僵尸进程的方法: 可以通过wait()或waitpid()方法让父进程等待去回收子进程资源,其中,waitpid()可以设置非阻塞; 子进程结束时会向父进程发送一个SIGCHLD信号,我们可以在父进程中捕捉这个信号,当父进程捕捉到这个SIGCHLD信号后,可以在回调函数中通过waitpid()进行子进程资源的回收,但是需要注意的是,当多个子进程同时结束时,同时发送的SIGCHLD信号可能只有一个被标记,我们需要在回调函数中循环释放子进程资源。
发表于 2023-08-02 10:11:36
回复(0)
2
keepgoing_
1.孤儿进程是指父进程比子进程先终止,此时子进程变为孤儿进程,孤儿进程会交由1号进程托管,也由1号进程负责资源的挥手 2.僵尸进程是指子进程比父进程先终止,此时子进程变为僵尸进程,僵尸进程会占用系统内存资源、进程ID,所以如何存在大量的僵尸进程可能会导致无法创建新进程; 3. 因此,需要对僵尸进程进行回收,在父进程中可以使用wait(), waitpid()进行回收,也可以使用信号来回收,子进程终止时会发送sigchild信号,父进程对其进行捕获就可以了。
发表于 2023-10-21 11:10:36
回复(0)
1
在写面经的小饼干很坚定
孤儿进程(Orphan Process)是指父进程先于子进程终止,而子进程仍在运行的进程。当父进程终止时,操作系统会将孤儿进程交给 init 进程(在 Unix-like 系统中,通常是进程号为 1 的 init 进程)来接管。init 进程会成为孤儿进程的新父进程,并负责回收孤儿进程的资源。 僵尸进程(Zombie Process)是指子进程先于父进程终止,但是父进程没有及时回收子进程的资源,导致子进程处于一种已终止但仍保留进程描述符等一些资源的状态。僵尸进程的存在通常是因为父进程没有处理子进程的退出状态信息。 为了解决僵尸进程的问题:使用 wait() 或 waitpid() 系统调用:父进程可以使用这些系统调用等待子进程的终止,并获得子进程的退出状态。这样父进程就可以正确处理子进程的资源,避免僵尸进程的产生。
发表于 2023-08-10 21:44:29
回复(0)
1
毛克成
孤儿进程指父进程死亡,子进程还在运行,为孤儿进程。僵尸进程是指子进程退出但是父进程并没用回收子进程资源,这种进程称为僵尸进程
发表于 2022-07-05 21:09:56
回复(0)
0
Lin_S
孤儿进程:父进程退出,子进程还没有退出;僵尸进程:子进程退出,但父进程没有收回进程号,因此还是占用着资源;可以用wait,waitpid回收资源
编辑于 2024-04-18 10:47:48
回复(0)
0
上山打老虎c
孤儿进程:父进程释放后,子进程没有释放;僵尸进程:子进程释放后,父进程没有帮子进程回收资源,导致子进程移植占用资源
编辑于 2024-04-15 19:41:20
回复(0)
0
贪玩的咸鱼求你们别卷了
孤儿进程 :父进程运行结束 子进程还在运行 僵尸进程:子进程终止 父进程没有回收子进程的残留资源
编辑于 2024-04-15 11:10:44
回复(0)
0
MasterAA
孤儿进程是在子进程运行的时候,父进程结束运行,并且没有释放子进程。孤儿进程会被init/systemd进程接管僵尸进程:子进程已经运行结束,但父进程没有调用wait系列函数回收。僵尸进程会占用系统的资源,如果有大量的僵尸进程,会影响系统的正常运行。
发表于 2024-03-29 18:41:50
回复(0)
0
又熬夜了的卷王很喜欢拱白菜
孤儿进程:父进程挂了,子进程还活着被init进程接管,处理子进程的pcb资源和状态 僵尸进程:子进程挂了,父进程活着,但是父进程没有回收子进程得pcb资源和状态, 处理僵尸进程一般通过接受子进程在结束时发出的SIGHLD信号,调用wait和waitpid函数处理子进程得pcb资源
编辑于 2024-03-27 08:11:55
回复(0)
0
Guojiahui
孤儿进程:就是父进程退出后 但子进程并没有被释放的情况 孤儿进程被init进程收养,一般不会产生影响 僵尸进程:子进程退出了 但父进程没有调用wt/wtpid系统调用取得子进程的终止状态,子进程的描述符仍然保持在系统中(子进程死释放,但是父进程不知道,子进程还占用着资源)
发表于 2024-03-24 11:53:24
回复(0)
0
代码要笑着写
孤儿进程是父进程退出而子进程没有退出,此时孤儿进程的父进程自动变为init进程,由init进程调用wait。僵尸进程是父进程没有调用wait或者waitpid对子进程资源进行回收,此时子进程的信息将堆积在系统中。解决僵尸进程:父进程记得调用wait或者waitpid、信号处理方法SIGCHID、孙子进程方法
编辑于 2024-03-21 11:27:07
回复(0)
0
牛客234800787号
父进程退出,子进程还在,是孤儿进程;僵尸进程是子进程退出时未告知父进程的情况,linux下直接调用指令查出具体进程id,用指令干掉僵尸进程就行了
发表于 2024-03-12 18:47:54
回复(0)
0
迷人的小鲸鱼在做测评
孤儿进程就是,父没了,儿子还在,僵尸就是,儿子死了,父没收尸,僵尸解决,用waitpid或者wait,或者发信号杀死
发表于 2024-03-03 13:05:43
回复(0)
0
五毛变向
孤儿进程 父进程死亡 但是子进程还在 僵尸进程 子进程的资源并没有被父进程完全回收 父进程死了 子进程变成僵尸 守护进程收僵尸
编辑于 2024-02-29 20:04:27
回复(0)
0
Dancingmad
孤儿进程是父进程释放了,子进程还在。 僵尸进程是指一个进程结束并退出但是父进程没有回收他的资源,可以通过wait和waitpid来回收其现有的资源
编辑于 2024-02-28 23:11:44
回复(0)
0
布莱克曼
孤儿进程:父进程被释放,子进程还在;🧟进程:子进程被释放,父进程不知道,子进程还占用资源部。 解决方法:1.程序设计时,确保父进程正确及时地管理子进程的退出状态; 2.使用prctl()函数来确保子进程不会变成僵尸进程,通过设置PR_SET_CHILD_SUBREAPER选项来指定子进程被子进程收割者进程领养; 3.调用wait()函数来等待子进程结束,并收集其状态信息。
编辑于 2024-01-27 19:47:01
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
上传者:
real19931
难度:
35条回答
204收藏
1798浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
阿里巴巴2015实习生笔试题
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
你说在销售运营这个岗位上会涉及到一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题