什么是"zombie process"(僵尸进程)?

3 min read

"zombie process"(僵尸进程)是指已经完成了执行任务但父进程尚未调用wait函数回收其资源的进程。在操作系统中,每个进程都有一个进程控制块(Process Control Block,PCB)来维护进程的状态和相关信息。当一个子进程完成任务后,它会以僵尸的形式存在于系统中,将其PCB的状态更改为僵尸状态。

僵尸进程保留了一些必要的信息,如进程ID、退出状态和资源使用情况等,但它不再执行任何任务。僵尸进程对系统的稳定性和性能没有直接影响,但如果过多的僵尸进程堆积,会浪费系统资源。

当父进程调用wait函数时,它会从内核中检索僵尸进程的信息并释放相关资源,然后系统会清除该进程的PCB,将其完全从进程表中删除。只要父进程及时处理僵尸进程,系统就不会发生僵尸进程积累的问题。

常见引起僵尸进程的情况包括:父进程没有及时调用wait函数回收子进程的资源、父进程意外终止等。