Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@
* [为什么有了进程还需要线程和协程?](./problems/为什么有了进程还需要线程和协程?.md)
* [外中断和内中断有什么区别?](./problems/外中断和内中断有什么区别?.md)
* [什么是僵尸进程?](./problems/什么是僵尸进程?.md)
* [什么是孤儿进程?](./problems/什么是孤儿进程?.md)
* [程序编译的过程](./problems/程序编译的过程.md)
* [并行和并发的区别](./problems/并行和并发的区别.md)
* [什么是缺页中断](./problems/什么是缺页中断.md)
Expand Down
8 changes: 8 additions & 0 deletions problems/什么是孤儿进程?.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
孤儿进程(Orphan Process)是操作系统中与进程生命周期相关的另一种特殊状态,与僵尸进程形成对应但成因完全不同的概念。简单来说,**孤儿进程是指其父进程已经终止或退出,而自身仍在运行的进程**。

孤儿进程的产生逻辑:
1. 正常情况下,进程由父进程创建(如通过fork()系统调用),父进程会管理子进程的生命周期。
2. 若父进程由于异常退出、被终止(如接收SIGKILL信号)或正常结束等原因先于子进程终止,此时子进程就会失去父进程的管理,成为孤儿进程。
3. 操作系统为了避免孤儿进程无人管理,会将其 “收养”,由系统中的特殊进程(通常是init 进程,进程 ID 为 1,在现代系统中可能是systemd、launchd等)接管。

孤儿进程是操作系统进程管理中的一种正常现象,系统通过自动接管机制确保了其生命周期的合理收尾,通常无需开发者额外处理。