僵尸进程与孤儿进程

一 僵死进程:

(1)定义:内核为每个终止子进程保存一定量的信息,所以当终止进程的父进程调用wait或waitpid时,可以得到这些信息。这些信息至少包括:进程ID、该进程的终止状态、以及该进程使用的CPU时间总量。内核可以释放终止进程的所有存取区,关闭其所有打开的文件。

(2)怎样避免僵死进程的出现:
1.需要确认父进程为每个子进程的终止调用wait或waitpid。
2.另一种方法是两次fork(),而且使紧跟的子进程直接退出,这样造成孙子进程变成孤儿进程(orphaned),从而init进程将负责清除它。
3.把父进程杀掉。父进程死后,僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。



二 孤儿进程:
(1)定义:如果父进程在子进程终止之前终止,则子进程的父进程变为init进程,称这些进程为孤儿进程,由init进程领养。

(2)一个init进程领养的进程终止时不会变成僵死进程,因为init被编写成无论何时只要有一个子进程终止,init就会调用一个wait函数取得其终止状态。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值