概念八股辨析实战

408 概念选择题的具体判断方法、历年案例和复盘模板

PPT 只保留原则;这一页负责把原则变成做题动作。历年概念题反复变化的只是外壳,真正稳定的是下面几组边界。

ISA 与微架构:先问“谁规定”

2022 年第 18 题

2022 年第 18 题 考查哪些内容属于指令集体系结构(ISA):

  • 指令字格式和指令类型:属于 ISA;
  • 通用寄存器个数和位数:属于 ISA;
  • CPU 时钟周期:不属于 ISA;
  • 加法器进位方式:不属于 ISA。

判断标准不是“是不是硬件”,而是:

软件、编译器或操作系统是否必须依赖这个属性?

两个 CPU 可以采用不同的时钟周期、流水线和加法器电路,却运行同一套 ISA。反过来,如果寄存器数量、指令编码或寻址方式改变,机器语言程序就可能无法运行。

2025、2026 年的同类题

2025 年第 16 题 中,定长指令字格式属于 ISA;阵列乘法器、微程序控制器、单总线数据通路属于实现细节。

2026 年第 16 题 中,“是否使用超级流水线技术”是微架构选择,因此 D 是最明确的答案。

可以把边界记成:

层次主要问题例子
ISA软件看到什么、指令做什么指令格式、寄存器、寻址方式、异常入口
微架构内部如何实现 ISA流水线级数、超标量、Cache、控制器
数字逻辑/电路用什么电路实现加法器结构、门电路、布线

易混点:虚拟存储

“虚拟存储管理方式”不能整个词直接归类,要拆成两部分:

具体内容归属
虚拟地址格式、页表格式、地址转换、缺页异常入口ISA/硬件接口
页框分配、页面置换、调页时机、工作集策略操作系统

因此,遇到“虚拟存储是否由 ISA 规定”,先看选项说的是硬件机制还是管理策略。本题若同时出现“超级流水线”,后者是更无争议的微架构选项,应优先选择它。

反事实检验

换一台同 ISA 但不同型号的机器,程序还能否原样运行?

  • 还能运行:该属性通常属于微架构或电路;
  • 不能运行:该属性可能属于 ISA。

这个方法还可以判断 Cache、TLB、乱序执行、微程序控制器和流水线级数:它们通常对应用程序透明,不是 ISA 的规定。

RISC、流水线与 CPI

2020 年第 17 题和 2026 年第 20 题:CPI 的默认语境

2020 年第 17 题2026 年第 20 题 在理想条件下使用以下结论:

  • 单周期 CPU:CPI = 1;
  • 多周期 CPU:通常 CPI > 1;
  • 基本流水线:理想吞吐率下 CPI 可视为 1;
  • 超标量流水线:每周期完成多条指令,平均 CPI 可小于 1。

这不是说现实程序永远满足这些等式。流水线填充、排空、数据冒险、分支失败和 Cache 缺失都会改变实际 CPI。

2025 年第 18 题:CPI 与 Cache

2025 年第 18 题 中,“程序的 CPI 与 Cache 缺失率无关”是错误的。Cache 缺失会引入额外停顿,影响平均 CPI。

常用总公式是:

CPU 执行时间 = 指令数 × CPI × 时钟周期

其中 CPI 是运行结果,不只由指令集决定,还会受到指令比例、流水线停顿、分支预测和存储层次命中情况影响。

异常、陷阱和中断:先分清事件类型与返回点

2014 年第 25 题:用户态能执行什么

2014 年第 25 题 中,不能在用户态执行的是“关中断指令”。

普通跳转、压栈可以在用户态执行;trap 指令也可以由用户程序执行,它的作用正是主动进入内核服务。不要因为 trap 会导致状态切换,就误以为 trap 本身是特权指令。

2015 年第 22 题:异常处理后返回哪里

2015 年第 22 题 利用“总是返回发生异常的指令”设置陷阱。异常类型不同,返回点也不同:

类型典型处理后位置例子
Fault(故障)原指令,修复后重新执行缺页
Trap(陷阱)下一条指令系统调用、断点
Abort(终止)通常不能继续严重硬件或不可恢复错误

所以:

  • 缺页处理完成后通常重新执行发生缺页的访存指令;
  • 显式陷阱处理完成后通常执行下一条指令;
  • “所有异常都返回原指令”或“所有异常都返回下一条”都过于绝对。

2020 年第 20、21 题:内部异常与外部中断

2020 年第 20 题 中:

  • 访存时缺页:内部异常;
  • 定时器到时:外部中断;
  • 网络数据包到达:外部中断。

