问题 问答题

设有一系统在某时刻的资源分配情况如下:

进程号 已分配资源 最大请求资源 剩余资源
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)系统中各进程尚需资源数如下表

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
(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,3.3,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)不能分配。

解析: 本题是典型的银行家算法的题目。银行家算法的题目相对比较固定,复杂度也不高,只要思路正确,一般不会有太大困难。

单项选择题
问答题 论述题