什么是僵尸进程和孤儿进程

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001

僵尸进程孤儿进程是在进程管理中常见的两种状态,它们分别表示了不同的进程状态和问题。

僵尸进程

  • 僵尸进程是指一个子进程在结束时,父进程没有调用wait()或waitpid()来获取子进程的返回状态,导致子进程的进程描述符仍然存在,但是进程控制块已经被释放,此时的子进程就成为了僵尸进程。僵尸进程不占用内存空间,但会占用进程号,如果系统中存在大量的僵尸进程,会导致进程号的耗尽。

孤儿进程

  • 孤儿进程是指一个子进程的父进程先于子进程结束,此时子进程的父进程会被 init 进程(进程号为1)接管。孤儿进程会被 init 进程回收,不会成为僵尸进程。

区别

  • 区别:僵尸进程是子进程先结束,父进程没有回收子进程的状态;而孤儿进程是父进程先结束,子进程成为孤儿进程,由 init 进程接管。

解决僵尸进程的方法是父进程调用wait()或waitpid()来回收子进程的状态;而孤儿进程会被 init 进程接管,不会产生僵尸进程。

最后更新于