1.基本概念
按照一定算法选择一个进程将处理机分配给它。
2.三个层次
高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程。
中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内存。
低级调度(进程调度):按照某种规则,从就绪队列中选择一个进程为其分配处理机。
3.三层调度的联系、对比
高级调度:从外存到内存,是面向作业的。发生频率最低。
中级调度:从外存到内存,是面向进程的。发生频率中等。
低级调度:从内存到CPU,发生频率最高。
4.进程调度的时机
需要进程调度时机:1)主动放弃,包括进程正常终止,进程发生异常而终止,主动阻塞;2)被动放弃,包括分配给进程的时间片用完,有更紧急的事情需要处理如(I/O中断),有更高优先级的进程进入就绪队列。
不能进行进程调度的时机:1)在处理中断过程中;2)进程在操作系统内核临界区中;3)在原子操作过程中。
5.进程的调度、切换是有代价的,并不是调度越频繁,并发度就越高。
6.进程调度的方式
非剥夺方式(非抢占式):只能由当前运行的进程主动放弃CPU。
剥夺方式(抢占式):当前运行的进程被动放弃CPU。
7.调度算法的评价指标
CPU利用率 = 忙碌的时间 / 总时间
系统的吞吐量 = 总共完成了多少道作业 / 总共花了多少时间
周转时间 = 作业完成时间 - 作业提交时间
平均周转时间 = 各作业周转时间之和 / 作业数
带权周转时间 = 作业周转时间 / 作业实际运行的时间
平均带权周转时间 = 各作业带权周转时间之和 / 作业数
等待时间 = 进程 / 作业
响应时间:用户提交请求到首次产生响应所用的时间。
8.适用于早期批处理系统的调度算法
先来先服务(FCFS):排队买东西,先来先买;不会导致饥饿;非抢占式
短作业优先(SJF):已经到达的人,谁买东西用的时间最短谁先买。分为非抢占式和抢占式
高响应比优先(HRRN):综合考虑了作业/进程的等待时间和要求服务的时间。
9.适用于交互式系统的调度算法
时间片轮转(RR):抢占式,不会导致饥饿
优先级调度:有抢占式的,也有非抢占式的,会导致饥饿
多级反馈队列:抢占式的,会导致饥饿