- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter7Deadlocks死锁
P0 Allocation Request P1 P2 Available P3 P4 A B C A B C A B C 0 1 0 2 0 0 3 0 3 2 1 1 0 0 2 0 0 0 2 0 2 0 0 0 1 0 0 0 0 2 0 0 0 P0,P2,P3,P1,P4 will result in Finish[i]=true for all i. Suppose now Request2=(0,0,1) The system is now deadlocked. Although we can reclaim the resources held by process P0, the number of available resources is not sufficient to fulfill the requests of the other processes. 0 0 1 0 1 0 0 0 0 3. Detection-Algorithm Usage When should we invoke the detection algorithm? ① How Often is a deadlock likely to occur? ② How many processes will be affected by deadlock when it happens? If deadlocks occur frequently, then the detection algorithm should be invoked frequently. Resources allocated to deadlocked processes will be idle until the deadlock can be broken. The number of processes involved in the deadlock cycle may grow. invoke the deadlock-detection algorithm every time a request for allocation cannot be granted immediately Deadlocks occur only when some process makes a request that cannot be granted immediately. This request may be the final request that completes a chain of waiting processes. In this case, we can identify not only the set of processes that is dead-locked, but also the specific process that caused the deadlock. If there are many different resource types, one request may cause many cycles in the resource graph, each cycle completed by the most recent request and caused by the one identifiable process. A less expensive alternative is simply to invoke the algorithm at less frequent intervals for example, once per hour, or whenever CPU utilization drops below 40 percent. (A deadlock eventually cripples system throughput and will cause CPU utilization to drop.) If the detection algorithm is invoked at arbitrary points in time, there may be many cycles in the resource graph. We would generally not be able
文档评论(0)