2013-2014A_20131018_第三章 处理机调度与死锁

合集下载

操作系统第三章处理机调度与死锁

操作系统第三章处理机调度与死锁

Event
Event Queue
32
Exit
Start
Ready Queue Time Slice CPU
Event
Event Queue
33
Exit
Start
Ready Queue Time Slice CPU
Event
Event Queue
34
3.2.2 短作业优先
(SJF, Shortest Job First)
2
主要内容


处理机调度的基本概念
调度算法


实时调度
多处理机系统中的调度


产生死锁的原因和必要条件
预防死锁的方法

死锁的检测与解除
3
3.1

处理机调度的基本概念
3.1.1 高级、中级和低级调度
处理机( CPU )在进程之间的动态分配和切换,
涉及到三种类型(或者说三个层次)的调度,
即高级调度(也叫作业调度、长程调度)、中
执行 时间 1 100 1 100
开始执 行时间 0 1 101 102
完成时 周转时 带权周 间 间 转时间 1 101 102 202 1 100 100 199 1 1 100 1.9919
CPU Scheduler Example

Process 1 burst computes for 14 time units Process 2 burst computes for 8 time units Process 3 burst computes for 8 time units
Hale Waihona Puke I/OChild Terminates

第3章处理机调度与死锁1资料

第3章处理机调度与死锁1资料

作业调度,需要解决两个问题:
1) 决定接纳多少个作业
作业调度每次要接纳多少个作业进入内存,取决于多道程序度。 2) 决定接纳哪些作业
应将哪些作业从外存调入内存,这将取决于所采用的调度 算法。 • 先来先服务调度算法; • 短作业优先调度算法; • 基于作业优先级的调度算法
第三章 处理机调度与死锁
第三章 处理机调度与死锁
(3)作业调度

根据作业控制块中的信息,审查系统能否满足用户作
业的资源需求,
• 按照一定的算法,从外存的后备队列中选取某些作业调入 内存,
• 为作业创建进程、分配必要的资源。
• 然后再将新创建的进程插入就绪队列,准备执行。
➢ 作业调度的运行频率较低,通常为几分钟一次。
➢ 作业的平均周转时间尽可能少,有利于提高CPU 的利用 率和系统的吞吐量
作业调度往往是发生在一个(批)作业运行完毕,退出系统, 而需要重新调入一个(批)作业进入内存时,故作业调度的周 期较长,大约几分钟一次,因此把它称为长程调度。由于其 运行频率较低,故允许作业调度算法花费较多的时间。
中级调度的运行频率基本上介于上述两种调度之间,因此 把它称为中程调度。
第三章 处理机调度与死锁
2、 低级调度(进程调度) 它所调度的对象是进程(或内核级线程)。进程调度是最
基本的一种调度,在多道批处理、分时和实时三种类型的OS 中,都必须配置这级调度。 (1)低级调度的功能
低级调度用于决定就绪队列中的哪个进程(或内核级线程, 为叙述方便,以后只写进程)应获得处理机,然后再由分派程 序执行把处理机分配给该进程的具体操作。
这种调度方式的优点是实现简单,系统开销小,适用于大 多数的批处理系统环境。但它难以满足紧急任务的要求——立 即执行,因而可能造成难以预料的后果。显然,在要求比较严 格的实时系统中,不宜采用这种调度方式。

第3章 处理机调度与死锁(part4)

第3章 处理机调度与死锁(part4)

第三章 处理机调度与死锁
进入不安全状态后,便可能进入死锁状态;反之,只要处于 1. 安全状态 安全状态就不会死锁。
在避免死锁的方法中,允许进程动态地申请资源,但系统在进行资 避免死锁的实质是:系统在进行资源分配时,设法使系统不 源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系 统进入不安全状态,则将资源分配给进程; 否则,令进程等待。 进入不安全状态。
P1 S3 S1
P3 S2
P2
图 3-13 进程之间通信时的死锁
3.5.1 产生死锁的原因
1. 竞争资源引起进程死锁 2. 进程推进顺序不当引起死锁
第三章 处理机调度与死锁

由于进程在运行中具有异步性特征,这就可 能使上述P1和P2两个进程按下述两种顺序向 前推进。

进程推进顺序合法 进程推进顺序非法
第三章 处理机调度与死锁 3.5.1 产生死锁的原因 1. 竞争资源引起进程死锁

竞争非剥夺性资源引起死锁

