问答题 在银行家算法中,若出现以下资源分配情况:
进程 资源最大需求 已分配资源
P0 7,5,3 0,1,0
P1 3,2,2 2,1,0
P2 9,0,2 3,0,2
P3 2,2,2 2,1,1
P4 4,3,3 0,0,2
系统剩余资源数量=(3,2,2)

问答题 该状态是否安全(给出详细的检查过程)?
【正确答案】系统安全,因为存在安全序列(P1 P3 P0 P2 P4)。过程如下:
先求出各进程剩余需求量:
P0=(7、4、3)
P1=(1、1、2)
P2=(6、0、0)
P3=(0、1、1)
P4=(4、3、1)
根据系统剩余资源数(3、2、2),找到可以立即满足的进程是P1(或P3均可),P1满足后可释放占有资源,系统剩余资源数为(5、3、2),找到可立即满足的进程是P3(或P4均可),P3满足后释放占有资源,系统此时剩余资源数是(7、4、3),找到可立即满足的进程是P0(或P2、P4均可),所有进程依次进入安全序列。
【答案解析】
问答题 如果进程依次有如下资源请求:
P1:资源请求request(1,0,2)
P4:资源请求request(3,3,0)
P0:资源请求request(0,1,0)
则系统如何进行资源分配,才能避免死锁?
【正确答案】系统要想避免死锁,就必须保证每一次分配完后都能得到安全序列,否则就拒绝分配。根据这一原则,对于进程的请求,应考虑分配以后是否安全,若不安全,则不可以进行此次分配。题目中有三个进程,其中P4的请求无法满足,因为系统剩余资源不足;若先满足P1,系统处于安全状态,因为分配后可以找到安全序列〈P1P3P2P0P4〉,如果先满足P0。P0分配完后,可以找到安全序列〈P1P3P2P0P4〉;再分配P1,可以找到安全序列〈P1P3P0P2P4〉。
【答案解析】