调度程序是一个单独的进程,或者只是在其他进程的上下文中运行

时间:2011-04-29 16:08:00

标签: c++ c linux operating-system linux-kernel

您好 在unix BSD 5操作系统中,我们是否有调度程序具有进程ID的单独进程,或者其代码是使用其他进程的上下文执行的。 例如,如果我们有一些用户运行的程序需要被调度回“准备在内存中运行”...所以调度程序将在用户程序上下文中运行? 任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

Linux(Unix,BSD,MacOS X,...)内核充当“调度程序”。它决定下一个要运行的进程,调整进程的优先级和状态,并确保所选进程的运行时间不超过其时间量(在内核再次监督下一个进程执行之前)。内核使用抢占式调度(而不是协作调度)。它明确地不在用户程序上下文中运行;它在内核环境中运行。

您可以讨论内核是否是一个单独的进程。它当然不是您的用户流程的一部分,因此它是独立的;问题是它是否真的是一个过程。然而,这是一个有点哲学的问题,实际上并不影响你 - 系统的一个独立部分控制着流程的调度和调度。