假设系统中互斥资源 R 的可用数为 25。T0 时刻进程 P1、P2、P3、P4 对资源 R 的最大需求数、已分配资源数…
单选题
假设系统中互斥资源 R 的可用数为 25。T0 时刻进程 P1、P2、P3、P4 对资源 R 的最大需求数、已分配资源数和尚需资源数的情况如表 a 所示,若 P1 和 P3 分别申请资源 R 数为 1 和 2,则系统( )。
A. 只能先给 P1 进行分配,因为分配后系统状态是安全的
B. 只能先给 P3 进行分配,因为分配后系统状态是安全的
C. 可以时后 P1、P3.进行分配,因为分配后系统状态是安全的
D. 不能给 P3 进行分配,因为分配后系统状态是不安全的
答案:B
解析
正确答案:B
按银行家算法,请求到来时应先做试探性分配,再检查剩余资源能否找到安全序列。对 P3 分配 2 后,Available 仍能满足某进程尚需量,逐步回收后可使其余进程完成,因此系统处于安全状态,可以分配。若先给 P1 分配 1,剩余资源无法满足任一进程尚需量,无法形成安全序列,系统会进入不安全状态,故不能先给 P1。
- A 错:先给 P1 分配后系统不安全。
- B 对:先给 P3 分配后存在安全序列。
- C 错:不能直接先后给 P1、P3 分配,先给 P1 会破坏安全性。
- D 错:给 P3 分配后系统是安全的,并非不能分配。
考点延伸:银行家算法核心是安全性检查,涉及 Available、Need、Allocation、Max,只有存在安全序列时才实际分配。