试问:( 1 )该状态是否安全?(必须写出安全性检查的过程)
( 2 )若进程 P2 提出请求 Request ( 1 , 2 , 2 , 2 )后,系统能否将资源分配给它?为什么?
(1)对该状态进行安全性检查:
workneedallocation work+allocationfinish
ABCD ABCDABCDABCD
P01622001200321654 true
P31654065203321986 true
P11986175010002986 true
P2298623561354312 1418true
P43 12 13 1406560014312 1418 true
由安全性检查得知,可以找到一个安全序列{P0、P3、P1、P2、P4},因此系统是安全的。
(2)若P2提出Request(1,2,2,2),系统按银行家算法进行检查,因
Request(1,2,2,2)<=Need(2,3,5,6)
Request(1,2,2,2)<=Available(1,6,2,2)
系统暂时先为进程P2试行分配资源,并修改有关的确数据,如下图所示:
ProcessAllocationNeedAvailable
P0003200120400
P110001750
P225761134
P303320652
P400140656
现在,所有进程的Need都不满足Need<=Availabe,系统将进入不安全状态,所以,不能进行上述的分配,而必须将状态恢复到分配前的状态。
Request(1,2,2,2)<=Need(2,3,5,6)
Request(1,2,2,2)<=Available(1,6,2,2)
而不是直接加到Allocation上呢?