(一)进程调度
指当有更高优先级的进程到来时如何分配CPU。
(二)分类
当有更高优先级的进程到来时,
1)可剥夺式:强行将正在运行进程的CPU分配给高优先级的进程;
2)不可剥夺式:必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程。
(三)三级调度
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
等级 | 别名 | 说明 | 备注 | |
1 | 高级调度 | “长调度” “作业调度”或“接纳调度” | 决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。 | 一个作业只需经过一次高级调度。 |
2 | 中级调度 | “中程调度”或“对换调度” | 决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。 | 在内存资源紧张时,使处于内存的进程和处于盘交换区的进程交换位置。 |
3 | 低级调度 | “短程调度”或“进程调度" | 决定处于内存中的哪个就绪进程可以占用CPU。 | 是操作系统中最活跃、最重要的调度程序,对系统的影响很大。 |
(四)调度算法
说明 | 备注 | ||
1 | 先来先服务(FCFS) | 总是将就绪队列队首的进程投入运行。 主要用于宏观调度 | 特点: ①利于长作业,不利于短作业; ②利于CPU繁忙作业,不利于I/O繁忙作业。 |
2 | 时间片轮转 | 通过时间片轮转提高进程并发性和响应时间特性,从而提高资源利用率(设计目标)。 时间片长度可以从几毫秒到几百毫秒; 主要用于微观调度 | 选择方法: ①固定时间片; ②可变时间片; |
3 | 优先级调度 | 让每一个进程都拥有一个优先数,数值大的表示优先级高,优先占用CPU | 分类: ①静态优先级; ②动态优先级; |
4 | 多级反馈调度 | 是时间片轮转算法和优先级算法的综合与发展。 | 优点: ①照顾了短进程,以提高系统吞吐量,缩短了平均周转时间; ②照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间; ③不必估计进程的执行时间,动态调节优先级。 |
(五)进程优先级确定
针对场景 | 措施 | 备注 | |
1 | I/O型进程 | 进入最高优先级队列,及时响应需要I/O交互的进程。 | 在一个小时间片内处理完一次I/O请求数据,然后转入阻塞队列。 |
2 | 计算型进程 | 每次执行完时间片后进入更低级队列。 | 最终采用最大时间片来执行,以减少调度次数。 |
3 | I/O次数不多(CPU处理的进程) | 在I/O完成后,返回优先I/O请求时离开的队列 | 避免每次都回到最高优先级队列后再逐次下降。 |
4 | 某进程在不同时间段的运行特点 | I/O完成时,提高优先级; 时间片用完时,降低优先级。 |