死锁的预防避免和检测.ppt
《死锁的预防避免和检测.ppt》由会员分享,可在线阅读,更多相关《死锁的预防避免和检测.ppt(47页珍藏版)》请在三一文库上搜索。
1、死锁问题 系统中有进程处于相互的无限等待状态(被阻塞)资源死锁和通信死锁 等待图:将系统中进程对资源的占用与需求共享情况用有向图表示 进程集合P0,P1,Pn为节点集,当且仅当进程Pi等待一个被进程Pj占用的资源时,边(Pi,Pj)存在于图中。资源(resources)分类根据资源性质:可剥夺资源(抢占)和不可剥夺资源可抢占资源:指资源占有进程虽然需要使用该资源,但另一个进程却强行把资源从占有者进程处抢来。不可抢占资源:指只有占用者进程不再需要使用该资源而主动释放资源外,其它进程不得在占有者进程使用资源过程中强行抢占。可抢占资源如:CPU、主存、硬盘,该类资源可为多个进程共享(可抢占)不可抢占
2、资源如:打印机、读卡机,磁带驱动器,该类资源可为某个进程独享(不可抢占)资源分类根据使用方式:共享资源和独享资源根据使用期限:永久资源和临时性资源永久资源是可顺序重复使用的资源临时性资源是由一个进程产生,被另外一个进程使用短暂时间之后便无用的资源。产生死锁的原因竞争资源。当系统中供多个进程所共享的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生死锁。进程推进的顺序不当。进程在运行过程中,请求和释放资源的顺序不当,导致进程的死锁。竞争资源竞争非剥夺性资源竞争临时性资源打印机R1磁带机R2P1P2S1,S2,S3是临时资源P1:Release(S1);Request(S3)P2:Rel
3、ease(S2);Request(S1)P3:Release(S3);Request(S2)不可能发生死锁P1:Request(S3);Release(S1)P2:Request(S1);Release(S2)P3:Request(S2);Release(S3)可能发生死锁死锁问题一实例:哲学家问题哲学家筷子盘子哲学家1号哲学家5号哲学家4号哲学家2号哲学家3号15324哲学家1号哲学家4号哲学家2号哲学家3号15324哲学家5号先拿左,拿到后再拿右,成功后进餐.吃完后先放左再放右.虽可保证不会有相邻的同时进餐,但可能死锁,如动画所示.此时没有一个哲学家可以完成进餐.哲学家1号哲学家4号哲学家
4、2号哲学家3号15324哲学家5号此时5号哲学家被禁止拿筷子.1号哲学家拿起他右边即5号哲学家左边的筷子.1号哲学家开始进餐,完成后放下筷子,其它哲学家开始进餐哲学家1号哲学家4号哲学家2号哲学家3号哲学家5号设1号进餐,则3,4两位哲学家可以拿筷子1号进餐完毕,放下筷子,先左后右.1号放下左边筷子的同时,3号可拿起右边筷子3号开始进餐,同时1号放下右边的筷子此时4号条件不再满足,放下筷子.此时5号条件满足,可在下一时钟周期拿左筷子哲学家4号哲学家1号哲学家2号哲学家3号1524哲学家5号这种方法将出现1,2号哲学家单键1号筷子,3,4号哲学家竞争3号筷子的情况.而5号没有人与他竞争,得到左边
5、的筷子若4号在与3号的竞争中得到筷子,则与5号竞争4号筷子.无论无论4号号5号谁得号谁得到到4号筷子号筷子,都有都有一个可以进餐一个可以进餐若4号在与3号的竞争中没有得到筷子,则5号得到4号筷子,进餐死锁问题一条件 死锁发生的充要条件 互斥:一个资源在同一时刻不能被共享;占有并等待:必然有一个进程占用了至少一个资源,同时在等待获得被其它进程占用的资源;不可剥夺:已占用的资源不能被剥夺 循环等待:等待图中有一个回路 死锁的形式 AND条件:当进程获得所有所需的资源后才能继续执行 OR条件:当进程至少获得一个所需的资源后才能继续执行 P-out-of-Q:进程同时请求Q个资源但至少获得P个之后才能
6、继续执行处理死锁的策略死锁的避免动态检查资源的分配情况,只有在结果状态是安全的情况下,才将资源分配给进程;在分布式系统中实现的开销较大银行家算法:至少总可以满足一个客户的要求银行共有资金800万:A的余额是600万,B的余额是400万,C的余额是500万;A要求一次提走300万,B要求一次提走200万,C要求一次提走100万,假设客户在存款后会立即重新全额存入。当以上提款要求被满足后,银行当前存款余额还剩200万。这时,A、B和C均要求提取剩余款,则服务次序BCA是安全的,其他的服务顺序或上述条件的违反都可能导致不安全的结果状态。死锁避免的方法死锁避免,即动态检查资源状态,以保证没有循环等待发
7、生。在集中式系统中,银行家算法是死锁避免的一个经典算法。基于Petri网的死锁避免方法适合应用在分布式系统中。基于Petri网的死锁避免方法步骤1)给出描述特定系统的模型2)得到相应的Petri网的可达树3)由可达树确定死锁状态4)根据死锁状态,找到所有的临界状态和它们的抑制变迁。Petri网描述的状态安全状态:包括临界状态和非临界状态不安全状态:包括死锁状态和死锁边界状态临界状态:如果一个状态接近死锁状态但是仍可以到达其他不导致死锁的状态。非临界状态:如果在某个状态下总不会到达死锁状态,则称该状态为非临界状态。死锁状态:导致死锁的不安全状态称为死锁状态死锁边界状态:可能导致死锁的不安全状态称
8、为死锁边界状态。死锁的图论模型死锁的图论模型 可以用图模型来表示死锁,表示死锁的图模型有两种,一种是等待图,另一种是资源分配图。1)在等待图中,节点代表进程,当且仅当进程Pi等待一个被进程Pj所占用的资源时,边(Pi,Pj)存在于等待图中,图中的边是有向的。2)资源分配图中的节点有两种:一种是进程节点,另一种是资源节点。3)每个边是一个有序对(Pi,Rj)或(Rj,Pi),其中P代表进程,R代表一个资源类型。边(Pi,Rj)表示进程Pi请求类型为Rj的一个资源,并且正在等待这个资源,一个资源类型中可能有多个资源。4)边(Rj,Pi)表示类型为Rj的一个资源已经分配给进程Pi。由于等待图假定一个
9、资源类型中只有一个资源,所以资源分配图是一个比等待图更加有力的工具。死锁的图论模型死锁的图论模型 资源分配图实例:死锁的图论模型死锁的图论模型 资源分配图到等待图的转化:(1)在资源分配图中找到一个未被处理的资源R。如果所有的资源都已经处理,转向步骤3。(2)从这个资源R的每个输入进程节点到每个输出进程节点之间加一条有向边。一个资源的输入进程节点是等待这个资源的进程节点,一个资源的输出进程节点是占有这个资源的进程节点。转向步骤1。(3)删除所有的资源节点以及相应的边。死锁的图论模型死锁的图论模型 资源分配图到等待图的转化实例:处理死锁的策略处理死锁的策略可以使用PAID来概括死锁处理的各种方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 死锁 预防 避免 检测
