第5章_死锁20050714概要1.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章_死锁20050714概要1

计算机操作系统 操作系统 操作系统 第5章 死锁 5.1 死锁概念 5.2 资源分配模型 5.3 死锁条件 5.4 死锁预防 5.5 死锁避免 5.6 死锁检测 5.7 死锁恢复 5.8 小结 5.1 死锁的概念 5.1.1 死锁的定义: 一般的,可以把死锁描述为:有并发进程P1,P2,…,Pn,它们共享资源R1,R2,…,Rm(n0,m0,n=m)。其中,每个P i(1≤i ≤n)拥有资源R j(1≤j≤m),直到不再有剩余资源。同时,各P i又在不释放R j的前提下要求得到R k(k≠j,1≤k≤n),从而造成资源的相互占有和相互等待。在没有外力驱动的请况下,该组并发进程停止往前推进,陷入永久等待状态,称这种现象为死锁。 5.1 死锁的概念 5.1.2 产生死锁的原因 : 产生死锁的原因可归结为两点: 一、竞争资源引起的死锁 二、进程推进顺序不当引起的死锁 二、进程推进顺序不当引起的死锁 (1)T0时刻的安全性:利用安全性算法对T0时刻的资源分配情况进行分析(见表5-3所示)可知,在T0时刻存在着一个安全序列{P1,P3,P4,P2,P0} 故系 统是安全的。 (2)P1请求资源:P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查: ①Request1(1,0,2)≤Need1(1,2,2); ②Request1(1,0,2)≤Available(3,3,2); ③系统先假定可为P1分配资源,并修改Available,Allocation1和Need1向量,由此形成的资源变化情况如表5-2中的圆括号所示。 ④利用安全性算法检查此时的系统是否安全。如表5-4所示。 由所进行的安全性检查得知,可以找到一个安全序列{P1,P3,P4,P2,P0}。因此,系统是安全的,可以立即将P1所申请的资源分配给它。 (3)P4请求资源: P4发出请求向量Request4(3,3,0),系统按银行家算法进行检查: ①Request4(3,3,0)≤Need4(4,3,1); ②Request4(3,3,0)>Available(2,3,0),让P4等待。 (4)P0请求资源:P0发出请求向量Request0(0,2,0),系统按银行家算法进行检查: ①Request0(0,2,0)≤Need0(7,4,3); ②Request0(0,2,0)≤Available(2,3,0); ③系统暂时先假定可为P0分配资源,并修改有关数据,如表5-5所示。 进行安全性检查:可用资源Available(2,1,0)已经不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。如果在银行家算法中,把P0发出的请求向量改为Request0(0,1,0),系统是否能将资源分配给它,请同学们考虑。 * * 一、竞争资源引起的死锁 1.可剥夺和非可剥夺性资源 系统中有些资源是可剥夺的。如:CPU和内存等;另一类资源是不可剥夺的,如磁带机、打印机等。 2.竞争非剥夺性资源 3.竞争临时性资源 临时性资源是指由一个进程产生,被另一个进程使用一短暂时间后便无用的资源,故也称之为消耗性资源 。 ? ① ② ④ ③ P2 Rel(R1) P2 Rel(R2) P2 Req(R1) P2 Req(R2) P1 Req(R1) P1 Req(R2) P2 Rel(R1) P2 Rel(R2) 5.1.3死锁举例 例1 P、V操作引起的死锁 V操作是实现进程间通讯的原语,它能有效地实现进程间的同步和互斥,但由于P、V操作使用不当,也会导致系统死锁。例如,在用P、V操作实现进程间同步的例子中,设S1、S2是初值为0的两个信号量,如果进程A、B的程序安排如下就会产生死锁: 进程A: 启动读卡机 卡片送入缓冲区 P(S2) V(S1) 进程B: P(S1) 从缓冲区取卡片信息 V(S2) 加工卡片信息 这是因为在进程A中P(S2)与V(S1)的顺序颠倒所引起的。 例2 存储器共享的死锁 除了I/O设备的共享会产生死锁外,存储器的共享在一定条件下也会产生死锁。假定系统中有m个单位的存储器,它为n个进程所共享。若每个进程都要求i个存储单位,当mni时就可能发生死锁。 假定m=4,n=4,i=2,当每个进程首先轮流要求1个存储单位,那么第一次请求就把存储器分配完了,而第二次请求时,各进程都进入阻塞状态,结果这四个进程谁也不能向前推进,而形成死锁(图5-2(a)) 当m=2,n=3,i=2时 ,P1、P2第一次请求就把存储器分配完了

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档