第3章 处理机调度与死锁(part4).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文档。上传文档
查看更多
第3章 处理机调度与死锁(part4)

第三章 处理机调度与死锁 * 第三章 处理机调度与死锁 3.1 处理机调度的层次 3.2 调度队列模型和调度准则 3.3 调度算法 3.4 实时调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除 * 关于死锁 在多道程序系统中,虽可借助于多个进程的并发执行,来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险——死锁。 死锁(Deadlock):是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。 * 3.5 产生死锁的原因和必要条件 3.5.1 产生死锁的原因 3.5.2 产生死锁的必要条件 3.5.3 处理死锁的基本方法 3.5.1 产生死锁的原因 产生死锁的原因可归结为如下两点: 竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。 进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生死锁。 1. 竞争资源引起进程死锁 可剥夺和非剥夺性资源(可把系统中的资源分为两类) 可剥夺性资源:资源分配给进程后可以被高优先级的进程剥夺。如CPU、主存。 不可剥夺性资源:分配给进程后只能在进程用完后才释放的资源。如磁带机、打印机等。 3.5.1 产生死锁的原因 竞争非剥夺性资源引起死锁 在系统中配置的非剥夺性资源,由于数量不足,会使进程在运行过程中,因争夺这些资源而陷入僵局。如,打印机R1磁带机R2,可供进程P1和P2共享,假定P1已占用R1,P2已占用R2,此时P2又要求R1,因得不到进入阻塞状态,P1又要求R2,也得不到而进入阻塞状态。死锁 图 3-12 I/O设备共享时的死锁情况 1. 竞争资源引起进程死锁 3.5.1 产生死锁的原因 竞争非剥夺性资源引起死锁 竞争临时性资源引起死锁 打印机之类的资源属于可顺序重复使用型资源,称为永久性资源。与之相对的是临时性资源,是指由一个进程产生,被另一进程使用一短暂时间后便无用的资源,也称为消耗性资源,它也可能引起死锁。 图 3-13 进程之间通信时的死锁 2. 进程推进顺序不当引起死锁 由于进程在运行中具有异步性特征,这就可能使上述P1和P2两个进程按下述两种顺序向前推进。 进程推进顺序合法 进程推进顺序非法 1. 竞争资源引起进程死锁 3.5.1 产生死锁的原因 * 2. 进程推进顺序不当引起死锁 1) 进程推进顺序合法 图 3-14 进程推进顺序对死锁的影响 * 2) 进程推进顺序非法 若并发进程P1和P2按曲线④所示的顺序推进,它们将进入不安全区D内。此时P1保持了资源R1, P2保持了资源R2, 系统处于不安全状态。因为,这时两进程再向前推进,便可能发生死锁。例如,当P1运行到P1:Request(R2)时,将因R2已被P2占用而阻塞;当P2运行到P2: Request(R1)时,也将因R1已被P1占用而阻塞,于是发生了进程死锁。 3.5.2 产生死锁的必要条件 虽然进程在运行过程中可能发生死锁,但死锁的发生也必须具备一定的条件。可以看出,必须具备以下四个必要条件: 1. 互斥条件:指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其他进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。 2. 请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求(该资源又被其他进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放)。 3. 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 4. 环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链。即进程集合{P0,P1,P2,…,Pn}中的P0正在等待一个P1占用的资源;P1正在等待一个P2占用的资源,……,Pn正在等待一个已被P0占用的资源。 * 图 3-12 I/O设备共享时的死锁情况 有死锁情况的资源分配图 图 3-13 进程之间通信时的死锁 * 3.5.3 处理死锁的基本方法 预防死锁。 (2) 避免死锁。 (3) 检测死锁。 (4) 解除死锁。 为保证系统中诸进程的正常运行,应事先采取必要的措施,来预防发生死锁。在系统中已经出现死锁后,则应及时检测到死锁的发生,并采取适当措施来解除死锁。目前处理死锁的方法可归结为以下四种: 3.5.3 处理死锁的基本方法 1.预防死锁 这是一种较简单和直观的事先预防方法。该方法是通过设置某些限制条件,去破坏产生死锁的四个必要条件的一个或几个

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档