第四章-死锁及其对策课件.ppt
《第四章-死锁及其对策课件.ppt》由会员分享,可在线阅读,更多相关《第四章-死锁及其对策课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、今天日期:2023/3/29,第四章 死锁及其对策,第 1 页,第四章 死锁及其对策,4.1 死锁的基本概念4.2 死锁原理及对策4.3 鸵鸟算法4.4 死锁的检测和恢复4.5 死锁预防4.6 死锁避免,今天日期:2023/3/29,第四章 死锁及其对策,第 2 页,4.1 死锁的基本概念,在计算机系统中,产生死锁的直接原因是多个进程的并发执行。多个进程的并发执行改善了系统资源的利用率,提高了系统的处理能力,但由于每个系统资源都由多个进程共享,有些资源本身又要求互斥的使用,所以如果处理不当就可能产生死锁。,今天日期:2023/3/29,第四章 死锁及其对策,第 3 页,4.1.1 资源依资源的
2、性质:可剥夺和非可剥夺资源可剥夺资源:处理机和内存非可剥夺资源:磁带和打印机依资源的使用方式:共享资源和独享资源共享资源:处理机、内存、磁盘等独享资源:磁带机、读卡机和打印机等依资源的使用期限:永久资源和临时资源永久资源:硬资源和可重入的纯代码过程临时资源:进程同步和通信过程中出现的消息、信号的数据。在进行资源分配时,一定要先认清相应资源的特性,以便选择合适的分配策略,在竞争非剥夺资源和临时性资源时都可能产生死锁。在并发进程的活动中,若选择一种合理的推进顺序就可以避免死锁的发生。,今天日期:2023/3/29,第四章 死锁及其对策,第 4 页,4.1.2 死锁的定义死锁是计算机系统中多道程序并
3、发执行时,两个或两个以上的进程由于竞争系统资源而出现的一种互相等待的现象。此时,每个进程都“占用”一些其他进程正在等待的资源,而用,每个进程都 没有完全得到所有的资源,结果所有这些进程互相等待,谁也无法继续,我们称这些进程是死锁的,相应的计算机系统处于死锁状态。,今天日期:2023/3/29,第四章 死锁及其对策,第 5 页,4.1.3 产生死锁的原因系统竞争临界资源。当系统所拥有的某种临界资源个数比各个进程要求该资源的总数要少时,则有可能引起多个并发进程对资源的竞争而产生死锁。进程推进顺序不当,进程运行过程中,由于请示和释放资源的顺序不当,而产生死锁。,今天日期:2023/3/29,第四章
4、死锁及其对策,第 6 页,1、竞争临界资源引起的死锁 竞争非剥夺性资源引起的死锁 竞争临时性资源引起的死锁 竞争同一类资源引起的死锁2、进程推进顺序不当引起的死锁,今天日期:2023/3/29,第四章 死锁及其对策,第 7 页,0,G1,G2,G3,A1,B1,C1,D1,P1进展,P2进展,A2,B2,C2,D2,占用R2,占用R2,1,D,N,2,占用R1,占用R2,3,占用R1,占用R1,R2(读卡机),R1(打印机),今天日期:2023/3/29,第四章 死锁及其对策,第 8 页,4.2 死锁原理及对策,4.2.1 死锁原理及产生死锁的必要条件 死锁是与时间有关的一种现象,它涉及到多进
5、程的并发,并发进程对一些特殊资源的共享,以及具体进行并发进程资源调度的时机等。综上所述,产生死锁的四个必要条件如下:互斥条件、不可剥夺条件、部分分配条件、环路等待条件,今天日期:2023/3/29,第四章 死锁及其对策,第 9 页,4.2.2 死锁的描述1、资源分配图,今天日期:2023/3/29,第四章 死锁及其对策,第 10 页,2、死锁举例,竞争非剥夺性资源引起的死锁,竞争临时性资源引起的死锁,竞争同一类资源引起的死锁,R1,P1,R2,P2,S1,P1,S3,P3,P2,S2,P1,P2,P3,今天日期:2023/3/29,第四章 死锁及其对策,第 11 页,4.2.3 解决死锁的方法
6、1.预防死锁:为了使系统不发生死锁现象,在系统设计初期即选择一些限制条件,来破坏产生死锁的四个必要条件之一或其中几个。这样,系统中就不会出现死锁现象。2.避免死锁:一方面预防死锁的方法会降低系统资源利用率;另一方面死锁的必要条件在存在未必就一定会使系统发生死锁。因此为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。,今天日期:2023/3/29,第四章 死锁及其对策,第 12 页,3.检测和解除死锁:在一些相对简单的系统中,为节省预防和避免死锁而增加的系统开销,又因为死锁产生的概率总是比较小
7、的,所以系统中允许出现死锁状态。在这种系统中,专门设置了一个检测机构,可以随时检测出死锁的发生,并能确定与死锁有关的进程和资源,然后采用适当的方法解除系统中的死锁状态。常用的方法有:一是强制性的撤销一些死锁进程,并剥夺它们的资源给其余进程;一是使用一个有效的挂起和解除挂起机构来挂起一些进程,以便从被挂起的进程中剥夺一些资源用来解除死锁。,今天日期:2023/3/29,第四章 死锁及其对策,第 13 页,4.4 死锁的检测与恢复,检测系统中是否存在死锁产生的必要条件:环路等待4.4.1 利用资源分配图描述系统状态1、死锁状态的推断思想封锁进程:是指某个进程由于请求了超过系统中现有的未分配资源数目
8、的资源,而被系统封锁的进程。非封锁进程:没有被系统封锁的进程,今天日期:2023/3/29,第四章 死锁及其对策,第 14 页,2、资源分配图的化简 假设某个资源分配图中存在一个进程Pi,此刻 Pi 是非封锁进程,那么可对此资源分配图作以下化简:当 Pi 有请求边时,首先将其请求边变成分配边,即满足Pi 进程的相应资源请求,而一旦Pi 进程的所有资源请求都得到满足,Pi 进程就能在有限时间内运行结束,并释放它所占用的所有资源。所以此时Pi 只有分配边,可以将所有这些分配边删去。,总之,对非封锁进程Pi 的化简即删除资源分配图中与Pi 连接的所有有向边,使Pi 成为孤立结点。,P2,P1,R1,
9、R2,(a),(b),(c),今天日期:2023/3/29,第四章 死锁及其对策,第 15 页,假如一个资源分配图可以被其上的所有进程所化简,则称该图为完全可化简的。反之,若一个资源分配图不能被其上的任一进程化简,则称其为不可化简的。若某个资源分配图只能被其上的一些进程所化简,则该图为非完全可化简的。,图 完全可化简的资源分配图,图 不可化简的资源分配图,今天日期:2023/3/29,第四章 死锁及其对策,第 16 页,3、死锁定理:当一个资源分配图是完全可化简时,该资源分配图能被其上所有的进程所化简。也就是此时系统中存在一个进程序列,按此安全序列的顺序运行,可使每个进程都顺利完成,所以此时系
10、统处于安全状态,即系统不会发生死锁。反之当某资源分配图是非完全可化简的时候,说明该资源分配图不能被中的一些进程所化简。也就是此刻系统中出现了一些互相等待的封锁进程,系统中不存在一个进程的安全序列。这些互相等待的封锁进程永远无法运行到终点,所以此时系统处于死锁状态。资源分配图中不能化简的进程即为死锁进程。死锁定理:系统中某个时刻S为死锁状态的充分必要条件是,S时刻系统的资源分配图是非完全可化简的。,今天日期:2023/3/29,第四章 死锁及其对策,第 17 页,4.4.2 死锁检测中的数据结构 假设系统中的N个进程P1,P2,Pn,有M种资源,R1,R2,Rm,则请求矩阵和分配矩阵都是一个NM
11、的二维数组:(1)请求矩阵Re:是一个NM的二维数组,每行代表一个进程当前对各类资源的请求数目。若Re(i,j)=k,则代表第 i个进程Pi请求了Rj类资源k个分配单位。(2)分配矩阵Al:是一个NM的二维数组,代表某个时刻系统中资源的分配情况。若Al(i,j)=k,则代表第 i个进程Pi已分配到了 Rj类资源k个分配单位。,今天日期:2023/3/29,第四章 死锁及其对策,第 18 页,(3)可利用资源向量Av,是一个长度为M的一维数组,表示系统中各类资源的可利用数目。(4)工作向量Work:是一个长度为M的一维数组,动态的反映系统中可让进程运行的各类资源的数目。(5)进程向量L:是一个集
12、合,所有已运行结束的进程都送入L中,若最后L中包括了所有的N个进程,则说明系统处于安全状态。,今天日期:2023/3/29,第四章 死锁及其对策,第 19 页,4.4.3 死锁检测算法1、在某个时刻T,j从1到M执行Work(j)=Av(j)。2、检查Al矩阵和Re矩阵,是否存在某个i(i从1到M)使Al矩阵第i行中所有的Al(i,j)和Re矩阵第i行中所有的Re(i,j)均为零。若存在这个i说明在资源分配图中Pi进程已成为孤立结点,将Pi进程送入进程向量L中。3、在系统中除已送入L之外的所有进程中逐个寻找,若某个 i使Re(i,j)=Work(j),(j的取值从1到M),则执行:1)j从1到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 死锁 及其 对策 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3968333.html