Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5699832
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-11-24 18:36:58

    在Kernel的书或者是System Programming的书中,有下面这些名词:僵死状态、僵尸进程、孤儿进程。
我感觉有必要阐述一下这几个词。

僵死状态:
    这是进程的一种状态,当子进程退出之后,子进程会释放自己的一些资源,例如文件描述符、内存等;但是子进程需要向父进程返回它的状态,有些东西是不能够释放的,在Linux中这实际上就是task_struct,也就是操作系统中常说的PCB。task_struct中保存着进程的退出状态,父进程调用wait,实际上就是从其子进程的task_struct中获取相应的字段。
    就在子进程结束,父进程还未调用wait之前,这段时间子进程已经退出了,但是其task_struct还保留着,这个状态称为“僵死状态”。

僵尸进程:
    父进程先于子进程退出,,那么自进程就变成了“僵尸进程”,直到子进程运行结束。

孤儿进程:
    僵尸进程,在运行结束的时候,会被init收养,成为“孤儿进程”,一般情况下,init会调用wait来获取进程的退出状态,进程彻底死掉。


阅读(1897) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~