【问题标题】:XV6 Fork():Why does parent run first?XV6 Fork():为什么 parent 先运行?
【发布时间】:2019-11-01 01:01:31
【问题描述】:

在调用fork()之后,为什么大部分情况下父进程在子进程之前运行?什么情况下子进程在fork()之后会先于父进程运行?

请给我解释一下。

【问题讨论】:

    标签: fork parent-child scheduling xv6


    【解决方案1】:

    父进程的fork调用就像任何其他系统调用一样,在完成后返回应用程序代码,进程将停止运行并切换到另一个进程(可能是子进程),因为XV6(以及许多其他操作系统)使用的抢占式调度性质。 如果父进程将在开始处理 fork 系统调用之后和开始处理返回应用程序代码之前结束它的时间切片周期,则子进程将在父进程之前运行(请参阅导致进程在'trap' 函数结束)。

    【讨论】:

    • 感谢您的简单解释。 @OmerEfrat
    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2013-08-18
    • 1970-01-01
    相关资源
    最近更新 更多