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