竞争临时性资源引起死锁
打印机之类的资源属于可顺序重复使用型资源,称为永久性资源。与之 相对的是临时性资源,是指由一个进程产生,被另一进程使用一短暂时间 后便无用的资源,也称为消耗性资源,它也可能引起死锁。
12
第三章 处理机调度与死锁
3.5.3 处理死锁的基本方法
1.预防死锁 这是一种较简单和直观的事先预防方法。该方法是通过设置某 些限制条件,去破坏产生死锁的四个必要条件的一个或几个, 来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛 使用。但由于所施加的限制条件往往太严格。可能会导致系统 资源利用率和系统吞吐量降低。
便进入不安全状态。 因为,此时也无法再找到一个安全序
列, 例如,把其余的2台分配给P2,这样,在P2完成后只能 释放出4台,既不能满足P1 尚需5台的要求,也不能满足P3 尚需6台的要求,致使它们都无法推进到完成,彼此都在等 待对方释放资源,即陷入僵局,结果导致死锁。

第三章 处理机调度与死锁

第三章 处理机调度与死锁

2
操 作 系 统
处理机调度可以分为4 处理机调度可以分为4级: 1)作业调度(高级调度): 作业调度(高级调度) 按一定原则选择若干个后备作业调入主存,分配资源, 按一定原则选择若干个后备作业调入主存,分配资源, 若干个后备作业调入主存 并建立相应的进程,投入运行.当该作业执行完毕时, 并建立相应的进程,投入运行.当该作业执行完毕时,还负 责回收资源. 责回收资源. 交换调度(中级调度) 均衡调度) 2)交换调度(中级调度)(均衡调度):
三,作业控制块
作业控制块JCB是作业存在的标志, 作业控制块JCB是作业存在的标志,记录与该作业有 JCB是作业存在的标志 关的信息. 关的信息.
操 作 系 统
作业控制块
作业名 估计执行时间 最迟完成时间 要求的主存量 要求外设的类型及台数 要求文件量和输出量 进入系统时间 开始执行时间 已执行时间 主存地址 联机和脱机 外设台号 控制方式 作业类型
第 三 章
影响整个系统的性能. 影响整个系统的性能. 处理机调度需要解决三个问题: 处理机调度需要解决三个问题: 处理机分配的策略,即需要确定处理机的调度算法; (1) 处理机分配的策略,即需要确定处理机的调度算法; 什么时候分配处理机,即需要确定处理机的调度时机; (2) 什么时候分配处理机,即需要确定处理机的调度时机; 如何分配处理机,即需要给出处理机的调度过程. (3) 如何分配处理机,即需要给出处理机的调度过程.
操 作 系 统
五,作业调度算法
1.先来先服务调度算法(FCFS) 1.先来先服务调度算法(FCFS) 先来先服务调度算法
第 三 章 处 理 机 调 度 与 死 锁
按照给定的原则实现进程在主存和外存交换区之间的换 按照给定的原则实现进程在主存和外存交换区之间的换 进程在主存和外存交换区之间的 进换出,以解决内存紧张问题, 进换出,以解决内存紧张问题,特别是具有虚拟存储器的系 统中. 统中. 3)进程调度(低级调度): 进程调度(低级调度) 按照某种策略从进程就绪队列中选择一个就绪进程, 按照某种策略从进程就绪队列中选择 一个就绪进程, 一个就绪进程 使其占有处理机运行. 使其占有处理机运行. 占有处理机运行 4)线程调度

第3章 处理机调度与死锁2

第3章 处理机调度与死锁2

河南大学操作系统计算机学院第3章处理机调度与死锁|大纲1 3.5死锁概述2 3.6预防死锁3 3.7避免死锁4 3.8死锁的检测和解除5哲学家进餐问题的改进解法6本章作业第3章处理机调度与死锁|3.5死锁概述1 3.5死锁概述2 3.6预防死锁3 3.7避免死锁4 3.8死锁的检测和解除5哲学家进餐问题的改进解法6本章作业死锁概述死锁:Deadlock各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。

从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。

死锁与饥饿饥饿(Starvation)指一个进程一直得不到资源。

死锁和饥饿都是由于进程竞争资源而引起的。

饥饿一般不占有资源,死锁进程一定占有资源。

1可重用资源和消耗性资源可重用资源(永久性资源)可被多个进程多次使用,如所有硬件。

只能分配给一个进程使用,不允许多个进程共享。

