父进程与子进程

关于父进程与子进程有许多疑问,这篇仅仅是个开头,这个系列仅为自己思考,并不是成熟体系,希望大家多批评指正。

在网上搜了很多,但是都没有一个普适的解释,仅仅是what和how,而我想知道的是why,所以我自己决定总结一下。

要了解父进程与子进程的关系,首先知道进程是什么?为什么出现进程?为什么引入子进程的概念?怎样创建子进程?当父进程结束时,子进程怎么办?

一、进程是什么?

在回答之前,先表明进程不是程序,进程不是数据,进程是活动着的。教材给出定义,进程是程序在一定数据集上的一次活动。我的理解是,进程=程序+数据+运行。进程是有生命力的,会动,会休息,会做工作的。它需要生存空间,需要吃东西,需要资源的。它会交流,有时会出故障,需要管理的。

二、为什么出现进程?

计算机运算速度很快,如果只用单道程序造成极大浪费。另外,并发是我们所需要的,我们会想听着歌写着文字,聊着天看着视频。这些都是并发,其实这个起源是很有意思,IBM给MIT,UM捐赠7094,但是因为IBM高管喜欢帆船比赛,所以要求他们当比赛来时,就停下学校的工作,用机器算比赛结果。学校大为恼火就发明了分时系统。因为人们想要处理多个任务,就发明了进程这个概念。

三、为什么引入子进程?

这个问题,可以参考第二个,为什么引入进程,因为并发,这个答案也是因为进一步的并发,比如我想算一下a*100,我还想算b*100,我可以顺序算,也可一创建两个子进程一个算前者,一个算后者,父进程等待算好了,拿过来用,这是进一步的并发,为了解释更清楚用图形表示。

第二种情况,我运行一个进程,遇到分岔口,我想让两种可能都运行一下,创建子进程用参数1,创建另一个参数2。


第三种情况,创建两个一样参数的子进程,哪个好我选哪个。

四、怎样创建子进程?

子进程肯定与父进程有着千丝万缕的关系。

对于资源,子进程可以是从父进程分配得来,正如子承父业嘛,每个儿子分点,这个时候,子进程跟父进程地位在OS那就不一样了。OS资源分配的是父进程。也可以是,OS统一分配,正如国家分田地,按人数分地,多个人多个地。

对于调度,子进程的调度,能不能交给父进程?比如说,国家分配工作,给家庭指标呢,还是给个人呢?对于这,第一种观点,进程都是自私的,拿到处理机自己就运行,这得是,进程第一定律,若不然的话,你想想,OS怎么调度啊,我明明安排你去,怎么你儿子去了,还让来让去。所以,调度时子进程与父进程地位等同。第二种观点,对于操作系统,调度单位是家族,家族中有一定的调度算法。对于现在,都是用第一种观点,至于第二种,不知道有没有,我自己想的。类比与社会的话,应该两个都应该有点。既有国家的管制,又有家庭的管制。

对于管理,子进程惹祸了怎么办,对于OS直接调度的,OS直接处理掉了,要是父进程调度的,就得父进程处理,否则,OS会把整个家族处理掉。

五、当父进程结束时,子进程怎么办?

对于上图第一种情况,父进程要子进程结果,父进程没等到被kill了,子进程也没什么意义了,也kill得了。

对于第二种,子进程被创造后与父进程无关了,那就留下,当个单独的进程或者找个养父。

对于第三种,那就杀死一个留下一个,留下来的当单独进程或者找个养父。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值