【Linux进程四】僵尸进程和孤儿进程

1.什么是僵尸进程

我们之前提到过多种进程状态,僵尸进程本质就是死亡状态

请添加图片描述

就和现实中的意外身亡相同,警察不会立刻将死者火化,而是要查明死亡原因给家属和社会一个交代,最后也会有家属处理后事
Linux中的进程在死亡后也不会立刻销毁,会有其父进程处理后事

在这里插入图片描述

2.为什么会出现僵尸进程

当一个进程退出后,退出信息由OS写入到当前退出进程的PCB中,允许进程的代码和数据空间被释放,但不允许进程的PCB被释放
要让父进程读取到退出进程的PCB中的退出信息,并得知子进程的退出原因后,才能释放退出进程的PCB

因此可知:

当一个进程退出后,PCB中的退出信息还未被读取其父进程读取,此时操作系统必然会维护这个退出进程的PCB结构不会被释放,此时这个退出进程就处于僵尸状态(Z)

若一个进程长期处于Z状态,未被及时回收,就会有内存泄漏的风险

查看进程的Z状态:
在这里插入图片描述

在这里插入图片描述

3.什么是孤儿进程

当一个子进程还没有退出,但父进程先退出了,这时子进程被称为孤儿进程

当一个孤儿进程出现,意味着没有父进程处理孤儿进程的PCB了,不处理就会占用操作系统的资源导致内存泄漏,所以操作系统会作为“干爹”给给孤儿进程“收尸”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值