gpt4 book ai didi

linux - 调度器的工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:22 25 4
gpt4 key购买 nike

调度器是一个程序,它在操作系统中调度不同的进程。想到的问题是:

由于调度器也是一个进程,它是通过上下文切换来调度其他进程的。所以,总有一天,调度程序会自己与任何其他进程进行切换。如果发生这种情况,那么之后的安排将如何进行。

或者,如果不是那样,那么 hw 就可以工作,就像在多任务系统中一样,为了一起运行不同的进程,进程必须进行上下文切换,如果调度程序一直在运行,那么,它将如何为其他进程提供一起运行的空间。

最佳答案

调度程序是一个程序,是的,但它很少是一个进程。相反,调度是内核的一部分,或者是从硬件(包括处理器使用)中抽象进程的程序。

在抢占式调度器中,由于调度器是内核的一部分,它实际上存在于每个进程的地址空间中。当进程的分配时间结束时,调度程序将控制程序执行,然后进行必要的工作以移动到下一个进程。然而,当调度执行此操作时,它不会将自己从新进程的地址空间中删除,因此当新进程的时间到了时,它可以安全地执行继续前进所需的工作。

虽然有些内核的功能经常被转移到其他进程(CMU Mach),但总会有一部分内核保留更改进程的功能,并且永远不会独占在它自己的进程中。

有关调度工作原理的更多信息,我发现以下文章很有帮助:

http://wiki.osdev.org/Context_Switching

http://wiki.osdev.org/Scheduling_Algorithms

http://wiki.osdev.org/Processes_and_Threads

关于linux - 调度器的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com