操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件

上传人:E**** 文档编号:89359349 上传时间:2019-05-24 格式:PPT 页数:33 大小:1.71MB
返回 下载 相关 举报
操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件_第1页
第1页 / 共33页
操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件_第2页
第2页 / 共33页
操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件_第3页
第3页 / 共33页
操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件_第4页
第4页 / 共33页
操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件》由会员分享,可在线阅读,更多相关《操作系统 教学课件 PPT 作者 宗大华 宗涛 陈吉人 9死锁、系统安全课件(33页珍藏版)》请在金锄头文库上搜索。

1、第9章 死锁、系统安全,本章目录,9.3.3 具体的安全防护措施,9.1 死锁概述,9.1.1 死锁的概念,9.1.2 资源分配图,9.1.3 产生死锁的必要条件,9.2 死锁的预防、避免、检测与恢复,9.2.1 死锁预防,9.2.2 死锁避免,9.2.3 死锁检测与恢复,9.3 系统的安全与保护,9.3.1 安全与保护概述,9.3.2 具体的安全威胁,进程P1: 进程P2: 申请资源A 申请资源B 申请资源B 申请资源A 释放资源A 释放资源B 释放资源B 释放资源A ,9.1 死锁概述,9.1.1 死锁的概念,死锁举例,1.,两个进程P1和P2,执行过程中要用到需互斥使用的资源A和B。两进

2、程的执行框架为下:,.,.,P1的进展,P2的进展,申请B,申请A,申请A,申请B,释放B,释放B,释放A,释放A,死锁区,不可进入的禁区,1,2,3,4,5,6,不可进入的禁区,死锁点,如图所示,给出这两个进程执行时的联合进展情况。,申请资源:若所申请的资源暂时不可用,那么提出申请的进程就只能等待,一直要等到占用该资源的进程释放了资源为止;,2.,死锁的定义,通常,进程以下面的方式使用资源:,.,(1),(2),使用资源;,(3),释放资源。,.,所谓“可抢占资源”,是指可从拥有它的进程手中抢夺过来而不会产生副作用的那些资源;所谓“不可抢占的资源”,是指不能从当前拥有它的进程手中抢夺,否则就

3、会引起不必要的麻烦的那些资源。,.,所谓“死锁”,是指若一个进程集合中的所有进程,都在等待只能由该组进程中的其他进程才能引发的一个事件,那么就说这组进程是死锁的。,“死锁”与“饥饿”是两个不同的概念。在资源分配策略中,一些进程由于它们的优先级不如其他进程高,因此所提出的资源请求被无限期地忽略。这种现象称为“饥饿”。,.,.,死锁是两个或更多的进程占有资源而又请求其他资源时引起的一种状态。某个进程占有着另一个进程请求的资源,同时又请求第二种资源;而另一个进程占有着第二种资源,同时又请求前面进程所占有的资源。如此这般,使几个进程都不能继续执行。,.,定义中所说的“进程都在等待”,只是可能产生死锁的

4、前提,关键是它们在等待谁来引发它们所等待的事件。死锁时,等待引发事件的进程就是该组中的其他进程。由于这组进程中,没有一个进程有能力引发唤醒该进程集合中其他进程的事件,所以它们都只能无限期地僵持在那里而形成死锁。,返回目录,三个进程A、B、C和三个资 源R、S、T(都只一个单元)。现有两种资源申请-释放序列:(1)A申请RB申请SC申请TA申请SB申请TC申请R;(2)A申请RC申请TA申请SC申请RA释放RA释放S。用资源分配图描述这两个申请-释放序列,并对它们做出结论。,9.1.2 资源分配图,可以用“资源分配图”来勾勒系统中各个进程的资源分配情况,从中反映哪个进程已经分配了什么资源,哪个进

5、程由于等候什么资源而处于阻塞。,.,.,资源分配图中,约定圆圈代表进程,方框代表资源,资源结点内的圆点个数表示这种资源可分配的单元数。从一个进程到资源的有向边,表示该进程申请这种资源,但还没有得到;从资源到进程的有向边,表示已把该资源的一个单元分配给了这个进程。如图给出了资源分配图的图例。,请求,Ra,占有,Ra,(a),(b),P1,P1,请求,(c),占有,Rb,请求,占有,请求,Ra,(d),占有,Rb,请求,占有,P1,P2,P1,P2,Ra,例9-1 :,.,A,B,C,R,S,T,(a),A,B,C,R,S,T,(b),A,B,C,R,S,T,(c),A,B,C,R,S,T,(d)

