设有一系统在某时刻的资源分配情况如下表所列:
表 | |||
进程号 | 已分配资源 | 最大请求资源 | 剩余资源 |
P0 | 0,0,3,2 | 0,0,4,4 | 1,6,2,2 |
P1 | 1,0,0,0 | 2,7,5,0 | |
P2 | 1,3,5,4 | 3,6,10,10 | |
P3 | 0,3,3,2 | 0,9,8,4 | |
P4 | 0,0,1,4 | 0,6,6,10 |
如果此时进程P1提出资源请求(0,4,2,0),系统能分配给它吗若不能则写出原因,若能则写出安全序列。
参考答案:当进程P1提出请求(0,4,2,0)时,可以判断该请求是合理的,因为P1尚可以申请的最大请求为(1,7,5,0),而且,剩余资源(1,6,2,2)也是可以满足其要求的。但是,一旦分配以后,修改请求资源如表2所列。
剩余资源Available(1,2,0,2)已不能满足上述任何进程的需要。进入不安全状态,所以P1请求(0,4,2,0)不能分配。 表2 P0 0,0,1,2 P1 1,3,3,0 P2 2,3,5,6 P3 0,6,5,2 P4 0,6,5,6
解析: 本题是典型的银行家算法的题目。银行家算法的题目相对比较固定,复杂度也不高,只要思路正确,一般不会有太大困难。