- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
生产围棋的工人不小心把相等数量的黑子和白子混在一块,
生产围棋的工人不小心把相等数量的黑子和白子混在一块,该系统由两个并发执行的进程组成,系统功能如下: (1)进程A专门拣黑子,进程B专门拣白子; (2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子 (3)当一个进程拣一个子后,必让另一个进程拣一个子 试用同步原语管理进程,使其能正确实现上述功能。(假定系统启动时先让进程A拣子) 第七章 死锁(Deadlock) 1、死锁问题的提出 2、死锁的必要条件 3、死锁的预防 4、死锁的避免和银行家算法 5、死锁的检测 6、死锁的恢复 7.1 死锁问题的提出 死锁是指计算机系统和进程所处的一种状态。 常定义为:在系统中的一组进程,由于竞争 系统资源或由于彼此通信而永远阻塞,我们 称这些进程处于死锁状态。 7.2 死锁的必要条件 资源的分类 死锁的必要条件 一、资源的分类 可抢占资源、不可抢占资源 共享资源、独享资源 可再次使用的永久资源、消耗性的临时资源 二、死锁的必要条件 互斥条件:一个资源每次只能给一个进程使用 不可抢占条件:资源申请者不能强行从资源占有者手中 夺取资源,资源只能由占有者自愿释放 部分分配条件:一个进程在申请新资源的同时保持对原 有资源的占有 循环等待条件:存在一个进程等待队列 {P1 , P2 , … , Pn}, 其中P1等待P2占有的资源,P2等待P3占有 的资源,…,Pn等待P1占有的资源,形成 一个进程等待环路 7.3 死锁的预防 在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一 预防死锁是一种较可取 的方法,但资源的利用率较低。 1、破坏互斥条件 互斥是正确使用非共享资源的唯一手段。 故不能通过取消互斥来预防死锁。 2、破坏不可抢占条件 适用于状态容易保护,稍后又容易恢复的 资源。如CPU,内存。 3、破坏部分分配条件 采用预先静态分配法:每个进程执行前,一次分配其所有资源 允许进程仅当自己未占有资源时才申请资源。 4、破坏循环等待条件 有序资源分配 为使“循环等待”条件不满足,我们把所有 资源按类型进行排队,并赋予不同的编号。 申请 按序号递增次序进行 7.4 死锁的避免和银行家算法 死锁避免 安全状态和不安全状态 银行家算法数据结构 银行家算法 例 单资源的银行家算法 假定某银行家有一笔资金可供一批顾客借用, 并假定: 每个顾客预知他的最大借款总额,且不超过银行家拥有的可用资金总和。 每次借款以一万元为单位。 每当顾客提出借口请求,银行家可立即给予,或让顾客等一段时间。 只有当顾客达到他的预定最大借款额时,他才在有限时间依次归还。 二、安全状态和不安全状态 安全状态:指系统能按某种进程顺序如 P1,P2···PN 为每个进程分配资源直至最大需求。 不安全状态:在系统中不存在这样的序列。 三、银行家算法数据结构 Available:一个长度为m的向量,表示每类资源的可用数目。 如果Available[j]=k,表明Rj类资源有k个。 Max:一个m×n矩阵,定义每个进程的最大资源需求数,如果Max[i,j]=k,表示进程i需要Rj类资源有k个。 Allocation:一个m×n矩阵,定义当前分配给每个进程每类资源的数目。如果Allocation [i,j]=k,则表示进程I获得:Rj类资源有k个 Need:一个m×n矩阵,表示每个进程还需多少资源。 如果 Need[i,j]=k,表示进程I还需要Rj类资源有k个。表示进程I需要Rj类资源有k个 四、银行家算法 设:Requesti是进程Pi的请求向量 当Pi发出资源请求后,系统按如下步骤进行检查: 1、如果Requesti ?Needi 则go to 2,否则认为出错。 2、如果Requesti ? Available 则go to 3,否则表示无足够资源, Pi等待。 3、系统进行试探分配,并求该相应数据结构数据 Available:= Available- Requesti Allocationi:= Allocationi+ Requesti Needi:= Needi-Requesti 4、系统执行安全性算法:安全,把资源分配给Pi,否则, Pi等待。 安全性算法 1、设Work 和 Finish是长度分别为m,n的向量 初始值Work:=Available ,Finishi:= False(所有) 2、 从进程集合中找到一个能满足下列条件的进程
您可能关注的文档
- 温室蔬菜连作障碍综合治理技术研究与产业化示范.ppt
- 浙江省宁波市高校(技师学院)毕业生就业和创业政策解读.ppt
- 湖北初中三年级第4单元第2课《春》.ppt
- 湘教版《八年级中国的河流——黄河》公开课.ppt
- 浅谈动画中国动画与外国动画的比较.ppt
- 湘教版23流域综合治理与开发—以田纳西河流域为例(第二课时).ppt
- 湘教版八年级地理下册东北地区的产业分布.ppt
- 湖南中小河流域治理石笼防护系列.ppt
- 湘教版地理选修三41做合格的旅游者.ppt
- 激光原理课件22wsg.ppt
- 山东省威海乳山市银滩高级中学2022-2023学年高三9月月考物理试题.docx
- 山东省日照第一中学2020届高三上学期期中考试英语试题 Word版含答案.doc
- 山东省实验中学2023届高三第二次诊断考试语文试题.docx
- 山东省威海乳山市银滩高级中学2023届高三上学期9月月考日语试题 word版无答案.docx
- 山东省实验中学2023届高三第二次诊断考试地理试题.docx
- 山西省运城市2022-2023学年高三年级入学新生教学质量监测考试地理试题.docx
- 山东省实验中学2023届高三第二次诊断考试历史试题.docx
- 山东省实验中学2019届高三第二次诊断性考试数学试题(文).doc
- 山东省济南市历城第二中学2020届高三上学期期中考试化学试题 Word版含答案.doc
- 山东省威海乳山市银滩高级中学2022-2023学年高三9月月考政治试题.docx
文档评论(0)