第3章 处理机调度
3.1.3 三级调度的联系
作业调度为进程活动做准备,进程调度 使进程正常活动起来,中级调度将暂时 不能运行的进程挂起。 作业调度次数少,中级调度次数略少, 进程调度频率高。 进程调度是最基本的,不可或缺。
11
其它调度类型
按操作系统的类型分类:
批处理调度; 交互式系统调度; 实时调度; 多处理机调度;
Activate
Admit
i dm
Suspend
Ready
Event Occurs
Dispatch Timeout
nt e Ev ait W
Running
Release
Exit
Blocked Suspend
Activate
Suspend
Blocked 微观调度 中级调度 宏观调度
处理机调度的层次
10
28
FCFS举例2
作业 1 到达时间 运行时间 开始时间 完成时间 周转时间 0 24 0 24 24 26 28 带权周 转时间 1
2
3
1
2
3
3
24
27
27
30
8.67
9.33
平均周转时间=26
平均带权周转时间=6.33
FCFS调度算法性能
29
FCFS的特点
非抢占式 优点: 简单,易于理解,容易实现。 有利于长作业(进程),有利于CPU繁忙型作 业(进程)。 缺点: 不利于短作业(进程),不利于 I/O繁忙型 作业(进程)。 效率较低。 适用于作业调度、进程调度。通常与其他算法 结合起来使用。 30
21
3.3 调度的基本准则
就绪等待时间
每个作业在就绪队列中的等待时间 (等待处理器的时间之和),等待时 间越长,用户满意度越低。 处理器调度算法实际上并不影响作业 执行或输入\输出操作的时间,只影响 作业在就绪队列中等待所花的时间。 衡量一个调度算法优劣常常只简单地 考察等待时间。
22
3.3 调度的基本准则
FCFS: First-Come First-Served 实现思想:排队买票
每次从就绪队列中选择一个最先进入该队列的 进程,把CPU分给它,令其运行。该进程一直 运行下去,直至完成或由于某些原因而阻塞, 才放弃CPU。 非抢占式
26
FCFS举例1
例如,三个作业(如下表所示)同时到达系统并 立即进入调度:
CPU利用率 系统吞吐量
面向用户的准则
常作业消耗处理器的时间长,会降 低系统的吞吐量。相反,短作业会 提高系统吞吐量。
周转时间是指作业从提交到作业完成 所经历的时间,包括作业等待、在就 绪队列中排队、在处理器上运行以及 输入/输出操作所花费时间的总和。
20
周转时间 就绪等待时间 响应时间
作业名
作业1 作业2 作业3
所需CPU时间
28 9 3
若这三个作业的调度顺序为1、2、3,则周转时 间分别为:28、37和40,因此,平均周转时间T= (28+37+40)/3=35。 若三个作业提交顺序改为作业3、2、1,平均周 转时间约为18。可见,FCFS调度算法的平均周 转时间与作业提交的顺序有关。
3.4.2 短作业优先法SJF
SJF: Shortest-Job-First 所谓长短
是指作业(进程)要求运行时间的多少。
实现思想
当分配CPU时,选择所需处理时间最短的进 程。短进程将越过长进程,跳到队列头。一 个进程一旦分得处理机,便执行下去,直到 该进程完成或阻塞时,才释放处理机。 非抢占式
18
第3章 处理器调度
3.1 3.2 3.3 3.4 3.5 3.6 3.7 调度类型 进程调度 调度准则 调度算法 线程调度 多处理器调度 实时调度
19
3.3 调度的基本准则
不同的调度算法有不同的特性,在选择调度 算法时,必须考虑算法所具有的特性。为了 比较算法的性能,人们提出了很多评价准则, 下面介绍几种主要的准则。 面向系统的准则 单位时间内CPU完成作业的数量。
缺点:
作业调度用的多,进程调度用的少。
36
3.4.3 最短剩余时间优先法SRTF
SRTF:Shortest Remaning Time First 实现思想
抢占式
当新进程进入就绪队列时,如果它需要的 运行时间比当前运行的进程所需的剩余时 间还短,则执行切换,当前运行进程被剥 夺CPU的控制权,调度新进程运行。
提高了内存的利用率和系统吞吐量。
7
3.1.2 调度的层次
低级调度:
又称“进程调度”。根据一定的算法, 将CPU分派给就绪队列中的一个进程,执行 低级调度功能的程序称做进程调度程序。 进程调度是操作系统中最基本的一种 调度。时间上通常是毫秒。因为执行频繁, 要求在实现时达到高效率。
8
图: 具有三级调度队形模型
2
3.1 调度类型
3.1.1 调度的基本概念 3.1.2 调度的层次 3.1.3 三级调度的联系
3
3.1.1 调度的基本概念
处理机调度
对处理机进行分配,就是从就绪队列中,按 照一定的算法(公平、高效)选择一个进程 并将处理机分配给它运行,以实现进程并发 地执行。
处理机调度是多道程序操作系统的基础, 是操作系统设计的核心问题。
第3章 处理机调度
调度(Scheduling)是多道程序操作系统的基础,是操作 系统设计的核心问题。 处理机调度是对处理器进行分配,从就绪队列中,按照 一定的算法选择一个进程并将处理器分配给它运行。
1
第3章 处理器调度
3.1 3.2 3.3 3.4 3.5 3.6 3.7 调度类型 进程调度 调度准则 调度算法 线程调度 多处理器调度 实时调度
33
FCFS算法和SJF算法比较举例
作业调度:
作 1 2 3 4 业 到达时间 8 8.5 9 9.5 运行时间 2 0.5 0.1 0.2
34
FCFS算法和SJF算法比较举例评价
35
SJF的特点
非抢占式 优点:
抢占式:最短剩余时间优先 法
对于一组给定的作业,SJF算法能给出较小的 平均等待时间,提高了系统的吞吐量。 实现上有困难,需要知道或至少需要估计每 个作业/进程所需要的处理时间。 对长作业(进程)不利。 不能保证及时处理紧迫作业(进程)。
2
3 4
4
10 8
1
4 2
假设系统中没有其他作业,现实施SJF调度算法,SJF的 作业调度顺序为作业2、4、1、3,平均周转时间为: T=(4+12+21+31)/4=17,平均带权周转时间为: W=(4/4+12/8+21/9+31/10)/4 = 1.98。 如果对它们施行FCFS调度算法,平均周转时间为:T= (9+13+23+31)/4 =19,平均带权周转时间为:W= (9/9+13/4+23/10+31/8)/4=2.51。
15
3.2.3 进程调度的方式
进程调度方式:
指当一个进程正在处理器上执行时, 若有某个更为重要或紧迫的进程需要处 理,即有优先权更高的进程进入就绪队 列,此时应如何分配处理器。
通常有两种进程调度方式:
非抢占方式 抢占方式
16
3.2.3 进程调度的方式
非抢占方式(Nonpreemptive):
这是对FCFS算法的改进,其目标是减少 平均周转时间。
31
SJF举例1
有一组作业如下表所示(它们同时提交到 系统)。
一组作业列表
作
1 2
业
3 4
运行时间 6 9 8 3
执行顺序 2 4 3 1
32
SJF举例2
另有一组作业如下表所示,它们同时到达系统并立即进入 调度。
一组作业列表
9 作业 1 所需CPU时间 执行顺序 3
27
FCFS举例2
又如图3-2所示,有三个作业,编号分别为1, 2, 3。各作 业分别对应一个进程。各作业依次到达,相差一个时间 单位(即0、1、2),需要运行时间分别为24、3、3。
作业3 作业2 作业1 0 1 2 24 27 30 时间 *表示作业到达的时间,实现表示作业执行过程 * *
先来先服务调度算法示意图
12
第3章 处理器调度
3.1 3.2 3.3 3.4 3.5 3.6 3.7 调度类型 进程调度 调度准则 调度算法 线程调度 多处理器调度 实时调度
13
3.2.1 进程调度的过程
进程调度过程
(1)保存运行进程的现场信息。 (2)在就绪队列中选择一个最有资格运行的进程, 使其占用cpu。 (3)为新选中的进程恢复现场。
24
3.4 典型的调度算法
先来先服务法 短作业优先法 最短剩余时间优先法 高响应比优先法 优先级法 时间片轮转法 多级队列法 多级反馈队列法
有的算法是抢占式的, 有的是非抢占式的。 有的算法适用于作业调 度,有的适用于进程调 度,有的二者都适用。
25
3.4.1 先来先服务法FCFS
响应时间
用户输入一个请求(如击键)到系统 给出首次响应(如屏幕显示)的时间。 在交互式系统中,周转时间不是最好 的评价准则,一般采用响应时间作为 衡量调度算法的重要准则之一。 从用户的角度看,调度策略应尽量降 低响应时间,使响应时间处在 3.2 3.3 3.4 3.5 3.6 3.7 调度类型 进程调度 调度准则 调度算法 线程调度 多处理器调度 实时调度