一、僵尸进程的定义(什么是僵尸进程)
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子
进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
二、僵尸进程的危害
僵尸进程放弃几乎所有的系统资源,包括进程地址空间等。僵尸进程不能执行,因此不能被系统调度,也不会占用CPU
时间。同时,僵尸进程所占用的内存是微乎其微的,几乎可以忽略不计。僵尸进程会一直存在系统中直到父进程得到其
结束状态由于僵尸进程保持进程ID,所以对于系统而言僵尸进程是一个确实存在的进程。因此,新进程不能够使用僵尸
进程的进程ID。Linux系统下是有严格的进程数限制的,当僵尸进程达到一定数目时,系统中将不能再产生新的进程。
三、僵尸进程的避免
父进程调用wait函数或waitpid获取子进程的状态信息,并做出处理