进程在对可重用资源的使用时,须按照请求资源、使用资源、释放资源这样的顺序。

系统中每一类可重用资源中的单元数目是相对固定的,进程在运行期间,既不能创建,也不能删除。

消耗性资源(临时性资源)是在进程运行期间,由进程动态的创建和消耗的。

消耗性资源在进程运行期间是可以不断变化的,有时可能为0;进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目。

进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己消耗,不再将它们返回给该资源类中。

可消耗资源通常是由生产者进程创建,由消费者进程消耗。

最典型的可消耗资源是用于进程间通信的消息。

2可抢占资源和不可抢占资源可抢占资源可抢占资源指某进程在获得这类资源后,该资源可以再被其他进程或系统抢占。

对于这类资源是不会引起死锁的。

CPU和内存均属于可抢占性资源。

不可抢占资源一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放。

第三章 处理机调度与死锁

第三章 处理机调度与死锁

(2) 进程对资源的需求。对资源需求少的进程应赋予较
高优先权。
(3) 用户要求。
第三章 处理机调度与死锁
2) 动态优先权
•在创建进程时所赋予的优先权,可以随进程的推进或随其等
待时间的增加而改变,以便获得更好的调度性能。 •在就绪队列中的进程,随其等待时间的增长,其优先权以速 率a提高。 •当采用抢占式优先权调度算法时,如果再规定当前进程的优 先权以速率b下降,则可防止一个长作业长期地垄断处理机。
第三章 处理机调度与死锁
第三章 处理机调度与死锁
第三章 处理机调度与死锁
• 为提高处理机利用率、改善系统性能 (吞吐量、周转时间和响应时间)需对 处理机进行合理分配调度 • 处理机调度的目的:分配处理机
第三章 处理机调度与死锁
3.1 处理机调度的层次
– 高级、中级和低级调度 – 每一级调度,采用不同的调度方式和调 度算法
试给出在下面两种调度算法下,作业的执行顺序、平均周 转时间和带权周转时间。
(1)先来先服务FCFS调度算法;
(2)短作业优先SJF调度算法。
第三章 处理机调度与死锁
(1)采用FCFS调度算法时,作业的执行顺序是作业1、作
业2、作业3。由此可得到运行表见下。
平均周转时间为: T=(∑Ti)/3=[2+2.83+2.83]/3=2.55h 带权平均周转时间: W=[∑(Ti/Tir)]/3=(2/2+2.83/1+2.83/0.25)/3=5.05h
1 n 可把平均周转时间描述为: T Ti n i 1
第三章 处理机调度与死锁
作业的周转时间T与系统为它提供服务的时间TS 之比,即
W=T/TS,称为带权周转时间,而平均带权周转时间则可表 示为:

第3章 处理机调度与死锁

第3章 处理机调度与死锁

4
图 3-7 EDF算法用于非抢占调度方式
第三章 处理机调度与死锁
2. 最低松弛度优先算法
(LLF---- Least Laxity First)
松弛度=必须完成时间-本身运行时间-当前时间
A1 A2 A3 A4 A5 A6 A7 A8 t
0
20
40 B1
60
80
100 B2
120
140 B3
160
第三章 处理机调度与死锁
就绪队列1
S2 就绪队列2 S3
至CPU
至CPU 至CPU
就绪队列3
Sn 就绪队列n 时间片:S1<S2<S3
至CPU
性能:能满足终端型作业用户、短批作业用户、长批作业用户
第三章 处理机调度与死锁
举例:
计算:分别采用FCFS、SPF、高优先级优先、时间片轮转 (时间片为1)调度算法调度时,这批作业的平均周转时间 和平均带权周转时间?
第三章 处理机调度与死锁
3.1.3 选择调度方式和调度算法的若干准则
调度算法的若干准则: 1. 面向用户的准则 2. 面向系统的准则
第三章 处理机调度与死锁
1. 面向用户的准则
周转时间短:(批处理系统) 作业的周转时间T=提交--完成=后备+就绪+运行+阻塞
(切换时间忽略----为进程周转时间)


等待事 件 n
第三章 处理机调度与死锁
具有高、低两级调度的调度队列模型与上一模型的主要区别: (1) 就绪队列的形式。
批处理系统,最高优先权调度算法: 优先权队列:每创建进程,即按优先权高低排放,每次取队首 执行,最常用; 无序链表方式:每创建进程放队尾,调度时依次比较优先级而 找到最高者执行,效率较低。

