码迷,mamicode.com
首页 > 其他好文 > 详细

僵尸进程和孤儿进程

时间:2014-05-21 19:24:54      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:style   class   c   a   工作   os   

僵尸进程:一个子进程死亡了,但是它的父进程并没有调用wait或waitpid进行状态收集,关于这个进程的描述符还存在系统中,这个子进程就死不瞑目,就成了僵尸进程。

孤儿进程:顾名思义,就是没有父进程的进程。在OS中,一个父进程死亡,它的那些还在运行的子进程就成为孤儿进程。孤儿进程会被init进程(pid=1)所收养,并且由init进程完成它们的状态收集工作。

需要了解的是,在OS中,每个进程都有一个关于本身的进程描述符,当这个进程消亡之后,这个描述符是不会消失的,这个描述符是父进程用来查看子进程的唯一标示。只有父进程调用wait或者waitpid对子进程进行状态收集,子进程才不会变成僵尸进程。

孤儿进程本身并没有什么危害,其父进程死亡,init会负责它的善后事宜,收集它的状态描述符,并不会对系统造成危害。僵尸进程就不一样了,僵尸进程已经死亡,但是描述符一直存在,会占用系统资源,如果一个系统存在大量的僵尸进程的话,大量无用的状态描述符会大量消耗系统空间和资源。我们就需要分析,怎样解决僵尸进程的问题。究其原因,还是因为其父进程,如果父进程消亡的话,僵尸进程就会变成孤儿进程,则其状态描述就可以有init来收集了,若其父进程并没有消亡,而是一直在制造僵尸进程,那就是很恐怖的事情了。所以这个问题最有效的办法就是找出僵尸进程的父进程,杀死它。当然,正确调用wait或者waitpid就更好了^_^。

僵尸进程和孤儿进程,布布扣,bubuko.com

僵尸进程和孤儿进程

标签:style   class   c   a   工作   os   

原文地址:http://www.cnblogs.com/havePassed/p/3740062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!