死锁精品课件.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文档。上传文档
查看更多
6.1 系统模型 系统拥有一定数量的资源,分布在若干竞争进程之间。 资源: 物理资源:内存、CPU、I/O设备(打印机和磁带机等) 逻辑资源:文件、信号量等 资源分成多种类型,每种类型有相同数量的实例。如果系统中有两个CPU,那么资源类型CPU就有2个实例。 正常操作模式下,进程按如下顺序使用资源 申请(获得资源或者等待)-使用-释放 死锁的概念 死锁定义:一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到资源,这种现象称为进程死锁,这一组进程就称为死锁进程。 产生死锁的原因 资源不足导致的资源竞争:多个进程所共享的资源不足,引起它们对资源的竞争而产生死锁。 并发执行的顺序不当。进程运行过程中,请求和释放资源的顺序不当,而导致进程死锁. 如P,V操作的顺序不当 死锁 可能涉及同一种类型的资源 可能涉及不同资源类型 死锁现象举例 可重用资源与可消费资源 可重用资源 一次只能供一个进程安全地使用, 且不会由于使用而耗尽 例子: CPU、 I/O通道、主存和辅存、 设备、文件、数据库、信号量等数据结构 可消费资源 可以创建并且可以销毁的资源 数目没有限制, 当一个进程得到一个可消费资源时, 这个资源就不再存在了 例子: 中断、信号、 消息、 I/O缓冲区中的信息 两个进程竞争可重用资源死锁的例子 两个进程:一个访问磁盘文件D,一个访问磁带设备T 如果执行序列为:P0、P1、q0、q1、P2、q2,则发生死锁 涉及可消费资源死锁的例子 6.2 死锁的必要条件 互斥条件 指进程对所分配到的资源进行排它性使用, 即在一段时间内某资源只能由一个进程占有。如果此时还有其它进程申请该资源,则它只能阻塞, 直至占有该资源的进程释放。 占有且等待(请求和保持条件) 进程已经保持了至少一个资源, 但又提出了新的资源要求, 而该资源又已被其它进程占有, 此时请求进程阻塞, 但又对已经获得的其它资源保持不放。 非抢占(非剥夺)条件 进程已获得的资源, 在未使用完之前, 不能被剥夺, 只能在使用完时由自己释放。 循环等待条件 在发生死锁时, 必然存在一个进程-资源的封闭的环形链. 即进程集合{P0, P1, P2, …, Pn}中的P0正在等待一个P1占用的资源; P1正在等待P2占用的资源, ……, Pn正在等待已被P0占用的资源. 6.4 死锁预防 (Deadlock prevention) 通过破坏产生死锁的四个条件中的一个或多个条件, 保证不会发生死锁现象 保证互斥条件 由设备(非共享资源)的固有特性所决定,不能被破坏, 应加以保证。如打印机。 放弃“占有和等待” 要求所有进程要一次性地申请在整个运行过程需的全部资源;允许进程在没有资源时才可以申请资源。 优点: 简单、易于实现、安全 缺点: 一个进程可能被阻塞很长时间,等待资源,发生饥饿 资源严重浪费, 进程延迟运行; 如打印机:最后打印 6.4 死锁预防 放弃“非抢占”条件: 可以剥夺一个进 程占有的资源, 分配给其他进程 一个已经保持了某些资源的进程, 当它再提出新的资源请求而不能立即得到满足时, 必须释放它已经保持的所有资源, 待以后需要时再重新申请; 适用条件 资源的状态可以很容易地保存和恢复,如CPU寄存器、内存空间,不能适用于打印机、磁带机 缺点 实现复杂、代价大, 反复申请/释放资源, 系统开销大, 降低系统吞吐量 6.4 死锁预防 摒弃“环路等待” 系统把所有资源按类型进行线性排队。如输入机=1,打印机=2,磁带机=3,磁盘机=4; 所有进程对资源的请求必须严格按资源序号递增的顺序提出, 从而保证任何时刻的资源分配图不出现环路 即:如果一个进程已经分配了R类型的资源,它接下来请求的资源只能是那些排在R类型之后的资源; 例:A要获得Ri,请求Rj,而B获得Rj,请求Ri : 这个条件是不可能的,因为当ij时,资源Ri排在Rj前面 6.4 死锁预防 摒弃“环路等待” 方法的问题: 此方法要求资源类型序号相对稳定, 不便于添加新类型的设备. 易造成资源浪费, 类型序号的安排只能考虑一般作业的情况, 限制用户简单、自主地编程 限制进程对资源的请求;资源的排序占用系统开销; 6.5 死锁避免(Deadlock Avoidance) 不需象死锁预防那样,事先采取限制措施破坏产生死锁的必要条件; 在资源的动态分配过程中, 采用某种策略防止系统进入不安全状态, 从而避免发生死锁 定义:在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则予以分配 如果一个新的进程的资源请求会导致死锁, 则拒绝启动这个进程 如果满足一个进程新提出的一项资源请求会导致死锁,

文档评论(0)

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

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

1亿VIP精品文档

相关文档