题目
某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是( )。A. 2B. 3C. 4D. 5
某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是( )。
A. 2
B. 3
C. 4
D. 5
题目解答
答案
C. 4
解析
考查要点:本题主要考查死锁条件在资源分配问题中的应用,特别是如何通过进程数与资源需求关系判断死锁发生的可能性。
解题核心思路:
- 死锁发生的条件:互斥、不可剥夺、请求保持和环路等待。
- 关键点:当系统资源分配导致无法找到安全序列时,系统处于不安全状态,可能发生死锁。
- 构造极端场景:假设每个进程已分配部分资源,剩余资源无法满足任何进程的需求,且形成环路等待,即可判定死锁。
破题关键:
- 每个进程最多需3台打印机,总资源为8台。
- 最小K值需满足:资源分配后,所有进程均需等待他人释放资源,且无法继续执行。
步骤1:分析资源分配极限情况
假设每个进程已分配2台打印机,则总占用资源为 $K \times 2$。
当 $K=4$ 时,总占用资源为 $4 \times 2 = 8$ 台,此时系统资源已耗尽,每个进程仍需申请1台打印机。
步骤2:构造环路等待
若进程间形成如下依赖关系:
- 进程1等待进程2释放资源
- 进程2等待进程3释放资源
- 进程3等待进程4释放资源
- 进程4等待进程1释放资源
此时,所有进程均被阻塞,无法继续执行,形成死锁。
步骤3:验证K=3时不满足条件
若 $K=3$,每个进程最多分配2台打印机,总占用为 $3 \times 2 = 6$ 台,剩余2台。
剩余资源可满足至少1个进程的需求(需1台),因此存在安全序列,不会死锁。