第3章 处理机调度与死锁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

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

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

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

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

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


处理时间:任务从开始执行直至完成所需的时间
死 锁
资源要求:任务执行时所需的一组资源
优先级: 赋予“绝对”优先级/“相对”优先级
27
条件2. 系统处理能力强
在实时系统中,通常都有多个实时任务。
处 需要强大的处理能力,否则忙不过来,某些
与 死
2. 相应机制

1 排队器: 按指定算法排
2 分派器 :依据调度程序选进程
3 上下文切换器: 执行大量的load 和store
17
进程调度机制
处 理 机 调 度 与 死 锁
(1) 排队器
(2) 分派器
(3) 上下文切换器
18
3.进程调度方式
(1) 非抢占方式 (Non-preemptive Mode)
• 当第一队列空闲时,才调度第二队列,…
23
3. 多级反馈队列调度算法的性能
该算法有较好的性能,能很好地满足各种类型用户的
处 需要。
理 机 调 度
(1) 终端型作业用户。作业大多属于交互型作业,通常
较小,系统只要能使这些作业在第一队列所规定的时间片内完 成,便可使终端型作业用户都感到满意。

(2)短批处理作业用户。对很短的批处理型作业,像终
处 理
一旦把处理机分配给某进程后,不管它要

运行多长时间,都一直让它运行下去,不抢,
调 度
等。

直至该进程完成,自愿释放处理机,或发


生某事件而被阻塞时,才再把处理机分配给其
他进程。
19
非抢占方式可能引起进程调度的因素:
① 自己down掉了:正在执行的进程执行完毕,或
处 因发生某事件而不能再继续执行;
阻塞,挂起队列

件 出
挂起

阻塞队列
等待事件
图 具有三级调度时的调度队列模型
6
1. 处理机调度算法共同目标(从全局角度)
1. 资源利用率高(系统吞吐量高)

单位时间内系统所完成的作业数,跟作业本身和调

度算法有关[ 批处理系统 ]


度 2. 公平性 (将领)

调度方式和算法,不发生饥饿现象
死 锁 3. 各资源的平衡利用(士兵)
度 与 死
① 平均周转时间 T=(T1+T2+…+Tn)/n ② 带权周转时间W = 周转时间/CPU执行时间

2、系统吞吐量高
单位时间内完成的作业数
3、处理机利用率高
因CPU贵
8
3. 分时系统的目标
1. 响应时间快

从输入一个请求到给出首次响应的时间[分时系统]
理 机
(此时进程并不一定执行完毕)


事件2出现


事件n出现
… … … …
时间片完 就绪队列
进程调度
进程完成 CPU
等待事件1
等待事件2
等待事件n
图 3-2 具有高、低两级调度的调度队列模型
5
3. 具有三级调度的调度队列模型
作业调度
时间片完
后备队列 批量作业
交互型作业
就绪队列
进程调度
进程完成
CPU
中级调度 就绪,挂起队列
事件出现

②自己跑去做别的事:执行中的进程因提出I/O请
机 求而暂停执行;


③ 自己被阻塞:在进程通信或同步过程中执行了
与 某种原语操作,如wait操作、Block原语。


优点是实现简单,系统开销小,适用于大多数批
处理系统环境。但难以满足紧急任务的要求——
立即执行。
20
(2) 抢占方式(preemptive Mode)


1. 非抢占式调度算法

• 非抢占式轮转调度算法

• 非抢占式优先调度算法。

2. 抢占式调度算法
• 基于时钟中断的抢占式优先权调度算法
• 立即抢占的优先权调度算法
32
实时进程要求调度
调度实时进程运行
实时进程请求调度 时钟中断到来时
进程 1
进程 2

进程 n
调度时间 (a) 非抢占式轮转调度
实时进程
式的,因而系统是不可调度的。
处 理 Straightforward ways out:
机 调
① (自己做)单处理机系统,增强处理能力,减少

