码迷,mamicode.com
首页 > 系统相关 > 详细

进程控制(六)---孤儿进程和僵尸进程

时间:2016-10-01 16:56:57      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

考虑下面两种情况:
  • 第一种:父进程 先于 子进程 退出。
发生此种情况的时候,子进程便成为 孤儿进程。系统中的所有孤儿进程都会被 init 进程领养,init 进程的进程 ID 始终为 1。系统内当有进程终止的时候,内核会去检查所有的进程是否为该终止进程的子进程,如果是,则将其父进程 ID 修改为 1,即被 init 进程领养。init 进程保证会去 wait 每个子进程的退出。这样一来,就可以保证系统内的所有进程都有父进程。当一个孤儿进程被 init 进程领养的时候,孤儿进程将会由前台进程转为后台进程,也就是说敲入 ctrl+c 是终止不了该进程的。
  • 第二种:子进程 先于 父进程 退出
当子进程 先于 父进程 退出的时候,如果此时父进程没有去使用 wait 或者 waitpid 函数去等待子进程退出,那么子进程的 内核资源(PCB)将不能被回收,则此子进程称为僵尸进程。由此可见,如果出现大量的僵尸进程,那么那些无法回收的 PCB 会占用内核的资源,也可以称为一种内存泄漏。

进程控制(六)---孤儿进程和僵尸进程

标签:

原文地址:http://www.cnblogs.com/frank-yxs/p/5925888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!