【正确答案】若此时P
1请求资源Request
1(1,0,1),系统按银行家算法进行检查,执行如下操作:
Request
1(1,0,1)≤Need
1(2,2,2)
Request
1(1,0,1)≤Available(1,1,2)
系统假定为P
1分配资源,并修改Available、AllocNion
1、Need
1向量,由此形成的资源变化情况见表。
{{B}}资源变化情况(一){{/B}}
|
| 进程 |
Allocation |
Need |
Available |
| R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
| P1 |
2 |
0 |
1 |
1 |
2 |
1 |
0 |
1 |
1 |
| P2 |
5 |
1 |
1 |
1 |
0 |
2 |
| P3 |
2 |
1 |
1 |
1 |
0 |
3 |
| P4 |
0 |
0 |
2 |
4 |
2 |
0 |
再利用安全性算法检查系统是否安全,可用资源(0,1,1)已经无法满足任何进程,系统进入不安全状态,因此系统不能将资源分配给进程P
1。应当撤回资源,修改相应数据结构为初始状态。 若此时进程P
2发出资源请求(1,0,1),按银行家算法进行检查: Request
2(1,0,1)≤Need
2(1,0,2) Request
2(1,0,1)≤Available(1,1,2) 系统假定为P
2分配资源,并修改Available、Allocation
2、Need
2向量,由此形成的资源变化情况见下表。
{{B}}资源变化情况(二){{/B}}
|
| 进程 |
Allocation |
Need |
Available |
| R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
| P1 |
1 |
0 |
0 |
2 |
2 |
2 |
0 |
1 |
1 |
| P2 |
6 |
1 |
2 |
0 |
0 |
1 |
| P3 |
2 |
1 |
1 |
1 |
0 |
3 |
| P4 |
0 |
0 |
2 |
4 |
2 |
0 |
再利用安全性算法检查系统是否安全,可得安全性分析结果见下表。
{{B}}安全性分析结果{{/B}}
|
| 进程 |
Work |
Need |
Allocation |
Work+Allocation |
Finish |
| R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
R1 |
R2 |
R3 |
| P1 |
0 |
1 |
1 |
0 |
0 |
1 |
6 |
1 |
2 |
6 |
2 |
3 |
True |
| P2 |
6 |
2 |
3 |
2 |
2 |
2 |
1 |
0 |
0 |
7 |
2 |
3 |
True |
| P3 |
7 |
2 |
3 |
1 |
0 |
3 |
2 |
1 |
1 |
9 |
3 |
4 |
True |
| P4 |
9 |
3 |
4 |
4 |
2 |
0 |
0 |
0 |
2 |
9 |
3 |
6 |
True |
由结果可知,可以找到一个安全序列{P2,P1,P3,P4},因此系统是安全的,可以将资源分配给P2。