题目
某计算机系统中有8台打印机,有K个进程竞争使用,每个进程最多需要 3台 打印机。该系统可能会发生死锁的 K的最小值是( )。A. 2B. 3C. 4D. 5
某计算机系统中有8台打印机,有K个进程竞争使用,每个进程最多需要 3台 打印机。该系统可能会发生死锁的 K的最小值是( )。
A. 2
B. 3
C. 4
D. 5
题目解答
答案
C. 4
解析
考查要点:本题主要考查死锁条件的应用,特别是如何通过资源分配构造循环等待的条件。
解题核心思路:
- 死锁发生的必要条件包括互斥、不可剥夺、循环等待和持有并等待。
- 关键点在于构造资源分配方式,使得所有进程形成环形等待链,且无剩余资源可用,从而无法继续执行。
- 最小K值需满足:当每个进程已分配2台打印机时,总资源恰好耗尽,迫使进程间必须等待彼此释放资源。
死锁条件分析
- 互斥:打印机资源互斥使用(已满足)。
- 不可剥夺:假设进程占用资源后不可被强行剥夺(合理假设)。
- 循环等待:需构造进程间形成环形等待链。
- 持有并等待:进程在持有部分资源时继续申请其他资源。
资源分配策略
- 总资源:8台打印机。
- 每个进程最多需3台,但若每个进程先分配2台,则总分配量为 $2K$。
- 剩余资源:$8 - 2K$。
- 死锁条件:当剩余资源为0时(即 $2K = 8$,解得 $K=4$),所有进程均需等待其他进程释放资源,且无法通过资源分配打破等待链。
关键结论
- 当 $K=4$ 时:
- 每个进程已分配2台,总分配8台,剩余0台。
- 每个进程仍需1台,但无资源可用,只能等待。
- 若进程间形成环形等待(如 $P1 \to P2 \to P3 \to P4 \to P1$),则满足循环等待条件,导致死锁。