进程调度中,调度器和分派器有什么区别?

10

我目前正在攻读操作系统本科课程。对于进程调度中的调度程序(dispatcher)和中期调度器(medium term scheduler)的功能,我感到有些困惑。根据我所学的知识,中期调度器选择要进行换入和换出的进程,一旦进程被选定,实际的交换操作是由调度程序通过上下文切换(Context Switching)来执行的。而短期调度器则负责调度进程并分配它们的CPU时间,这基于所遵循的调度算法。如果我理解错了,请纠正我。我真的很困惑中期调度器和调度程序之间的功能以及换页(Swapping)和上下文切换(Context Switching)之间的区别。

3个回答

7
你用系统特定的术语描述事物。
调度程序和分派程序可以是同一个东西。但通常会将它们分开,使得调度程序维护进程队列,而分派程序处理实际的上下文切换。
如果将调度程序划分为长期、中期和短期,这一划分(如果存在)是特定于操作系统的。
交换是指从内存中移除进程的过程。通过上下文切换,一个进程可以变得不可执行,但未必被交换出去。交换通常与调度无关。然而,进程必须被交换回来才能运行,内存管理将尽量避免交换正在执行的进程。

一个进程可以通过上下文切换变为不可执行状态,但可能无法被交换出去。你能解释一下这是什么意思吗? - Backspace
当一个进程被设为非可执行状态时,它可能不会被交换出去。它仍然可以留在物理内存中。但是,内存管理系统稍后可能会将其交换出去。 - user3344003

0

调度程序评估要服务的请求的需求,从而强制排序。


3
也许您可以提供更多的信息。添加一个例子,也许链接到一个解释页面。 - A. Binzxxxxxx

0

基本上,你所了解的调度程序和分派程序都是正确的。有时它们被称为同一单元或调度程序(在这种情况下是短时间)包含分派程序作为单个单元,并共同负责将进程分配给 CPU 进行执行。有时它们被称为两个单独的单元,调度程序根据某些算法选择进程,而分派程序是负责实际上下文切换的软件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接