第三章 处理机调度与死锁教案
第3章 处理机调度与死锁-完整
![第3章 处理机调度与死锁-完整](https://img.taocdn.com/s3/m/c6791d13964bcf84b9d57b45.png)
3.2 调度准则
1、面向用户的准则 (1)周转时间短 周转时间:
Ti Tci Tsi
平均周转时间:
Ti为作业i的周转时间;Tci为作业 i的完成时间;Tsi为作业进入系 统(即进入磁盘后备队列的时间)
1 n T Ti n i 1
n为进入系统的作业个数
Notice:周转时间只考虑了作业等待的时间,没有 考虑作业执行时间的长短! 带权平均周转时间:
(2)处理机利用率好
CPU的有效工作时间 CPU的利用率=
CPU的有效工作时间+CPU的空闲时间
(3)各类资源的平衡利用
3.3 调度算法
1、先来先服务调度算法(FIFO, FCFS) 策略: 作业来到的先后次序进行调度
特点: 每次选择的作业是等待时间最久的,而不管 作业运行时间的长短。这种调度算法突出的 优点是实现简单,但效率较低,在一些实际 的系统和一般应用程序中采用这种算法的较 多。
调度算法
3、最高响应比优先调度算法(HRRF)
先来先服务调度算法只考虑了作业的等待时间而忽 视了作业本身的运行时间,而短作业(短进程)优 先调度算法只考虑了作业的运行时间,而忽视了作 业的等待时间。
系统响应时间 作业等待时间 作业要求运行时间 R 作业要求运行时间 作业要求运行时间
(单位:小时,并以十进制记)
Ti wi Tri
1 W Wi n i 1
n
Wi为作业i的带权周转时间;Tri为作业i的实际执 行时间
调度准则
(2) 响应时间快
常把响应时间的长短用来评价分时系统的性能,这 是选择分时系统中进程调度算法的重要准则之一。 所谓响应时间,是从用户通过键盘提交一个请求开 始,直至系统首次产生响应为止的时间,或者说, 直到屏幕上显示出结果为止的一段时间间隔。
处理机调度与死锁
![处理机调度与死锁](https://img.taocdn.com/s3/m/46ea0bf710a6f524ccbf85ea.png)
第三章 处理机调度与死锁
1) 决定接纳多少个作业
作业调度每次要接纳多少个作业进入内存,取 决于多道程序度(Degree of Multiprogramming),即 允许多少个作业同时在内存中运行。当内存中同时 运行的作业数目太多时,可能会影响到系统的服务 质量,比如,使周转时间太长。但如果在内存中同 时运行作业的数量太少时,又会导致系统的资源利 用率和系统吞吐量太低,因此,多道程序度的确定 应根据系统的规模和运行速度等情况做适当的折衷。
整理课件
第三章 处理机调度与死锁
3.1.2 低级调度 通常也把低级调度(Low Level Scheduling)称
为进程调度或短程调度(ShortTerm Scheduling), 它所调度的对象是进程(或内核级线程)。进程调度是 最基本的一种调度,在多道批处理、分时和实时三种 类型的OS中,都必须配置这级调度。
① “编译”作业步,通过执行编译程序对源程序进
行编译,产生若干个目标程序段;② “连结装配”
作业步,将“编译”作业步所产生的若干个目标程序
段装配成可执行的目标程序;③ “运行”作业步,
将可执行的目标程序读入内存并控制其运行。
(3) 作业流。若干个作业进入系统后,被依次存
放在外存上,这便形成了输入的作业流;在操作系统
整理课件
第三章 处理机调度与死锁
进入状态 后备状态
运行状态
退出状态
数据
数据
…
输Hale Waihona Puke 作源程序入
业
作业说 明书
程
调
序
度
输
输入设备
入
井
作业控制进程
运行
进程 调度
就绪
《处理机调度与死锁》课件
![《处理机调度与死锁》课件](https://img.taocdn.com/s3/m/866ddea6112de2bd960590c69ec3d5bbfd0adaf2.png)
04
死锁的检测与恢复
死锁的检测
资源分配图法
通过构建资源分配图,分析是否存在环路,以判断系统是否发生死锁。
银行家算法
模拟银行家对资源分配的策略,通过检查请求资源是否会导致不安全状态来判断 系统是否发生死锁。
死锁的恢复
资源剥夺法
剥夺已经分配给某个进程的资源,打破 死锁状态,使其中一个进程能够继续执 行。
详细描述
响应时间包括进程从提交到开始执行 的时间以及执行完成的时间。响应时 间的计算公式为:响应时间 = 开始执 行时间 - 提交时间。
周转时间
总结词
周转时间是指从进程到达系统到完成 所经过的时间。
详细描述
周转时间包括进程在等待队列中的等 待时间和在处理机上的执行时间。周 转时间的计算公式为:周转时间 = 完 成时间 - 到达时间。
处理机调度与死锁
目录
• 处理机调度算法 • 死锁 • 处理机调度的性能指标 • 死锁的检测与恢复
01
处理机调度算法
先来先服务(FCFS)
总结词
按照作业到达的先后顺序进行调度,优先处理最先到达的作 业。
详细描述
FCFS算法是一种最简单的调度算法,它不考虑作业的紧迫程 度和所需执行时间,只按照作业到达的顺序进行调度。当一 个作业到达时,系统将其加入到等待队列中,并按照到达顺 序依次处理等待队列中的作业。
避免死锁
通过破坏产生死锁的四个必要条件之一来防止死锁的产生。例如,通过预先分配策略,即 进程在开始执行前就申请所有需要的资源,如果不能获得所有资源则不启动该进程。
避免饥饿
通过设置优先级、时间片轮转等机制,保证所有进程都有机会获得资源,避免某些进程永 久等待。
检测与恢复
第三章 处理机调度与死锁PPT课件
![第三章 处理机调度与死锁PPT课件](https://img.taocdn.com/s3/m/9798d1d727284b73f3425059.png)
3.1 处理机调度的层次 3.2 调度队列模型和调度准则 3.3 调度算法 3.4 实时调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
✓ 当一个进程运行完毕,或由于某种错误而终止运行 ✓ 当一个进程在运行中处于等待状态(等待I/O) ✓ 在进程通信中,执行中的进程执行了某种原语操作
(P操作,阻塞原语,唤醒原语) ✓ 分时系统中时间片到 ✓ 当有一个优先级更高的进程就绪
1) 非抢占方式(Non-preemptive Mode)
2) 抢占方式(Preemptive Mode)
2
3.1 处理机调度的层次
处理机三级调度
1.高级调度――作业调度
在批处理系统中,作业是先驻留在外存的输入井上 的,因此需要有作业调度。然而在分时系统中,通过键 盘输入的命令和数据直接进入内存,无需作业调度。 2.低级调度――进程调度
进程调度决定就绪队列中哪个进程将获得处理机, 然后由分派程序执行把处理机分配给该进程的操作。进 程调度是最基本的调度,任何操作系统都有进程调度。 3.中级调度——对换
作业 调度 后备队列
时间片完 就绪队列
进程调度 进程完成 CPU
事件1出现
等待事件1
事件2出现
等待事件2
… … … …
事件n出现
等待事件 n
具有高、低两级调度的调度队列模型
15
3.同时具有三级调度的调度队列模型
作业调度
时间片完
第三章处理机调度与死锁讲义
![第三章处理机调度与死锁讲义](https://img.taocdn.com/s3/m/0752f17dad51f01dc281f1dc.png)
Page 7
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.1.2 处理机算法的目标
2 批处理系统的目标
(2)系统吞吐量 (3)处理机利用率高
3 分时系统的目标
4 实时系统的目标
(1)响应时间快 (2)均衡性
(1)截止时间的保证 (2)可预测性
(4)缺点
*增加系统开销
Page 18
第三章 处理机调度与死锁 3.2 作业与作业调度 3.2.4 优先级调度算法和高响应比优先调度算法
2 高响应比优先权调度算法(HRRN)
(5)例子
到达t 服务t 开始t 完成t
A
0
4
0
4
B
1
3
4
7
C
2
D
3
E
4
平均
5
9
14
2
7
9
4
14 18
Page 19
T
W
4
Page 12
第三章 处理机调度与死锁 3.2 作业与作业调度 3.2.3 先来先服务和短作业优先算法
作业 到达t 服务t 开始t 结束t T
W
A 0 10 1 11
B 1 100 1 101 100 1
C 2 1 101 102 100 100
D 3 100 102 202 199 1.99
平均周转时间:t=100 带权平均周转时间w=25.9975
Page 16
第三章 处理机调度与死锁 3.2 作业与作业调度 3.2.4 优先级调度算法和高响应比优先调度算法 2 高响应比优先权调度算法(HRRN)
(1)HRRN是介于FCFS和SJP(F)之间的一种折中算法 (2)优先权
第三章 处理器调度与死锁
![第三章 处理器调度与死锁](https://img.taocdn.com/s3/m/f65bf9c03186bceb19e8bbb0.png)
每个进程在执行时都可能出现以下三种情况: (1) 任务在给定的时间片内已经完成,该进程便在释放
处理机后进入完成状态;
(2) 任务在本次分得的时间片内尚未完成, OS 便将该任
务再放入就绪队列的末尾;
(3) 在执行期间,进程因为某事件而被阻塞后,被 OS 放 入阻塞队列。
计算机科学技术学院
第三章
处理机调度与死锁
计算机科学技术学院
第三章
处理机调度与死锁
计算机操作系统电子教案
低级调度的主要功能如下:
(1) 保存处理机的现场信息。在进程调度进行调度时,首 先需要保存当前进程的处理机的现场信息,如程序计数器、多 个通用寄存器中的内容等,将它们送入该进程的进程控制块 (PCB)中的相应单元。 (2) 按某种算法选取进程。低级调度程序按某种算法如优先 数算法、轮转法等,从就绪队列中选取一个进程,把它的状态 改为运行状态,并准备把处理机分配给它。 (3) 把处理器分配给进程。由分派程序(Dispatcher)把处理器 分配给进程。此时需为选中的进程恢复处理机现场,即把选中 进程的进程控制块内有关处理机现场的信息装入处理器相应的 各个寄存器中,把处理器的控制权交给该进程,让它从取出的 断点处开始继续运行。
(3) 作业流。若干个作业进入系统后,被依次存放在外存 上,这便形成了输入的作业流;在操作系统的控制下,逐个 作业进行处理,于是便形成了处理作业流。
计算机科学技术学院
第三章
处理机调度与死锁
计算机操作系统电子教案
2.作业控制块JCB(Job Control Block)
JCB通常应包含的内容有:
•作业标识、用户名称、用户帐户、 •作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、 •作业状态、调度信息(优先级、作业已运行时间)、 •资源需求(预计运行时间、要求内存大小、要求I/O设备的类 型和数量等)、 •进入系统时间、开始处理时间、作业完成时间、作业退出时 间、资源使用情况等
处理机调度与死锁12课件
![处理机调度与死锁12课件](https://img.taocdn.com/s3/m/beb7ee58bfd5b9f3f90f76c66137ee06eef94e54.png)
进程名
A
例:基于时间若片到的达轮时转间调度算法
为0、1、2、
到达时 服务时 开3、始4时,又完如成时 周转时
间
间 何间?
间
间
0
4
0
15 15
带权周 转时间
15/4
B
0
3
1
12 11 11/3
C
0
D
0
5
2
18 16 16/5
2
3
9
6 6/2
E
0
平均
4
4
17 13 13/4
度
S1
至CPU
小
S2
至CPU
就绪队列3
S3
至CPU
低
就绪队列n
Sn
至CPU
大
因等待而放弃CPU
时间片
后,进入阻塞队列,
一旦等待的事件发(时间片:处理S机1<调S度2与<死S锁3)(12)课件
生,则回到原来的 就绪队列
采取按时间片轮 转的方式运行
调度算法性能分析
设有四个作业,其提交时刻、执行时间如下表所示,分别采用
0
1
2 3
服务时 间
4
3
5 2
开始时 间
0
4
7 12
完成时 间
4
7
1带权周 转时间
1
2 2 5.5
E
4
平均
4 14 18 14 3.5 9 2.8
AAAABBBCCCCCDDEEEE
0
5
处理机调度与10死锁(12)课件
15
18
t
例:短作业/短进程优先(SJF/SPF)
计算机操作系统教案_第03章 处理调试与死锁
![计算机操作系统教案_第03章 处理调试与死锁](https://img.taocdn.com/s3/m/b4020f22dd36a32d737581c4.png)
表示为:
W
1 n
n i1
Ti TSi
14
第三章 处理机调度与死锁
(2) 响应时间快:从用户提交申请,到出现第一个 响应之间的时间
(3) 截止时间的保证:实时系统,最晚执行的时间 (4) 优先权准则。(甚至抢占式以完成紧急任务)
15
第三章 处理机调度与死锁
2. (1) 系统吞吐量高。吞吐量:在单位时间内完成的作业数 (2) 处理机利用率好。 (3) 各类资源的平衡利用。
26
第三章 处理机调度与死锁
3. 高响应比优先调度算法
优先权的变化规律可描述为:
优先权
等待时间 要求服务时间 要求服务时间
由于等待时间与服务时间之和,就是系统对该作业的响应 时间,故该优先权又相当于响应比RP。据此,又可表示为:
优先权
等待时间 要求服务时间 要求服务时间
响应时间 要求服务时间
27
24
第三章 处理机调度与死锁
(1) 进程类型。 (2) 进程对资源的需求。 (3) 用户要求。
25
第三章 处理机调度与死锁
2)
动态优先权是指,在创建进程时所赋予的优先权,是可 以随进程的推进或随其等待时间的增加而改变的,以便获得 更好的调度性能。例如,我们可以规定,在就绪队列中的进 程,随其等待时间的增长,其优先权以速率a提高。若所有的 进程都具有相同的优先权初值,则显然是最先进入就绪队列 的进程,将因其动态优先权变得最高而优先获得处理机,此 即FCFS算法。若所有的就绪进程具有各不相同的优先权初值, 那么,对于优先权初值低的进程,在等待了足够的时间后, 其优先权便可能升为最高,从而可以获得处理机。当采用抢 占式优先权调度算法时,如果再规定当前进程的优先权以速 率b下降,则可防止一个长作业长期地垄断处理机。
操作系统第3章
![操作系统第3章](https://img.taocdn.com/s3/m/660fe1be52d380eb63946d17.png)
3.1 处理机调度的基本概念
3. 中级调度
挂起和激活,存储器管理中的对换功能。
主要目的: 为了提高内存的利用率和系统的吞吐量。
三种调度相比较:
● 高级调度的相关概念
作业:用户一次请求计算机系统为其完成任务所做工作 的总和。它通常包括程序、数据和作业说明书,系统根 据说明书对程序进行控制。 作业步:指每个作业在运行期间,都必须经过若干个相 对独立,又相互关联的顺序加工步骤,其中的每一个加 工步骤称为作业步。一个典型的作业可分成三个作业 步:① “编译”作业步,② “连结装配”作业步,③ “运行”作业步 作业状态:作业状态分为后备、运行和完成三种状态。 作业控制块(Job Control Block,JCB)
调度方式
3.1.3 选择调度方式和调度算法的若干准则 2. 面向系统的准则吞吐量:单位时间内系统所
完成的作业数
(1)系统吞吐量高
调度方式和算法对处理机的
(2)处理机利用率好 利用率起着十分重要的作用
(3)各类资源的均衡利 用
对于单用户微机或某些实 时系统,该准则并不重要
3.2 调度算法
3.2.1 先来先服务调度算法
进程插入到就决定: ●接纳多少个作业——取决于多道程序度 ●接纳哪些作业——取决于调度算法
▲内存中同时运行的 作业数目太多,会影 响系统的服务质量。 如,周转时间长。
▲内存中同时运行的 作业数目太少,会导 致系统资源利用率和 系统吞吐量低。
3.1.1 高级、中级和低级调度
算,而很少请求I/O。如,科学计算
第3章 处理机调度与死锁2
![第3章 处理机调度与死锁2](https://img.taocdn.com/s3/m/f11dea3d0912a21614792979.png)
第9 次课教案3.5 产生死锁的原因和必要条件假设系统中有P 1、P 2两个并发执行的进程,P 1和P 2在执行中同时需要R 1和R 2两类资源,其中R 1是输入机,R 2是打印机,P 1和P 2的执行过程如下:死锁是指系统中并发执行的进程彼此互相等待对方已经拥有的资源,这些并发执行的进程在得到对方的资源之前又不释放自己拥有的资源,从而使得所有的进程都陷入阻塞的状态,而不能再向前推进的一种僵局的状态。
一、死锁的形成原因 ⒈ 资源分配图资源分配图是由一组结点和一组边E 所组成的点对集合,即G=(N ,E),具有下述定义和限制: ⑴N 是两个互斥的子集,一组是进程结点P={P 1,P 2,P 3,……},一组是资源结点R={R 1,R 2,R 3,……},N=P ∪R 。
⑵E 中的每条边连接P 中的一个结点和R 中的一个结点。
如果E 中的一条边e={P i,R j },表示进程P i 请求资源R j ;如果E 中的一条边e={R j ,Pi},表示资源R j 已经分配给了进程P i 。
资源分配图⒉ 形成原因 ⑴竞争资源P 1 () {…… 申请R 1; …… 申请R 2;使用R 1和R 2; 释放R 1和R 2;}P 2 () {…… 申请R 2; …… 申请R 1;使用R 1和R 2; 释放R 1和R 2;}系统中并发执行的进程共享着系统中的资源,系统中的资源数不足以满足所有进程的最大需求,所以进程间将会竞争资源,从而才有可能出现进程间相互等待对方资源的情况。
⑵进程推进顺序不当●进程推进顺序合理P1进程推进顺序对死锁的影响二、产生死锁的必要条件⒈互斥条件⒉不可剥夺条件⒊请求与保持条件⒋环路等待条件环路等待条件是死锁产生的必要条件而不是充分条件,即进程和资源之间形成环路却不一定会产生死锁。
三、处理死锁的基本方法⒈预防死锁⒉避免死锁⒊检测死锁⒋解除死锁3.6 死锁的预防和避免一、死锁的预防死锁的预防是解决死锁的一种静态策略,破环死锁的4个必要条件,从而达到防止死锁的目的。
第3章 处理机调度与死锁2
![第3章 处理机调度与死锁2](https://img.taocdn.com/s3/m/c9684e0bba1aa8114431d9c0.png)
15
摒弃“互斥”条件?
互斥是设备本身固有的属性,此条件不能 破坏。
16
摒弃“请求和保持条件”
要求进程一次申请它所需的全部资源,若有 足够的资源则分配给进程,否则不分配资源, 进程等待。这种方法称为静态资源分配法。 特点:简单、安全且易于实现;但资源利用 率低,进程延迟运行。
17
摒弃“不剥夺”条件
31处理机调度的层次32调度队列模型和调度准则33调度算法34实时调度35产生死锁的原因和必要条件36预防死锁的方法37死锁的检测与解除计算机系统中多道程序的并发执行可以改善系统的资源利用率但也可能导致死锁的发生
第3章
处理机调度与死锁
3.1 处理机调度的层次 3.2 调度队列模型和调度准则 3.3 调度算法 3.4 实时调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
并不可能发生死锁,但若改成下述的运行顺序:
P1: „Request(S3); Release(S1); „ P2: „Request(S1); Release(S2); „ P3: „Request(S2); Release(S3); „
则可能发生死锁。
8
死锁举例3—推进顺序不当
当进程P1、P2共享资源A、B时,若推进顺序合法 则不会产生死锁,否则会产生死锁。
P3
9
2
7
这时可用资源能满足P2的需要,P2获得运行需要 的所有资源并能顺利运行结束。
26
安全状态例(续)
P2运行结束的系统资源状态
进程 P1 P2 P3 最大需求 10 4 9 已分配 5 2 2 需要 5 2 7 可用 5
第三章处理机调度和死锁(第101112讲)PPT课件
![第三章处理机调度和死锁(第101112讲)PPT课件](https://img.taocdn.com/s3/m/d78cf2d9f242336c1fb95e4a.png)
18.08.2020
阜阳师范学院计算机与信息学院
10
运行
就绪
调
度
阻塞
的
ቤተ መጻሕፍቲ ባይዱ
进程调度
层
次
挂起阻塞
创建
挂起就绪
中级调度
作业调度
退出
3.1.2 调度队列模型
1. 仅有进程调度的调度队列模型 2. 具有高级和低级调度的调度队列模型 3. 同时具有三级调度的调度队列模型
第3章 处理机调度与死锁
3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 产生死锁的原因和必要条件 3.5 预防死锁的方法 3.6 死锁的检测与解除
18.08.2020
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
3.1 处理机调度的基本概念
3.1.1 高级调度、中级调度、低级调度 3.1.2 调度队列模型 3.1.3 选择调度方式和调度算法的若干准则
18.08.2020
阜阳师范学院计算机与信息学院
3
18.08.2020
阜阳师范学院计算机与信息学院
4
3.1.1 高级、中级和低级调度
经历下述三级调度:
批处理系统 : 需要作业调度 分时系统 : 不需作业调度 实时系统 : 不需作业调度
18.08.2020
阜阳师范学院计算机与信息学院
6
1. 高级调度
执行作业调度时,必须作出两个决定: 接纳多少作业——每次接纳多少作业进
第3章处理机调度与死锁
![第3章处理机调度与死锁](https://img.taocdn.com/s3/m/4da91bde551810a6f52486de.png)
响应时间:指从用户通过键盘提交一个请求开始,到系统首次 产生响应为止的时间间隔
包括:键盘请求送入处理机时间;处理机处理请求时间;形成 响应送回终端时间
截止时间有保证 :评价实时系统性能的准则
截至时间:某任务必须开始执行的最迟时间,或必须完成的最 迟时间。
10
调度队列模型
3. 同时具有三级调度的调度队列模型
OS引入中级调度,可把进程的就绪状态分为 内存就绪和外存就绪,阻塞状态分成内存阻塞和 外存阻塞。
① 调出操作:使进程状态由内存就绪转变为外存就绪,由 内存阻塞转变为外存阻塞。
② 中级调度:使外存就绪转变为内存就绪。
2019/11/12
11
调度队列模型
用户 可把平均周转时间描述为:T
1 n
n
Ti i1
作业的周转时间T与系统为它提供服务的时间TS之比,即
W=T/TS,称为带权周转时间,而平均带权周转时间则可表
示为:
W
1 n
n i1
Ti TSi
2019/11/12
13
3调度基本准则
面向用户的原则
② 设置多个阻塞队列。
2019/11/12
9
调度队列模型
2. 具有高级和低级调度的调度队列模型
外存
作业 调度
后 备队 列
内存
时间片完 就绪 队 列
进程调度
进程完成
CPU
事件1出现
等待事件1
事件2出现
等待事件2
… … … …
事件n出现
等待事件n
图 3-2 具有高、低两级调度的调度队列模型 2019/11/12
处理机调度与死锁(师范学校教授的课件)
![处理机调度与死锁(师范学校教授的课件)](https://img.taocdn.com/s3/m/7a51e8557e21af45b307a851.png)
FCFS和的SJF比较
进程名
A B C D E 平均
到达时间
0
1
2
3
4
服务时间
4
3
5
2
4
完成时间
4 7 12 14 18
FCFS 周转时间
4 6 10 11 14
9
带权周转时间 1
2 2 5.5 3.5 2.8
完成时间
4 9 18 6 13
SJF 周转时间
4 8 16 3 9
8
带权周转时间 1 2.67 3.2 1.5 2.25
一、调度的层次
2、低级调度(短程/CPU/进程/微观调度) 进程调度任务 ①保存处理机的现场信息:在进行调度时首先需 要保存当前进程的处理机的现场信息,如程序计 数器、多个通用寄存器中的内容等。 ②按某种算法选取进程:调度程序按某种算法, 从就绪队列中选取一个进程,将其状态改为运行 状态,并准备把处理机分配给它。 ③把处理器分配给进程:由分派程序把处理器分 配给该进程。此时需要将选中进程的进程控制块 内有关处理机现场的信息,装入处理器相应的各 个寄存器中,把处理器的控制权交予该进程,让 它从上次的断点处恢复运行。
返回
三、选择调度方式和算法的若干准则
响应时间快(对交互性作业) 概念:键盘提交请求到首次响应时 间 时间组成 (1)输入传送时间 (2)处理时间 (3)响应传送时间
截止时间的保证(特别用于实时系统) 优先权准则(即需要抢占调度)
返回
3.3 调度算法
根据系统的资源分配策略所规定的资源分配算法 一、先来先服务调度算法 二、短作业/进程优先调度算法 三、时间片轮转调度算法 四、优先权调度算法 五、高响应比优先调度算法 六、多级反馈队列调度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章处理机调度与死锁本章主要讲述操作系统中的调度以及死锁的概念,具体包括处理机调度的概念、进程调度算法、实时调度、多处理机调度以及死锁的概念和处理方法等内容。
3.1 处理机调度的层次3.1.1 高级调度(High Scheduling)1.作业和作业步2.作业控制块JCB3.作业调度在每次执行作业调度时,都须做出以下两个决定。
1) 接纳多少个作业2) 接纳哪些作业3.1.2. 低级调度(Low Level Scheduling)1. 低级调度的功能⑴保存处理机的现场信息。
⑵按某种算法选取进程。
⑶把处理器分配给进程。
2. 进程调度中的三个基本机制⑴排队器。
⑵分派器(分派程序)。
⑶上下文切换机制。
3. 进程调度方式1) 非抢占方式(Non-preemptive Mode)在采用非抢占调度方式时,可能引起进程调度的因素可归结为这样几个:①正在执行的进程执行完毕,或因发生某事件而不能再继续执行;②执行中的进程因提出I/O请求而暂停执行;③在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block 原语、Wakeup原语等。
这种调度方式的优点是实现简单、系统开销小,适用于大多数的批处理系统环境。
但它难以满足紧急任务的要求——立即执行,因而可能造成难以预料的后果。
显然,在要求比较严格的实时系统中,不宜采用这种调度方式。
2) 抢占方式(Preemptive Mode)抢占的原则有:(1)优先权原则。
(2) 短作业(进程)优先原则。
(3) 时间片原则。
3.1.3. 中级调度(Intermediate-Level Scheduling)中级调度又称中程调度(Medium-Term Scheduling)。
引入中级调度的主要目的,是为了提高内存利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪进程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。
3.2 调度队列模型和调度准则3.2.1 调度队列模型1. 仅有进程调度的调度队列模型图 3 - 1 仅具有进程调度的调度队列模型2. 具有高级和低级调度的调度队列模型图 3-2 具有高、低两级调度的调度队列模型图 3-2 示出了具有高、低两级调度的调度队列模型。
该模型与上一模型的主要区别在于如下两个方面。
(1) 就绪队列的形式。
(2) 设置多个阻塞队列。
3. 同时具有三级调度的调度队列模型图 3-3 具有三级调度时的调度队列模型成时间片完作业时间片完3.2.2 选择调度方式和调度算法的若干准则1. 面向用户的准则(1) 周转时间短。
可把平均周转时间描述为:作业的周转时间T 与系统为它提供服务的时间TS 之比,即W=T/TS ,称为带权周转时间,而平均带权周转时间则可表示为:⎥⎦⎤⎢⎣⎡=∑=n i Si i T T n W 11(2) 响应时间快。
(3) 截止时间的保证。
(4) 优先权准则。
2. 面向系统的准则 (1) 系统吞吐量高。
(2) 处理机利用率好。
(3) 各类资源的平衡利用。
3.3 调 度 算 法3.3.1 先来先服务和短作业(进程)优先调度算法1. 先来先服务调度算法图 3-4 FCFS 和SJF 调度算法的性能⎥⎦⎤⎢⎣⎡=∑=i i i T n T 112. 短作业(进程)优先调度算法短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。
它们可以分别用于作业调度和进程调度。
短作业优先(SJF)的调度算法,是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。
而短进程优先(SPF)调度算法,则是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。
SJ(P)F调度算法也存在不容忽视的缺点:(1) 该算法对长作业不利,如作业C的周转时间由10增至16,其带权周转时间由2增至3.1。
更严重的是,如果有一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度。
(2) 该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。
(3) 由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。
3.3.2 高优先权优先调度算法1. 优先权调度算法的类型1)非抢占式优先权算法在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。
这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。
2) 抢占式优先权调度算法在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。
但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。
因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i时,就将其优先权Pi与正在执行的进程j的优先权Pj进行比较。
如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj, 则立即停止Pj的执行,做进程切换,使i进程投入执行。
显然,这种抢占式的优先权调度算法,能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
2. 优先权的类型1) 静态优先权静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。
一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7或0~255中的某一整数,又把该整数称为优先数。
只是具体用法各异:有的系统用“0”表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反。
确定进程优先权的依据有如下三个方面:(1)进程类型。
(2) 进程对资源的需求。
(3) 用户要求。
2) 动态优先权动态优先权是指,在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。
例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高。
若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程,将因其动态优先权变得最高而优先获得处理机,此即FCFS 算法。
若所有的就绪进程具有各不相同的优先权初值,那么,对于优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机。
当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率b 下降,则可防止一个长作业长期地垄断处理机。
3. 高响应比优先调度算法 优先权的变化规律可描述为:由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比R P 。
据此,又可表示为:(1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。
(2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。
(3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高, 从而也可获得处理机。
3.3.3 基于时间片的轮转调度算法1. 时间片轮转法在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。
时间片的大小从几ms 到几百ms 。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。
2. 多级反馈队列调度算法(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。
第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。
该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。
例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i +1个队列的时间片要比第i 个队列的时间片长一倍。
图 3-5 是多级反馈队列算法的示意。
要求服务时间要求服务时间等待时间优先权+=要求服务时间响应时间要求服务时间要求服务时间等待时间优先权=+=图 3-5 多级反馈队列调度算法(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS 原则排队等待调度。
当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS 原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n 队列后,在第n 队列中便采取按时间片轮转的方式运行。
(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行; 仅当第1~(i-1) 队列均空时,才会调度第i 队列中的进程运行。
如果处理机正在第i 队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i 队列的末尾,把处理机分配给新到的高优先权进程。
3. 多级反馈队列调度算法的性能 (1) 终端型作业用户。
(2) 短批处理作业用户。
(3) 长批处理作业用户。
3.4 实 时 调 度3.4.1 实现实时调度的基本条件1. 提供必要的信息 (1) 就绪时间。
(2) 开始截止时间和完成截止时间。
(3) 处理时间。
(4) 资源要求。
(5) 优先级。
2. 系统处理能力强在实时系统中,通常都有着多个实时任务。
若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理, 从而导致发生难以预料的后果。
假定系统中有m 个周期性的硬实时任务,它们的处理时间可表示为Ci ,周期时间表示为Pi ,则在单处理机情况下,必须满足下面的限制条件:∑=≤mi iiP C 11就绪队列1就绪队列2就绪队列3就绪队列n 1S 2S 3至CP U至CP U至CP U至CP U(时间片:S 1<S 2<S 3)系统才是可调度的。