3、d(l)+・・・need(i)+・・・+need(n)5这样,至少必须存在一个进程,其need(i)^0,这显然与题意不符,所以该系统不可能因竞争该类资源而进入死锁状态。(3)此时系统可能发生死锁,如n=4,m=3时,若Pl的Max为0,而其余三个进程的Max都为2,则仍然满足最大需求量之和(即6)小于m+n(即7)的要求,但当除P1以外的其余三个进程各得到一个资源时,这三个进程将进入死锁状态。【例2】设系统屮有3种类型的资源A、B、C和5个进程P()、Pl、P2、P3、P4,A资源的数量为10,B资源的数量为5,C资源的数量为7»在TO时刻系统状态如下表所示。系统采用银行家
4、算法实施死锁避免策略。MaxAllocationANeedBCAvailableABCABcABCP0753010743332P1322200122P2902302600P3222211011P4433002431(1)T0时刻是否为安全状态?若是,请给岀安全序列。(2)在T0时刻若进程P1发出资源请求Request(1,0,2),是否能够实施资源分配?(3)在②的基础上P4发出资源请求Request(3,3,0),是否能够实施资源分配?(4)在③的基础上P0发出资源请求Request(0,2,0),是否能够实施资源分配?答:(1)利用银行家算法对TO时刻的资源分配情况进行分
5、析,可得此时刻的安全性分析情况:WorkNeedAllocationWork+AllocationFinishABCABcABcABcP1332122200532TrueP3532011211743TrueP4743431002745TrueP27456003021047TrueP010477430101057True可知,在TO时刻存在着一个安全序列{Pl、P3、P4、P2、P0},故系统是安全的。(2)P1请求资源Request(1,0,2),系统按银行家算法进行检查:Request(1,0,2)WNeed(1,2,2)Request(1,0,2)^Available(3
6、,3,2)系统试探分配,修改相应的向量,形成的资源变化情况如F表所示:MaxAllocationANeedBCAvailableABCABcABCP0753010743230Pl322302020P2902302600P3222211011P4433002431在利用安全性算法检查此时系统是否安全,如下表所示:WorkNeedAllocationWork+AIlocationFinishABCABcABcABCPl230020302532TrueP3532011211743TrueP4743431002745TrueP0745743010755TrueP27556003021
7、07True由安全性算法检查可知,可以找到一个安全序列{Pl、P3、P4、P0、P2)o因此,系统是安全的,可以立即把P1所申请的资源分配给它。(3)P4发出资源请求Request(3,0,0),系统按照银行家算法进行检査:Request(3,3,0)WNeed(4,3,1)Request(3,3,0)^Available(2,3,0),所以让P4等待。(4)P0发出资源请求Request(0,2,0),系统按照银行家算法进行检查:Request(0,2,0)WNecd(7,4,3)Request(0,