什么是僵尸进程和孤儿进程
什么是僵尸进程和孤儿进程
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
僵尸进程 和孤儿进程 是在进程管理中常见的两种状态,它们分别表示了不同的进程状态和问题。
僵尸进程
- 僵尸进程 是指一个子进程在结束时,父进程没有调用 wait() 或 waitpid() 来获取子进程的返回状态,导致子进程的进程描述符仍然存在,但是进程控制块已经被释放,此时的子进程就成为了僵尸进程。僵尸进程不占用内存空间,但会占用进程号,如果系统中存在大量的僵尸进程,会导致进程号的耗尽。
孤儿进程
- 孤儿进程 是指一个子进程的父进程先于子进程结束,此时子进程的父进程会被 init 进程(进程号为 1)接管。孤儿进程会被 init 进程回收,不会成为僵尸进程。
区别
- 区别:僵尸进程是子进程先结束,父进程没有回收子进程的状态;而孤儿进程是父进程先结束,子进程成为孤儿进程,由 init 进程接管。
解决僵尸进程的方法是父进程调用 wait() 或 waitpid() 来回收子进程的状态;而孤儿进程会被 init 进程接管,不会产生僵尸进程。