- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机操作系统 第4章 死锁处理 本章知识点 4.1 死锁问题概述 4.2 死锁处理 4.3 哲学家用餐问题 内容 死锁的现象 何为死锁 死锁是由于进程间,相互竞争系统资源或通信,而引起的一种阻塞现象。 如果操作系统不采取特别的措施,这种阻塞将永远存在,最终可能导致整个系统处于瘫痪状态。 因此,死锁问题是操作系统中需要考虑的重要问题。 资源的概念 资源的分类: “可重用资源”,“消耗型”资源 “可抢占”资源, “不可抢占”资源 “共享”资源, “独享”资源 资源的共同性质: 一个进程由于请求一个资源而未被满足,从而该进程被阻塞。 资源的定义 “一个逻辑资源”(简称资源),是指可以引起一个进程进入等待状态的事物。 4.1.1死锁的形成--可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个进程P1和P2,竞争必须互斥访问的磁盘文件D和磁带机T,程序重复地执行以下操作: 4.1.2死锁的形成--消耗型资源 下面是使用消耗型资源而发生死锁的例子: P1 P2 … … Receive(P2, M); Receive(P1, Q); … … Send(P2, N); Send(P1, R); 如果Receive阻塞就会发生死锁。 实际应用中导致死锁的事件的组合很少出现,有时会在很长的运行之后才出现死锁。 图4.1进程推进的顺序 . 4.1.3 产生死锁的条件 系统产生死锁有四个必要条件: 互斥条件(独占): 一个资源一次只能被一个进程所使用 占用并等待条件(部分分配):一个进程已占有了分给它的资源,但仍然要求其 它资源. 非抢占条件:一个资源仅能被占有它的进程所释放,而不能被别的进程强行强占. 循环等待条件:在一个进程链中,每个进程至少占用一个其他进程所必需的资源,从而形成一个等待链. 4.1.3 产生死锁的条件 所有四个条件必须同时满足才会出现死锁。 四个条件并不完全独立 循环等待条件意味着占有并等待条件 分开考虑这些条件是有用的(参见后面的死锁防止) 资源分配图 死锁问题可以用称为系统资源分配图的有向图进行更为精确地描述。 资源分配图示例 资源分配图 如果资源分配图出现环(有循环) 如果每类资源只有一个实例,则定会死锁。 如果每类资源有多个实例,则可能会死锁。 没有环,就不会死锁。 资源分配图示例 资源分配图示例 4.2 死锁处理 破坏产生死锁的四个必要条件之一, 死锁的预防:预先静态分配法,有序资源使用法 死锁的避免:银行家算法 或者允许死锁产生,但当死锁发生时能检测出死锁,并有能力实现恢复。 死锁的检测:资源分配图 死锁的恢复:强制性撤消进程,挂起和解挂机构 4.2 死锁处理 系统不发生死锁,必须设法破坏产生死锁的四个必要条件之一, 或者允许死锁产生,但当死锁发生时能检测出死锁,并有能力实现恢复。 4.2.1 死锁预防 破坏死锁的必要条件之一,消除产生死锁的可能性,严格地防止死锁的出现。 死锁的必要条件: 防止死锁发生 4.2.1 死锁预防 1. 互斥 破坏第一个条件,使资源可以同时访问而不是互斥使用,这是个简单的方法,但在进程并发执行的情况下,往往有许多资源是不能同时访问的(写操作),所以这种做法不是都可行的。 只能对可共享的资源(如只读文件)这样做。 不适合非共享资源,例如为写而打开的文件,打印机等。 4.2.1 死锁预防 2. 破坏“占用并等待”条件(部分分配) 采用资源的静态预分配策略,一次申请所有的资源。 优点: 简单安全,易于实施; 在进程的活动较单一时性能好; 无须抢占。 缺点: 资源利用率低; 启动进程慢,效率低; 有“饥饿”现象存在。 4.2.1 死锁预防 3. 破坏“非抢占”条件 方法1:若拥有某种资源的进程,在申请其他资源时遭到拒绝,则它必须释放其占用的资源,以后再申请。 方法2:当一进程申请的资源正被其他进程占用时,可通过操作系统抢占该资源,此方法在两个进程优先级相同时,不能防止死锁。 优点: 对状态容易保留和恢复的资源较为方便。 缺点: 实现困难,恢复现场代价高; 导致过多的不必要抢占; 易导致循环重启。 4.2.1 死锁预防 4. 破坏“循环等待 ”条件 采用资源定序方法,将所有资源按类型线性排队,并按递增规则编号。进程只能以递增方式申请资源,因而不会导致循环等待。 优点: 资源的申
文档评论(0)