三级调度体系
调度的作用
- 处理机调度的目的:将 CPU 分配给合适的进程。
- 调度功能:组织和维护就绪进程队列,包括确定调度算法,并按算法来管理这些队列。
- 分派功能:当 CPU 空闲时,从就绪队列中移出一个进程控制块(PCB),并将该进程投入执行。
通常,以上功能统称为“进程调度”。调度程序不仅要关注进程的执行顺序,还要考虑CPU 的利用效率,确保系统能够高效地执行多个任务。
调度级别
处理机调度是操作系统的核心功能之一,它决定了不同进程何时获得 CPU 的执行时间。调度体系分为三个主要层级:高级调度、中级调度和低级调度。
高级调度(作业调度 / 长期调度):
- 功能:决定哪些作业(进程或任务)从外存调入内存进行执行。高级调度的主要任务是选择外存中的作业(通常称为“后备队列”中的作业)将其加载到内存中。
- 调度频率:一般较低,执行周期通常是几分钟一次。
- 调度目标:优化系统资源的使用,保证系统稳定运行,确保足够的作业可以进入内存进行处理。
中级调度(内存调度 / 中期调度):
- 功能:主要目的是提高内存的利用率和系统吞吐量。它负责将进程在内存和外存之间进行交换,确保在内存空间不足时,某些进程可以被暂时换出,释放内存给其他进程使用。
- 调度频率:执行频率介于作业调度和进程调度之间,通常是几秒到几分钟一次。
- 调度目标:优化内存资源的分配和调度,避免内存过度占用导致的系统性能下降。
低级调度(进程调度 / 短期调度):
- 功能:这是最基本的调度层级,主要决定在 CPU 可用时,哪一个就绪队列中的进程获得 CPU 进行执行。低级调度执行频繁,一般按毫秒级或几十毫秒一次进行调度。
- 调度频率:非常频繁,通常是每几毫秒或几十毫秒进行一次调度。
- 调度目标:确保 CPU 得到有效利用,合理安排进程执行,平衡各进程的执行时间,提升系统响应速度。
三级调度关系
三种调度与“厕所和马桶”例子的类比
-
高级调度(作业调度):
- 背景:有很多人在排队等待上厕所,但厕所内的空间有限,无法让所有人都进去。
- 作用:高级调度研究的是如何决定哪些人(作业)可以从外面进入厕所(内存)。这些人之前从未进入过厕所。
- 类比:高级调度相当于决定把等待的人从厕所外(外存)调入到厕所内(内存),并让他们有机会去争取使用马桶(CPU)。
-
中级调度(交换调度):
- 背景:有些人已经进入厕所,但一时上不出来(暂时无法使用资源或正在等待其他资源)。
- 作用:中级调度负责研究如何让这些在厕所内但暂时不需要马桶的人先出去,释放空间,再根据需要让他们回来。
- 类比:中级调度相当于让这些“尿不出来”的人暂时退出厕所(从内存换出到外存),等他们有需求或资源可用时再让他们重新进入厕所。
-
低级调度(进程调度):
- 背景:厕所里已经有几个人,现在需要安排他们如何使用马桶(CPU)。
- 作用:低级调度主要负责分配厕所内的人使用马桶的顺序和时间,以便所有人都能公平地使用资源。
- 类比:低级调度相当于安排已经进入厕所的人如何使用马桶,比如让每人轮流用一段时间,或者优先让紧急需求的人先用。