操作系统中的进程调度程序
进程调度是进程管理器的活动,它处理从 CPU 中删除正在运行的进程以及根据特定策略选择另一个进程。
进程调度是多道程序操作系统的重要组成部分。这种操作系统允许一次将多个进程加载到可执行内存中,并且加载的进程使用时间多路复用共享 CPU。
有三种类型的进程调度程序。
- 长期或作业调度程序:
它将新流程带入“就绪状态”。它控制多道程序的程度,即在任何时间点处于就绪状态的进程数。长期调度程序仔细选择 IO 和 CPU 绑定进程是很重要的。 IO 绑定任务将大部分时间用于输入和输出操作,而 CPU 绑定进程则将时间花在 CPU 上。作业调度程序通过在两者之间保持平衡来提高效率。 - 短期或 CPU 调度程序:
它负责从就绪状态中选择一个进程,将其调度到运行状态。注意:短期调度程序只选择要调度的进程,它不会在运行时加载进程。这是使用所有调度算法的时间。 CPU 调度程序负责确保不会因高突发时间进程而出现饥饿。
Dispatcher负责将 Short-term scheduler 选择的进程加载到 CPU 上(Ready to Running State)上下文切换仅由 Dispatcher 完成。调度员执行以下操作:- 切换上下文。
- 切换到用户模式。
- 跳转到新加载程序中的正确位置。
- 中期调度程序:
它负责暂停和恢复进程。它主要进行交换(将进程从主内存移动到磁盘,反之亦然)。交换可能是改进进程组合所必需的,或者因为内存需求的变化已经过度使用可用内存,需要释放内存。它有助于在 I/O 限制和 CPU 限制之间保持完美的平衡。它降低了多道程序的程度。
参考资料 – 操作系统概念 9ED