资源描述:
《银行家算法精选ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、计算机操作系统银行家算法死锁的“3W”WhatWhyHow什么是死锁?为什么会发生死锁?怎么解决死锁?2死锁的处理方法(1)预防死锁:通过某些限制条件的设置,去破坏产生死锁的四个必要条件;(2)避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态;(3)检测死锁:及时检测死锁的发生,并确定与之相关的进程、资源,从而采取措施清除死锁;(4)解除死锁:撤消或挂起某些进程以回收一些资源,用于解脱另一些处于死锁的进程。3避免死锁—银行家算法设银行家有10万周转资金,P,Q,R分别需要8,3,9万元搞项目,如果P已申请到了4万,Q要申请2万,R要申请4万.Q1:
2、客户要求分期贷款,一旦得到每期贷款,就能够归还贷款Q2:银行家应谨慎的贷款,防止出现坏帐什么是银行家问题?银行家->操作系统周转资金->系统资源贷款客户->进程当某进程请求分配资源时,系统假定先分配给它,之后若能找到一个进程完成序列(安全序列),说明系统是安全的,可进行实际分配;否则,让申请者等待。银行家算法的实现思想4表示形式含义Available(可用资源数组)Available[j]=k现有资源j的数目为kMax(最大需求矩阵)Max[i,j]=k进程i对资源j的最大需求数目为kAllocation(分配矩阵)Allocation[i,j]=k进程i当前已分得的
3、资源j的数目为kNeed(需求矩阵)Need[i,j]=k进程i尚需分配的资源j的数目为k银行家算法中的数据结构5银行家算法当Pi发出资源请求,分配一个Request向量然后系统按下述流程进行执行:Requesti:是进程Pi的请求向量如果Requesti[j]=K,表示进程i需要K个Rj类型的资源。银行家算法实现过程67安全性算法实现过程安全性算法两个向量:Work和FinishWork表示系统可提供给进程继续运行所需的各类资源数目(即在分配过程中,系统的可用资源数)。初始值Work∶=Available;Finish表示系统是否有足够的资源分配给进程i,使之运
4、行完成。初始值Finish[i]:=false当有足够资源分配给进程时Finish[i]:=true89假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源{A,B,C},各种资源的数量分别为10、5、7,在T0时刻的资源分配情况如下图所示。P4P3P2P1P0AvailableA,B,CNeedA,B,CAllocationA,B,CMaxA,B,C进程资源情况7,5,33,2,29,0,22,2,24,3,30,1,02,0,03,0,22,1,10,0,27,4,31,2,26,0,00,1,14,3,13,3,2银行家算法实例10(1)T0时刻系统是
5、否安全?执行安全性算法进行检查:①向量初值Work:=Available=(3,3,2);Finish[i]:=false;(i=0,1,…,4)②在进程集合中找到Need1=(1,2,2)≤Work且Finish[1]=false;③则设P1顺利执行完成,从而有:Work:=Work+Allocation1=(3,3,2)+(2,0,0)=(5,3,2)Finish[1]:=true银行家算法实例11Chapter3处理机调度与死锁FinishWork+AllocationAllocationNeedWorktrue532200122332P1AllocationN
6、eedP0010743P1200122P2302600P3211011P400243112Chapter3处理机调度与死锁FinishWork+AllocationAllocationNeedWorktrue743532211011P3true532200122332P1AllocationNeedP0010743P1200122P2302600P3211011P400243113Chapter3处理机调度与死锁FinishWork+AllocationAllocationNeedWorktrue753743010743true743211011532true5322
7、00122332P0P3P1AllocationNeedP0010743P1200122P2302600P3211011P400243114Chapter3处理机调度与死锁FinishWork+AllocationAllocationNeedWorktrue1055753true753010743743302600true743211011532true532200122332P0P2P3P1AllocationNeedP0010743P1200122P2302600P3211011P400243115Chapter3处理机调度与死锁Allocati