- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 死 锁 操作系统课程组 内容回顾 UNIX进程模型 进程结构:proc结构,数据段,正文段。 进程状态 调度算法:动态优先级调度算法。 进程创建与终止:fork(), exit()。 进程通信:pipe; sleep, wakeup; wait, exit。 死锁 一、什么是死锁? 死锁(deadlock)定义: 二、为什么会产生死锁? 产生死锁的环境 多道程序设计技术 多个并发进程 资源共享(独占) 没有外力可以借助 使用不当造成的死锁示例 P、V操作不当 二、为什么会产生死锁? 进程申请顺序不当 同类资源分配不当 二、为什么会产生死锁? 进程通信不当 资源的类型 独占资源 VS 非独占资源 永久性资源 VS 临时性资源 独占资源分类 可剥夺式资源 不可剥夺式资源 二、为什么会产生死锁? 必要条件(Coffman 1971年指出) 资源互斥使用(资源独占) 非剥夺控制(不可强占) 零散请求 循环等待 三、如何解决死锁问题? 死锁的危害 轻则系统资源利用率严重下降,重则系统崩溃。 解决死锁的策略 置之不理法——鸵鸟政策 三、如何解决死锁问题? 积极防御法——不让死锁发生 思想:以积极的遏制为出发点。 手段: 破坏产生死锁的必要条件。 分类: 静态策略:进程创建时就由系统分配了所有需要的资源,然后才执行,并且以后没有资源申请要求。缺点:系统效率低,并发性下降,资源浪费严重。 动态策略:执行时动态改变资源分配策略。缺点:实现复杂。优点:灵活,资源利用率高。 三、如何解决死锁问题? 事后处理法——让死锁发生,事后处理 提出原因:预防策略虽然可以杜绝死锁发生,但是它提出的策略可能会或多或少影响到系统效率。 思想:可以容忍死锁的发生,事后处理。 优点:灵活,效率高。 四、死锁的预防 破坏死锁产生的必要条件 破坏互斥条件 四、死锁的预防 破坏不可剥夺条件 思想:允许进程还未执行完成时释放已经占有的资源。 方法: 已经占有部分资源,还需要资源,如果得不到满足,则释放自己所占有的所有资源,以后再申请。 正在使用资源,有高优先级的进程请求相同资源,则低优先级进程放弃资源。 局限:实现困难,为了恢复现场需要耗费很多时间和空间。因此只适合类似CPU、存储器这样的资源。 四、死锁的预防 破坏零散请求条件 常常采用静态策略:进程创建时就由系统分配了所有需要的资源,然后才执行,并且以后没有资源申请要求,进程执行完后,释放资源。 缺点:系统效率低,并发性下降,资源浪费严重。 破坏循环等待条件 方法:给资源编号,进程必须按序申请资源。 四、死锁的预防 局限: 资源编号困难:尽管资源的按序分配方法消除了死锁的问题,但给资源编号很困难,很难满足每一个进程的要求。 资源的编号很难和进程申请资源的顺序一致:资源顺序分配法是按资源编号申请资源,可能与实际使用资源的顺序不一致,使得一些先申请的资源因暂时不用,而长时间闲置,降低了系统资源利用率。 结论 死锁的预防是以破坏死锁产生的必要条件为基本方法,从而防止死锁发生的。其中由于对资源的申请加上了诸多的限制,因此这种策略虽有一定的效果,但其资源的利用率和效率比较低,很难令人满意。 五、死锁的避免 思想 允许死锁产生的条件存在,但通过动态的、明智的选择——在分配资源之前,系统判断假若满足进程的要求是否会发生死锁,如果会,资源就不予分配,从而确保永远不会到达死锁点,避免死锁的发生。 优点:比预防策略更为灵活实用,允许更多的并发,其资源利用率和效率也更高。 五、死锁的避免 系统的状态 五、死锁的避免 单银行家算法(Banker’s Algorithm) 1965年由Dijkstra为T.H.E系统设计 基本思想:借用了银行借贷系统的分配策略。基于这样一些规则: 五、死锁的避免 举例:假设一个银行拥有资金数量为10(单位省略),现在有4个客户a, b, c, d要来贷款,所需最大资金需求量为8,5,6,7,为方便期间我们用图形表示如下。 五、死锁的避免 五、死锁的避免 五、死锁的避免 算法流程 五、死锁的避免 以上讨论的是单银行家算法——只涉及到了一种资源,实际中资源的种类是多样的,一个进程往往需要申请多个资源才能完成工作。解决这一问题需要使用多银行家算法。 五、死锁的避免 多项资源银行家算法 举例:系统中有以下资源:5台打印机,7个手写板,8台扫描仪,9个读卡器,共有5个进程T1、T2、T3、T4、T5共享这些资源。各进程所需最大资源量和当前各进程请求资源情况如下: 五、死锁的避免 为方面讨论,我们用向量来表示资源分配及占用情况: 五、死锁的避免 步骤: 比较claim(i)和available向量,寻找满足下列关系的进程 claim(i) available 五、死锁
您可能关注的文档
最近下载
- 《复合材料的特性与应用》课件.ppt
- 妊娠晚期促子宫颈成熟与引产指南(2024)解读.pptx
- 保险异议处理拒绝处理ppt保险异议处理.ppt VIP
- 2025年内蒙古自治区中考数学试题卷(含答案解析).docx
- 湖南省永州市祁阳市2022-2023学年三年级下学期期末语文试题(pdf版无答案).docx VIP
- 设计和开发过程控制培训.pptx VIP
- 2019中国国内旅游发展年度报告_25页_4mb.pdf VIP
- 人教版三年级上册数学全册教学设计(配2025年秋新版教材).docx
- 安全风险分级管控和隐患排查治理双重预防机制培训课件.pptx VIP
- 各专业文件准备目录--内分泌科药物临床试验机构GCP SOP.doc VIP
文档评论(0)