Chinaunix首页 | 论坛 | 博客
  • 博客访问: 850753
  • 博文数量: 213
  • 博客积分: 5048
  • 博客等级: 大校
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 10:14
文章分类

全部博文(213)

文章存档

2011年(4)

2010年(55)

2009年(47)

2008年(107)

我的朋友

分类: LINUX

2008-10-28 16:43:58

先理解下什么叫僵死进程?
 
僵死进程:如果子进程在父进程之前终止,那么一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息,释放他仍占用的资源)的进程都被称为僵死进程。
(注意,被init进程领养的进程是不会变成僵死进程的,因为init会善后。。^^这段比较人性化)
 
那么我们再来理解一下为什么调用两次fork后可以避免僵死进程呢?
 
(我们用爷爷,父亲,儿子,来理解一下,呵呵听不懂当我胡诌)
首先爷爷进程是存在的,第一次fork后有了父亲进程,然后在fork一次就有了儿子进程。在产生儿子进程后父亲进程要想办法尽快exit了,这个尽快就是要保证在儿子进程exit之前exit了,因为那样,父亲进程在儿子进程之前终止的话,init进程会领养儿子进程,这样儿子进程的后事就有保证了,所以通过两次fork,产生儿子进程干事,而且这个进程是不可能变成僵死进程的,父亲进程只是一个短暂的过度进程(。。就当可以这样理解)。
阅读(1211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~