6、,A,B,C,R,S,T,(e),(f),A,B,C,R,S,T,序列(1)的资源分配图如图(a)图(f)所示。此序列实施完后,出现了进程和资源间的循环等待,即三个进程A、B、C死锁了。,.,序列(2)的资源分配图如图(g)图(l)所示。整个序列执行完后,在三个进程间没有死锁发生。,A,B,C,R,S,T,(g),A,B,C,R,S,T,(h),A,B,C,R,S,T,(i),A,B,C,R,S,T,(k),A,B,C,R,S,T,(j),A,B,C,R,S,T,(l),返回目录,“占有并等待”条件:当进程由于申请不到所需资源而等待时,仍占据已分配到的资源。也就是说,进程不是一次性地得到所需的

7、所有资源,而是在占有一部分资源的情况下,允许继续申请新的资源。,在资源分配中,若一组进程间同时存在下面列出的四个条件,那么就可能出现死锁。,9.1.3 产生死锁的必要条件,.,.,(1),互斥”条件:一旦某个特定资源分配给了一个进程使用,那么该进程就独占使用这个资源,其他进程不得使用,直到它被释放为止。,(2),(3),“不可抢占”条件:已分配给进程的资源,别的进程不能强行夺取,只能由占用它的进程自己释放。,(4),“循环等待”条件:系统中存在两个以上的进程,它们组成一个环路,环路中的每个进程都在等待其他进程占用的资源。,为解决死锁问题,可有下面几种对策。,(1),忽略死锁:系统中任凭出现死锁

8、,出现死锁时,就重新启动系统。,(2),预防死锁:上述四个条件是死锁存在的必要条件,通过破坏四个必要条件之一,就可使系统不具备产生死锁的温床(即条件)。,(3),避免死锁:小心对待进程提出的每个资源请求,只有在能确保所提出的资源请求不会招致死锁时,才接受进程提出的资源请求。,(4),检测死锁并恢复:允许系统出现死锁,能通过一定的办法加以发现和恢复。,返回目录,9.2.1 死锁预防,9.2 死锁的预防、避免、检测与恢复,所谓“死锁预防”,就是试图让设计出来的系统里不包含上述四个必要条件中的某一个。既然排除了发生死锁的可能,系统也就不会出现死锁了。,.,1.,破坏“互斥”条件,破坏“互斥”条件,就

9、是在系统里取消互斥。若资源不被一个进程独占使用,那么死锁是肯定不会发生的。,.,.,但一般来说在所列的四个条件中,“互斥”条件是无法破坏的。因此,在死锁预防里主要是破坏其他几个必要条件,而不去涉及破坏“互斥”条件。,2.,破坏“占有并等待”条件,.,破坏“占有并等待”条件,就是在系统中不允许进程在已获得某种资源的情况下,申请其他资源。即要想出一个办法,阻止进程在持有资源的同时申请其他资源。,.,方法一:创建进程时,要求它申请所需的全部资源,系统或满足其所有要求,或么什么也不给它。这是所谓的“一次性分配”方案。,.,方法二:要求每个进程提出新的资源申请前,释放它所占有的资源。这样,一个进程在需要

10、资源S时,须先把它先前占有的资源R释放掉,然后才能提出对S的申请,即使它可能很快又要用到资源R。,3.,破坏“不可抢占”条件,.,破坏“不可抢占”条件,就是允许对资源实行抢夺。,4.,破坏“循环等待”条件,.,破坏“循环等待”条件的一种方法,是将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出。这样做就能保证系统不出现死锁。,1. 输入机 2. 打印机 3. 扫描仪 4. 绘图仪 5. 磁带机 6. CD-ROM,A,B,i,j,A,B,i,j,(a),(b),(c),.,如图(b)所示,假定把不同编号的 资源i和j分配给了进程A和B,那么如