第三章 - 处理机调度与死锁

第三章 - 处理机调度与死锁

3.1.5 调度方式和算法的选择准则
1.面向用户的准则和评价 1.面向用户的准则和评价

周转时间短: 周转时间短 它是评价批处理系统的重要性能指标。作业周转时间Ti是指从作业提 交给系统开始,到作业完成为止的这段时间间隔。
n
∑ Ti] /n n 平均带权周转时间 W = [∑ Ti / Tsi] /n
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操 作)的缩写,它是关于慢速输入/输出设备如 何与计算机主机交换信息的一种技术,通常称 为“假脱机技术”。又称为排队转储技术。
图3-1 处理机三级调度图
作业调度 内存 作业 提交 状态 作业 收容 状态 外存 中级调度 外存交换区
3.1.5 调度方式和算法的选择准则
2.面向系统的准则 2.面向系统的准则

达到系统设计目标
系统的设计目标是选择算法的主要依据。例如批处理系统所追求的是 充分发挥和提高计算机的效率,分时系统则侧重于保护用户的请求及时给予 响应,实时系统所关心的是不要丢失实时信息并给予处理。

系统吞吐量大
这是用来评价批处理系统的重要指标。系统吞吐量是单位时间内完成 的作业数,它与批处理作业的平均长度具有密切关系。
第三章 处理机调度与死锁
3.1 处理机调度的基本概念 3.1.1 处理机三级调度 3.1.2 高级调度--作业调度 3.1.3 处理机调度模型 3.1.4 进程调度 3.1.5 调度方式和算法的选择准则 3.2 作业/进程调度算法 3.3 实时调度 3.4 多处理机系统中的调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法和死锁避免 3.7 死锁的检测和解除

第3章处理机调度与死锁part

第3章处理机调度与死锁part

22
第三章 处理机调度与死锁
【例】有5个任务A,B,C,D,E,它们几乎同时到达,预 计它们的运行时间为10,6,2,4,8min。其优先级分别为3,5, 2,1和4,这里5为最高优先级。对于下列每一种调度算法,计 算其平均进程周转时间(进程切换开销可不考虑)。 (1)先来先服务(按A,B,C,D,E)算法。
调度算法比较
短作业优先 高响应比优先 时间片轮转 多级反馈队列
否 能
能 能
能 能
能 否
队列内不一定 队列内不一定
兼顾长短作业, 有较好的响应时 间,利于终端型 作业和短批处理 作业
优点
公平,实 现简单, 利于CPU 繁忙型
不利于短作 业,不利用 I/O繁忙型
平均等待时 间最少,效 率最高
兼顾长短作 业

批处理系统中即设有作业调度,又设有进程调度。批处理系
统中的作业调度算法有先来先服务(FCFS)、短作业优先 (SJF)、优先级调度(HPF)和高响应比优先(RF)。批 处理系统的进程调度算法有:先进先出(FIFO)、短进程优 先(SPF)、优先级调度(PRI)和高响应比优先(RF)。

分时系统中只设有进程调度,不设作业调度。其进程调度算
0
0 0
2
4 8
16
18 22
18
22 30
18
22 30
5个进程的平均周转时间T为: T=(10+16+18+22+30)/5=19.2min
24


等待事件 n
10
第三章 处理机调度与死锁
3. 同时具有三级调度的调度队列模型
作业调度 后备队列 批量作业 交互型作业 中级调度 时间片完 就绪队列 进程调度 进程完成

第3章 处理机调度与死锁

第3章 处理机调度与死锁

适当的调度算法,能保持系统中各类资源都处于忙
碌状态。如CPU繁忙的作业和I/O繁忙的作业搭配
4. 策略强制执行 譬如安全策略,必须准确执行
7
2. 批处理系统的目标
1、周转时间短

作业从提交给系统到作业完成所经历的时间

