Linux进程


调用fork后,A进程和B进程的PC都指向下一个printf,也就是说,fork后子进程和父进程从相同的点开始执行代价。

fork出来的子进程是父进程的副本,也就是说其实copy了一份父进程,当然在子进程写数据之前,子进程一直是和父进程使用同样的资源,但是当子进程进行写数据的时候,子进程就会copy一份父进程的资源,然后进行数据的读写,这就是传说中的copy-on-write.

2:进程之exec

    如果只有fork去创建新的进程,那linux的性能就会有影响,因为fork出来的进程建立的事parent的副本。

幸好linux提供了exec系列,exec系列用于提供新程序的运行。exec系统调用都有相同的功能:把一个新程序的装入调用进程的内存空间,来改变调用进程的执行代码,从而形成新进程。当然如果exec执行成功,调用进程将被覆盖,从新进程的入口开始执行,这样就产生了一个新进程,但是新进程的进程标示符仍然和调用进程(也就是原进程)相同。也就是说exec执行后并没有创建并发的新进程,而是用新进程取代了旧进程。所以,exec执行后没有任何数据返回。如果有数据返回说明调用失败了,所以一般在调用exec后会有perror来提示调用失败。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值