[13][40][多选]设系统中有 3 种类型的资源A,B,C和 5 个进程 P1、P2、P3、P4、P5。A 资源的数量为 17,B 资源的数量为 5,C 资源的数量为 20。某一时刻的系统状态如下
待补充
最大资源需求量 Max 已分配资源数量 Allocation 还需资源数量 Request
A B C A B C A B C
P1 5 5 9 2 1 2 3 4 7
P2 5 3 6 4 0 2 1 3 4
P3 4 0 11 4 0 5 0 0 6
P4 4 2 5 2 0 4 2 2 1
P5 4 2 4 3 1 4 1 1 0
根据上述,判断哪些进程是安全序列
P5→P4→P3→P2→P1
P4→P3→P2→P5→P1
P4→P3→P2→P1→P5
P2→P3→P4→P5→P1
P1→P2→P3→P4→P5
答案
P5→P4→P3→P2→P1
P4→P3→P2→P5→P1
解析
AB【解析】
首先,计算各进程的还需资源数量 Request:
P1:3 4 7
P2:1 3 4
P3:0 0 6
P4:2 2 1
P5:1 1 0
初始时,系统剩余资源为:
A:17 - (2 + 4 + 4 + 2 + 3 = 2
B:5 - (1 + 0 + 0 + 0 + 1 = 3
C:20 - (2 + 2 + 5 + 4 + 4 = 3
从安全序列的判断来看:
对于选项 AP5→P4→P3→P2→P1:
- P5:还需资源 1 1 0,系统剩余 2 3 3,满足,执行 P5 后释放资源,系统资源变为 5 4 8。
- P4:还需资源 2 2 1,系统剩余 5 4 8,满足,执行 P4 后释放资源,系统资源变为 7 4 12。
- P3:还需资源 0 0 6,系统剩余 7 4 12,满足,执行 P3 后释放资源,系统资源变为 11 4 17。
- P2:还需资源 1 3 4,系统剩余 11 4 17,满足,执行 P2 后释放资源,系统资源变为 15 7 21。
- P1:还需资源 3 4 7,系统剩余 15 7 21,满足。
- 所以 A 是安全序列。
对于选项 BP4→P3→P2→P5→P1:
- P4:还需资源 2 2 1,系统剩余 2 3 3,满足,执行 P4 后释放资源,系统资源变为 4 3 7。
- P3:还需资源 0 0 6,系统剩余 4 3 7,满足,执行 P3 后释放资源,系统资源变为 8 3 12。
- P2:还需资源 1 3 4,系统剩余 8 3 12,满足,执行 P2 后释放资源,系统资源变为 12 6 16。
- P5:还需资源 1 1 0,系统剩余 12 6 16,满足,执行 P5 后释放资源,系统部位变为 15 7 20。
- P1:还需资源 3 4 7,系统剩余 15 7 20,满足。
- 所以 B 是安全序列。
对于选项 CP4→P3→P2→P1→P5:
- P4:还需资源 2 2 1,系统剩余 2 3 3,满足,执行 P4 后释放资源,系统资源变为 4 3 7。
- P3:还需资源 0 0 6,系统剩余 4 3 7,满足,执行 P3 后释放资源,系统资源变为 8 3 12。
- P2:还需资源 1 3 4,系统剩余 8 3 12,满足,执行 P2 后释放资源,系统资源变为 12 6 16。
- P1:还需资源 3 4 7,系统剩余 12 6 16,不满足,所以 C 不是安全序列。
对于选项 DP1→P2→P3→P4→P5:
- P1:还需资源 3 4 7,系统剩余 2 3 3,不满足,所以 D 不是安全序列。
综上,答案为 AB。
【涉及考点】
第 8 章 死锁
转载请注明出处。