进程管理lecture22.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Thread * Introducing Thread * 操作系统进程管理 张其亮 * OutLine 死锁概念 死锁解决策略 * Dead Lock 是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都无法向前推进,死锁是计算机系统和进程所处的一种状态。 定义 * Dead Lock Any Questions in running? * Dead Lock Same Problems * DeadLock Conditions 互斥条件:资源在使用上具有独占性、互斥性 不可剥夺条件:一个资源仅能被占有它的进程所释放,而不能被其他进程剥夺 部分分配条件(请求和保持条件):一个进程在请求新的资源的同时,保持对某些资源的占有 环路等待条件:存在一个进程的环路链,链中每一个进程占用有着某个或某些资源,又在等待链中的另一个进程占有的资源。 * Dealing DeadLock 死锁的预防 死锁的避免 死锁的检测 死锁的恢复 * Prevent 破坏部分分配条件: 方法 资源一次性分配: 进程在运行中需要的全部资源,要么全部分配,要么一个都不分配;进程运行中,不能再申请资源; * Prevent 破坏环路条件: 方法 资源有序分配: 所有的进程都只能严格地按照编号递增(或递减)的次序去请求资源,亦即,只有低编号的资源要求满足后,才能对高编号资源提出要求 * Prevent 1 为系统中各种类型的资源所分配的序号必须相对稳定,这就限制了新设备类型的增加 2 作业实际使用资源的顺序与系统规定的顺序不同而造成资源的浪费; 缺点: * Prevent 破坏不可剥夺条件: 方法 可剥夺资源: 当一个已经保持某些资源的进程,再提出新的资源的申请而不能立即得到满足时,必须释放已经保持了的所有资源 * Avoid DeadLock 安全状态: 在某个时刻,系统能按某种顺序,如〈P1,P2,┉Pn〉来为每个进程分配需要的资源,直至最大需求,使每个进程都能顺利地完成。则称此时的系统状态为安全状态。〈P1,P2,┉Pn〉为安全序列。 不安全状态: 在某个时刻,系统不存在这样一个安全序列,则称此时的系统状态为不安全状态。 系统 思想 资源的动态分配过程中,用某种方法防止系统进入不安全状态。 * Example 例:假定系统有三个进程P1、P2、P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。设在T0时刻,进程P1、P2和P3已经获得5台、2台和2台,还有3台空闲没有分配。 进程 最大需求 已分配 可用 P1 10 5 3 P2 P3 4 2 2 9 T0时刻系统时安全的。这时存在一个安全序列P2,P1,P3 * Banker’s Algorithm 银行家算法是最有代表性的避免死锁算法,是Dijkstra提出的银行家算法。这是由于该算法能用于银行系统现金贷款的发放而得名。 数据结构 算法 思想 试探性分配资源,检查安全性,不安全则分配无效,安全则正式分配资源 * Structure 一、银行家算法中的数据结构 1 可利用资源向量Available 是一个含有m个元素,其中的每一个元素代表一类可利用的资源数目,其初值是系统中所配置的该类全部可用资源数目。如果Available[j]=k,?表示系统中现有Rj类资源k个。 2 最大需求矩阵Max 是一个含有n?m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k,?表示进程i需要Rj类资源的最大数目为k。 * Structure 3 分配矩阵Allocation 是一个含有n?m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation(i,j)=k,?表示进程i当前已分得Rj类资源k个。 4 需求矩阵Need 是一个含有n?m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need(i,j)=k,?表示进程i还需要Rj类资源k个,方能完成其任务。 Need(i,j)= Max(i,j)-Allocation(i,j) * Algorithm 二、银行家算法 设Requesti是进程Pi的请求向量,如果进程Pi需要K个Rj类资

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档