操作系统Chapter06_OSConcurrency知识讲稿.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统Chapter06_OSConcurrency知识讲稿.ppt

* Deadlock Avoidance Logic * Request[*] 是进程Pi的请求向量,若Request[j] = K,表示进程Pi需要K个j类资源。当进程发出请求后,系统将进行下述步骤的检查: 看请求的资源数是否已超过它的需求最大数,如果超过则出错,否则到步骤2。 如果请求的资源数小于等于尚未分配的资源数,则转步骤3,否则表示尚无足够的资源可分配,Pi必须要等待。 系统试探性的把进程需要的资源分配给它,并修改几个数据结构的值: A矩阵和Available向量 系统执行安全性算法safe(),检查这次资源分配以后,系统是否处于安全状态,如果安全,则实施正式分配,否则,将试探分配作废,恢复原来的资源分配状态,并让Pi等待。 银行家算法 -资源分配算法描述 * Deadlock Avoidance Logic * 这个算法允许存在死锁必要条件中的前三个。这样它与预防死锁的条件相比,限制条件少了,资源利用程度提高了。 这个算法要求进程数保持固定不变。 这个算法只能保证所有进程在有限的时间内得到满足。 由于要寻找一个安全序列,实际上增加了系统的开销。 银行家算法小结 * 6.4 Deadlock Detection * Strategies once Deadlock Detected Abort all deadlocked processes Back up each deadlocked process to some previously defined checkpoint, and restart all process Original deadlock may occur Successively abort deadlocked processes until deadlock no longer exists Successively preempt resources until deadlock no longer exists * Strengths and Weaknesses of the Strategies * Dining Philosophers Problem Dijkstra 1965 * Dining Philosophers Problem * Dining Philosophers Problem * Concurrency: Deadlock and Starvation Chapter 6 * 6.1 Deadlock 定义:死锁是一组并发进程,它们共享系统的某些资源,该组进程中每个进程都已经占有了部分资源,但都在不释放自己占有资源的情况下要求获得被其他进程已经占有的资源,从而造成它们相互等待,永远不能继续推进的状态。 No universal efficient solution Due to: Involve conflicting needs for resources by two or more processes Resources are not enough Improper Proceeding of processes * * 进程P 进程Q … … semWait(A) semWait (B) … … semWait(B) semWait(A) … … semSignal(A) semSignal(B) … … semSignal(B) semSignal(A) … … * * Example of Deadlock -Reusable Resources Sequence: P0 P1 q0 q1 P2 q2…… * Example of Deadlock - Consumable Resources Deadlock occurs if receive is blocking P1 . . . . . . Receive(P2); Send(P2, M1); P2 . . . . . . Receive(P1); Send(P1, M2); * 6.1.3 Resource Allocation Graphs Directed graph that dep

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档