进程的一生

进程通信:

system   调用关系

execlp     迭代关系(但进程号不变)

fork          多进程

 

下面就让我用一些形象的比喻,来对进程短暂的一生作一个小小的总结:
  随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆。
  然后随着exec,新进程脱胎换骨,离家独立,开始了为人民服务的职业生涯。
  人有生老病死,进程也一样,它可以是自然死亡,即运行到main函数的最后一个"}",从容地离我们而去;也可以是自杀,自杀有2种方式,一种是调用 exit函数,一种是在main函数内使用return,无论哪一种方式,它都可以留下遗书,放在返回值里保留下来;它还甚至能可被谋杀,被其它进程通过另外一些方式结束他的生命。  进程死掉以后,会留下一具僵尸,wait和waitpid充当了殓尸工,把僵尸推去火化,使其最终归于无形。  
  这就是进程完整的一生。

 

父进程死了后,子进程将成为孤儿进程,但init会为其收尸的。

子进程在父进程前先死的时候:父进程调用的waitpid的目的是为了可以为子进程收尸,要不然子进程会成为僵尸进程(如果他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程)。 

只有父进程死了init才会收养这个父进程的所有子进程。父进程没死,init是不会为他的儿子收尸的

(init闲着没事干去为人家的子女收尸啊)

init只收养孤儿进程,并定期对孤儿收尸
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值