网站大量收购独家精品文档,联系QQ:2885784924

计算机 操作系统ch2 (6).ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个资源类型的多个实例 : Available :一个向量的长度m代表每一种资源类型有效的数目 Allocation: 一个n x m 的矩阵定义了当前分配的每一种资源类型的实例数目 Request: :一个n x m 的矩阵表明了当前的进程请求。如果Request[ij]=k,那么进程Pi请求k个资源Rj的实例 检测算法 1. 让Work和Finish作为长度为m和n的向量初始化 (a) Work := Available (b) For i = 1,2, …, n, if Allocationi ? 0, then Finish[i] := false;otherwise, Finish[i] := true. 2. 找到满足下列条件的下标i (a) Finish[i] = false (b) Requesti ? Work 如果没有这样的i存在,转4 3. Work := Work + Allocationi Finish[i] := true 转 2. 如果有一些i, 1 ? i ? n , Finish[i] = false, 则系统处在死锁状态。而且, 如果 Finish[i] = false, 则进程 Pi 是死锁的。 算法需要m x n2 次操作来判断是否系统处于死锁状态 检测算法的例子 五个进程Pn到P4,三个资源类型A(7个实例),B(2个实例),C(6个实例) 时刻Tn的状态 Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 对所有i,序列 P0, P2, P3, P1, P4 将导致Finish[i] = true。 例子(续) P2请求一个额外的C实例 Request A B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 系统的状态? 可以归还Pn所有的资源,但是资源不够完成其他进程的请求 死锁存在,包括进程P1,P2,P3和P4 检测算法的用法 何时及多长时间的调用取决于 死锁可能发生的频度 有多少进程可能需要被回滚 每一个独立的环需要一个 如果检测算法被随意的调用,可能图中存在很多的环以至于我们无法判断是哪一个进程引起了死锁的发生 从死锁中恢复:进程终止 中断所有的死锁进程 一次中断一个进程直到死锁环消失 应该选择怎样的中断顺序? 进程的优先级 进程需要计算多长时间,以及需要多长时间结束 进程使用的资源 进程完成还需要多少资源 多少个进程需要被中断 进程是交互的还是批处理 从死锁中恢复:资源优先级 选择一个:最小化代价 回退:返回到安全的状态,然后重新开始进程 饥饿:同样进程的可能总是被选中 综合死锁处理方式 把三种方式组合起来 预防 避免 检测 允许使用优化的方式来使用系统中的资源 把资源划分为不同的等级 对每一类使用适当的技术来处理死锁 6.* Silberschatz, Galvin and Gagne ?2005 Operating System Concepts – 7th Edition, Feb 8, 2005 编写:李培峰 内容 死锁问题 系统模型 死锁特征 处理死锁的方法 预防死锁 死锁避免 死锁检测 死锁恢复 死锁问题 一组等待的进程,其中每一个进程都持有资源,并且等待着由这个组中其他进程所持有的资源 例如 系统有两个磁带设备 进程P1和P2各占有一个磁带设备并且实际需要两个磁带 信号量A,B初始化为1 P1 P2 wait (A); wait(B) wait (B); wait(A) 过桥的例子 只能一个方向通行 桥的每一个部分都可以看成资源 如果死锁发生,它可以由一辆车返回而解决,抢占资源并回退 如果死锁发生,可能很多车都不得不返回 有可能产生饥饿 系统模型 资源类型 R1, R2, . . ., Rm CPU周期,内存空间,I/O设备 每一种资源Ri 有Wi 种实例 每一个进程通过如下方法来使用资源 申请 使用 释放 死锁的特性 互斥:一次只有一个进程可以使用一个资源 占有并等待:一个至少持有一个资源的进程等待获得额外的由其他进程所持有的资源 不可抢占:一个资源只有当持有它的进程完成任务后,自由的释放 循环等待:等待资源的进程之间存在环 {P0, P1, …, P0} P0 等待P1占有的资源, P1等待P2占有的资源, …, Pn–1等待Pn占有的资源, P0等待Pn占有的资源 四个条

文档评论(0)

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

文档来源于网络

1亿VIP精品文档

相关文档