对每一个任务的处理时间;

② (找人帮忙)采用多处理机系统。假定系统中的

处理机数为N,则应将上述的限制条件改为:

m Ci N
P i1 i
29
条件3. 采用抢占式调度机制
12
2. 短作业(进程)优先调度算法(SJF/SPF)
可用于作业调度和进程调度。
处 短作业优先(SJF) 是从后备队列中选择一/多个估计

运行时间最短的作业,将它们调入内存运行。
机 调 度 与
短进程优先(SPF) 则是从就绪队列中选出一个估计 运行时间最短的进程运行,并一直执行到完成,或 发生某事件而阻塞放弃处理机时再重新调度。
3.1.3 中级调度

P85
2
高级调度(High-Level Scheduling)
又称作业调度,决定后备作业中谁调入内存运行
处 理 低级调度(Low-Level Scheduling)


又称进程调度,决定就绪队列中哪个进程获得
度 与
CPU;
死 锁
中级调度(Intermediate-Level Scheduling)
实时进程请求调度 当前进程运行完成
当前进程 调度时间
实时进程
(b) 非抢占式优先权调度
当前进程 调度时间
实时进程
(c) 基于时钟中断抢占的优先权抢占调度
实时进程请求调度 实时进程抢占当前 进程并立即执行
当前进程
实时进程
调度时间
(d) 立即抢占的优先权调度
图3-8 实时进程调度四种情况的调度时间
3.4.3 常用的几种实时调度算法

度 与 2. 均衡性

系统相应时间的快慢应与用户所请求服务的复杂

性相适应
9
4. 实时系统的目标
1. 截止时间的保证

实时系统性能的重要指标,因而是选择实时调

度算法的重要准则。
机 调
开始截止时间(必须开始执行的最迟时间)和

完成截止时间(必须完成的最迟时间)

死 锁
2. 可预测性
希望连续,譬如游戏、电


3.4.2 实时调度算法的分类


3.4.3 常用的几种实时调度算法
25
3.4.1 实现实时调度的基本条件
处 理
1. 提供必要的调度信息

2. 系统处理能力强


3. 采用抢占式调度机制


4. 具有快速切换机制

26
条件1. 提供必要的调度信息
处 理
就绪时间:成为就绪状态的起始时间,周期任务是
(抢)根据某种原则暂停正在执行的进程,将

处理机重新分配给另一进程。

优点:能满足对响应时间有严格要求的实时任务的

需求。
调 度
缺点:调度所需付出的开销较大。

(盗亦有道)抢占的几条原则:


1. 优先权原则
2. 短作业(进程)优先原则
3. 时间片原则
21
3.3.2 轮转调度算法
1. 时间片轮转法 处

10
3.2 作业与作业调度
处 资源分配算法/系统资源分配策略
理 不同的系统,不同目标,采用不同的

调度算法


与 死
1 先来先服务(FCFS)算法

2 短作业(进程)优先调度算法
3 高优先权优先调度算法 4 基于时间片的轮转调度算法
P89
11
1. 先来先服务(FCFS)调度算法
最简单,可用于作业调度和进程调度
机 调 度
优先权

等待时间 要求服务时间 要求服务时间


因为:响应时间=等待时间+服务时间

所以:优先权=响应比RP:
RP

等待时要间求服要务求时服间务时间
响应时间 要求服务时间
16
3.3 进程调度
P91
处 1.进程调度任务:
理 ① 保存处理机的现场信息
机 调
② 按某种算法选取进程
度 ③ 把处理机分配给进程
硬实时任务(差一点,都要发生灾难的)的实时系

统中,必须采用抢占机制,以满足硬实时任务对
理 机
截止时间的要求。





30
条件4. 具有快速切换机制
为保证及时运行,实时系统应具有快速切换机
处 制,以保证能进行任务的快速切换。有两方面能力:

