【正确答案】正确答案:Need=Max—Allocation={004,175,235,064,065}一{003,100,135,002,001}={001,075,100,062,064}1)根据Need矩阵可知,当前Available为(1,4,0),可以满足进程P2的需求;P2结束后释放资源,Available为(2,7,5),可以满足P0、P1、P3和P4中任一进程的需求,所以系统不会出现死锁,当前处于安全状态。2)若Available为(0,6,2),可以满足进程P0、P3的需求;这两个进程结束后释放资源,Available为(0,6,7),仅可以满足进程P4的需求:P4结束后释放资源,Available为(0,6,8),此时不能满足余下任一进程的需求,系统出现死锁,故当前系统处在非安全状态。注:在银行家算法中,实际计算分析系统安全状态时,并不需要逐个进程进行。如本题中,在1)情况下,当计算至进程P2结束并释放资源时,系统当前空闲资源可满足余下任一进程的最大需求量,这时已经不需要考虑进程的执行顺序。系统分配任意一个进程所需的最大需求资源,在其执行结束释放资源后,系统当前空闲资源会增加,所以余下的进程仍然可以满足最大需求量。因此,在这里可以直接判断出系统处于安全状态。在2)情况下,系统当前可满足进程P0、P3的需求,所以可以直接让系统推进到P0、P3执行完并释放资源后的情形,这时系统出现死锁:由于此时是系统空闲资源所能达到的最大值,所以按照其他方式推进,系统必然还是出现死锁。因此,在计算过程中,将每步中可满足需求的进程作为一个集合,同时执行并释放资源,可以简化银行家算法的计算。
【答案解析】