5 调度
type
status
date
slug
summary
tags
category
icon
password
5.1 调度的层次

长程调度(作业调度、高级调度)
内存与辅存之间的调度,每个作业只调入一次、调出一次
- 将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源
- 批处理系统需要作业调度,以便将进程分批地装入内存,
- 在分时系统和实时系统中,通常不需要长程调度。
- 它的频率比较低,主要用来控制内存中进程的数量。
适用场景:批处理系统或多道程序系统。
中程调度(交换调度、中级调度)
- 将进程从内存或从CPU竞争中移出到外存(挂起),之后它能被重新调入内存(就绪),并从中断处继续执行。
- 这种交换的操作可以调整进程在内存中存在的数量和时机。
- 其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或等待状态的进程交换到外存交换区。
- 主要发生于不使用虚存的系统
适用场景:采用 可换出(挂起)机制 的系统(如分时系统或多用户系统)。
短程调度(进程调度、低级调度、微观调度)
- 这也是通常所说的调度,一般情况下使用最多的就是短程调度。
- 它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程
- 非抢占式(non-preemptive):一个进程只有在自愿放弃CPU或者因为等待某个事件而被阻塞时,操作系统才会将 CPU分配给另一个进程,如多道批处理系统
- 抢占式(preemptive):如分时系统、实时系统
- 能有效提高系统吞吐率和响应效率
- 优先权、短进程优先、时间片
适用场景:所有多道程序系统(尤其是分时、实时系统)。

5.2 调度的目标
通过按一定策略分配处理器时间,来优化系统一个或多个方面的行为。
- 面向用户:单个用户或进程感知到的系统行为
面向系统:处理器的使用的效果和效率
- 与性能直接相关:定量的
其它:定性的

周转时间 = 作业完成时间 - 作业提交时间
平均周转时间 = 所有作业周转时间之和 / 作业数
5.3 典型调度算法
先来先服务(FCFS)调度算法
- 最简单,既可用于作业调度,又可用于进程调度
- 选择最先进入队列的进程,将处理器分配给它
- 效率低,对长作业有力,对短作业无力
短作业优先(SJF/SPN)调度算法
- 选择(估计)运行时间最短的作业,将它们调入内存运行
- 平均等待时间、平均周转时间最少
- 对长作业不利
最短剩余时间(SRT)
- 抢占+SPN
- 也称最早截止时间
高响应比优先(HRRN)调度算法
- 主要用于作业调度
- 同时考虑每个作业的等待时间和估计的运行时间
- 每次选择响应比最高的进程投入运行

短程调度算法
优先级调度算法
- 每次从就绪队列中选择优先级最高的进程,将处理器分配给它
- 既可用于作业调度,又可用于进程调度
- 多优先级队列
- 动态优先级
时间片轮转(RR)调度算法
- 主要适用于分时系统
- 所有就绪进程按照FCFS策略排成一个就绪队列
- 调度程序总是选择队列中第一个进程执行,但又仅能运行一个时间片
- 被剥夺的进程返回就绪队列的末尾重新排队
- 时间片的大小对系统的性能影响很大
- 时间片太小,则进程的切换过于频繁,切换的开销增加
- 时间片太大,进程可能得不到及时的响应
多级队列调度算法
- 设置多个就绪队列,将不同类型或性质的进程固定分配不同的就绪队列
- 每个队列可实施不同的调度算法
多级反馈队列调度算法
- 是时间片轮转调度算法和优先级调度算法的综合发展
- 设置多个就绪队列,为每个队列赋予不同的优先级
- 赋予各个队列的进程运行的时间片大小各不相同,优先级越高的队列,时间片越小,在队列内FCFS
- 在一个队列完成一个时间片后,转入下一级队列等待调度
- 仅当优先级高队列为空时,才能调度下一级队列

例题









这里好像有点问题,t=2时应该继续执行A,时间片还没中断
ChatGPT和我想的一样
5.4 多核处理器调度算法
- 对称多处理器(SMP):主流处理器,每个CPU自己决定自己的调度算法
- 非对称处理器(ASMP):一般仅一个处理器能处理系统数据结构,减轻对数据的共享需求。
- 负载平衡问题:每个处理器处理的内容尽量平均
- 亲和性:进程在某个指定的CPU上尽量长时间地运行而不被迁移到其他处理器的倾向性。
- 软亲和性(进程尽量不切换)
- 硬亲和性(进程不切换)
课堂练习

A

D

C

D
期末真题
2024秋
四、关于调度,回答下列问题。(8分)
1)阐述长程调度、中程调度和短程调度的适用场景有哪些?(2分)
2)实时系统应采用什么调度策略?(2分)
优先级调度策略
3)各进程的到达时间和执行时间如下表所示。分别利用RR算法(时间片大小为2)和多级反馈队列算法(时间片大小为(2^i))计算平均周转时间。需画图说明。(4分)



2020春
三、关于调度,回答下列问题。(8分)
1)请给出操作系统中的3种常用调度方法,并阐述每种调度方法的基本过程。(3分)
2)调度要满足一定的原则,有些原则之间则会有一定的矛盾(不能兼顾),请给出一种矛盾并分析。(2分)
- 为了缩短响应时间(提高交互性),调度程序通常优先让短作业或前台进程先运行,比如采用短作业优先(SJF)或高响应比优先(HRRN)算法。 这样用户能很快得到响应,但频繁切换进程、长作业被推迟,会增加调度开销,降低系统总体效率。
- 为了提高吞吐量(单位时间完成的作业数),调度程序往往倾向于让CPU长时间运行同一进程,减少切换次数。
这样系统整体效率高,但响应时间变长,交互性变差。
3)考虑下面的进程,在时刻0以1~4的顺序到达(到达的间隔时间可以忽略),采用基于时间片轮转(RR)算法,计算时间片q=1和q=2时平均周转时间。(3分)


2014
三.进程调度
1)交互式系统最重要的性能标准。
响应时间
2)周转时间和响应时间的区别。
项目 | 周转时间(Turnaround Time) | 响应时间(Response Time) |
定义 | 作业从提交到完成所经历的总时间。 | 用户从提交请求到系统首次响应所需的时间。 |
计算公式 | 周转时间 = 完成时间 − 提交时间 | 响应时间 = 第一次响应时间 − 提交时间 |
适用场景 | 批处理系统(注重整体效率) | 交互式系统(注重用户体验) |
用户感受 | 反映作业完成的速度 | 反映系统反应的快慢 |
3)进程调度算法,说明调度的过程,并求平均周转时间。(数据可能不对)

(1) FCFS,先来先服务
(2) SRC,最短剩余时间
(3) RR,时间片轮转算法 没给q?

Loading...