软件设计师14--死锁资源数计算
- 考点1:进程管理 - 死锁问题
- 例题:
考点1:进程管理 - 死锁问题
所谓死锁,是指两个以上的进程相互要求对方已经占有的资源导致无法继续运行下去的现象。
死锁四大条件:
- 互斥
- 保持和等待
- 不剥夺
- 环路等待
死锁处理:
- 死锁的预防(打破四大条件,有序资源分配法/静态资源分配)
- 死锁的避免(银行家算法)
- 死锁的检测与解除
- 鸵鸟策略(不予理睬)
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果进程在等待一件不可能发生的事,则进程就死锁了。而如果多个进程产生死锁,就会造成系统死锁。
系统不可能发生死锁的最小资源数 (w-1)* m+1 ≤ n
w:资源数
m:进程数
n:可用资源数
例:系统有5个进程:A、B、C、D、E。这5个进程都需要4个系统资源。如果系统至少有多少个资源,则不可能发生死锁。
n<4 一定死锁
n≥4 可能避免死锁,可能死锁
n≤15 可能避免死锁,可能死锁
n≥15+1 不可能死锁
例题:
1、某计算机系统中互斥资源R的可用数为8,系统中有3个进程P1、P2和P3竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值为(D)。
A、1
B、2
C、3
D、4