From 64e24634254a30fb0a7ae3052838d237d7e5ac67 Mon Sep 17 00:00:00 2001 From: Leo <57850665+Jay-Chou118@users.noreply.github.com> Date: Sun, 3 Aug 2025 11:13:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?Create=20=E4=BB=80=E4=B9=88=E6=98=AF?= =?UTF-8?q?=E5=AD=A4=E5=84=BF=E8=BF=9B=E7=A8=8B=3F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加另外一个高频问题:什么是孤儿进程 --- ...7\345\255\244\345\204\277\350\277\233\347\250\213?.md" | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 "problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" diff --git "a/problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" "b/problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" new file mode 100644 index 0000000..1bc9096 --- /dev/null +++ "b/problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" @@ -0,0 +1,8 @@ +孤儿进程(Orphan Process)是操作系统中与进程生命周期相关的另一种特殊状态,与僵尸进程形成对应但成因完全不同的概念。简单来说,**孤儿进程是指其父进程已经终止或退出,而自身仍在运行的进程**。 + +孤儿进程的产生逻辑: +1. 正常情况下,进程由父进程创建(如通过fork()系统调用),父进程会管理子进程的生命周期。 +2. 若父进程由于异常退出、被终止(如接收SIGKILL信号)或正常结束等原因先于子进程终止,此时子进程就会失去父进程的管理,成为孤儿进程。 +3. 操作系统为了避免孤儿进程无人管理,会将其 “收养”,由系统中的特殊进程(通常是init 进程,进程 ID 为 1,在现代系统中可能是systemd、launchd等)接管。 + +孤儿进程是操作系统进程管理中的一种正常现象,系统通过自动接管机制确保了其生命周期的合理收尾,通常无需开发者额外处理。 From db327a2f4457bd98e49997591c2ea63fb11bf0b6 Mon Sep 17 00:00:00 2001 From: Leo <57850665+Jay-Chou118@users.noreply.github.com> Date: Sun, 3 Aug 2025 11:14:22 +0800 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 44ab2c4..529e9b9 100755 --- a/README.md +++ b/README.md @@ -147,6 +147,7 @@ * [为什么有了进程还需要线程和协程?](./problems/为什么有了进程还需要线程和协程?.md) * [外中断和内中断有什么区别?](./problems/外中断和内中断有什么区别?.md) * [什么是僵尸进程?](./problems/什么是僵尸进程?.md) +* [什么是孤儿进程?](./problems/什么是孤儿进程?.md) * [程序编译的过程](./problems/程序编译的过程.md) * [并行和并发的区别](./problems/并行和并发的区别.md) * [什么是缺页中断](./problems/什么是缺页中断.md) From 59ea94ca04ad67919e1329014589cba3fafb781d Mon Sep 17 00:00:00 2001 From: Leo <57850665+Jay-Chou118@users.noreply.github.com> Date: Sun, 3 Aug 2025 11:14:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Rename=20=E4=BB=80=E4=B9=88=E6=98=AF?= =?UTF-8?q?=E5=AD=A4=E5=84=BF=E8=BF=9B=E7=A8=8B=3F.md=20to=20=E4=BB=80?= =?UTF-8?q?=E4=B9=88=E6=98=AF=E5=AD=A4=E5=84=BF=E8=BF=9B=E7=A8=8B=EF=BC=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\255\244\345\204\277\350\277\233\347\250\213\357\274\237.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" => "problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213\357\274\237.md" (100%) diff --git "a/problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" "b/problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213\357\274\237.md" similarity index 100% rename from "problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213?.md" rename to "problems/\344\273\200\344\271\210\346\230\257\345\255\244\345\204\277\350\277\233\347\250\213\357\274\237.md"