2015-04-06 62 views
0

我们看到不同操作系统支持的调度算法列表。调度算法在哪里运行?

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

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

现在,我的问题是..

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

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

+1

这看起来像一个经典的大学任务问题。你读过你的课本吗? – 2015-04-06 11:43:14

+2

由于“_3。要求作业帮助的问题必须包括您所做的工作的摘要,因此我正在投票关闭[off-topic](http://stackoverflow.com/help/on-topic)这个问题。到目前为止解决这个问题,并描述你正在解决它的难度。“ – xmojmr 2015-04-06 11:51:38

回答

0

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

0

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

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

“操作系统”是每当进程在内核模式下执行时。因为只有一个内核模式地址空间,所以在内核模式下执行操作系统的进程并不重要。

硬件计时器触发操作系统在内核模式下响应的中断。操作系统检查当前进程(P1)是否耗尽时间。如果是这样,它将上下文切换到p2。大部分开关通常是在一个指令中完成的。

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