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

2019-07-14 11:15发布

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

1、僵死进程的产生       子进程先于父进程结束,这是需要父进程最子进程的pcb进行释放,如果父进程没有对已经结束的子进程进行pcb释放,那么该子进程就一直处于僵死状态,如果父进程运行一段时间也结束了,那还好办,init进程会接收这个僵死的子进程对其pcb进行释放,但是如果父进程一直循环,那么子进程就一直处于僵死状态。 2、僵死进程的处理方式 (1)将其父进程杀死,显然这个不是很合理 (2)当子进程结束时便向其父进程发送一个SIGCHID信号,父进程收到该信号之后便调用wait或waitpid释放子进程pid。

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

1、孤儿进程的产生        一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被init进程收养,并由init进程对它们进行状态收集工作。 2、孤儿进程的处理       由于孤儿进程已被init进程收养,那就相当于其有了一个父进程,因此并不需要做特殊处理。