扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 死锁问题简单
单选题
2022年5月第38题
简单
单选题
2022年5月第38题
#第二版教材
#必须掌握
某系统中有5个并发进程竞争资源R。假设每个进程都需要3个R,那么最少需要有(__)个R,才能保证系统不会发生死锁。
问题(1)
浓缩知识点
死锁避免中,对于多个并发进程竞争同一种资源的场景,需按最坏情况推导最少资源数以保证无死锁,最坏情况是每个进程都已占有自身最大需求数减1的资源,此时所有进程都因缺少1个资源无法推进,若系统在此基础上再增加1个资源,就能让至少一个进程获得足额资源完成执行,其释放的资源可供给其他进程,从而打破循环等待链避免死锁。通用计算方式为系统所需最少资源数等于进程总数乘以(单个进程最大资源需求数减1)再加1。该方法核心是通过资源的最小合理配置破坏死锁的循环等待必要条件,若涉及多种不同资源的竞争,则需借助银行家算法等更复杂的死锁避免策略。
正确答案
B
本题考察的是死锁避免的资源分配条件。
根据死锁产生的四个必要条件(互斥、不可抢占、占有且等待、循环等待),我们通过破坏循环等待条件来保证系统不会发生死锁。
若每个进程最多需要3个资源,则在最糟糕的情况下,所有进程都可能已经占有2个资源,并各自再等待1个资源才能继续执行。此时:
- 已占用的资源数 = 进程数 × (最大需求数 - 1) = 5 × (3 - 1) = 10
- 为了避免循环等待,必须至少再有1个额外资源可分配,打破等待环。
因此系统总资源数至少需要:10 + 1 = 11。
A选项10:若系统只有10个资源,可能出现每个进程各占2个资源的情况,此时所有进程都等待最后一个资源,形成死锁,错误。
B选项11:可保证至少有一个进程能够拿到第3个资源继续执行并释放资源,从而避免死锁,正确。
C选项12:资源数充足,当然不会死锁,但不是最少数量,因此错误。
D选项13:同理,资源数更富余,但题问的是最少资源数,因此错误。
所以答案是 B. 11。
