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队列。在就绪队列中,父进程在子进程之后,如果这个系统的调度算法是先来先服务,子进程就会在父进程之前执

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值