(作业周转时间= 等待时间+运行时间

=作业完成时刻 - 作业提交时刻

[批处理系统]
处 理
算法的原理(图3-4)
机 调 度 与 死
• 设置多个就绪队列,并为各个队列赋予不同的优先级。
第一个队列最高,第二队列次之,其余优先权逐个降低。
• 各队列中执行时间片的大小各不相同,优先权愈高的
队列,每个进程的执行时间片就愈小。

• 新进程进入第一队列的末尾,按FCFS调度,未完成放
入下一队列
死 缺点:

① 对长作业(进程)不利
② 没有考虑紧迫程度
③ 运行时间难以估计
13
3.2.4 优先权优先调度算法
(priority-scheduling algorithm,PSA)

理 机
为照顾紧迫型作业,使之在进入系统后便获得
调 度
优先处理

死 锁
1. 优先权的类型
2. 高响应比优先调度算法
事先预知的一串时间序列,而非周期任务也可能是预

知的
调 开始截止时间和完成截止时间


处理时间:任务从开始执行直至完成所需的时间
死 锁
资源要求:任务执行时所需的一组资源
优先级: 赋予“绝对”优先级/“相对”优先级
27
条件2. 系统处理能力强

操作系统-第03章-处理机调度与死锁

操作系统-第03章-处理机调度与死锁

第三章处理机调度与死锁3.1 处理机调度的层次和调度算法的目标3.2 作业与作业调度3.3 进程调度3.4 实时调度3.5 死锁概述3.6 预防死锁3.7 避免死锁3.8 死锁的检测与解除习题1 3.1 处理机调度的层次和调度算法的目标在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。

处理机调度算法是指根据处理机分配策略所规定的处理机分配算法。

在多道批处理系统中,一个作业从提交到获得处理机执行,直至作业运行完毕,可能需要经历多级处理机调度,下面先来了解处理机调度的层次。

23.1.1 处理机调度的层次1. 高级调度(High Level Scheduling)2. 低级调度(Low Level Scheduling)3. 中级调度(Intermediate Scheduling)343.1.2 处理机调度算法的目标1. 处理机调度算法的共同目标(1) 资源利用率。

为提高系统的资源利用率,应使系统中的处理机和其它所有资源都尽可能地保持忙碌状态,其中最重要的处理机利用率可用以下方法计算:CPU 的利用率 = 空闲等待时间有效工作时间有效工作时间CPU CPU CPU(2) 公平性。

公平性是指应使诸进程都获得合理的CPU 时间,不会发生进程饥饿现象。

公平性是相对的,对相同类型的进程应获得相同的服务;但对于不同类型的进程,由于其紧急程度或重要性的不同,则应提供不同的服务。

(3) 平衡性。

由于在系统中可能具有多种类型的进程,有的属于计算型作业,有的属于I/O型。

为使系统中的CPU和各种外部设备都能经常处于忙碌状态,调度算法应尽可能保持系统资源使用的平衡性。

(4) 策略强制执行。

对所制订的策略其中包括安全策略,只要需要,就必须予以准确地执行,即使会造成某些工作的延迟也要执行。

562. 批处理系统的目标(1) 平均周转时间短。

对每个用户而言,都希望自己作业的周转时间最短。

但作为计算机系统的管理者,则总是希望能使平均周转时间最短,这不仅会有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。

第3章处理机调度与死锁part(1)

第3章处理机调度与死锁part(1)

23
第三章 处理机调度与死锁
3.4.2 实时调度算法的分类
1. 非抢占式调度算法 (1) 非抢占式轮转调度算法。 (2) 非抢占式优先调度算法。
24
第三章 处理机调度与死锁
2. 抢占式调度算法 (1) 基于时钟中断的抢占式优先权调度算法。
(2) 立即抢占(Immediate Preemption)的优先权调度算法。
3(2)
4(4)
8.5
9.0
0.1
0.4
10.0
10.6
10.1
11.0
2.0 2.3 1.6 2.0
1.0 4.6 16.0 5.0
平均周转时间T=(2.0+2.3+1.6+2.0)/4=1.975 平均带权周转时间W=(1+4.6+16+5)/4=6.65
12
第三章 处理机调度与死锁
3.3.3 基于时间片的轮转调度算法
Ci N i 1 P i
21
m
第三章 处理机调度与死锁
3. 采用抢占式调度机制 当一个优先权更高的任务到达时,允许将当前任务暂时挂 起,而令高优先权任务立即投入运行,这样便可满足该硬实时 任务对截止时间的要求。但这种调度机制比较复杂。 对于一些小的实时系统,如果能预知任务的开始截止时间,
则对实时任务的调度可采用非抢占调度机制,以简化调度程序
2
第三章 处理机调度与死锁
SJ(P)F
(1) 该算法对长作业不利。更严重的是,如果有一长作 业(进程)进入系统的后备队列(就绪队列),由于调度程序总 是优先调度那些(即使是后进来的)短作业(进程),将导致长 作业(进程)长期不被调度。 (2) 该算法完全未考虑作业的紧迫程度,因而不能保证 紧迫性作业(进程)会被及时处理。 (3) 由于作业(进程)的长短只是根据用户所提供的估计 执行时间而定的,而用户又可能会有意或无意地缩短其作 业的估计运行时间,致使该算法不一定能真正做到短作业 优先调度。

第三章处理机调度与死锁2

第三章处理机调度与死锁2
生,则回到原来的
就绪队列
尚未完成转入第二
队列的末尾,按
FIFO原则等待调

S1
至 CPU

S2
至 CPU
S3
至 CPU
Sn
至 CPU

时间片
采取按时间片轮 转的方式运行
调度算法性能分析
设有四个作业,其提交时刻、执行时间如下表所示,分别采用 FCFS、SJF、FPF调度方法,计算平均周转时间T和平均周转系 数W。
的时间愈短,其优先权愈高 ——对短作业有利
要求服务的时间相同的作业,则等
待时间愈长,其优先权愈高 ——是先来先服务
长作业,优先权随等待时间的增加
而提高,其等待时间足够长时,其优
先权便可升到很高, 从而也可获得处
理机
——对长作业有利
缺点:要进行响应比计算,增加了系统开销
4)时间片轮转调度算法(适合于分时系统)
EDF例: 进

