调度算法在哪里运行?

时间:2015-04-06 11:28:53

标签: operating-system job-scheduling

我们看到了不同操作系统支持的调度算法列表。

考虑有2个进程(P1和P2)正在运行,调度算法是Round Robin。现在P1正在处理器中运行,P1已经完成了它的时隙。现在,调度算法必须进行上下文切换(从处理器中取出P1并将P2引入处理器)。

我想我所解释的概念是正确的。

现在,我的问题是......

调度算法本身就是一个过程!!让我们将调度算法命名为Ps。

现在Ps的工作是从处理器中取出P1并将P2引入处理器。在这种情况下,Ps在哪里运行? Ps是否也使用相同的处理器?或者是否有可以运行Ps的特殊处理器?

2 个答案:

答案 0 :(得分:0)

调度算法不是一个过程,因此您的问题基于错误的假设。调度算法可以在任何被中断的进程的上下文中开始运行,通常在内核上下文中。然后它决定下一个要运行的进程上下文并切换到该上下文。一直以来它基本上忽略了它开始运行时遇到的任何进程上下文。

答案 1 :(得分:0)

现代操作系统有两种(或多种)操作模式,至少是内核和用户。每个进程都有自己的用户模式地址空间。所有进程共享相同的地址空间。

内核模式地址空间只能在内核模式下访问。

"操作系统"是进程在内核模式下执行的时间。因为只有一个内核模式地址空间,所以在内核模式下运行操作系统的进程无关紧要。

硬件定时器触发操作系统在内核模式下响应的中断。操作系统检查当前进程(P1)是否已用完。如果是,则将上下文切换为p2。大多数开关通常在一条指令中完成。

在这种情况下,处理器在P1中进入内核模式并返回P2中的用户模式。