僵死进程和孤儿进程的产生和处理

一、僵死进程的产生和处理

1、僵死进程的产生

      子进程先于父进程结束,这是需要父进程最子进程的pcb进行释放,如果父进程没有对已经结束的子进程进行pcb释放,那么该子进程就一直处于僵死状态,如果父进程运行一段时间也结束了,那还好办,init进程会接收这个僵死的子进程对其pcb进行释放,但是如果父进程一直循环,那么子进程就一直处于僵死状态。

2、僵死进程的处理方式

(1)将其父进程杀死,显然这个不是很合理

(2)当子进程结束时便向其父进程发送一个SIGCHID信号,父进程收到该信号之后便调用wait或waitpid释放子进程pid。

二、孤儿进程的产生和处理

1、孤儿进程的产生

       一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被init进程收养,并由init进程对它们进行状态收集工作。

2、孤儿进程的处理

      由于孤儿进程已被init进程收养,那就相当于其有了一个父进程,因此并不需要做特殊处理。

猜你喜欢

转载自blog.csdn.net/qq_41727218/article/details/87977057