假设5个进程P0、P1、P2、P3、P4共享三类资源R1、R2、R3,这些资源总数分别为18、6、22。T0时刻的资源分配情况如下表所示,此时存在的一个安全序列是()。
进程 | 已分配资源 | 资源最大需求 | ||||
R1 | R2 | R3 | R1 | R2 | R3 | |
P0 | 3 | 2 | 3 | 5 | 5 | 10 |
P1 | 4 | 0 | 3 | 5 | 3 | 6 |
P2 | 4 | 0 | 5 | 4 | 0 | 11 |
P3 | 2 | 0 | 4 | 4 | 2 | 5 |
P4 | 3 | 1 | 4 | 4 | 2 | 4 |
首先求得各进程的需求矩阵Need与可利用资源矢量Available:
进程
Need
R1
R2
R3
P0
2
3
7
P1
1
3
3
P2
0
0
6
P3
2
2
1
Available
R1
R2
R3
P4
1
1
0
2
3
3
比较Need,Available可以发现,初始时进程P1与P3可满足需求,排除A、C。尝试给P1分配资源,则P1完成后Available将变为(6,3,6),无法满足P0的需求,排除B。尝试给P3分配资源,则P3完成后Available将变为(4,3,7),该向量能满足其他所有进程的需求。所以,以P3开头的所有序列都是安全序列。