- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
资源死锁[精选]
第6章 死锁 多道程序的并发执行可以改善系统的资源利用率,但也可能导致死锁的发生。 6.1 死锁的基本概念——1.死锁 死锁是指多个进程因竞争系统资源或相互通信而造成的一种僵局,若无外力作用,这些进程都将永远不能向前推进。如:(设S1,S2的初值为1,1) 6.1 死锁的基本概念——1.死锁 日常生活中的死锁例 假设一条河上有一座独木桥,若桥两端的人相向而行…… 6.1 死锁的基本概念——1.死锁 死锁产生的原因是: 竞争资源:多个进程竞争资源,而资源又不能同时满足其需求。 进程推进顺序不当:进程申请资源和释放资源的顺序不当。 6.1 死锁的基本概念——1.死锁 可剥夺和非剥夺资源 可剥夺资源是指某进程获得这类资源后,该资源可以被其他进程或系统剥夺。如CPU,存储器。 非剥夺资源又称不可剥夺资源,是指系统将这类资源分配给进程后,再不能强行收回,只能在进程使用完后主动释放。如打印机、读卡机。 6.1 死锁的基本概念——1.死锁 竞争非剥夺资源引起的死锁: 例如,打印机R1和读卡机R2供进程P1和P2共享。P1占有R1, P2占有R2;若P1申请R2阻塞,P2申请R1阻塞。 6.1 死锁的基本概念——1.死锁 永久性资源和临时性资源 永久性资源:可顺序重复使用的资源。如打印机。 临时性资源:由一个进程产生,被另一个进程使用短暂时间后便无用的资源,又称为消耗性资源。如消息。 6.1 死锁的基本概念——1.死锁 竞争临时性资源引起的死锁: 如消息通信按下述顺序进行,则不会发生死锁: P1:...Release(S1);Request(S2);... P2:...Release(S2);Request(S1);... 若按下述顺序,则可能发生死锁: P1:... Request(S2);Release(S1);... P2:... Request(S1);Release(S2);... 6.1 死锁的基本概念——1.死锁 进程推进顺序不当引起的死锁 当进程P1、P2共享资源A、B时,若推进顺序合法则不会产生死锁,否则会产生死锁。 合法的推进路线:①②③ 不合法的推进线路:④ 6.1 死锁的基本概念——1.死锁 死锁产生的必要条件 互斥条件:在一段时间内某资源仅为一个进程所占有。 请求和保持条件:又称部分分配条件。当进程因请求资源被阻塞时,已分配资源保持不放。 不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走。 循环等待条件:死锁发生时,存在一个进程资源的循环。 6.1 死锁的基本概念——1.死锁 注意 死锁是因资源竞争造成的僵局 死锁至少涉及两个进程 死锁与部分进程及资源相关 6.1 死锁的基本概念——2. 死锁的表示 系统死锁可以利用资源分配图描述。资源分配图又称进程—资源图,是一个二元组G =(V,E),其中: V是结点集,被分成两个互斥的子集:进程结点子集P={p1,p2,…,pn},资源结点子集R={r1,r2,…,rm}。 E是边集,它连接着P中的一个结点和R中的一个结点,e=pi,rj是资源请求边,e=rj,pi是资源分配边。 通常,用圆圈代表一个进程,用方框代表一类资源,方框中的一个点代表一类资源中的一个资源。 6.1 死锁的基本概念——2. 死锁的表示 6.1死锁的基本概念——3.死锁判定法则 基于资源分配图的定义,可以给出以下判断死锁的法则: 如果资源分配图中未出现任何环,则此时系统内无死锁。 如果资源分配图中出现了环,且此环中的每类资源只有1个,则此时系统有环就有死锁。此时环是系统死锁的充要条件。 如果资源分配图中出现了环,且此环中的每类资源个数不全为1,则环的存在只是死锁的必要条件。 6.1死锁的基本概念——3.死锁判定法则 (补充)将资源分配图简化可以检测系统状态S是否为死锁状态,方法如下: 在资源分配图中,找出一个既不阻塞又非孤立的进程结点pi,进程pi获得了它所需要的全部资源,能运行完成然后释放所有资源。这相当于消去pi的所有请求边和分配边,使之成为孤立结点。 进程pi释放资源后,可以唤醒因等待这些资源而阻塞的进程,从而可能使原来阻塞的进程变为非阻塞进程。 在进行一系列化简后,若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;若不能使该图完全化简,则称该图是不可完全简化的。 6.1死锁的基本概念——3.死锁判定法则 可以证明:所有的简化顺序将得到相同的不可简化图。 S为死锁状态的条件是当且仅当S状态的资源分配图是不可完全简化的。该条件称为死锁定理。 资源分配图简化例1 资源分配图简化例2 下图是否存在死锁? 资源分配图简化例3 下图是否存在死锁? 6.1死锁的基本概念 ——4.解决死锁问题的基本方法 用于处理
文档评论(0)