孤儿进程,僵尸进程

孤儿进程

一般情况,每一个进程都有父进程,由父进程创建
但当父进程执行完后,先于子进程终止,则子进程就是孤儿进程
父母都死了,生下的儿女就是孤儿

Linux会将init进程(进程号为1)设置为该孤儿进程的父进程
init相当于党和政府,做善后工作
这样看来孤儿进程没有危害

僵尸进程

进程结束时,可以释放虚拟地址空间中的用户区数据,但对于内核区的数据,需要由父进程来处理,调用waitpid()来回收
这样设计的意义应该是,子进程执行结束后,父进程要看子进程是不是正常执行结束,PCB进程控制块也需要父进程来释放
子女死亡,子女的尸体也是由父母领回去,办葬礼对吧,一切都合理起来

但有些混蛋父母,对子女的尸体不闻不顾,丢在荒山野岭,自然就会尸变,成为僵尸
僵尸进程就是子进程终止,但父进程并不善后,不去释放子进程PCB资源,这样子进程的进程号就无法被别的进程复用
僵尸进程无法被kill -9命令杀掉

处理僵尸进程

很简单,将其父进程终止掉即可
init会接管该子进程
会为其释放资源

posted @ 2023-02-08 15:35  ecnu_lxz  阅读(14)  评论(0编辑  收藏  举报