假定系统中有5个进程P1、P2、P3、P4和P5;3类资源A、B和C,其资源数量分别为17、5和20。T0时刻的资源分配情况如下表,系统采用银行家算法实施死锁避免策略,试问T0时刻,给出分析过程系统的状态。
最大资源需求 | 已分配资源数量 | |||||
A | B | C | A | B | C | |
P1 | 5 | 5 | 9 | 2 | 1 | 2 |
P2 | 5 | 3 | 6 | 4 | 0 | 2 |
P3 | 4 | 0 | 11 | 4 | 0 | 5 |
P4 | 4 | 0 | 5 | 2 | 0 | 4 |
P5 | 4 | 2 | 4 | 3 | 1 | 4 |
答:
系统剩下的资源:
A:17-2-4-4-2-3=2
B:5-1-0-0-0-1=3
C:20-2-2-5-4-4=3
每个进程还需要的剩余资源 = 最大资源需求 - 已分配资源数量
最大资源需求 | 已分配资源数量 | 还需要的资源 | 系统剩余的资源 | |||||||||
A | B | C | A | B | C | A | B | C | A | B | C | |
P1 | 5 | 5 | 9 | 2 | 1 | 2 | 3 | 4 | 7 | 2 | 3 | 3 |
P2 | 5 | 3 | 6 | 4 | 0 | 2 | 1 | 3 | 4 | |||
P3 | 4 | 0 | 11 | 4 | 0 | 5 | 0 | 0 | 6 | |||
P4 | 4 | 0 | 5 | 2 | 0 | 4 | 2 | 0 | 3 | |||
P5 | 4 | 2 | 4 | 3 | 1 | 4 | 1 | 1 | 0 |
系统安全性分析:
Work(可分配给各进程的资源数目):初始值为系统剩余的资源(2,3,3)
Need(还需要的资源) Allocation(已分配资源数量)
Finish(此次检查中是否被满足):初始均为F
Work | Need | Allocation | Work+Allocation | Finish | |||||||||
A | B | C | A | B | C | A | B | C | A | B | C | ||
P4 | 2 | 3 | 3 | 2 | 0 | 3 | 2 | 0 | 4 | 4 | 3 | 7 | T |
P2 | 4 | 3 | 7 | 1 | 3 | 4 | 4 | 0 | 2 | 8 | 3 | 9 | T |
P3 | 8 | 3 | 9 | 0 | 0 | 6 | 4 | 0 | 5 | 12 | 3 | 14 | T |
P5 | 12 | 3 | 14 | 1 | 1 | 0 | 3 | 1 | 4 | 15 | 4 | 18 | T |
P1 | 15 | 4 | 18 | 3 | 4 | 7 | 2 | 1 | 2 | 17 | 5 | 20 | T |
T0时刻,系统处于安全状态。安全序列为<P4,P2,P3,P5,P1>