在银行家算法中,若出现以下资源分配情况:
进程 资源最大需求 已分配资源
P07,5,30,1,0
P13,2,22,1,0
P29,0,23,0,2
P32,2,22,1,1
P44,3,30,0,2
系统剩余资源数量=(3,2,2)
如果进程依次有如下资源请求:
P1:资源请求request(1,0,2)
P4:资源请求request(3,3,0)
P0:资源请求request(0,1,0)
则系统如何进行资源分配,才能避免死锁
参考答案:系统要想避免死锁,就必须保证每一次分配完后都能得到安全序列,否则就拒绝分配。根据这一原则,对于进程的请求,应考虑分配以后是否安全,若不安全,则不可以进行此次分配。题目中有三个进程,其中P4的请求无法满足,因为系统剩余资源不足;若先满足P1,系统处于安全状态,因为分配后可以找到安全序列〈P1P3P2P0P4〉,如果先满足P0。P0分配完后,可以找到安全序列〈P1P3P2P0P4〉;再分配P1,可以找到安全序列〈P1P3P0P2P4〉。