2020 年第 21 题 中,“可屏蔽中断一有效,CPU 立即响应”是错误的。通常还要满足:CPU 开中断、当前指令执行完毕、没有更高优先级事件。

中断处理:区分硬件、内核和设备控制器

2018 年第 22 题

2018 年第 22 题 考查外部中断响应时机和现场保存:

产生请求
  → CPU 允许中断
  → 当前指令执行结束
  → 硬件保存断点并引出中断入口
  → 中断服务程序保存其余现场并处理

因此:

  • 有请求不等于立即暂停当前指令;
  • 中断隐指令不等于自动保存所有通用寄存器;
  • 中断优先级不一定按请求到达先后决定。

谁完成什么

工作通常由谁完成
保存 PC/断点、引出中断入口硬件/中断隐指令
保存通用寄存器和软件现场中断服务程序/操作系统
初始化中断向量表操作系统
读取设备状态、处理数据设备驱动和中断服务程序
DMA 数据块传送DMA 控制器
DMA 初始化和结束处理CPU/操作系统

不要把“硬件自动做了部分现场保护”扩大成“硬件保存全部现场”。

控制流题:沿着 PC 走一遍

2026 年第 17 题 问哪些指令“可能不改变程序下一条指令的地址”。可以用 PC 的最后写入者分析:

指令常见控制流
条件转移条件不满足时顺序执行,因此可能不改变
过程调用保存返回地址并跳到过程入口
陷入指令跳到异常或系统服务入口
返回装入保存的返回地址

题目给出的答案是Ⅰ、Ⅳ。这里的关键是“可能”二字;正常语义下返回通常改变控制流,但题目把返回地址恰好等于顺序地址的特殊情况也纳入了。遇到类似争议,先按正常语义排除明显项,再结合“可能”和选项结构作答。

其他控制流易错点

  • “陷阱处理完成后返回下一条”描述的是处理结束后的恢复位置,不是陷阱指令执行后立即顺序取指;
  • “调用保存下一条指令地址”描述的是返回地址,不等于调用后的下一条执行地址;
  • 条件转移的目标地址和顺序地址必须分别讨论,不能看到“转移”就认为必然跳转。

操作系统:先判事件、状态和执行主体

操作系统概念题常把“谁发起”“谁执行”“何时切换”写在同一句话里。先把叙述拆成三列:

题干问法先检查什么常见误判
某事件属于中断还是异常事件来自指令内部还是处理器外部把缺页、除零当成外部中断
进程何时切换状态发生了什么事件,是否满足阻塞/唤醒条件把“请求 I/O”直接写成运行结束
死锁是否已经发生安全状态、死锁状态和必要条件的关系把不安全状态当成必然死锁
文件删除后还能否访问目录项、inode、引用计数是否仍存在把硬链接和符号链接当成同一种引用

例如,2009 年第 22 题2016 年第 22 题2020 年第 20 题2023 年第 21 题 都要求区分异常与外部中断:缺页、除零和保护错是在执行指令时由 CPU 检测的异常;键盘输入、DMA 完成和定时器到时来自处理器外部。看到“发生在用户程序中”不能直接判定为外部中断。

进程题要把“事件”翻译成状态转移。2009 年第 24 题2012 年第 45 题2017 年第 46 题2021 年第 45 题 中,到达、时间片耗尽、等待 I/O、I/O 完成分别对应就绪、阻塞、运行等不同变化。草稿先写“事件 → 当前状态 → 允许的下一状态”,不要把“调度程序被调用”误当成“进程一定获得处理机”。

死锁判断要区分“避免”和“预防”。2013 年第 32 题 考查银行家算法:安全状态表示存在一个可完成的进程序列,不安全状态只是“可能”导致死锁,并不等于已经死锁;银行家算法通过分配检查来避免进入不安全状态,并没有破坏某个死锁必要条件。遇到“安全/不安全/死锁”三个词,先画出包含关系再判断绝对表述。

文件系统中,2009 年第 30 题2013 年第 26 题 可用来区分文件名、目录项、inode 和数据块;2009 年第 31 题2017 年第 31 题 涉及硬链接与符号链接。判断“删除后是否仍可访问”时,只追踪引用关系:硬链接增加 inode 的引用计数,符号链接保存的是路径名;删除一个目录项不一定立即删除 inode 和数据块。

计算机网络:先确定层次、作用范围和报文归属

网络概念题最容易把相邻层的职责混在一起。看到一个协议或设备,先问三个问题:

它位于哪一层?服务谁?解决可靠性、寻址还是转发问题?

分层边界可用这些题交叉检查:2009 年第 33 题2011 年第 33 题2022 年第 34 题。传输层提供进程到进程的逻辑通信,网络层负责主机到主机的分组转发,数据链路层负责相邻结点之间的传输;“端到端”“逐跳”“相邻结点”是比协议名称更可靠的判据。

