进程
因为fork函数是创建子进程的,该函数会返回二次,调用完成之后,即会存在父和子这二个进程,而这两个进程的执行是靠操作系统来进行调度的,所以这两个进程的执行不具备相关性了。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。
vfork之后内核会通过将子进程放在队列的前面,以让子进程先执行,以免父进程执行导致写时复制,而后子进程执行exec系统调用,因无意义的复制而造成效率的下降。fork就有这个弊端。
因为fork函数是创建子进程的,该函数会返回二次,调用完成之后,即会存在父和子这二个进程,而这两个进程的执行是靠操作系统来进行调度的,所以这两个进程的执行不具备相关性了。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。
vfork之后内核会通过将子进程放在队列的前面,以让子进程先执行,以免父进程执行导致写时复制,而后子进程执行exec系统调用,因无意义的复制而造成效率的下降。fork就有这个弊端。