处理机调度是对处理机进行分配,即从就绪队列按照一定的算法(公平、高效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

三级调度

  • 作业调度(高级调度):内存与辅存之间的调度,多道批处理系统大多配有
  • 中级调度(内存调度):提高内存利用率和系统吞吐量,将暂时不能运行的进程调至外存(挂起态)
  • 进程调度(低级调度):最基本的调度,不可或缺,频率很高(一般十几毫秒一次)

调度频率:作业调度 < 中级调度 < 进程调度。

调度的时机

不能进行进程调度与切换的情况:

  • 在处理中断的过程中
  • 进程在操作系统内核程序临界区中(普通临界区中可以进行调度)
  • 其他需要完全屏蔽中断的原子操作过程中

调度方式

  • 非剥夺调度方式(非抢占方式)
  • 剥夺调度方式(抢占方式)

调度的基本准则

  • CPU 利用率
  • 系统吞吐量
  • 周转时间:周转时间 = 作业完成时间 - 作业提交时间;带权周转时间 = 作业周转时间 / 作业实际运行时间
  • 等待时间
  • 响应时间

典型调度算法

算法类型特点
先来先服务(FCFS)不可剥夺简单但效率低;对长作业有利、对短作业不利;利于 CPU 繁忙型作业,不利于 I/O 繁忙型作业
短作业优先(SJF)-平均等待时间、平均周转时间最少;长作业可能「饥饿」
优先级调度非剥夺式 / 剥夺式静态优先级或动态优先级
高响应比优先(HRRN)-响应比 = (等待时间 + 要求服务时间)/ 要求服务时间
时间片轮转(RR)可剥夺适用于分时系统;时间片由系统响应时间、就绪进程数和系统处理能力确定
多级反馈队列-时间片轮转和优先级调度的综合和发展;兼顾终端型、短批处理和长批处理作业用户

优先级设置规则:系统进程 > 用户进程;交互型进程 > 非交互型进程(前台 > 后台);I/O 型进程 > 计算型进程。