P1 P2 P3 P4
到达时 执行所需时间 开始截止时间 刻
0
4
2
2
3
10
3
2
4
5
3
7
t=0 只有P1进程,P1执行4个单位时间
t=4 P2、P3均到达,P3截止时间早于P2截止时间 P3执行两个单位时间
t=6 P2和P4就绪,P4截止时间早于P2,P4执行
t=9 只剩P2,P2执行
2)短作业(进程)优先调度算法
策略:启动要求运行时间最短的作业。 优点:有效降低作业平均等待时间提高系统的吞
吐量 缺点:长作业(进程)可能长期得不到服务
例:先来先服务算法(FCFS)
进程名
A B C D
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业 调度 后 备 队 列 时间片完 进程调度 进程完成
就 绪 队 列
CPU
事件1出现
等待事件 1
事件2出现
… … …
等待事件 2

等待事件 n 事件n出现
图 3-2 具有高、低两级调度的调度队列模型
9
3.2 调度队列模型和调度准则
图 3-2 示出了具有高、低两级调度的调度 队列模型。该模型与上一模型的主要区别 在于如下两个方面:
图 3-3 具有三级调度时的调度队列模型
11
3.2 பைடு நூலகம்度队列模型和调度准则
3.2.2 选择调度方式和调度算法的若干准则 1. 面向用户的准则
(1) 周转时间短。 可把平均周转时间描述为:
1 i T Ti n i 1 作业的周转时间T与系统为它提供服务的时 间TS之比,即W=T/TS,称为带权周转时间 ,而平均带权周转时间则可表示为: 1 n Ti W n i 1 TSi
3.1.1 高级调度 3.1.2 低级调度 3.1.3 中级调度
3
3.1.1 高级调度
高级调度又称为作业调度、长程调度或宏观调度。 是根据一定的算法,把外存上处于后备队列中 的哪些作业调入内存,并为它们创建进程、分 配必要的资源,然后再将新创建的进程排在就 绪队列上准备执行,也称为接纳调度。 1、作业和作业步
18
3.3.1 先来先服务和短作业(进程)优 先调度算法
SJ(P)F调度算法也存在不容忽视的缺点:
(1) 该算法对长作业不利,如作业C的周转时间由10 增至16,其带权周转时间由2增至3.1。更严重的 是,如果有一长作业(进程)进入系统的后备队列( 就绪队列),由于调度程序总是优先调度那些(即 使是后进来的)短作业(进程),将导致长作业(进 程)长期不被调度。 (2) 该算法完全未考虑作业的紧迫程度,因而不能 保证紧迫性作业(进程)会被及时处理。 (3) 由于作业(进程)的长短只是根据用户所提供的 估计执行时间而定的,而用户又可能会有意或无 意地缩短其作业的估计运行时间,致使该算法不 一定能真正做到短作业优先调度。
显然,在要求比较严格的实时系统中,不宜采用这种调度 方式。
2) 抢占方式(Preemptive Mode)
抢占的原则有: (1) 优先权原则。 (2) 短作业(进程)优先原则。 (3) 时间片原则。
6
3.1.3 中级调度
中级调度又称中程调度。引入中级调度的主 要目的,是为了提高内存利用率和系统吞 吐量。
3、作业调度
根据作业控制块中的信息,审查系统能否满足用户 作业的资源需求,以及按照一定的算法,从外存 后备队列中选取某些作业调入内存,并为它们创 建进程、分配必要的资源。然后再将新创建的进 程插入就绪队列,准备执行。 决定接纳多少个作业、哪些作业
5
3.1.2 低级调度
也被称为进程调度或短程调度,对象是进程(或内核级线程 ) 1、低级调度的功能 保存处理机的现场信息;按某种算法选取进程;把处理机 分配给进程。 2、进程调度中的三个基本机制 排队器、分派器和上下文切换机制 3、进程调度方式 1) 非抢占方式(Non-preemptive Mode)
12
3.1.3 选择调度方式和调度算法的若干准则
(2) 响应时间快。 (3) 截止时间的保证。 (4) 优先权准则。
13
3.1.3 选择调度方式和调度算法的若干准则
2. 面向系统的准则
(1) 系统吞吐量高。 (2) 处理机利用率好。 (3) 各类资源的平衡利用。
14
3.3 调度算法
3.3.1 先来先服务和短作业(进程)优先调度 算法 3.3.2 高优先权优先调度算法 3.3.3 基于时间片的轮转调度算法
15
3.3.1 先来先服务和短作业(进程)优 先调度算法
1. 先来先服务调度算法
16
3.3.1 先来先服务和短作业(进程)优 先调度算法
1. 先来先服务调度算法
图 3-4 FCFS和SJF调度算法的性能
17
3.3.1 先来先服务和短作业(进程)优 先调度算法
2. 短作业(进程)优先调度算法
短作业(进程)优先调度算法SJ(P)F,是指对 短作业或短进程优先调度的算法。它们可 以分别用于作业调度和进程调度。 短作业优先(SJF)的调度算法,是从后备队 列中选择一个或若干个估计运行时间最短 的作业,将它们调入内存运行。 而短进程优先(SPF)调度算法,则是从就绪 队列中选出一估计运行时间最短的进程, 将处理机分配给它,使它立即执行并一直 执行到完成,或发生某事件而被阻塞放弃 处理机时,再重新调度。
(1) 就绪队列的形式。 (2) 设臵多个阻塞队列。
10
3.2 调度队列模型和调度准则
3. 同时具有三级调度的调度队列模型
作业调度 后备队列 批量作业 交互型作业 中级调度 时间片完 就绪队列 进程调度 进程完成
CPU
就绪,挂起队列 事件出现
阻塞,挂起队列 事 件 出 现 阻塞队列 等待事件 挂起
19
汤小丹 等 编著
计算机操作系统
杨为民 m0304abc@
第三章 处理机调度与死锁
3.1 3.2 3.3 3.4 3.5 3.6 3.7 处理机调度的层次 调度队列模型和调度准则 调度算法 实时调度 产生死锁的原因和必要条件 预防死锁的方法 死锁的检测与解除
2
3.1 处理机调度的层次
7
3.2 调度队列模型和调度准则
3.2.1 调度队列模型
1. 仅有进程调度的调度队列模型
时间片完 进程调度 进程完成
交互用户 事 件 出 现
就 绪 队 列
CPU
阻 塞 队 列
等待事件
图 3 - 1 仅具有进程调度的调度队列模型
8
3.2 调度队列模型和调度准则
2. 具有高级和低级调度的调度队列模型
作业:通用程序和数据,作业说明书。 作业步:在作业运行期间,每个作业都必须经过若 干个相对独立又相互关联的顺序加工步骤才能得 到结果,其中每一个加工步骤称为一个作业步。 作业流:若干个作业进入系统后,作业的队列。
4
3.1.1 高级调度
2、作业控制块JCB
为了管理和调度作业,为每个作业设臵一个JCB,它 是作业在系统中存在的标志,保存了系统对作业 进行管理和调度的全部信息。
为此,应使那些暂时不能运行的进程不再占 用宝贵的内存资源,而将它们调至外存上 去等待,把此时的进程状态称为就绪驻外 存状态或挂起状态。 当这些进程重又具备运行条件、且内存又稍 有空闲时,由中级调度来决定把外存上的 哪些又具备运行条件的就绪进程,重新调 入内存,并修改其状态为就绪状态,挂在 就绪队列上等待进程调度。
相关文档
最新文档