操作系统课件7.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文档。上传文档
查看更多
死锁的避免 优点: 放松了限制条件,提高了资源利用率。 系统总处于安全状态 缺点: 要求用户进程数保持不变。 要求每类资源数量固定不变。 用户很难事先说明他们的最大资源请求。 死锁的检测 基本思想:通过系统设置的检测机构,实际地检查系统中是否存在死锁,并精确地标定出与死锁有关的进程和资源。 实现:在OS中保存资源的请求和分配信息,利用某种算法对这些信息加以检查,以判断是否存在死锁。 检测算法主要是检查是否有循环等待 不采取任何限制措施,也不检查系统是否会进入不安全状态,允许系统在运行中发生死锁。 死锁的检测 资源 占用进程 R1 P1 R2 P3 R3 P2 R4 P3 R5 P1 … … … … 进程 等待资源 P1 R3 P2 R2 P3 R5 … … 进程占用资源表和进程等待资源表 死锁的检测 进程等待占用关系矩阵 Bij 物理意义 1 Pi等待被Pj占用的资源 0 Pi 和Pj之间不存在等待占用关系 ? P1 P2 P3 P1 0 1 0 P2 0 0 1 P3 1 0 0 死锁的恢复 与死锁的检测配套使用 当发现进程死锁时,采用一定的策略,将系统从死锁状态中恢复。 常用的方法: 撤销进程并剥夺资源。 使用挂起和解除挂起机构 作业 7.4 7.5 7.7 第七章 死锁 7.1 死锁问题的提出 死锁定义:死锁是指系统中的一组进程,由于竞争系统资源或由于彼此通信而永远阻塞,称这些进程处于死锁状态。 死锁的产生是与资源分配策略和并发进程执行的速度有关 交通中的死锁 桥只能单向行驶 桥可以看成一种资源 如果死锁发生,可以通过一辆车倒退解决(即释放已 占有的资源) 可能需要多辆车倒退 可能发生饥饿现象 计算机系统中的死锁 死锁产生的原因 进程竞争资源,而资源不足 当系统中供多个进程所共享的资源不足以同时满足进程的需要时,就可能引起进程对资源的竞争而产生死锁。 进程推进顺序不合适 在进程运行过程中,当请求和释放资源的顺序不当时,可能会导致进程死锁。 如系统有打印机5台,它们有N个进程竞争使用,每个进程需要同时使用2台打印机,则N取哪些值时,系统不会死锁? 分析: N=1时,系统资源数大于进程要求 N=2时,系统资源数大于进程要求 N=3时,系统资源数小于进程要求,最好情形是先每个进程分配1个资源,此时剩余2个资源,只要分配给任何一个进程,该进程就可以完成,从而释放所有资源。 N=4时,系统资源数小于进程要求,最好情形是先每个进程分配1个资源,此时剩余1个资源,只要分配给任何一个进程,该进程就可以完成,从而释放所有资源。 N=5时,当每个进程分配一个打印机,系统已无剩余资源,每个进程都没有获得需要的资源数,不能完成,也不能释放其所占资源,死锁。 设系统某类资源有m个,有n个进程,每个进程需要K个该资源,则当满足 nk= m+(n-1)时,系统不会引起死锁。 7.2 死锁的必要条件 资源的分类 根据资源是否可抢占 可抢占资源:指资源占有者进程虽然仍需要使用资源,但系统可以根据某原则强行将该资源剥夺,分配给其他进程。 不可抢占资源:指资源一旦被进程占有,只有当进程不再使用而主动释放资源外,其他进程不得强行抢占其资源。 根据资源使用方式 共享资源:指资源同时可以为多个进程共同使用。 独享资源:指资源同一时刻只能为一个进程单独使用 通常进程因竞争独享、不可抢占资源而发生死锁。 研究死锁问题的约束 操作系统中的死锁基于如下假定: 任意一个进程要求资源的最大数量不超过系统能提供的最大量 如果一个进程在执行中所提出的资源要求能够得到满足,那么它一定能在有限的时间内结束 一个资源在任何时刻最多只为一个进程所占有 一个进程一次申请一个资源,且只在资源得不到满足时才处于等待状态 一个进程结束时释放它所占有的全部资源 系统具有有限个进程和资源 死锁的必要条件 互斥条件:一个资源一次只能被一个进程所使用。 不可抢占条件:一个资源仅能被占有它的进程所释放,而不能被其他的进程强行抢占。 部分分配条件:一个进程已占有分给它的资源,但仍然要求其他资源。 循环等待条件:在系统中存在一个由若干个进程形成的环形请求链,其中的每一个进程均占有若干种资源中的某一种,同时还要求下一个进程所占有的资源。 死锁的循环等待 处理死锁的基本方法 处理死锁有三种基本方法: 死锁的预防 死锁的避免 死锁的检测和恢复 处理死锁的基本方法 7.3 死锁的预防 死锁的预防主要通过设置某些限制条件,破坏死锁产生的必要条件,从而达到不产生死锁的目的。 通常通过破坏必要条件的第3、4条件来实现预防死锁的目的。 预先静态分配法 实质:破坏部分分配条

文档评论(0)

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

1亿VIP精品文档

相关文档