当前位置:   article > 正文

fork()函数执行过程_fork子进程和父进程执行顺序

fork子进程和父进程执行顺序

一、fork()函数原理

int main()

{

       int pc;

       pc=fork();

}

通过fork()语句创建子进程,其实就是将父进程的内容复制到子进程中,包括堆栈段、数据段等(包括把pc的值赋给子进程,所以子进程执行的入口不再是main(),而是pc=fork()这句话,当然,fork()这句指令是不执行的,子进程将fork()返回值赋给pc。而函数的返回值默认是0,所以在不执行fork()函数的情况下,子进程的pc=0)

 

二、子进程和父进程执行次序

1、(子进程先执行的情况)如果时间片很短,在父进程执行fork()语句时,时间片就用完了,由于fork()是原语,必须先将fork()执行完毕,才能切换时间片。当fork()语句执行完毕,父进程进入就绪队列,在这之前,子进程已经进入Ready队列。在就绪队列中,父进程在子进程之后,如果这个系统的调度算法是先来先服务,子进程就会在父进程之前执

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/210160
推荐阅读
相关标签
  

闽ICP备14008679号