TCP/UDP 题不要把“有校验”当成“可靠”。2014 年第 39 题2018 年第 39 题2019 年第 38 题2025 年第 38 题 可对照:UDP 无连接,提供复用/分用和差错检测,但不负责确认、重传和按序交付;TCP 通过序号、确认、窗口和重传提供可靠字节流。看到“UDP 有校验和所以可靠”或“TCP 面向报文”这类把一个属性推成全部能力的表述,要直接警惕。

路由协议要按“自治系统内/外”和“算法/承载协议”拆分。2010 年第 35 题2016 年第 37 题2017 年第 37 题2026 年第 38 题 中,RIP 是基于距离向量的 IGP,使用 UDP;OSPF 是基于链路状态的 IGP,直接使用 IP;BGP 是自治系统之间的 EGP,使用 TCP。题目若同时问“路由算法”和“报文封装在哪个协议”,必须分别作答。

地址题要区分三种地址和修改位置。2018 年第 37 题 考查跨路由器转发时 MAC 地址逐跳改变而 IP 地址通常端到端保持;2024 年第 35 题 考查 ARP 只在同一 VLAN/广播域内解析 IP 到 MAC;2023 年第 38 题2025 年第 37 题 考查 NAT 可能改写 IP 地址、端口和校验和。草稿可写成“本跳的帧头 / 端到端的 IP 头 / 传输层端口”,避免把路由器转发误解为所有字段都不变。

绝对表述与时刻词:专门找反例

看到以下词,先尝试构造反例:

一定、必然、总是、只能、所有、立即、完全、与……无关

看到以下词,先在时间轴上定位:

发生时、开始执行时、完成时、执行结束时、处理完成后

2024 年第 23 题 的争议就来自“中断或异常发生时”和“处理程序开始执行时”不是同一个时刻。判断 CPU 状态前,先标出事件发生、状态切换和处理程序开始这三个节点。

同样的检查也适用于:

  • “Cache 缺失时”与“缺失处理完成后”;
  • “进程申请 I/O 时”与“I/O 完成时”;
  • “指令执行期间”与“指令执行结束后”。

历年题中可以直接这样练习:

  • 2013 年第 22 题 把“中断 I/O 方式适用于所有外部设备”作为干扰项。只要想到高速磁盘可能来不及逐字响应中断,就能构造反例;“所有”比后半句的 DMA 描述更值得优先检查。
  • 2013 年第 32 题 把“安全状态”“不安全状态”和“死锁”混在一起。安全状态意味着存在可完成序列;不安全状态只是失去保证,不能推出“一定已经死锁”。看到“一定”就问:能否给出一个尚未死锁但不安全的状态。

遇到组合题:利用选项结构

不要机械地从Ⅰ判断到Ⅳ。推荐顺序是:

  1. 找最确定、最容易举反例的一项;
  2. 看它出现在哪些选项中;
  3. 立即划掉不可能组合;
  4. 只处理最后剩下的差异项。

如果剩下两个选项,重点不是重新背整章,而是找出它们唯一不同的那个命题。

这种方法特别适合 2026 年第 17 题:Ⅱ“过程调用”必然跳转,判定Ⅱ为假后,A、C、D 同时排除,只剩 B,不需要先解决Ⅳ的边界争议。

复盘模板:不要只记答案

不要写:

2026 年第 16 题选 D。

改成四行:

错误选项:把微架构实现说成 ISA 规定
判据:软件可见性 / 换实现后程序是否仍能运行
边界:虚存硬件机制 ≠ OS 页面管理策略
迁移:流水线、Cache、微程序、总线结构也按同一表判断

每道模糊题至少记录:

  • 错误选项错在哪个词;
  • 它混淆了哪些层次或执行主体;
  • 哪个具体机制能推出答案;
  • 哪个相邻题型也能用同一判据。

考场决策顺序

圈限定词
确定讨论层次和执行主体
还原成 PC、寄存器或状态变化
先判最确定的选项
剩余争议按教材默认口径处理

建议设置时间边界:20 秒内找到强判据就作答;仍有两个选项时只看差异词;60 秒仍没有新判据就标记跳过。改答案必须因为找到了定义、反例、时刻条件或教材原句,而不是因为“另一个选项读起来更顺”。

2009—2026 年概念题索引

下面按年份列出一组适合反复回看的概念题。它们不一定都属于组成原理,但都在训练同一种能力:给概念划边界、识别限定词、区分执行主体。

