网站大量收购独家精品文档,联系QQ:2885784924

《计算机操作系统 》课件_3.7进程死锁.pptxVIP

《计算机操作系统 》课件_3.7进程死锁.pptx

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

死锁的基本概念

预防死锁

避免死锁

死锁的检测与解除

;3.7.1死锁的基本概念;例2.竞争外部设备。设系统中有打印机、扫描仪各一台,进程A、B的申请如下:;死锁的定义:

一组进程中,每个进程都无限等待被该组进程中另一进程所占有的且永远无法释放的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。;竞争资源:;扫描仪;执行顺序1:

P1:…Release(S1);Request(S3);…

P2:…Release(S2);Request(S1);…

P3:…Release(S3);Request(S2);…

执行顺序2:

P1:…Request(S3);

Release(S1);…

P2:…Request(S1);

Release(S2);…

P3:…Request(S2);

Release(S3);…;合理的推进顺序:如按曲线①、②和③不会产生“死锁”;;3.产生死锁的必要条件;4.处理死锁的基本方法;破坏占有且等待条件

静态分配资源:

在作业调度时为选中的作业分配它所需要的所有资源,当资源一旦分配给该作业后,在其整个运行期间这些资源为它独占。

缺点:1)资源利用率低;

2)进程的运行可能被推迟,甚至产生“饥饿”现象;

要求进程在没有资源时才可申请资源:

允许动态申请资源;2.破坏不可剥夺条件

进程申请资源r时,有则分配;若没有则需释放其所占有的全部资源后进入阻塞状态。

进程申请资源r时,有则分配;若没有则进一步判断是否能从其他进程那里进行剥夺;若不能剥夺则进入阻塞状态。;3.破坏循环等待条件:

采用按序分配资源策略:;安全状态定义

设系统中有n个进程,若存在一个进程序列P1,P2,…,Pn。使得进程Pi(i=1,2,…,n)以后还需要的资源可以通过系统现有空闲资源加上所有Pj(ji)已占有的资源来满足,则称此时系统处于安全状态,进程序列P1,P2,…,Pn称为安全序列,因为各进程至少可以按照安全序列中的顺序依次执行完成。

如果系统无法找到这样一个安全序列,则称系统处于不安全状态。;安全状态之例:

假设某系统共有15台磁带机和三个进程P0、P1、P2,各进程对磁带机的最大需求数量、T0时刻已经分配到的磁带机数量、还需要的磁带机数量以及系统剩余的可??磁带机数量如下表所示:;由安全状态向不安全状态的转换

如果不按照安全顺序分配资源,则系统可能由安全状态进入不安全状态。

进程最大需求量已分配可用

P01264

P152

P2103;2.银行家算法;银行家算法中的数据结构;③分配矩阵Allocation[1..n,1..m]

该矩阵表示系统中每个进程当前已分配到的每类资源数量。

Allocation[i,j]=K,表示进程i当前已分得Rj类资源的数目为K。

④需求矩阵Need[1..n,1..m]

该矩阵表示每个进程尚需的各类资源数。Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。;当进程Pi提出资源申请Requesti[m]时,系统执行下列步骤:

⑴若Request[i]≤Need[i],转⑵;否则错误返回;

⑵若Request[i]≤Available,转⑶;否则,表示尚无足够资源,Pi须等待;

⑶系统尝试把资源分配给进程Pi,并修改以下数据结构:

Available:=

Allocation[i]:=

Need[i]:=

⑷执行安全性算法:

检查此次资源分配后,系统是否处于安全状态。若安全,则将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。;①设置两个临时向量:

工作向量Work:表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work=Available;

Finish[n]:它表

文档评论(0)

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

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

1亿VIP精品文档

相关文档