【发布时间】:2019-11-01 01:01:31
【问题描述】:
在调用fork()之后,为什么大部分情况下父进程在子进程之前运行?什么情况下子进程在fork()之后会先于父进程运行?
请给我解释一下。
【问题讨论】:
标签: fork parent-child scheduling xv6
在调用fork()之后,为什么大部分情况下父进程在子进程之前运行?什么情况下子进程在fork()之后会先于父进程运行?
请给我解释一下。
【问题讨论】:
标签: fork parent-child scheduling xv6
父进程的fork调用就像任何其他系统调用一样,在完成后返回应用程序代码,进程将停止运行并切换到另一个进程(可能是子进程),因为XV6(以及许多其他操作系统)使用的抢占式调度性质。 如果父进程将在开始处理 fork 系统调用之后和开始处理返回应用程序代码之前结束它的时间切片周期,则子进程将在父进程之前运行(请参阅导致进程在'trap' 函数结束)。
【讨论】: