操作系统讲稿ch6.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch6 死锁 何为死锁? 死锁的必要条件:四条 死锁的预防:预先静态分配法,有序资源使用法 死锁的避免:银行家算法 死锁的检测:资源分配图 死锁的恢复:强制性撤消进程,挂起和解挂机构 6.1 死锁问题的提出 死锁:计算机系统中两个或多个进程无限期地等待永远 不会发生的条件,称此系统处于死锁状态. 环境:某些资源互斥地使用. 原因:(1)系统资源不足;(2)进程推进的顺序不合适. 乙进程 Y 共同进展路径1 的进展 死锁点 占用 输入机 禁区 占用打印机 危险区 3 2 占用输入机 X 占用打印机 甲进程的进展 6.2 死锁的必要条件 资源的概念 分配方式: “可抢占”资源, “不可抢占”资源 使用方式: “共享”资源, “独占”资源 使用期限: 永久资源, 临时资源 资源的共同性质:一个进程由于请求一个资源而未被满足,从而该进程被阻塞. 定义: 一个逻辑资源(简称资源)是指可以引起一个进 程进入等待状态的事物. 死锁的必要条件: 互斥条件: 一个资源一次只能被一个进程所使用 不可抢占条件:一个资源仅能被占有它的进程所释放,而不能被 别的进程强行强占. 部分分配条件:一个进程已占有了分给它的资源,但仍然要求其 它资源. 循环等待条件:若干个进程构成环行请求链,其中每个进程均占 有若干种资源中的某一种,同时每个进程还要求 (链上)下一进程所占有的资源. 防止死锁发生(破坏条件之一) 死锁的必要条件: 防止死锁发生 互斥条件 允许多个进程同时访问资源 不可抢占条件 强迫进程暂时释放资源给其它进程 部分分配条件 “预先静态分配法” 循环等待条件 “有序资源使用法” 6.3 死锁的预防 之一:预先静态分配法(破坏部分分配条件) 策略: 作业调度时,仅当系统满足作业运行时所需的全 部资源时,才把该作业调入内存运行.在作业运行前 一次性将其所需的全部资源分配给它,于是在作业 运行过程中不再会提出新的资源请求. 缺点: 资源浪费! 改进: 程序 - 程序步; 资源分配以程序步为单位! 优点: 资源利用率提高,减少资源浪费! 不足: - 增加了应用系统的设计和执行开销! - 作业所需资源不能一次性满足--可能无限延迟! - 作业所需资源逐步积累 --占而不用- 资源浪费! 死锁的预防之二 有序资源使用法: (破坏循环等待条件) 策略: 把系统中的全部资源分别分给一个特定的序号,并且要求每个进程均应严格地按照序号递增的次序请求资源. 优点: 基于动态分配方法,资源利用率较前法提高. 关键: 小心安排资源序号! 问题: 1) 各类资源序号一经安排,不宜经常地随意改动; 2) 资源序号尽可能反映多数作业的实际使用资源的顺序,但总有不合适的作业而造成资源浪费. 6.4 死锁的避免和银行家算法 预防:破坏死锁必要条件之一,保证死锁不发生(限制条件较强,实现简单,但严重损害了系统性能) 避免: 不严格限制必要条件(限制条件较弱,可能获得满意结果) 安全状态:指系统按某种进程顺序(如P1,P2,…,Pn)来为每个进程分配其所需资源,直到最大需求,使每个进程都可以顺利完成,此时系统所处状态为安全状态。该进程顺序称为安全序列.-----至少具有一个安全序列的状态是安全状态! 不安全状态:若系统没有这样一个安全序列,则系统处于不安全状态。即无论再按照什么方式分配都将最后导致死锁! 每次分配资源之前先要判断此分配方式是否最终导致系统可能由安全状态进入不安全状态。按照安全序列分配资源! 银行家算法 问题:一个银行家在若干个顾客间共享他的资金(capital),每个顾客所需借款总额need=capital. 任务:银行家应能使他当前的全部顾客在有限时间内完成他们的交易(也就归还了他们的借款!) 顾客状态:(claim,loan),claim=need-loan 银行家状态:(capital,cash) ,cash=capital-?loan 银行家算法:保证银行家状态从一个安全状态转向另一个安全状态——不死锁!(判断状态是否安全)   从当前状态S(顾客状态+银行家状态)出发,逐个检查各顾客中谁的claim=cash,若其得到资源后能完成工作且归还

文档评论(0)

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

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

1亿VIP精品文档

相关文档