题目
9/20 单选题(分值2.0分,难度:易)9.死锁检测算法中,以下哪种数据结构是必需的?A. 队列B. 栈C. 资源分配图D. 哈希表
9/20 单选题(分值2.0分,难度:易)
9.死锁检测算法中,以下哪种数据结构是必需的?
A. 队列
B. 栈
C. 资源分配图
D. 哈希表
题目解答
答案
C. 资源分配图
解析
考查要点:本题主要考查死锁检测算法中所需的核心数据结构,要求理解资源分配图在死锁检测中的作用。
解题思路:死锁检测的关键在于分析资源分配关系是否存在环路。资源分配图通过图形化的方式表示进程与资源之间的分配关系,通过检测图中的环路即可判断死锁是否存在。其他选项(队列、栈、哈希表)虽然属于常用数据结构,但并非死锁检测算法的必需基础。
破题关键:明确死锁检测的核心方法依赖于资源分配图的构建与分析,而非其他通用数据结构。
死锁检测的核心在于判断系统中是否存在进程与资源之间的环路。具体步骤如下:
-
构建资源分配图
资源分配图包含两类节点:进程节点(表示当前运行的进程)和资源节点(表示系统中的资源)。通过有向边连接节点:- 分配边:从资源指向进程(表示资源已分配给进程)。
- 请求边:从进程指向资源(表示进程请求该资源)。
-
检测环路
若存在一个环路,使得进程和资源交替出现且至少包含一个进程节点,则说明系统中存在死锁。
选项分析:
- A. 队列:常用于进程调度,但与死锁检测无直接关联。
- B. 栈:用于回溯操作,非死锁检测必需。
- C. 资源分配图:必需,用于直观表示资源分配关系并检测环路。
- D. 哈希表:用于快速查找,但并非死锁检测的核心结构。