处理机调度与死锁续精品PPT课件
合集下载
第三章 处理机调度与死锁PPT课件
第三章 处理机调度与死锁
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.同时具有三级调度的调度队列模型
作业调度
时间片完
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.同时具有三级调度的调度队列模型
作业调度
时间片完
第三章CPU调度与死锁.ppt
3.中级调度 引入中级调度的主要目的,是为了提高内存利用率和系统
吞吐量。
进程调度可采用下述两种调度方式。
1)非抢占方式 在采用这种调度方式时,一旦把处理机分配给 某进程后,便让该进程一直执行,直至该进程 完成或发生某事件而被阻塞时,才再把处理机 分配给其他进程,决不允许某进程抢占已经分 配出去的处理机。
3.高响应比优先调度算法
• 该算法既照顾了短作业,又考虑了作业 到达的先后次序,不会使长作业长期得 不到服务。
• 利用该算法时,每次调度之前,都须先 做响应比的计算,会增加系统开销。
3.2.3 基于时间片的轮转调度算法
1.时间片轮转法
在时间片轮转法中,系统将所有的就绪进程按 先来先服务的原则,排成一个队列,每次调度 时,把CPU分配给队首进程。并令其执行一个 时间片。当执行的时间片用完时,由一个计时 器发出时钟中断请求,调度程序便据此信号来 停止该进程的执行,并将它送往就绪队列的末 尾;然后,再把处理机分配给就绪队列中新的 队首进程,同时也让它执行一个时间片。这样 就可以保证就绪队列中的所有进程,在一给定 的时间内,均能获得一时间片的处理机执行时 间,换言之,系统能在给定的时间内,响应所 有用户的请求。
100
100
D
3
100
102
202
199
1.99
2.短作业优先调度算法
•短作业优先调度算法的缺点:
(1)该算法对长作业不利.
(2)该算法完全未考虑作业的紧迫程度, 因而不能保证紧迫性作业(进程)会被及 时处理。
(3)由于作业(进程)的长短只是根据用 户所提供的估计执行时间而定的,而用户 又可能会估计不准运行时间,致使该算法 不一定能真正做到短作业优先调度。
• 确定进程优先权的依据有三个方面:
吞吐量。
进程调度可采用下述两种调度方式。
1)非抢占方式 在采用这种调度方式时,一旦把处理机分配给 某进程后,便让该进程一直执行,直至该进程 完成或发生某事件而被阻塞时,才再把处理机 分配给其他进程,决不允许某进程抢占已经分 配出去的处理机。
3.高响应比优先调度算法
• 该算法既照顾了短作业,又考虑了作业 到达的先后次序,不会使长作业长期得 不到服务。
• 利用该算法时,每次调度之前,都须先 做响应比的计算,会增加系统开销。
3.2.3 基于时间片的轮转调度算法
1.时间片轮转法
在时间片轮转法中,系统将所有的就绪进程按 先来先服务的原则,排成一个队列,每次调度 时,把CPU分配给队首进程。并令其执行一个 时间片。当执行的时间片用完时,由一个计时 器发出时钟中断请求,调度程序便据此信号来 停止该进程的执行,并将它送往就绪队列的末 尾;然后,再把处理机分配给就绪队列中新的 队首进程,同时也让它执行一个时间片。这样 就可以保证就绪队列中的所有进程,在一给定 的时间内,均能获得一时间片的处理机执行时 间,换言之,系统能在给定的时间内,响应所 有用户的请求。
100
100
D
3
100
102
202
199
1.99
2.短作业优先调度算法
•短作业优先调度算法的缺点:
(1)该算法对长作业不利.
(2)该算法完全未考虑作业的紧迫程度, 因而不能保证紧迫性作业(进程)会被及 时处理。
(3)由于作业(进程)的长短只是根据用 户所提供的估计执行时间而定的,而用户 又可能会估计不准运行时间,致使该算法 不一定能真正做到短作业优先调度。
• 确定进程优先权的依据有三个方面:
操作系统第3章
给其抢它占进原程则,有决:不允许某进程抢占已 经分配优出先去权的原处则理;机。 优点:短实作现业简优单先,原系则统;开销小。 缺点:时难间于片满原足则紧。急任务的要求。
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.1 处理机调度的基本概念
3. 中级调度
挂起和激活,存储器管理中的对换功能。
主要目的: 为了提高内存的利用率和系统的吞吐量。
三种调度相比较:
● 高级调度的相关概念
作业:用户一次请求计算机系统为其完成任务所做工作 的总和。它通常包括程序、数据和作业说明书,系统根 据说明书对程序进行控制。 作业步:指每个作业在运行期间,都必须经过若干个相 对独立,又相互关联的顺序加工步骤,其中的每一个加 工步骤称为作业步。一个典型的作业可分成三个作业 步:① “编译”作业步,② “连结装配”作业步,③ “运行”作业步 作业状态:作业状态分为后备、运行和完成三种状态。 作业控制块(Job Control Block,JCB)
调度方式
3.1.3 选择调度方式和调度算法的若干准则 2. 面向系统的准则吞吐量:单位时间内系统所
完成的作业数
(1)系统吞吐量高
调度方式和算法对处理机的
(2)处理机利用率好 利用率起着十分重要的作用
(3)各类资源的均衡利 用
对于单用户微机或某些实 时系统,该准则并不重要
3.2 调度算法
3.2.1 先来先服务调度算法
进程插入到就决定: ●接纳多少个作业——取决于多道程序度 ●接纳哪些作业——取决于调度算法
▲内存中同时运行的 作业数目太多,会影 响系统的服务质量。 如,周转时间长。
▲内存中同时运行的 作业数目太少,会导 致系统资源利用率和 系统吞吐量低。
3.1.1 高级、中级和低级调度
算,而很少请求I/O。如,科学计算
第三章 处理机调度和死锁(第101112讲)PPT课件
阜阳师范学院计算机与信息学院
15
3.2 调度算法
3.2.1 FCFS与SJF/SPF调度算法 3.2.2 高优先权优先调度算法 3.2.3 基于时间片的轮转调度算法
01.12.2020
阜阳师范学院计算机与信息学院
16
3.2.1 FCFS与SJF/SPF调度算法
1. 先来先服务调度算 process
中级调度
作业调度
退出
3.1.2 调度队列模型
1. 仅有进程调度的调度队列模型 2. 具有高级和低级调度的调度队列模型 3. 同时具有三级调度的调度队列模型
01.12.2020
阜阳师范学院计算机与信息学院
11
1. 仅有进程调度的调度队列模型
在分时系统中就绪进程组织成FIFO队 列形式,按时间片轮转方式运行。
20
2. 短作业(进程)优先调度算法
作业情 况
调度算法
FCFS
SJF
作业名 到达时间 服务时间 完成时间 周转时间 带权周转时间 完成时间 周转时间 带权周转时间
AB 01 43
47 46 12 49 48 1 2.67
CD E 23 4 52 4 12 14 18 10 11 14 2 5.5 3.5 18 6 13 16 3 9 3.2 1.5 2.25
01.12.2020
阜阳师范学院计算机与信息学院
4
1. 高级调度
又称为作业调度、宏观调度或长 程调度。用于决定把后备队列中的哪 些作业调入内存,为他们分配必要的 资源,并创建进程。
批处理系统 : 需要作业调度 分时系统 : 不需作业调度 实时系统 : 不需作业调度
01.12.2020
阜阳师范学院计算机与信息学院
处理机调度与死锁ppt课件
第三章 处置机调度与死锁
3.1 处置机调度的层次 3.2 调度队列模型和调度准那么 3.3 调度算法 3.4 实时调度 3.5 产生死锁的缘由和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
第三章 处理机调度与死锁
处置机调度与死锁(Scheduling and Deadlock )
教学目的: 在多道程序系统中,一个作业从提交到执行完
第三章 处理机调度与死锁
2) 抢占方式(Preemptive Mode)
这种调度方式允许调度程序根据某种原那么去暂停某个 正在执行的进程,将已分配给该进程的处置机重新分配给另 一进程。抢占方式的优点是,可以防止一个出息程长时间占 用途置机,能为大多数进程提供更公平的效力,特别是能满 足对呼应时间有着较严厉要求的实时义务的需求。但抢占方 式比非抢占方式调度所需付出的开销较大。抢占调度方式是 基于一定原那么的,主要有如下几条:
第三章 处理机调度与死锁
2.进程调度中的三个根本机制
为了实现进程调度,应具有如下三个根本机制:
(1) 排队器。为了提高进程调度的效率,应事先将系统 中一切的就绪进程按照一定的方式排成一个或多个队列,以 便调度程序能最快地找到它。
(2) 分派器(分派程序)。分派器把由进程调度程序所选 定的进程,从就绪队列中取出该进程,然后进展上下文切换, 将处置机分配给它。
成,要阅历多级调度,调度的好坏要影响系统的运 转性能,因此调度是多道系统的关键。为了改善系 统资源的利用率和提高系统处置才干,多道程序系 统中采用多个进程的并发执行,但它也能够发生死 锁的危险,研讨死锁的缘由和产生条件,采用预防 死锁、防止死锁、检测死锁和解除死锁等多种方法 防止死锁是多道程序系统重要的研讨课题。
第三章 处理机调度与死锁
3.1 处置机调度的层次 3.2 调度队列模型和调度准那么 3.3 调度算法 3.4 实时调度 3.5 产生死锁的缘由和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
第三章 处理机调度与死锁
处置机调度与死锁(Scheduling and Deadlock )
教学目的: 在多道程序系统中,一个作业从提交到执行完
第三章 处理机调度与死锁
2) 抢占方式(Preemptive Mode)
这种调度方式允许调度程序根据某种原那么去暂停某个 正在执行的进程,将已分配给该进程的处置机重新分配给另 一进程。抢占方式的优点是,可以防止一个出息程长时间占 用途置机,能为大多数进程提供更公平的效力,特别是能满 足对呼应时间有着较严厉要求的实时义务的需求。但抢占方 式比非抢占方式调度所需付出的开销较大。抢占调度方式是 基于一定原那么的,主要有如下几条:
第三章 处理机调度与死锁
2.进程调度中的三个根本机制
为了实现进程调度,应具有如下三个根本机制:
(1) 排队器。为了提高进程调度的效率,应事先将系统 中一切的就绪进程按照一定的方式排成一个或多个队列,以 便调度程序能最快地找到它。
(2) 分派器(分派程序)。分派器把由进程调度程序所选 定的进程,从就绪队列中取出该进程,然后进展上下文切换, 将处置机分配给它。
成,要阅历多级调度,调度的好坏要影响系统的运 转性能,因此调度是多道系统的关键。为了改善系 统资源的利用率和提高系统处置才干,多道程序系 统中采用多个进程的并发执行,但它也能够发生死 锁的危险,研讨死锁的缘由和产生条件,采用预防 死锁、防止死锁、检测死锁和解除死锁等多种方法 防止死锁是多道程序系统重要的研讨课题。
第三章 处理机调度与死锁
处理机调度与死锁PPT课件
2021/4/17
第三章 处理机调度与死锁
8
作业说明书
▪ 作业说明书包括作业基本情况、作业控制、作业资源要求的描 述;它体现用户的控制意图。如:预计运行时间、要求的资源 情况、执行优先级等。
–作业基本情况描述:用户名、作业名、编程语言、最大处 理时间等;
–作业控制描述:作业控制方式、作业步的操作顺序、作业 执行出错处理等;
30
进程调度的功能
1、记录系统中所有进程的执行情况
作为进程调度的准备,进程管理模块必须将系统中各进程的 执行情况和状态特征记录在各进程的PCB表中。并且将各进程 的PCB表排成相应的队列并进行动态队列转接。
2、选择占有处理机的进程
进程调度的主要功能是按照一定的策略选择一个处于就绪状 态的进程,使其获得处理机执行。
即
Ti Twi Tri
-带权周转时间 Wi Ti /Tri
平均带权周转时间:
W
1 n
n i 1
Wi
2021/4/17
第三章 处理机调度与死锁
26
中级调度
又称中程调度(Medium-Term Scheduling)、交换调 度。
引入中级调度的目的是为了提高内存的利用率和系 统吞吐量。 将目前不在运行态的进程,包括其数据,从内存交 换到外存(此时进程的状态为挂起状态),将新进 程的代码、数据、栈等交换入内存。
2021/4/17
第三章 处理机调度与死锁
19
作业调度功能
1: 记录系统中各作业的状况 2:按某种算法从后备队列中挑选一个或一批作 业调入内存,让它们投入执行。 3:为被选中作业做好执行前的准备工作。 4:在作业执行结束时做善后处理工作
2021/4/17
第3章处理机调度与死锁132页PPT
作为系统管理者希望作业平均周转时间最短,有利于大多数
用户 可把平均周转时间描述为:T
1 n
n
Ti i1
作业的周转时间T与系统为它提供服务的时间TS之比,即
W=T/TS,称为带权周转时间,而平均带权周转时间则可表
示为:
W
1 n
n i1
Ti TSi
2020/5/8
12
3调度基本准则
目的
是为了进一步提高主存的利用率和系统的吞吐量。管理 进程在内外存间的交换,从存储器资源管理的角度来看, 把进程的部分或全部换出到外存上,可为当前运行进程 的执行提供所需内存空间。
2020/5/8
4
三种调度中,进程调度运行频率最高,在分 时系统中通常是10~100ms便进行一次进程 调度,因而进程调度算法不能太复杂。 作业调度往往是发生在一个(批)作业运行 完毕,退出系统,而需要重新调入一个(批) 作业进入时,帮作业调度的周期较长,大约 几分钟一次。 中级调度的运行频率,介于上述两种调度之 间
2020/5/8
3
中级调度
系统将那些暂时不能运行的进程从主存调到外存(仍然 保持进程状态)上的特定区域,这些在外存存放的进程 所处的状态称为就绪驻外状态或挂起状态。当这些进程 的运行条件具备,且主存又有空闲时,在中级调度的控 制下,再将处于外存上的那些重新具备运行条件的就绪 驻外进程调入主存,并将其状态修改为就绪状态,放入 就绪队列,等待进程调度。
① 就绪队列的形式:在批处理系统中,最常用的是最高优 先权调度算法,相应的最常用的就绪队列形式是优先权 队列。(仅有进程调度的模型就绪队列采用FIFO队列形 式)
② 设置多个阻塞队列。
2020/5/8
8
调度队列模型
《处理机调度与死锁》PPT课件
当这些进程重又具备运行条件且内存又稍有空闲时,由 中级调度来决定把外存上的那些又具备运行条件的就绪进程 重新调入内存,并修改其状态为就绪状态,挂在就绪队列上 等待进程调度。
中级调度实际上就是存储器管理中的对换功能。
整理ppt15Fra bibliotek第三章 处理机调度与死锁
在上述三种调度中,
• 进程调度的运行频率最高,在分时系统中通常是10~100 ms便进行一次进程调度,因此把它称为短程调度。为避免进 程调度占用太多的CPU时间,进程调度算法不宜太复杂。
(2) 分派器(分派程序)。
(3)上下文切换机制。当对处理机进行切换时,会发生
两对上下文切换操作。在第一对上下文切换时,操作系统将
保存当前进程的上下文,而装入分派程序的上下文,以便分
派程序运行;在第二对上下文切换时,将移出分派程序,而
把新选进程的CPU现场信息装入到处理机的各个相应寄存器
中。
应当指出,上下文切换将花去不少的处理机时间,即使是现代计算
3.1.3 中级调度(Intermediate Level Scheduling) 又称中程调度(Medium-Term Scheduling)。 引入中级调度的主要目的是为了提高内存利用率和系统 吞吐量。
使那些暂时不能运行的进程不再占用宝贵的内存资源, 而将它们调至外存上去等待,把此时的进程状态称为就绪驻 外存状态或挂起状态。
作业调度或长程调度(LongTerm Scheduling)
1.作业和作业步
(1) 作业(Job)。作业不仅包含了通常的程序和数据,而且 还应配有一份作业说明书,系统根据该说明书来对程序的运 行进行控制。
在批处理系统中,是以作业为基本单位从外存调入内存的。
整理ppt
第三章处理机调度与死锁-PPT精品
(1) 进程类型。 (2) 进程对资源的需求。 (3) 用户要求。
第三章 处理机调度与死锁
2) 动态优先权
计算机操作系统
动态优先权是指,在创建进程时所赋予的优先权, 是可以随进程的推进或随其等待时间的增加而改变的, 以便获得更好的调度性能。
第三章 处理机调度与死锁
3. 高响应比优先调度算法
计算机操作系统
3.1.3 选择调度方式和调度算法的若干准则
1. 面向用户的准则 (1) 周转时间短。 周转时间的长短是评价批处理系统性能、选择作业调
度方式与算法的重要准则之一
第三章 处理机调度与死锁
(1) 周转时间短。
计算机操作系统
周转时间:从作业提交给系统开始,到作业完成为之 的这段时间间隔(作业周转时间) 作业在外存后备队列上等待(作业)调度的时间 进程在就绪队列上等待进程调度的时间 进程在CPU上执行的时间 进程等待I/O操作完成的时间
第三章 处理机调度与死锁
计算机操作系统
第三章 处理机调度与死锁
ห้องสมุดไป่ตู้算机操作系统
第三章 处理机调度与死锁
3.1 处理机调度的基本概念
3.1.1 高级、中级和低级调度
1. 高级调度(High Scheduling)
又称作业调度、长程调度:决定把外存上处于后备 队列中的哪些作业调入内存,并为之创建进程、分配必 要的资源,然后,再将新创建的进程排在就绪队列中。
优先权的变化规律可描述为:
优先权 等待要时求 间 要服求务服时务间时间
由于等待时间与服务时间之和,就是系统对该作 业的响应时间,故该优先权又相当于响应比RP。据此, 又可表示为:
优先 等 权待 要 时 求 要间 服 求务 服时 务 要 响 间 时 求 应 间 服 时 务 间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章(续) 死锁
死锁的基本概念 死锁的解决方案
(预防,避免,检测及解除) 资源分配图
死锁的现象
一、死锁的基本概念
1.死锁的定义 一组进程中,每个进程都无限等待被该组 进程中另一进程所占有的资源,因而永 远无法得到的资源,这种现象称为进程 死锁,这一组进程就称为死锁进程
死锁(Deadlock) 饥饿(Starvation)
关于死锁的一些结论
➢ 参与死锁的进程最少是两个 (两个以上进程才会出现死锁)
➢ 参与死锁的进程至少有两个已经占有资源 ➢ 参与死锁的所有进程都在等待资源 ➢ 参与死锁的进程是当前系统中所有进程的子集
注:如果死锁发生,会浪费大量系统资源, 甚至导致系统崩溃
2. 产生死锁的原因
1、争夺资源引起死锁
例1:P1,P2两个进程争夺打印机和读卡机。
(只有这样才是动态申请,动态分配)
4) 循环等待 存在一个进程等待队列
{P1 , P2 , … , Pn}, 其中P1等待P2占有的资源,P2等待P3占 有的资源,…,Pn等待P1占有的资源, 形成一个进程等待环路
二、死锁的解决方案
1. 产生死锁的例子
申请不同类型资源产生死锁
P1: …
申请打印机 申请扫描仪
死锁避免
安全序列: 一个进程序列{P1,…,Pn}是安全的,如 果对于每一个进程Pi(1≤i≤n),它以后 尚需要的资源量不超过系统当前剩余资 源量与所有进程Pj (j < i )当前占有资源 量之和,系统处于安全状态 (安全状态一定是没有死锁发生的)
安全状态与不安全状态
不安全状态:不存在一个安全序列,不安全 状态可能导致死锁
使用 释放打印机 释放扫描仪
…
P2: …
申请扫描仪 申请打印机
使用 释放打印机 释放扫描仪
…
申请同类资源产生死锁(如内存)
设有资源R,R有m个分配单位,由n个进 程个进P1程,P2对,…R,的Pn申(请n和>释m放)符共合享下。列假原设则每: * 一次只能申请一个单位 * 满足总申请后才能使用 * 使用完后一次性释放
共有12台磁带机 T0时刻分配情况如下:
目前占有量 最大需求量 尚需要量
P1
5
P2
2
P3
2
系统剩余量
10
5
4
2
9
7
3
T0时刻是否安全?如果此时P3又请求一台磁 带机,又是否安全?
银行家算法
n:系统中进程的总数 m:资源类总数 Available:
破坏“循环等待”条件
例如:1,2,3,…,10
P1: 申请1 申请3 申请9
…
P2: 申请1 申请2 申请5
…
P3 …… P10
回顾
进程调度
调度算法
死ቤተ መጻሕፍቲ ባይዱ预防
破环必要条件
4. 死锁避免
允许死锁前三个条件的成立,但作一定的判断 选择以确保永远不会达到死锁点
采用某种算法动态判断当前资源分配请求是否 有可能导致死锁,如可能导致死锁,则拒绝本 次资源申请要求或是中止该进程的运行
P,Q都申请B
④
⑤
⑥
死锁区
获得A
获得B
释放A
P请求A
P请求B
释放B
资源
永久性资源:可以被多个进程多次使用 (可再用资源)
* 可抢占资源 不可抢占资源
临时性资源:只可使用一次的资源;如信 号量,中断信号,同步信号等(可消耗性 资源)
“申请--分配--使用--释放”模式
3. 产生死锁的四个必要条件
按以下次序运行:
P1
P1:Request(S3);Release(S1)
P2:Request(S1);Release(S2)
S3
S1 P3:Request(S2);Release(S3)
P3
P2 按照以上的顺序执行会产生死锁吗?
S2
② ①
释放A Q
请
求 A 释放B
P,Q都申请A
Q
请 获得A
③
求
B 获得B
死锁预防
破坏“循环等待”条件 采用资源有序分配法:
把系统中所有资源编号,进程在申请资 源时必须严格按资源编号的递增次序进 行,否则操作系统不予分配
如何证明按资源有序分配法进行分配肯定不会产 生死锁?
i < j 表示:资源 Ri 先于资源 Rj 假设进程A和B处于死锁状态,因为A已
经拥有了Ri并申请Rj;同时B已经拥有了 Rj并申请Ri。 即: PA: Ri < Rj 即有 i < j PB: Rj < Ri 即有 j < i
具体的做法是破坏产生死锁的四个必 要条件之一
死锁预防
破坏“不可剥夺”条件 在允许进程动态申请资源前提下规定,一 个进程在申请新的资源不能立即得到满 足而变为等待状态之前,必须释放已占 有的全部资源,若需要再重新申请
死锁预防
破坏“请求和保持”条件 要求每个进程在运行前必须一次性申请
它所要求的所有资源,且仅当该进程 所要资源均可满足时才给予一次性分 配
互斥使用(资源独占) 不可强占(不可剥夺) 请求和保持(部分分配,占有申请) 循环等待
1) 互斥使用(资源独占) 一个资源每次只能给一个进程使用
2) 不可强占(不可剥夺) 资源申请者不能强行的从资源占有者手中 夺取资源,资源只能由占有者自愿释放
3) 请求和保持 (部分分配,占有申请)
一个进程在申请新的资源的同时保持对原有 资源的占有
死锁避免定义
定义: 在系统运行过程中,对进程发出的每一个
系统能够满足的资源申请进行动态检查, 并根据检查结果决定是否分配资源,若 分配后系统可能发生死锁,则不予分配, 否则予以分配
死锁避免和死锁预防的区别?
安全状态与不安全状态
安全状态: 如果存在一个由系统中所有进程构成的 安全序列P1,…Pn,则系统处于安全状 态
• P1已经申请到打印机,
P1
又申请读卡机。
• P2已经申请到读卡机,
又申请打印机。
打印机
读卡机
打印机和读卡机为
P2
非剥夺性资源。
2、进程推动顺序不当引起的死锁
例2、 P1,P2,P3 三个进程之间通信: P1产生消息S1,接收P3产生的消息S3; P2产生消息S2,接收P1产生的消息S1; P3产生消息S3,接收P2产生的消息S2; Si临时性资源
m=2,n=3
资源分配不当导致死锁产生
2. 解决死锁的方法
鸵鸟策略 不理睬死锁。从工程角度考虑死锁概率及解
决的代价 预防策略
破坏死锁的四个必要条件之一 避免策略
采用某种算法判断资源申请是否满足,以 动态地回避死锁 检测和解除
检测出发生的死锁并采取措施予以解除
3. 死锁预防
定义: 在系统设计时确定资源分配算法,保 证不发生死锁
死锁的基本概念 死锁的解决方案
(预防,避免,检测及解除) 资源分配图
死锁的现象
一、死锁的基本概念
1.死锁的定义 一组进程中,每个进程都无限等待被该组 进程中另一进程所占有的资源,因而永 远无法得到的资源,这种现象称为进程 死锁,这一组进程就称为死锁进程
死锁(Deadlock) 饥饿(Starvation)
关于死锁的一些结论
➢ 参与死锁的进程最少是两个 (两个以上进程才会出现死锁)
➢ 参与死锁的进程至少有两个已经占有资源 ➢ 参与死锁的所有进程都在等待资源 ➢ 参与死锁的进程是当前系统中所有进程的子集
注:如果死锁发生,会浪费大量系统资源, 甚至导致系统崩溃
2. 产生死锁的原因
1、争夺资源引起死锁
例1:P1,P2两个进程争夺打印机和读卡机。
(只有这样才是动态申请,动态分配)
4) 循环等待 存在一个进程等待队列
{P1 , P2 , … , Pn}, 其中P1等待P2占有的资源,P2等待P3占 有的资源,…,Pn等待P1占有的资源, 形成一个进程等待环路
二、死锁的解决方案
1. 产生死锁的例子
申请不同类型资源产生死锁
P1: …
申请打印机 申请扫描仪
死锁避免
安全序列: 一个进程序列{P1,…,Pn}是安全的,如 果对于每一个进程Pi(1≤i≤n),它以后 尚需要的资源量不超过系统当前剩余资 源量与所有进程Pj (j < i )当前占有资源 量之和,系统处于安全状态 (安全状态一定是没有死锁发生的)
安全状态与不安全状态
不安全状态:不存在一个安全序列,不安全 状态可能导致死锁
使用 释放打印机 释放扫描仪
…
P2: …
申请扫描仪 申请打印机
使用 释放打印机 释放扫描仪
…
申请同类资源产生死锁(如内存)
设有资源R,R有m个分配单位,由n个进 程个进P1程,P2对,…R,的Pn申(请n和>释m放)符共合享下。列假原设则每: * 一次只能申请一个单位 * 满足总申请后才能使用 * 使用完后一次性释放
共有12台磁带机 T0时刻分配情况如下:
目前占有量 最大需求量 尚需要量
P1
5
P2
2
P3
2
系统剩余量
10
5
4
2
9
7
3
T0时刻是否安全?如果此时P3又请求一台磁 带机,又是否安全?
银行家算法
n:系统中进程的总数 m:资源类总数 Available:
破坏“循环等待”条件
例如:1,2,3,…,10
P1: 申请1 申请3 申请9
…
P2: 申请1 申请2 申请5
…
P3 …… P10
回顾
进程调度
调度算法
死ቤተ መጻሕፍቲ ባይዱ预防
破环必要条件
4. 死锁避免
允许死锁前三个条件的成立,但作一定的判断 选择以确保永远不会达到死锁点
采用某种算法动态判断当前资源分配请求是否 有可能导致死锁,如可能导致死锁,则拒绝本 次资源申请要求或是中止该进程的运行
P,Q都申请B
④
⑤
⑥
死锁区
获得A
获得B
释放A
P请求A
P请求B
释放B
资源
永久性资源:可以被多个进程多次使用 (可再用资源)
* 可抢占资源 不可抢占资源
临时性资源:只可使用一次的资源;如信 号量,中断信号,同步信号等(可消耗性 资源)
“申请--分配--使用--释放”模式
3. 产生死锁的四个必要条件
按以下次序运行:
P1
P1:Request(S3);Release(S1)
P2:Request(S1);Release(S2)
S3
S1 P3:Request(S2);Release(S3)
P3
P2 按照以上的顺序执行会产生死锁吗?
S2
② ①
释放A Q
请
求 A 释放B
P,Q都申请A
Q
请 获得A
③
求
B 获得B
死锁预防
破坏“循环等待”条件 采用资源有序分配法:
把系统中所有资源编号,进程在申请资 源时必须严格按资源编号的递增次序进 行,否则操作系统不予分配
如何证明按资源有序分配法进行分配肯定不会产 生死锁?
i < j 表示:资源 Ri 先于资源 Rj 假设进程A和B处于死锁状态,因为A已
经拥有了Ri并申请Rj;同时B已经拥有了 Rj并申请Ri。 即: PA: Ri < Rj 即有 i < j PB: Rj < Ri 即有 j < i
具体的做法是破坏产生死锁的四个必 要条件之一
死锁预防
破坏“不可剥夺”条件 在允许进程动态申请资源前提下规定,一 个进程在申请新的资源不能立即得到满 足而变为等待状态之前,必须释放已占 有的全部资源,若需要再重新申请
死锁预防
破坏“请求和保持”条件 要求每个进程在运行前必须一次性申请
它所要求的所有资源,且仅当该进程 所要资源均可满足时才给予一次性分 配
互斥使用(资源独占) 不可强占(不可剥夺) 请求和保持(部分分配,占有申请) 循环等待
1) 互斥使用(资源独占) 一个资源每次只能给一个进程使用
2) 不可强占(不可剥夺) 资源申请者不能强行的从资源占有者手中 夺取资源,资源只能由占有者自愿释放
3) 请求和保持 (部分分配,占有申请)
一个进程在申请新的资源的同时保持对原有 资源的占有
死锁避免定义
定义: 在系统运行过程中,对进程发出的每一个
系统能够满足的资源申请进行动态检查, 并根据检查结果决定是否分配资源,若 分配后系统可能发生死锁,则不予分配, 否则予以分配
死锁避免和死锁预防的区别?
安全状态与不安全状态
安全状态: 如果存在一个由系统中所有进程构成的 安全序列P1,…Pn,则系统处于安全状 态
• P1已经申请到打印机,
P1
又申请读卡机。
• P2已经申请到读卡机,
又申请打印机。
打印机
读卡机
打印机和读卡机为
P2
非剥夺性资源。
2、进程推动顺序不当引起的死锁
例2、 P1,P2,P3 三个进程之间通信: P1产生消息S1,接收P3产生的消息S3; P2产生消息S2,接收P1产生的消息S1; P3产生消息S3,接收P2产生的消息S2; Si临时性资源
m=2,n=3
资源分配不当导致死锁产生
2. 解决死锁的方法
鸵鸟策略 不理睬死锁。从工程角度考虑死锁概率及解
决的代价 预防策略
破坏死锁的四个必要条件之一 避免策略
采用某种算法判断资源申请是否满足,以 动态地回避死锁 检测和解除
检测出发生的死锁并采取措施予以解除
3. 死锁预防
定义: 在系统设计时确定资源分配算法,保 证不发生死锁