题目
[2013 年计算机联考真题]下列关于银行家算法的叙述中,正确的是()。A. 银行家算法可以预防死锁[1]B. 当系统处于安全状态时,系统中一定无死锁进程C. 当系统处于不安全状态时,系统中一定会出现死锁进程D. 银行家算法破坏了死锁必要条件中的“请求和保持”条件
[2013 年计算机联考真题]下列关于银行家算法的叙述中,正确的是()。
A. 银行家算法可以预防死锁[1]
B. 当系统处于安全状态时,系统中一定无死锁进程
C. 当系统处于不安全状态时,系统中一定会出现死锁进程
D. 银行家算法破坏了死锁必要条件中的“请求和保持”条件
题目解答
答案
B. 当系统处于安全状态时,系统中一定无死锁进程
解析
考查要点:本题主要考查对银行家算法核心概念的理解,特别是安全状态与死锁的关系。
解题思路:
- 明确银行家算法的作用:银行家算法用于死锁避免,通过避免系统进入不安全状态来预防死锁。
- 理解安全状态的定义:若系统处于安全状态,则存在一种资源分配顺序,使得所有进程能顺利完成,因此必然无死锁。
- 区分相关概念:需区分“死锁预防”与“死锁避免”,并理解不安全状态的含义(可能死锁,但不必然)。
破题关键:
- 安全状态与死锁的关系:安全状态直接排除死锁可能性。
- 选项辨析:需结合算法原理逐一排除错误选项。
选项分析
选项A
银行家算法可以预防死锁
- 错误。银行家算法属于死锁避免,而非预防。它通过动态检查资源分配是否安全,避免系统进入死锁状态,但并未破坏死锁的必要条件(如“请求和保持”)。
选项B
当系统处于安全状态时,系统中一定无死锁进程
- 正确。安全状态的定义是存在一种资源分配顺序,使所有进程能顺利完成。因此,若系统处于安全状态,死锁不可能发生。
选项C
当系统处于不安全状态时,系统中一定会出现死锁进程
- 错误。不安全状态仅表示无法保证系统安全,但不必然导致死锁。例如,某些资源释放顺序仍可能避免死锁。
选项D
银行家算法破坏了死锁必要条件中的“请求和保持”条件
- 错误。银行家算法未改变进程行为(如请求资源),而是通过避免不安全状态来预防死锁,因此未破坏“请求和保持”条件。