Skip to content

Latest commit

 

History

History
9 lines (6 loc) · 1.05 KB

什么是僵尸进程?.md

File metadata and controls

9 lines (6 loc) · 1.05 KB

僵尸进程的产生通常发生在以下情况:

  1. 当一个子进程结束执行后,它会向父进程发送一个SIGCHLD信号,表示它已经执行完毕。
  2. 根据操作系统的设计,父进程需要通过调用wait()waitpid()函数来读取子进程的退出状态。这个操作被称为“收割”子进程。
  3. 如果父进程没有调用这些函数,子进程的PCB就不会被清除,从而成为僵尸进程。

僵尸进程本身不消耗除了PCB之外的资源,但如果大量的僵尸进程累积,它们将占用系统的进程表空间,可能会导致系统无法创建新的进程。通常,僵尸进程是由于程序设计不当导致的,开发者应当确保进程能够被正确地清理。

当僵尸进程的父进程终止时,僵尸进程会被操作系统的init进程(或其他类似的系统进程)接管,并由它来完成收割工作,从而释放僵尸进程占用的PCB。在大多数现代操作系统中,这种现象是暂时的,因为系统设计确保了僵尸进程最终会被清理