题28
题目
Q:某系统有
A. 等于
B. 等于
C. 小于
D. 大于
分析
A:https://www.bilibili.com/video/BV1Sw4m1e7ha?t=9.1&p=16
先看是不是安全序列
如果不是安全序列,就不会分配资源
申请的资源一定是小于m的
这个解答阐述了一个更强的条件,它说的是只要所有进程申请的最大资源数之和不超过 m+n-1,就一定能找到安全序列,不会发生死锁。
- 银行家算法的核心目标是找到一个安全序列,安全序列是指一种分配资源的顺序,能够保证所有进程最终都能获得所需资源并完成。
- 考虑最极端的情况:
n-1个进程只需要 1 个资源。- 1 个进程需要
m个资源 (所有资源)。
- 为什么这种极端情况下不会死锁?
- 首先,系统可以先满足那
n-1个只需要 1 个资源的进程,因为总共只需要n-1个资源,而系统拥有m个资源 (m通常大于等于n)。 - 当这
n-1个进程完成后,它们会释放资源。 - 这时,最后那个需要
m个资源的进程就能够获得所有资源并完成。
- 首先,系统可以先满足那
- 结论:即使在最极端情况下,只要所有进程申请的资源总数不超过
m + n - 1,我们都能找到一个让所有进程完成的安全序列,所以不会发生死锁。
解
C
按照银行家算法,只要保证系统中进程申请的最大资源数小于或等于
考虑最极端的情况,假如有