- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
孙钟秀操作系统第三章同步、通信与死锁2课件
3.5 死锁;例2:系统有一台打印机和一台扫描仪,进程P1、P2并发执行,在执行过程中均需使用打印机和扫描仪。;1.死锁的定义;3.产生死锁的必要条件;4.处理死锁的基本方法;(2)死锁避免
不事先采取限制措施去破坏产生死锁的条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。
只需事先施加较弱的限制条件,可获得较高的资源利用率和系统吞吐量,但在实现上有一定难度。在较完善的系统中常用此方法。;(3)检测死锁
事先并不采取任何限制,允许死锁发生,但可通过检测机构及时检测出死锁的发生,并精确确定与死锁有关的进程和资源。;二、死锁防止;破坏条件2(占有和等待条件);破坏条件3(不剥夺条件);破坏条件4(循环等待条件);三、死锁避免;1.系统状态;例:有三个进程p1,p2,p3,有12台磁带机。P1共要求10台,P2共要求4台,P3共要求9台。
T0时刻:p1,p2,p3分别获得5、2、2台,尚有3台空闲。系统状态见下图:;T1时刻:P3请求1台磁带机,若系统分给它一台,分配后系统状态如下图。;死锁避免实质:
允许进程动态地申请资源,但系统在资源分配前先检查此次分配后系统的安全性,若分配后系统仍处于安全状态,则将资源分配给进程,否则不分配,令进程等待。
;2.银行家算法;(1)银行家算法中的数据结构
考虑一个系统有n个进程(P1,P2,..,Pn)和m类资源(r1,r2,…,rm)
a.每类资源总数向量Resource
Resource=(R1,R2,…,Rm)
b.每类资源可用数向量Avilable
Avilable=(V1,V2,…,Vm);d.分配矩阵Allocation—表示进程当前已分得的资源数,Aij表示进程Pi已分到rj类资源的个数.;(2)银行家算法描述;(3)安全性测试算法;例:
如果系统中共有五个进程(P0,P1,P2,P3,P4)和A、B、C三类资源;A类资源共有10个,B类资源共有5个,C类资源共有7个。
T0时刻,系统目前情况如下:
;(1)T0时刻的安全性?
系统处于安全状态,因为存在安全序列{P1,P3,P4,P2,P0}。;(2)进程P1申请资源request1=(1,0,2),
系统按银行家算法进行检查:
a.request1(1,0,2)≤Need1(1,2,2)
b.request1(1,0,2)≤Available(3,3,2)
c. 进行试探性分配,修改Available、Allcation1和need1,得到新状态. ;d.判定新状态是否安全?可执行安全性测试算法,找到一个安全序列{P1,P3,P4,P0,P2} ,所以分配后处于安全状态,可正式把资源分配给进程P1;;(3)进程P4请求资源request4(3,3,0),
系统按银行家算法检查:
a.request4(3,3,0)≤Need4(4,3,1)
b.request4(3,3,0)Available(2,3,0)
由于可用资源不足,申请被系统拒绝,令进程P4等待。;(4)进程P0请求资源request0(0,2,0),
系统按银行家算法检查:
a.request0(0,2,0)≤Need0(7,4,3)
b.request0(0,2,0)≤ Available(2,3,0)
c.系统进行试探性分配:修改相关数据。;以上讨论的各种处理死锁的技术均是事先预防的方法,保证系统不会发生死锁。
死锁的检测和解除技术允许死锁发生,操作系统不断监视系统进展情况,判断死锁是否发生,一旦死锁发生则采取专门的措施,解除死锁并以最小的代价恢复操作系统运行。;1.死锁的检测;例:;a.如果进程-资源分配图中无环路,则此时系统没有发生死锁。
b.如果进程-资源分配图中有环路,且每个资源类中仅有一个资源,则系统中发生了死锁,此时,环路是系统发生死锁的充要条件,环路中的进程便为死锁进程。
c.如果进程-资源分配图中有环路,且涉及的资源类中有多个资源,则环路的存在只是产生死锁的必要条件而不是充分条件。未必发生死锁。;进程-资源???配图化简
在进程-资源分配图中找出一个即不阻塞又非独立的进程,消去此进程的所有请求边和分配边,成为孤立结点。重复上述过程,经一系列简化,使所有进程成为孤立结点,则该图是可完全简化的;否则则称该图是不可完全简化的。
死锁定理
系统为死锁状态的充分条件是:当且仅当该状态的进程-资源分配图是不可完全简化的。该充分条件称为死锁定理。;二、死锁的解除
文档评论(0)