单选题 某进程的资源使用情况如下表所示。
进程
已分配资源
尚需要分配
可用资源
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
2
0
0
0
0
1

0

2

0

P2
1
2
0
1
3
2
P3
0
1
1
1
3
1
P4
0
0
1
2
0
0
此时的安全序列是( )
A.P1,P2,P3,P4 B.P1,P3,P2,P4
C.P1,P4,P3,P2 D.不存在

【正确答案】 D
【答案解析】[解析] 假设先把资源分配给P1,可以得到:
进程
已分配资源
尚需要分配
可用资源
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
2
0
1
0
0
0

0

2

0

P2
1
2
0
1
3
2
P3
0
1
1
1
3
1
P4
0
0
1
2
0
0
P1可以执行,结束后,可以将其已分配的资源还给系统,即状态转换成:
进程
已分配资源
尚需要分配
可用资源
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
0
0
0
0
0
0

2

2

1

P2
1
2
0
1
3
2
P3
0
1
1
1
3
1
P4
0
0
1
2
0
0
由于R2的可用资源数为2,而P2,P3都需要3个R2资源才能够继续执行,因此系统不能将资源分配给P2,P3,那么就只能分配给P4,得到的状态为:
进程
已分配资源
尚需要分配
可用资源
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
2
0
1
0
0
0

0

2

1

P2
1
2
0
1
3
2
P3
0
1
1
1
3
1
P4
2
0
1
0
0
0
P4可以执行,结束后,可以将其已分配的资源还给系统,即状态转换成:
进程
已分配资源
尚需要分配
可用资源
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
2
0
1
0
0
0

2

2

2

P2
1
2
0
1
3
2
P3
0
1
1
1
3
1
P4
0
0
0
0
0
0
由于R2的可用资源数仍然为2,而P2,P3都需要3个R2资源才能够继续执行,因此系统不能将资源分配给P2,P3。
假设不能成立,此时不存在安全序列。