Skip to content

2023年 408 操作系统 第 24 题

操作系统2023年选择题2分

题目

在操作系统内核中,中断向量表适合采用的数据结构是( )。

错因

B

把"中断要按时间先后处理"映射到"队列"。但中断向量表不是用来排队的——它是根据中断号直接找到对应处理程序入口的查表结构。"先到先处理"是中断调度层面的事,不是中断向量表的功能。队列做不到 按号索引。

C

链表是顺序访问数据结构——给定中断号 要找第 项必须从头扫到第 个,复杂度 。中断处理对延迟极敏感(响应时间是硬件时钟周期级别), 完全不可接受。链表的优势是动态增删,但中断号是硬件设计阶段就固定下来的,无需动态增删。

D

双向链表只是单向链表加上反向指针,对"按编号查找"没有任何加速作用——按下标访问仍然是 。双向链表的优势是双向遍历和"已知节点位置时 删除",这两个特性中断向量表都用不上。

总解析

中断向量表的需求

  • 中断号是稠密的小整数(如 x86 的 0~255);
  • 每次中断要在极短延迟内根据中断号找到处理程序入口;
  • 数量固定(硬件设计阶段就定下来);
  • 不需要插入/删除。

最匹配的数据结构数组

数据结构按编号查找内存连续是否适合中断向量表
数组✓ 完美匹配
队列不支持✗ 用途不对
单向链表✗ 太慢
双向链表✗ 同上

数组用中断号当下标即可一次访存拿到入口地址——这正是 x86 IDTR、ARM 向量表等硬件机制的实际实现。

最终答案是 A(数组)

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题