在linux下父进程和子进程的概念是什么?如何理解?如何显示?

僵尸进程与孤儿进程解析
本文解释了子进程结束运行后可能产生的僵尸进程与孤儿进程的概念。当子进程的进程控制块(PCB)未被父进程正确清理时,就会形成僵尸进程。孤儿进程是指其父进程先于它结束运行的子进程,通常孤儿进程会被init进程接管。

 当一个子进程结束运行(一般是调用exit、运行时发生致命错误或收到终止信号所导致)

时,子进程的退出状态(返回值)会回报给操作系统,系统则以SIGCHLD信号将子进程被结束

的事件告知父进程,此时子进程的进程控制块(PCB)仍驻留在内存中。一般来说,收到

SIGCHLD后,父进程会使用wait系统调用以取得子进程的退出状态,然后内核就可以从内存中

释放已结束的子进程的PCB;而如若父进程没有这么做的话,子进程的PCB就会一直驻留在内

存中,也即成为僵尸进程。   孤儿进程则是指父进程结束后仍在运行的子进程。在类UNIX

系统中,孤儿进程一般会被init进程所“收养”,成为init的子进程。   为避免产生僵尸

进程,实际应用中一般采取的方式是:   1.将父进程中对SIGCHLD信号的处理函数设为

SIG_IGN(忽略信号);   2.fork两次并杀死一级子进程,令二级子进程成为孤儿进程而

被init所“收养”、清理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值