第11课进程间的制约关系(死锁问题).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文档。上传文档
查看更多
第11课进程间的制约关系(死锁问题)

操作系统 Lecture 11 死锁 今日目标 死锁 死锁的基本概念 死锁产生的必要条件 死锁的预防 死锁的避免 死锁的定义 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到资源,这种现象称为进程死锁,这一组进程就称为死锁进程。 关于死锁的一些概念 参与死锁的进程最少是两个 (两个以上进程才会出现死锁) 参与死锁的进程至少有两个已经占有资源 参与死锁的所有进程都在等待资源 注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。 回顾:生产者-消费者问题中产生的死锁 P、V信号量解法中,为什么把同步的p和互斥的p交换顺序后会产生死锁? 生产者-消费者问题 P: 生产产品; P(S1); P(mutex) 送产品到缓冲区; V(mutex) V(S2); Q: P(S2); P(mutex) 取缓冲区中产品; V(mutex) V(S1); 消费产品; 生产者-消费者问题 P: 生产产品; P(mutex); P(S1); 送产品到缓冲区; V(mutex) V(S2); Q: P(S2); P(mutex) 取缓冲区中产品; V(mutex) V(S1); 消费产品; 当缓冲区满时 生产者-消费者问题 P: 生产产品; P(mutex); P(S1); 送产品到缓冲区; V(mutex) V(S2); Q: P(S2); P(mutex) 取缓冲区中产品; V(mutex) V(S1); 消费产品; 死锁产生的必要条件 互斥条件 非剥夺条件 占用并等待 循环等待 解决死锁的方法 不考虑此问题: 忽略死锁(鸵鸟政策) 不让死锁发生: 静态策略 设计合适的资源分配算法,不让死锁发生---预防死锁 动态策略 即将进入不安全状态时才加以限制---避免死锁。 让死锁发生:检测死锁并恢复 死锁预防 在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一 互斥条件 非剥夺条件 占用并等待 循环等待 破坏“部分分配(占用并等待)条件” 采用的办法是系统对进程实行一次性分配方案,即一个进程总是合盘提出总的资源需求,系统要么分配给它所需要的全部资源,要么一个也不给它。 缺点: 在许多情况下,一个进程在执行之前不可能提出它所需要的全部资源。 资源利用率可能比较低(许多资源可能已分配很长时间都没有用。) 无论所需资源何时用到,一个进程只有在所有要求资源都得到满足之后才开始执行,所以可能发生饥饿(一个进程如果需要多个常用资源则可能永久等待) 降低了进程的并发性 破坏“非剥夺条件” 采用的办法是允许别的进程从占用进程手中强抢所占用的资源。 破坏“循环等待条件” 采用的办法是把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否则操作系统不予分配. 假定把不同编号的资源i和j分配给了进程A和B。那么如果ij,A就不允许再申请资源j;如果ij,B就不允许再申请资源 i 。这样就形成不了资源申请的循环等待环路 。 (哲学家就餐问题) 死锁的避免 基本思想:一般情况下它对进程的资源申请不加限制,只是在即将进入不安全状态时才加以限制。采取一种动态策略。 死锁避免算法:银行家算法 死锁避免定义 在系统运行过程中,接到一个进程的资源请求时,总是根据当时资源的使用情况,按照一定的算法去模拟分配,探测分配的结果。只有在探测结果表明绝对不会出现死锁时,才真正接受进程的这次资源请求 安全状态和不安全状态 若能在有限时间内,保证所有进程得到自己需要的全部资源,那么称系统此时处于“安全状态”;否则称系统处于“不安全状态”。很明显,在系统处于安全状态时,绝对不会发生死锁;在系统处于不安全状态时,系统有可能发生死锁。 银行家算法 银行家算法对进程的要求 必须预先说明自己对资源的最大需求量; 只能一次一个地申请所需要的资源; 若已获得了资源的最大需求量,那么应在有限时间内使用完毕,并归还系统。 实施银行家算法时系统的承诺 若进程对资源的最大需求量没超过该资源的总量,应保证接纳这个进程,不得拒绝它; 在接到一个进程对资源的请求时,有权根据当前资源的使用情况暂时加以拒绝(即阻塞该进程)。但应保证在有限的时间内让它得到所需要的资源。 单种资源银行家算法的基本思想 在安全状态下,系统接到进程的资源请求后,先假定接受这一请求,把需要的资源分配给这个进程。 在这一假设下,检查每个进程对资源的还需要数。看能否找到一个进程,其还需数

文档评论(0)

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

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

1亿VIP精品文档

相关文档