在多道程序环境下,进程数目往往多于处理机数目,致使它们竞争使用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由进程调度程序完成的。它是操作系统设计的中心问题之一。
处理机调度
- 调度的层次
- 调度队列模型
- 选择调度方式和算法的若干准则
处理机调度的层次
一个作业从提交开始,往往要经历三级调度:高级调度、中级调度、低级调度。
高级调度(长程/作业/宏观调度)
- 从外存后备队列中选择作业进入内存就绪队列。
- 在批处理系统中,大多配有作业调度。
- 作业调度执行频率较低,时间尺度是分钟、小时或天。
中级调度(交换调度)
- 在内存和外存对换区之间按照给定的策略选择进程对换。
- 解决内存紧张问题,提高内存的利用率和系统吞吐量。
低级调度(短程/CPU/进程/微观调度)
- 任务是从就绪队列中选择一个进程来执行并由分派程序(Dispatcher)分配处理机。
- 是 OS 中最基本的调度。
- 时间尺度通常是毫秒级的,由于低级调度算法的频繁使用,要求在实现时做到高效。
- 常采用非抢占(非剥夺)方式和抢占(剥夺)方式两种。
处理机调度算法的目标
处理机调度算法的共同目标
- 资源利用率
- 公平性
- 平衡性(CPU 型进程和 I/O 型进程)
- 策略强制执行(抢占)
批处理系统的目标
- 平均周转时间短
1.周转时间:作业从提交 → 完成的时间
2.周转时间组成:
驻外等待调度时间
驻内等待调度时间
执行时间
阻塞时间
3.周转时间不具有区分实际运行时间长短的性质。 - 系统吞吐量高
- 处理机利用率高
周转时间= 结束时间 -到达时间
平均周转时间 T
平均周转时间可以衡量不同调度算法对相同作业流的调度性能。
带权周转时间:周转时间除以系统服务时间 T s (占CPU 时间)
带权周转时间越小越好。
分时系统的目标
- 响应时间快(对交互性作业)
1.键盘提交请求到首次反馈结果的时间
2.时间组成:
输入传送时间
处理时间
响应传送时间 - 均衡性
实时系统的目标
- 截至时间的保证
- 可预测性