7-12进程的创建

是从学堂在线看的另外一位清华老师讲的

操作系统 - 清华大学 - 学堂在线

unix是用fork/exec 这两个系统调用来完成新进程的创建,

fork完成把一个进程复制成两个进程,这时候他们所执行的程序是一样的,但是这里面,它的变量有一个地方是不一样的,就是进程的ID,也就是pid,parent进程是原来的pid,child是分配给一个新的pid,

完成这个复制之后,接下来,由exec加载一个新的程序到内存中重写当前进程,也就是当前创建的子进程,这时候pid没有改变,等着系统调用返回,我们已经变成了两个进程,并且第二个进程已经变成一个新的程序在运行了,那这是新进程创建的基本做法。

fork完之后,当前系统就有两个进程,并且这两个进程的当前指令都指向fork完之后的那一行,父进程和子进程执行fork的返回值不一样,子进程返回0,父进程中返回值是子进程pid。

有一些特殊寄存器会不一样,以便我们区别父进程和子进程ID的不一致,

在操作系统里面的变化如下:

从代码的角度,如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值