11、果ij, A就不允许再申请资源j,因为这个编号小于A已有资源的编号;如果ij,B就不允许再申请资源i,因为这个编号小于B已有资源的编号。,如图(a)所示,对系统中的5种资源进行了统一编号,进程可以先申请打印机,再申请磁带机,但不能先申请磁带机,再申请打印机,因为那样做不符合规定的资源申请原则。,.,按这样的规则申请资源,不会形成如图(c)所示的循环等待的环路,破坏了“循环等待”的条件。,.,返回目录,9.2.2 死锁避免,1.,“拒绝启动进程”法,.,.,所谓“死锁避免”,是允许系统里存在产生死锁的条件,但对于进程的每次资源申请,都将根据当时资源的分配情况,探测分配结果。只有在探测结果不会有死

12、锁发生时,才正式接受这次资源请求,把资源分配给进程。,拒绝启动进程法:若一个进程对资源的申请会导致死锁,则不启动该进程。,具体做法是考虑有n个进程、m种不同类型资源的系统。定义如下向量和矩阵:,.,(1),系统中每种资源的总量(向量)Resource=R=(R1,R2,Rm);,(2),未分配的每种资源剩余数(向量)Available=V=( V1,V2,Vm);,(3),每个进程对各种资源的最大需求矩阵:,Claim = C =,C11 C12 C1m C21 C22 C2m Cn1 Cn2 Cnm,每个进程已分配的各种资源数矩阵:,(4),Allocation = A =,A11 A12

13、A1m A21 A22 A2m An1 An2 Anm,.,可以看出有以下关系存在:,(1),所有资源或者可分配,或者已经被分配,即:,Rj = Vj +A i j ,对所有的 j,i=1,n,(2),任何一个进程对任何一种资源的申请,都不能超过系统中这种资源的总量,即:,C i j R i ,对所有i,j,(3),分配给任何一个进程的任何一种资源,都不会超过这个进程对该资源的最大需求量,即:,A i j C i j ,对所有i,j,.,有了这些准备工作,就可以给出所谓的“拒绝启动进程”的死锁避免方法,即只有在满足下面的条件:,Rj C(n+1) j +C i j ,对所有的 j,i=1,n,

14、时,才允许启动一个新进程Pn+1,否则拒绝启动。,.,即只有在当前所有进程的最大需求量加上新进程的最大需求量后,系统拥有的各类资源数能够满足它们的要求,那么这才启动一个新的进程。,由于这个“拒绝启动进程”法是建立在所有进程都需要最大资源数的基础之上的,保险系数打得太大,所以不可能是最优的策略。,.,在接到一个进程对资源的请求时,有权根据当前资源的使用情况暂时加以拒绝(即阻塞该进程),但保证在有限的时间内让它得到所需要的资源。,2.,“拒绝分配资源”法,.,.,所谓系统处于“安全状态”,就是至少存在有一个进程的执行序列,能够在有限时间内使所有进程最终都能够运行到结束,不导致死锁;否则,就说系统处

15、于“不安全状态”。,“拒绝分配资源”法即有名的“银行家算法”,它以银行系统所采用的借贷策略为基础建立资源分配的模型。银行只有有限数目的资金(资源),可用来借贷给不同客户(进程)。贷款限额是客户对资金的最大需求量。算法对每个资源申请都进行测试,判断接受申请是否会致使系统进入不安全状态。如果是就拒绝分配;如果接受申请后系统仍然是安全的,那么就予以分配。,.,为实行银行家算法,对进程提出的要求是:,(1),必须预先说明自己对资源的最大需求量;,(2),(3),只能一次一个地申请所需要的资源;,如果已获得资源的最大需求量,那应在有限的时间内使用完毕,并归还系统。,.,为实行银行家算法,系统的承诺如下:,(1),若一个进程对资源的最大需求量没有超过该资源的总量,那么必须接纳这个进程,不得拒绝它;,(2),在“能执行完”标志为0的进程中重复以上两步,直到找不到资源还需数小于系统剩余资源数的进程时为止。,单种资源的银行家算法,.,单种资源银行家算法:,将所有进程的 “能执行完”标志清0,假定接受该请求, 把资源分配给进程,将系统当前所有剩余资源 与”能执

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号