操作系统课件6-17 死锁的检测.pdf

操作系统课件6-17 死锁的检测.pdf

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统 6 并发程序设计– 6.6 死锁 6.6.4 死锁的检测 死锁的检测 解决死锁问题的另一条途径是死锁检 测方法 这种方法对资源的分配不加限制,但 系统定时运行一个“死锁检测”程序, 判断系统内是否已出现死锁,若检测 到死锁则设法加以解除 死锁的检测 检测的一种方法:可设置两张表格来记录进 程使用资源的情况 等待资源表记录每个被阻塞进程等待的资源  占用资源表记录每个进程占有的资源 进程申请资源时,先查该资源是否为其它进 程所占用;若资源空闲,则把该资源分配给 申请者且登入占用资源表;否则,则登入进 程等待资源表 死锁的检测 资源 占用进程 r1 P1 进程 等待资源 r2 P2 P1 r1 r3 P3 P2 r2 r4 P4 P3 r3 r5 P5 … … … … 死锁的检测 死锁检测程序定时检测这两张表,若有进程 Pi等待资源rk,且rk被进程Pj 占用,则说Pi 和Pj具有“等待占用关系”,记为W(Pi, Pj) 死锁检测程序反复检测这两张表,可以列出 所有的“等待占用关系” 如果出现W(Pi, Pj), W(Pj, Pk), ……, W(Pm, Pn), W(Pn, Pi)时,显然,系统中存在一组循 环等待资源的进程:Pi, Pj, Pk, ……, Pm, Pn, 也就是说出现了死锁 死锁检测的数据结构 把两张表格中记录的进程使用和等待资源的情况 用一个矩阵A来表示 进程 P1 P2 Pn 进程 P1 b11 b12 bn2 P2 b21 b22 bn2 ... ... ... ... Pn bn1 bn2 bn2 1 当Pi等待被Pj 占用的资源时 其中bij= 0 当Pi与Pj不存在等待占用关系时 死锁检测的算法 死锁检测程序可用Warshall 的传递闭包算法 检测是否有死锁发生,即对矩阵A构造传递 闭包A*[bij] A*[bij] 中的每个bij是对A[bij]执行如下算法: for k:=1 to n do for i:=1 to n do for j:=1 to do bij:= bij  (bik  bkj) 死锁检测后的解决办法 可以采用重新启动进程执行的办法,恢 复工作应包含重启动一个或全部进程, 以及从哪一点开始重启动 全部卷入死锁从头开始启动,但这样的 代价是相当大的 在进程执行过程中定时设置校验点,从 校验点开始重执行 中止一个卷入死锁的进程,以后重执行

文档评论(0)

k12教育文档 + 关注
实名认证
服务提供商

本人专注于k12教育,英语四级考试培训,本人是大学本科计算机专业毕业生,专注软件工程计算机专业,也可承接计算机专业的C语言程序设计,Java开发,Python程序开发。

1亿VIP精品文档

相关文档