年份与题号表面主题真正要判断的边界
2009-17RISC 特征硬布线控制器 vs 微程序控制器;典型特征不是强制实现
2010-16RAM 与 ROM随机存取方式不等于 RAM;Cache 通常用 SRAM
2011-18RISC 与流水线定长、对齐、Load/Store 如何降低流水线复杂度
2012-20USB 总线总线标准的接口属性与传输特性
2012-23用户态事件“在用户态发生”不等于“处理程序在用户态执行”
2013-22中断 I/O 与 DMA请求 CPU 时间还是总线使用权;谁实际传输数据
2014-25用户态与 traptrap 可由用户程序执行;关中断是特权操作
2015-22Fault、Trap、Abort异常类型不同,处理后返回点不同
2016-22中断与异常缺页、除零、保护错是异常;DMA 结束是外部中断
2017-17超标量流水线每周期发射多条不等于缩短单个流水段时间
2018-22外部中断中断允许状态、指令结束响应、现场保存分工
2019-14缺页处理处理完成后重做原指令,不是直接执行下一条
2020-18自陷 Trap自陷是内部异常,不是外部中断;通常返回下一条
2021-22多重中断响应条件、屏蔽字和优先级不能混为一谈
2022-18ISA 内容指令格式和寄存器属于 ISA;时钟周期和电路不属于
2023-21硬件与异常/中断异常在指令中检测,中断通常在指令结束后响应
2024-18MMU 地址转换TLB/页面缺失属于转换链路;Cache 缺失发生在之后
2025-16ISA 与实现定长指令字是接口,乘法器、微程序和总线是实现
2026-12/16/17系统层次、ISA、控制流逻辑实现 vs 物理实现;谁规定;PC 是否必然改变

六条主线

“发生”与“执行”不是一回事

2012 年第 23 题中,系统调用可以在用户态发生,但服务程序在内核态执行;缺页由用户态访存触发,但缺页处理程序在内核态执行。看到“能否在用户态发生”和“能否在用户态执行”,必须分开回答。

“检测”与“处理”不是一回事

2024 年第 18 题可以画成:

虚拟地址 → TLB/页表地址转换 → 得到物理地址 → Cache 查找 → 必要时访问主存

页面缺失和 TLB 缺失属于地址转换链路,Cache 缺失属于之后的 Cache 访问阶段。CPU 检测到缺页,也不等于 CPU 负责选择淘汰页,后者由操作系统处理。

“请求谁”与“传输谁”不是一回事

2013 年第 22 题和 2020 年 DMA 题可一起复习:

方式请求的资源数据实际搬运
中断 I/OCPU 处理时间CPU/驱动程序
DMA总线使用权DMA 控制器

“DMA 需要 CPU 初始化”不等于“DMA 传输过程由 CPU 完成”。

“典型特征”不是“强制规定”

2009、2011、2017、2025 年分别从 RISC、流水线和超标量角度考查这一点:RISC 通常采用硬布线控制器,但 ISA 不强制某一种控制器;RISC 有利于流水线,但不代表所有 RISC 必须采用相同流水线;超标量增加每周期发射宽度,不等于缩短单个流水段的组合逻辑时间。

“逻辑地址/物理地址”和“逻辑实现/物理实现”不能混读

2024 年第 18 题考地址空间,2026 年第 12 题考系统层次,虽然都出现“逻辑/物理”,但含义不同:逻辑地址/物理地址描述地址空间;逻辑实现/物理实现描述实现层次;虚拟页号/物理页框号描述页表映射两端。

“不能”“不可能”要尝试构造反例

2010 年 Cache 命中组合、2014 年快速排序结果、2019 年缺页处理、2026 年控制流题都使用了“不可能/不能”口吻。把选项翻译成具体状态或执行序列,先尝试构造一个满足题干的反例;只有构造不出反例,才保留“可能成立”。

把历年题变成边界卡片

每条卡片只记录判据,不抄整段解析。例如:

卡片:缺页处理返回点
正面:缺页处理完成后回到哪里?
背面:回到发生缺页的原指令重新执行;“下一条”是错误替换。
关联:2015-22、2019-14、2026-17。
卡片:ISA 与微架构
正面:如何判断一个属性是否由 ISA 规定?
背面:看软件可见性;换微架构后程序仍能运行的,通常不是 ISA。
关联:2022-18、2025-16、2026-12/16。
卡片:中断与异常
正面:访存缺页、定时器到时、DMA 结束分别是什么?
背面:缺页是内部异常;定时器和 DMA 结束通常是外部中断。
关联:2016-22、2020-20、2023-21。

复习时,记忆对象应从“某年某题的答案”变成“一个判据 + 多道题的迁移”。