机 调 度 与
对外部中断的快速响应能力
为使在紧迫事件的请求能及时响应,要求系统具有快 速硬件中断机构,还应使禁止中断的时间间隔尽量短, 以免耽误时机(紧迫任务)。
处 理 1. 最早截止时间优先(EDF, Earliest Deadline First)算法

非抢占式调度方式用于非周期实时任务

抢占式调度方式用于周期实时任务

P99
与 死
2. 最低松弛度优先 (LLF,Least Laxity First)算法
处 在作业调度中,是从后备作业队列中选择一个或多

个最先进入该队列的作业,调入内存,分配资源、

创建进程,放入就绪队列。
调 度 与
在进程调度中,是从就绪队列中选择一个最先进入
队列的进程,分配处理机使之运行。进程则一直运 行到完成或发生某事件而阻塞后才放弃处理机。
死 锁
特点:
① 比较有利于长作业(进程),而不利于短作业(进程) 。 ② 有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

基本原理 所有就绪进程按先来先服务(FCFS)的

原则排成一个队列,每次调度时,把CPU分配给

队首进程,并令其执行一个时间片后停止执行,

进行进程调度(例子)
与 死
时间片大小的确定

对响应时间的要求
就绪队列中进程的数目
系统的处理能力
22
2. 多级反馈队列调度算法
时间片轮转算法和优先级算法的综合和发展
14

在创建进程时确定的,在整个运行期间
静态优先权
不再改变。 依据有:进程类型、进程对资源的要求、
用户要求的优先权。
动态优先权是基于某种原则,使进程的
动态优先权
优先权随时间改变而改变。
譬如轮转法
15
2. 高响应比优先调度算法
作业的优先级,随着等待时间的增加以速率a提高;则长
处 作业在等待一定时间后,必有机会分配到处理机。 理 优先权的变化规律:
死 端型作业一样。对稍长的作业,也只需在第二队列和第三队列
锁 各执行一个时间片即可完成,其周转时间仍然较短。
(3)长批处理作业用户。对于长作业,它将依次在第1,
2,…,n个队列中运行,然后再按轮转方式运行,用户不必担 心其作业长期得不到处理。Βιβλιοθήκη 243.4 实时调度处

机 调
3.4.1 实现实时调度的基本条件
理 任务难及时处理,导致发生难以预料的后果。

调 度
假定系统有m个周期性的硬实时任务,它们的处理
与 时间表示为Ci,周期时间表示为Pi,则单处理机情况
死 下,必须满足下面的限制条件,系统才是可调度的:

m Ci 1
P i1 i
28
假如系统中有6个硬实时任务,它们的周期时间都是
50 ms,而每次的处理时间为 10 ms,则此时是不能满足上
又称在虚拟存储器中引入,在内、外存对换区进 行进程对换。
3
1. 仅有进程调度的调度队列模型


机 交互用户



与 死
件 出 现

时间片完 就绪队列 阻塞队列
进程调度
进程完成
CPU
等待事件
图 仅具有进程调度的调度队列模型
4
2. 具有高级、低级调度的调度队列模型
作业

调度
理 后备队列


事件1出现
第三章 处理机调度与死锁

3.1 处理机调度的层次和调度算法的目标
理 机 调
3.2 作业与调度算法 3.3 进程调度

3.4 实时调度


3.5 死锁概述

3.6 预防死锁
3.7 避免死锁
3.8 死锁的检测与解除
1
3.1 处理机调度的层次

理 机
3.1.1 高级调度
调 度
3.1.2 低级调度
与 死


快速的任务分派能力
为提高分派程序进行任务切换的速度,系统中的每个
运行功能单位适当地小,以减少任务切换的时间开销。
31
3.4.2 实时调度算法的分类
任务性质:硬实时调度算法和软实时调度算法
处 理 机
调度方式:非抢占调度算法和抢占调度算法 调度时间:静态调度算法和动态调度算法 多处理机环境:集中式调度和分布式调度算法
相关文档
最新文档