软考架构师复习站

错题精讲:把不会的截图变成套路

本页逐题分析 source/need 下的截图。每题都给答案、步骤、陷阱和同类题记忆法;新增截图用快解卡片补齐原图、文字题干和知识点归类。

错题脑图:选择题公式先背这个

错题公式

操作系统

计算机组成

可靠性

架构/工程

完整归档表见:全量考点对齐与错题归档

题 1:银行家算法安全序列

文字版原题

系统中有三类互斥资源 R1、R2、R3,可用资源数分别为 9、8、5。T0 时刻有 P1、P2、P3、P4、P5 五个进程,题目给出各进程对资源的最大需求量和已分配资源数。若进程按某一序列执行,问哪个序列能使系统处于安全状态。

A. P1 → P2 → P4 → P5 → P3
B. P2 → P1 → P4 → P5 → P3
C. P2 → P4 → P5 → P1 → P3
D. P4 → P2 → P5 → P1 → P3
原题截图,可横向拖动查看打开原图
银行家算法题目截图

答案:C,P2 → P4 → P5 → P1 → P3

这类题不是凭感觉看序列,而是严格做三步:算可用资源 Available,算每个进程还需要 Need,再按选项顺序模拟执行。

第一步:算 Available

资源总量:R1=9,R2=8,R3=5。

已分配合计:R1 = 1+2+2+1+1 = 7;R2 = 2+1+1+2+1 = 7;R3 = 1+1+0+0+3 = 5。

所以当前可用资源:Available = (9,8,5) - (7,7,5) = (2,1,0)

第二步:算 Need = Max - Allocation

进程最大需求已分配还需要 Need初始能否执行
P1(6,5,2)(1,2,1)(5,3,1)不能,R3 不够。
P2(2,2,1)(2,1,1)(0,1,0)能,Need ≤ (2,1,0)。
P3(8,1,1)(2,1,0)(6,0,1)不能,R1/R3 不够。
P4(1,2,1)(1,2,0)(0,0,1)不能,R3 不够。
P5(3,4,4)(1,1,3)(2,3,1)不能,R2/R3 不够。

第三步:模拟执行 C 选项

  1. 初始 Available = (2,1,0),只有 P2 可执行。P2 完成后释放 (2,1,1),Available = (4,2,1)。
  2. P4 Need=(0,0,1),可执行。释放 (1,2,0),Available = (5,4,1)。
  3. P5 Need=(2,3,1),可执行。释放 (1,1,3),Available = (6,5,4)。
  4. P1 Need=(5,3,1),可执行。释放 (1,2,1),Available = (7,7,5)。
  5. P3 Need=(6,0,1),可执行。安全序列成立。
陷阱:进程执行完成后,不是只减资源,而是把它已分配的资源全部释放回 Available。

银行家算法口诀:先可用,后需求;能跑就释放;一路跑完才安全。

题 2:三个可靠度 0.8 的部件串联

文字版原题

三个可靠度 R 均为 0.8 的部件串联构成一个系统,求该系统的可靠度。

A. 0.240
B. 0.512
C. 0.800
D. 0.992
原题截图,可横向拖动查看打开原图
串联系统可靠性题目截图

答案:B,0.512

题中三个部件是串联。串联系统的特点是:任何一个部件失败,整个系统失败。所以系统可靠度等于各部件可靠度相乘。

串联可靠度:R = R1 × R2 × ... × Rn

本题:0.8 × 0.8 × 0.8 = 0.512

扩展:并联系统怎么做

如果题目画的是并联,即多个部件只要有一个成功系统就成功,那么应先算全部失败概率,再用 1 减掉。

并联可靠度:R = 1 - (1-R1)(1-R2)...(1-Rn)

记忆:串联像一串灯泡,一个坏全灭,所以乘成功率;并联像多条备份路,全坏才失败,所以 1 减全失败。

题 3:分页存储逻辑地址转物理地址

文字版原题

页式存储系统的逻辑地址由页号和页内地址组成。页面大小为 4K,逻辑地址用十进制表示。图中逻辑地址为 8644,页表中页号 0、1、2 分别对应物理块号 2、3、8。求转换后的十进制物理地址。

A. 33220
B. 8644
C. 4548
D. 2500
原题截图,可横向拖动查看打开原图
分页地址转换题目截图

答案:A,33220

分页地址转换题核心只有两个数:页号和页内偏移。页大小 4K 要按 4096 字节计算。

计算过程

  1. 页面大小 = 4K = 4096 字节。
  2. 逻辑地址 = 8644。
  3. 页号 = 8644 ÷ 4096 = 2,余数为 8644 - 4096 × 2 = 452
  4. 查页表:页号 2 对应物理块号 8。
  5. 物理地址 = 物理块号 × 页大小 + 页内偏移 = 8 × 4096 + 452 = 33220
陷阱:4K 是 4096,不是 4000。页号看商,页内偏移看余数。最后用“物理块号”替换“页号”,偏移不变。

分页公式:逻辑地址 = 页号 × 页大小 + 页内偏移;物理地址 = 块号 × 页大小 + 页内偏移。

题 4:链接文件分配,访问第 5120 逻辑字节

文字版原题

某文件系统采用链式存储管理方案,磁盘块大小为 1024 字节。文件 Myfile.doc 由 5 个逻辑记录组成,每个逻辑记录大小与磁盘块大小相等,并依次存放在 121、75、86、65、114 号磁盘块上。若要读取文件的第 5120 逻辑字节处的信息,应访问几号磁盘块?

A. 7
B. 85
C. 65
D. 114
原题截图,可横向拖动查看打开原图
链接文件分配题目截图

答案:D,114 号磁盘块

文件采用链接存储,5 个逻辑记录依次放在 121、75、86、65、114 号磁盘块,每块 1024 字节。要找第 5120 个逻辑字节属于第几个逻辑块。

计算过程

每个磁盘块 1024 字节:

  • 第 1 块:第 1 到 1024 字节,对应磁盘块 121。
  • 第 2 块:第 1025 到 2048 字节,对应磁盘块 75。
  • 第 3 块:第 2049 到 3072 字节,对应磁盘块 86。
  • 第 4 块:第 3073 到 4096 字节,对应磁盘块 65。
  • 第 5 块:第 4097 到 5120 字节,对应磁盘块 114。

所以第 5120 个逻辑字节在第 5 个逻辑记录中,对应 114 号磁盘块。

陷阱:软考这类“第 5120 个字节”通常按 1 开始计数,因此 5120 是第 5 块的最后一个字节。若按从 0 开始的字节偏移,5120 会落到第 6 块,但题目没有第 6 块,所以不能那样理解。

第 n 个字节所在块号 = ceil(n / 块大小)。本题 ceil(5120 / 1024) = 5。

题 5:软件架构设计活动,错误的是哪项

文字版原题

软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代过程。以下关于软件架构设计活动的描述,错误的是哪一项?

A. 在建立软件架构的初期,一般需要选择一个合适的架构风格
B. 将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系
C. 软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件
D. 一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审
原题截图,可横向拖动查看打开原图
架构设计活动题目截图

答案:C

错误点在“设计并实现这些构件”。架构设计可以识别、设计、集成构件,定义接口和关系,但“实现构件”属于详细设计和编码阶段。

逐项判断

选项判断原因
A 初期选择合适架构风格正确架构设计早期要根据质量属性选择分层、事件驱动、微服务等风格。
B 将已标识构件映射到架构中并分析关系正确构件、连接件和依赖关系是架构设计的重要内容。
C 将构件集成到架构中,设计并实现这些构件错误错在“实现”。架构设计不等于编码实现。
D 得到详细架构设计后邀请独立人员评审正确架构评审需要相对独立视角识别风险和缺陷。
记忆:架构师画蓝图、定结构、定接口、审风险;开发人员按蓝图实现构件。题目把“设计”和“实现”绑在一起时要警惕。

题 6:16M 字节主存按字节编址,需要多少位地址

文字版原题

如果主存容量为 16M 字节,且按字节编址,表示该主存地址至少需要多少位?

A. 16
B. 20
C. 24
D. 32
原题截图,可横向拖动查看打开原图
地址位数题目截图

答案:C,24 位

按字节编址表示每个字节都有独立地址。16M 字节意味着需要能表示 16M 个不同地址。

计算过程

1M = 2^20,所以 16M = 16 × 2^20 = 2^4 × 2^20 = 2^24

如果地址有 n 位,就能表示 2^n 个地址。要表示 2^24 个字节地址,至少需要 24 位。

陷阱:题目说“按字节编址”,所以容量单位是字节就直接算地址个数。如果是按字/半字编址,还要除以每个编址单位的字节数。

地址位数公式:容量 / 编址单位大小 = 地址个数 = 2^n。

题 7:ABSD 采用什么描述软件架构

文字版原题

基于软件架构的设计(ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用(1)来描述软件架构,采用(2)来描述需求。问题 1 选择哪项?

A. 类图和序列图
B. 视角与视图
C. 构件和类图
D. 构件与功能
原题截图,可横向拖动查看打开原图
ABSD 描述方式题目截图

答案:B,视角与视图

ABSD 强调由商业、质量和功能需求共同驱动架构设计。描述软件架构时,采用“视角与视图”;描述需求时,采用“用例和质量属性场景”。

为什么选 B

软件架构不是一张图可以讲完的。用户、开发、测试、运维、项目经理关心的问题不同,所以需要从不同视角观察系统,并形成不同视图。例如逻辑视图看功能抽象,进程视图看并发通信,部署视图看节点拓扑。

顺手把第二空也记住

如果题目继续问“采用什么描述需求”,标准说法是:用例描述功能需求,质量属性场景描述质量需求

记忆:架构用“视角/视图”看,需求用“用例/质量场景”讲。

题 8:阶段界限严格,应选哪种开发方法

文字版原题

某开发组在开发某个系统时,各个阶段具有严格的界限,只有一个阶段的获得认可才能进行下一个阶段的工作,则该开发组最可能采用的软件开发方法是什么?

A. 构件化方法
B. 结构化方法
C. 面向对象方法
D. 快速原型法
原题截图,可横向拖动查看打开原图
阶段界限严格开发方法题目截图

答案:B,结构化方法

题干关键词是“各阶段有严格界限,只有一个阶段获得认可才能进入下一个阶段”。这体现的是传统结构化方法/瀑布式思想,而不是快速原型法。

为什么不是快速原型法

快速原型法强调先快速构造原型,让用户尽早反馈,再反复修改需求和设计。它的阶段边界并不严格,核心是迭代和反馈。

结构化方法的特点

  • 强调自顶向下、逐步求精。
  • 分析、设计、实现、测试等阶段边界清楚。
  • 前一阶段成果评审通过后,再进入下一阶段。
陷阱:看到“阶段严格、评审通过、下一阶段”不要被“快速”吸引,快速原型的关键词是“原型、用户反馈、反复修改”。

题 9:90000H 到 CFFFFH,需要多少片 16K×8bit 芯片

文字版原题

内存按字节编址,地址从 90000H 到 CFFFFH。若用存储容量为 16K×8bit 的存储器芯片构成该内存,至少需要多少片?

A. 2
B. 4
C. 8
D. 16
原题截图,可横向拖动查看打开原图
存储芯片数量题目截图

答案:D,16 片

这题分两步:先算地址范围容量,再除以每片芯片容量。

第一步:算地址空间大小

地址从 90000HCFFFFH,注意首尾都包含,所以容量是:

CFFFFH - 90000H + 1 = 3FFFFH + 1 = 40000H 字节

40000H = 4 × 16^4 = 262144 字节 = 256KB

第二步:算每片芯片容量

16K × 8bit 表示有 16K 个存储单元,每个单元 8bit,也就是 1 字节,所以每片容量是 16KB

需要芯片数:256KB ÷ 16KB = 16

记忆:地址范围容量要“尾地址 - 首地址 + 1”;芯片写成 ×8bit 时,刚好是按字节存储。

题 10:软件可靠性,不正确的是哪项

文字版原题

下列关于软件可靠性的叙述,不正确的是哪一项?

A. 由于影响软件可靠性的因素很复杂,软件可靠性不能通过历史数据和开发数据直接测量和估算出来
B. 软件可靠性是指在特定环境和特定时间内,计算机程序无故障运行的概率
C. 在软件可靠性的讨论中,故障指软件行为与需求的不符,故障有等级之分
D. 排除一个故障可能会引入其他错误,而这些错误会导致其他故障
原题截图,可横向拖动查看打开原图
软件可靠性题目截图

答案:A

软件可靠性可以通过运行失效数据、历史数据、开发过程数据和可靠性模型进行估算与预测。A 说“不能通过历史数据和开发数据直接测量和估算出来”,说法过绝对,因此不正确。

逐项判断

选项判断解释
A 可靠性不能通过历史数据和开发数据直接测量和估算出来错误可靠性确实受因素影响复杂,但可以通过失效数据、历史数据和模型进行评估、预测和估算。
B 可靠性是在特定环境和时间内无故障运行的概率正确这是软件可靠性的经典定义。
C 故障指软件行为与需求不符,故障有等级之分正确故障可按严重程度、影响范围等划分等级。
D 排除一个故障可能引入其他错误正确修改代码可能引入回归缺陷,所以需要回归测试。

可靠性定义:在规定环境、规定时间内,软件不发生失效并完成规定功能的概率。

题 11-32 深度解析

每题按”题干 → 答案 → 解题步骤 → 知识点 → 陷阱 → 口诀”标准格式展开,与前 10 题同深度。

题 11:关系代数表达式求值

原题截图,可横向拖动查看打开原图
”关系代数错题截图”

解题方法

关系代数题按运算符优先级从内向外执行。

运算符优先级与含义

符号含义操作例子
σ选择(Selection)按条件挑σ_{age>18}(R) → 年龄>18的行
π投影(Projection)按列表挑π_{name,age}(R) → 只要姓名和年龄列
自然连接(Natural Join)同名同值属性自动连接R ⋈ S → 相同属性的等值连接+去重列
×笛卡尔积每行列组合R × S → R每行与S每行拼起来
÷除法(Division)找出R中与S全部值都匹配的R÷S → R中含有S所有值的那些

解题三步法

  1. 先做最内层括号里的操作(通常是选择 σ 或投影 π)
  2. 再做连接 ⋈ 或笛卡尔积 ×
  3. 最后做投影 π(从右往左读表达式)
陷阱:自然连接自动匹配同名属性并去重;不要手动在草稿纸上写多余的列。π 投影后可能只剩几列,选项里表格列数要和投影列数一致。

解题口诀:σ 选行 → π 选列 → ⋈ 连接 → 从左向右做,括号先做。

题 12:函数依赖与范式判断

原题截图,可横向拖动查看打开原图
”数据库规范化错题截图”

答案:D,2NF

关系 S(Sno, Sname, Zip, City),函数依赖:Sno → Sname, Zip, City,Zip → City。

第一步:找候选键

Sno 只在左边出现(L 类属性),且 Sno 的闭包 = {Sno, Sname, Zip, City} = 全部属性,所以 Sno 是候选键。

第二步:判断范式级别

级别核心要求本题是否满足
1NF属性不可再分满足
2NF非主属性完全函数依赖于候选键满足 — Sno→每个非主属性,没有部分依赖
3NF非主属性不传递依赖于候选键不满足 — 存在 Sno→Zip→City 的传递链
BCNF所有决定因素都是候选键不满足 — Zip 可以决定 City,但 Zip 不是候选键

传递依赖的判断

Sno 决定 Zip,Zip 决定 City → 形成了 Sno → Zip → City 的链条。City 不是直接由候选键 Sno 决定的,而是通过 Zip 间接传递的。所以最高满足 2NF。

陷阱:只看到”非主属性都完全依赖候选键”就选 3NF。关键检查:有没有一个非主属性能直接决定另一个非主属性?有就是传递依赖。

范式口诀:1NF 原子不可分,2NF 消除部分依赖,3NF 消除传递依赖,BCNF 所有决定因素是候选键。

题 13:三层架构中数据访问模式的选择

原题截图,可横向拖动查看打开原图
”数据访问模式错题截图”

答案:在线访问模式(前台查询) vs 离线数据模式(后台批量)

核心知识点:两种数据访问模式对比

维度在线访问模式 (Online)离线数据模式 (Offline/Dataset)
连接方式保持数据库连接,实时操作断开模式,批量操作后一次性提交
适用场景用户交互、前台查询、实时响应批量更新、报表生成、后台任务
事务短事务长事务/批处理
并发冲突乐观锁/悲观锁批处理后可能冲突需检测
数据新鲜度实时数据可能过时,需刷新

本题分析:网上书店前台 — 用户查询书籍、下单需要实时响应 → 在线访问模式。后台 — 批量更新库存、维护日志、生成报表 → 离线数据模式(DataSet),避免长事务锁表影响前台。

记忆:用户盯着屏幕等的用在线(保持连接、短事务);跑批处理的不需要实时,用离线(断开式、批量提交)。

题 14:UML 依赖关系的语义

原题截图,可横向拖动查看打开原图
”UML依赖关系错题截图”

答案:A 使用 B(B 的变化可能影响 A)

UML 类图中,虚线箭头表示依赖(Dependency)。

六种类图关系按耦合强度从强到弱

关系UML 表示语义代码体现”掰了会怎样”
泛化 Generalization实线 + 空心三角箭头继承,is-aextends子类消失
实现 Realization虚线 + 空心三角箭头实现接口implements实现类不能用
组合 Composition实线 + 实心菱形强拥有,同生命周期成员对象 new 在内部部分随之消亡
聚合 Aggregation实线 + 空心菱形弱拥有,可独立存在成员由外部传入部分可以独立存活
关联 Association实线结构关系,知道对方成员变量关系断开
依赖 Dependency虚线箭头使用关系,临时调用方法参数/局部变量调用失败

本题分析:A 虚线箭头指向 B → A 依赖 B → A 使用 B。B 的接口变化会导致 A 也需要修改。

易混点:虚线三角箭头 = 实现(类→接口);虚线普通箭头 = 依赖(类→类)。箭头形状不同,含义完全不同。

记忆:泛化实三角,实现虚三角;组合实心菱,聚合空心菱;关联是实线,依赖是虚箭。

题 15:数据库完整性约束分类

原题截图,可横向拖动查看打开原图
”数据库完整性错题截图”

答案:参照完整性、实体完整性、用户定义完整性

三大数据库完整性约束

约束类型定义实现方式典型考题表述
实体完整性主键不能为空且唯一PRIMARY KEY / UNIQUE NOT NULL”主标识不能为空且唯一”
参照完整性外键要么为空,要么等于被参照表主键的某个值FOREIGN KEY REFERENCES”XX 字段引用员工表的主键”
用户定义完整性业务规则约束CHECK / NOT NULL / DEFAULT / 触发器”仓库地址不能为空” “年龄大于 0”

本题分析:① employeeID 引用员工表 → 参照完整性(外键约束) ② 主标识唯一且非空 → 实体完整性(主键约束) ③ 仓库地址不能为空 → 用户定义完整性(业务规则约束)

记忆:主键 — 实体(每个实体独一无二);外键 — 参照(引用别人家的主键);业务规则(NOT NULL/CHECK) — 用户定义。

记忆口诀:主键实体,外键参照,CHECK 是用户定义。

题 16:中介者模式 (Mediator Pattern)

原题截图,可横向拖动查看打开原图
”中介者模式错题截图”

答案:中介者模式 (Mediator)

题干关键词:”多个对象行为相互影响”、”不希望对象之间直接引用”、”集中协调”。这正是中介者(Mediator)模式的经典描述。

中介者模式详解

  • 意图:用一个中介对象封装一系列对象的交互,避免对象间显式相互引用。
  • 结构:Colleague → Mediator ← Colleague(同事类不互相通信,只和中介者通信)
  • 优点:将网状依赖变为星型依赖,降低耦合。
  • 缺点:中介者可能成为系统的复杂中心。
  • 典型场景:聊天室(用户通过聊天室通信)、GUI 窗格协调、航班调度塔台、微服务编排器。

不要和以下模式混淆

模式区别
观察者 Observer一对多通知,没有”协调”概念。对象 A 变化后自动通知 B/C/D。
外观 Facade提供简化接口,不控制交互。只是简化调用,不协调内部对象怎样交互。
职责链 Chain沿链传递请求直到被处理,对象之间还有前后关系。
题眼:”不直接引用”+”集中协调” = 中介者。看见”不直接通信/解耦交互”必选。

题 17:代理模式 — 虚拟代理延迟加载

原题截图,可横向拖动查看打开原图
”代理模式错题截图”

答案:代理模式 (Proxy) — 虚拟代理

题干关键词:”对象创建开销大”、”不希望立刻加载”、”用轻量对象代替真实对象”。”延迟加载/按需创建”是虚拟代理的核心特征。

代理模式的三种类型

类型作用考试关键词
虚拟代理(Virtual Proxy)延迟创建开销大的对象,需要时才创建”开销大/延迟加载/先占位”
远程代理(Remote Proxy)为远程对象提供本地代表”不同地址空间/网络/RPC”
保护代理(Protection Proxy)控制对原始对象的访问权限”权限控制/访问控制”

不要把代理和以下模式搞混

模式核心差异
适配器 Adapter接口转换——已有的接口不匹配,包一层让两个接口兼容。
装饰 Decorator动态添加功能——同一个接口下层层包裹增强功能。
桥接 Bridge抽象与实现分离——两个维度独立变化。和”延迟加载”没关系。
题眼:”创建开销大”+”先显示占位” = 虚拟代理。代理的核心是”控制访问”,装饰的核心是”增强功能”。

题 18:用例 include 关系

原题截图,可横向拖动查看打开原图
”include用例关系错题截图”

答案:包含关系 (include)

题干关键词:”两个用例都需要执行验证客户账号这一公共行为”。

用例三种关系深度对比

关系UML 符号语义谁是必须的箭头方向考试关键词
include<<include>> 虚线箭头基用例必然执行被包含用例被包含用例 100% 执行基用例 → 被包含用例”都需要”/”公共步骤”/”一定”
extend<<extend>> 虚线箭头扩展用例在特定条件下插入基用例扩展用例条件触发扩展用例 → 基用例”可选”/”条件触发”/”可能”
泛化实线 + 空心三角子用例继承父用例行为子用例可以覆盖子用例 → 父用例”多种方式”/”不同的XX”

箭头方向速记:include 箭头从基用例指向被包含用例(指向公共步骤);extend 箭头从扩展用例指向基用例(指向被扩展的用例)。

高频陷阱:include 和 extend 箭头方向最容易搞反。include 是”我包含你,箭头指你”;extend 是”我扩展你,箭头指你(被扩展者)”。两个箭头都是指向”被XX的一方”。

口诀:include 必执行箭头指被含,extend 条件触发箭头指基用例。

题 19:I/O 控制方式 CPU 占用对比

原题截图,可横向拖动查看打开原图
”IO控制方式错题截图”

答案:程序查询(轮询)方式最占 CPU

四种 I/O 方式 CPU 参与度从高到低

方式CPU 角色数据传送控制CPU占用适用
程序查询(轮询)全程反复检查状态 + 传送数据CPU 直接控制最高,CPU 空转等待简单嵌入式、单任务系统
程序中断设备准备好后发中断,CPU 响应并传送CPU 直接控制中等,CPU 可做其他事中低速外部设备
DMA仅在开始和结束时介入DMA 控制器(DMAC)低,批量数据由 DMAC 搬运磁盘、高速网络
通道(I/O Processor)几乎不干预通道(专有处理器)最低,通道是独立 CPU大型机多设备并发

DMA 传送过程

  1. CPU 设置 DMA 控制器(源地址、目标地址、字节数)
  2. DMAC 通过总线请求接管总线(周期窃取)
  3. DMAC 直接在内存和设备间搬运数据
  4. 传送完成后 DMAC 发中断通知 CPU
记忆:轮询是 CPU 盯着门口等快递(最累);中断是快递到了按门铃;DMA 是管家替你收快递,收完告诉你一声。

CPU 占用排序:轮询 >> 中断 >> DMA >> 通道

题 20:面向对象分析到设计的转换

原题截图,可横向拖动查看打开原图
”OOAD错题截图”

答案:以需求模型为输入,输出设计模型

面向对象开发三阶段

阶段输入输出关注点
OOA 面向对象分析业务需求、用例需求模型(领域模型、用例模型)问题域 — “做什么”
OOD 面向对象设计需求模型(分析产物)设计模型(类图、序列图、构件图、部署图)解空间 — “怎么做”
OOP 面向对象编程设计模型可运行代码实现 — “写出来”

设计模型包含的内容:设计类图(含属性和方法)、序列图(交互细节)、构件图(模块划分)、部署图(物理拓扑),以及设计模式的选择和应用。

记忆:分析(建模问题域) → 设计(建模解空间) → 实现(写代码)。上一个阶段的输出就是下一个阶段的输入。分析进设计,设计进代码。

题 21:Cache 与主存地址映射由什么实现

原题截图,可横向拖动查看打开原图
”Cache地址映射错题截图”

答案:全部由硬件实现

Cache 与主存之间的地址映射/变换是由纯硬件自动完成的,对程序员和操作系统透明。软件不需要也看不到 Cache 的存在。

三种 Cache 映射方式

映射方式主存地址结构硬件怎么找冲突概率
直接映射[标记 | Cache行号 | 块内地址]取中间字段定位行号,比较标记位高(同一个行号的不同块会打架)
全相联映射[标记 | 块内地址]同时比较所有行标记(需相联存储器)低(任意块可放任意行)
组相联映射[标记 | 组号 | 块内地址]组内全相联比较(折中方案)中等(同组不同块可共享)

典型计算题示例

主存 4GB(32 位地址),Cache 64KB,块大小 64B,4 路组相联:

  • 块内偏移 = log₂(64) = 6 位
  • Cache 总行数 = 64KB / 64B = 1024
  • 组数 = 1024 / 4 = 256 组
  • 组号 = log₂(256) = 8 位
  • 标记 = 32 - 8 - 6 = 18 位
真考题坑:Cache 地址映射是纯硬件(地址变换电路),不需要软件参与。说”由操作系统完成”或”软件和硬件共同完成”都是错的。

记忆:Cache 对程序员透明 → 全部硬件自动完成。

题 22:流水线加速比计算

原题截图,可横向拖动查看打开原图
”流水线加速比错题截图”

B,1.75(需按截图中的段数和任务数确认)

流水线加速比标准计算

加速比 = 顺序执行总时间 / 流水执行总时间

顺序执行总时间:每条指令依次执行,总时间 = 指令数 × 各段时间和

流水执行总时间:第一条指令完整流经各段 + 后续指令每隔一个周期(最长段)流入

T_pipeline = Σ(各段时间) + (N - 1) × max{各段时间}

示例计算(4 段,段时分别为 2, 3, 2, 1 ns,10 条指令):

  • 周期 = max{2,3,2,1} = 3ns
  • Σ各段 = 2+3+2+1 = 8ns
  • 顺序时间 = 10 × 8 = 80ns
  • 流水时间 = 8 + (10-1)×3 = 8 + 27 = 35ns
  • 加速比 = 80/35 ≈ 2.29

如果截图算出来是 1.75,说明:可能指令数较少(比如 4 条指令),或者流水段数较少。加速比随指令数增大趋近于”各段和/最长段”。

流水线性能三大指标

吞吐率 = 指令数 / 流水线执行时间

效率 = 实际加速比 / 最大可能加速比(=段数)

记忆:先找最长段(它决定周期),顺序时间是”指令数×各段和”,流水时间是”首条完整+后续隔周期进”。

题 23:系统性能评价方法

原题截图,可横向拖动查看打开原图
”性能评价错题截图”

答案:含有绝对化表述的选项通常是错误选项

常见性能评价方法

方法内容优点缺点
Benchmark 基准测试用标准测试程序集评测系统接近真实负载,可横向比较受 CPU/内存/IO/编译器等综合影响
MIPS每秒百万指令(Million Instructions Per Second)直观不同指令集不可比,受代码优化影响大
MFLOPS每秒百万浮点运算适合科学计算不能反映整数性能
SPEC标准性能评估组织发布的综合基准行业标准测试套装复杂

真题陷阱规律:出现”只取决于”、”完全不受影响”、”仅测量”这类绝对化表述时,该选项通常是错误项。因为计算机系统性能由 CPU、Cache、主存、I/O、操作系统、编译器、网络等多方面共同决定。

记忆:绝对化说法(+只/完全/仅)大多错。Benchmark 测的是综合性能,不是单一因素。

题 24:网桥与交换机的本质关系

原题截图,可横向拖动查看打开原图
”网桥交换机错题截图”

答案:交换机是一种多端口网桥

网桥 vs 交换机 vs 路由器 vs 集线器

设备工作层转发依据隔离冲突域隔离广播域
集线器 Hub物理层 L1广播到所有端口
网桥 Bridge数据链路层 L2MAC 地址表
交换机 Switch数据链路层 L2(多数)MAC 地址表否(VLAN可隔离)
路由器 Router网络层 L3IP 路由表

核心考点:”交换机本质上是一种多端口网桥”几乎是历年真题的固定正确选项。两者都根据 MAC 地址转发帧,都在数据链路层。

易错点:交换机通常不隔离广播域(除非划分 VLAN)。说”交换机隔离广播域”是错误的——路由器才隔离广播域。

记忆:S witch = multi-port bridge(交换机=多端口网桥);Router 才看 IP(路由器看IP)。

题 25:MD5 报文摘要算法

原题截图,可横向拖动查看打开原图
”MD5错题截图”

答案:MD5 属于报文摘要算法(Message Digest)

密码学三大类算法

类别代表算法特点密钥典型用途
对称加密DES/3DES/AES/RC4/SM4加解密同密钥,速度快1 个(共享密钥)大批量数据加密、通信加密
非对称加密RSA/ECC/ElGamal/SM2公钥加密私钥解密,速度慢2 个(公私钥对)数字签名、密钥交换、身份认证
摘要(哈希)MD5/SHA-1/SHA-256/SM3定长输出,不可逆,雪崩效应无(无密钥)完整性校验、数字指纹、密码存储

MD5 vs SHA:MD5 输出 128 位,已发现碰撞漏洞,不推荐用于安全场景。SHA-256 输出 256 位,目前安全。软考中 MD5 = 报文摘要 = 不是加密。

高频陷阱:选项中出现”MD5 是对称加密”或”MD5 是非对称加密”都是错的。MD5 是哈希/摘要算法,没有密钥,不可逆。

记忆:MD5/SHA = 摘要 = Digest = 无密钥 = 不可逆 ≠ 加密(加密可逆)。

题 26:OSI 层次故障定位

原题截图,可横向拖动查看打开原图
”OSI诊断错题截图”

逐层定位:电缆/EIA → 物理层,MAC/帧 → 数据链路层,IP/路由 → 网络层

OSI 七层排障关键词速查表

OSI 层排障关键词检查内容
物理层线缆、EIA、RJ45、电信号、光纤、接口状态(up/down)、电压线缆是否插好、端口是否 UP
数据链路层MAC、帧、CRC 错误、协议状态(保持活动/建立)、VLANMAC 地址学习、帧是否丢弃
网络层IP、路由表、子网、Ping、Traceroute、ICMP路由是否可达、IP 配置
传输层TCP/UDP、端口、连接状态、SEQ/ACK端口是否监听、连接是否建立
应用层HTTP/DNS/FTP、应用日志应用返回的错误码

真题速判规则:

  • 看到”电缆、电压、接口 show ip int brief 显示 down” → 物理层问题
  • 看到”MAC、帧丢弃、VLAN” → 数据链路层问题
  • 看到”IP 不可达、路由不通” → 网络层问题
记忆:线缆电口是物理层,MAC 帧是链路层,IP 路由是网络层。出现 EIA 必选物理层。

题 27:以太网交换机深入考点

原题截图,可横向拖动查看打开原图
”以太网交换机错题截图”

答案:以太网交换机从工作原理上是一种多端口网桥

交换机核心知识点

  • 学习:记录源 MAC 地址和端口号到 MAC 地址表
  • 转发:查 MAC 地址表,找到目标端口则独发,找不到则泛洪
  • 过滤:同端口不转发

冲突域与广播域辨析

设备冲突域广播域
集线器同一个(所有端口共享)同一个
网桥/交换机(无VLAN)每个端口独立一个同一个
交换机(有VLAN)每个端口独立一个每个 VLAN 一个
路由器每个端口独立一个每个端口一个
一句话:交换机=多端口网桥(真题标准答案句)。集线器是共享总线,交换机和路由器能隔离冲突域,但只有路由器能隔离广播域(不划 VLAN 的交换机不能)。

题 28:PV 操作与前驱图同步

原题截图,可横向拖动查看打开原图
”PV操作错题截图”

答案:C,V(S1)、V(S2)

前驱图中 P1、P2 先于 P3 执行。每个箭头代表一个同步信号量。

PV 操作前驱图同步标准解法

规则:

  1. 每条箭头的起点进程执行结束后,对信号量执行 V(释放)
  2. 每条箭头的终点进程执行前,对信号量执行 P(申请)
  3. 每个箭头分配一个独立的信号量,初始值为 0

本题分析:P1 → P3 箭头对应 S1,P2 → P3 箭头对应 S2。P1 完成后执行 V(S1),P2 完成后执行 V(S2)。P3 开始前需要先执行 P(S1) 和 P(S2),确保两个前驱都完成。

PV 操作值变化跟踪

  • S1=S2=0(初始为 0)
  • P1 执行完 → V(S1),S1 变为 1
  • P2 执行完 → V(S2),S2 变为 1
  • P3 的 P(S1) 能通过(S1>=1),S1 变为 0
  • P3 的 P(S2) 能通过(S2>=1),S2 变为 0
  • P3 开始执行
记忆:箭头尾 V(放行),箭头头 P(等待)。做完 V 放,要做等 P 过。信号量初始 0,V 一次变 1,P 一次变 0。

口诀:前驱 V 释放,后继 P 等待;看箭头方向,尾 V 头 P。

题 29:命令模式角色识别

原题截图,可横向拖动查看打开原图
”命令模式错题截图”

答案:Invoker 是 MenuItem;ConcreteCommand 是 Open/AddGroup 等具体命令类

命令模式五角色

角色职责本题对应类考试识别关键词
Invoker 调用者持有命令对象,触发命令执行MenuItem”菜单项”、”按钮”、”触发者”
Command 抽象命令声明 execute() 接口Command抽象命令类/接口
ConcreteCommand 具体命令绑定接收者,实现 execute()Open/AddGroup/Copy 等具体命令类名
Receiver 接收者知道如何执行业务逻辑被操作的对象(如文档/窗口)”实际执行者”、”业务对象”
Client 客户端创建命令并关联接收者程序入口/初始化代码”创建命令并设置接收者”

类图特征:Invoker 持有 Command 引用;ConcreteCommand 持有 Receiver 引用并实现 Command;Receiver 独立于 Command 接口。

场景题速判:提到”菜单项、编辑菜单、撤销操作” → 命令模式;职责链是”审批流”,中介者是”集中协调”。

题 30:架构风格特征与黑板架构识别

原题截图,可横向拖动查看打开原图
”架构风格黑板错题截图”

答案:架构风格关注构件类型、连接件类型、拓扑结构、约束;第二空为黑板架构

架构风格的四要素

每种架构风格定义了一组约束,包括:

  • 构件类型:系统中可以有什么样的模块/组件(如分层中的”层”、管道中的”过滤器”)
  • 连接件类型:构件之间如何交互(如过程调用、事件、消息、共享数据)
  • 拓扑结构:构件和连接件的组织方式(如分层中的层级、管道中的线性)
  • 语义约束:使用该风格必须遵守的规则(如分层中只能相邻层通信)

黑板架构识别要点

特征黑板架构仓库风格(数据仓库)
中心数据结构黑板(共享工作区),结构可能复杂数据中心(数据库/文件)
参与方多个知识源(K Source),各有所长数据处理组件
触发方式黑板状态变化触发知识源数据变化或被动查询
求解方式渐进式、协作式求解流程式计算
典型应用专家系统、语音识别、自然语言处理数据平台、报表系统
题眼:看到”多个专家/知识源协作求解一个问题”+”共享数据黑板”→ 黑板架构。看到”渐进式求解”+”逐步完善”→ 黑板架构。

题 31:工厂方法模式角色识别

原题截图,可横向拖动查看打开原图
”工厂方法错题截图”

答案:Creator 是 Bank,Product 是 Account

工厂方法模式四角色

角色职责本题类名类图特征
Product 抽象产品定义产品接口Account被创建对象的抽象类
ConcreteProduct 具体产品实现产品接口Checking/Savings Account具体产品子类
Creator 抽象工厂声明工厂方法Bank有 createProduct() 抽象方法
ConcreteCreator 具体工厂实现工厂方法,创建具体产品CheckingBank/SavingsBankoverride 工厂方法

类图识别要点:Creator 依赖于 Product(虚线或实线关联);ConcreteCreator 继承 Creator,关联 ConcreteProduct。看到两个并行的继承体系(工厂继承链 + 产品继承链)时,优先判断为工厂方法或抽象工厂。

工厂方法 vs 抽象工厂

维度工厂方法抽象工厂
产品数量创建一个产品创建一族相关产品
工厂数量一个工厂方法对应一个产品一个抽象工厂包含多个工厂方法
考试关键词”子类决定实例化哪个类””一系列/一族相关对象”
题眼:一个继承体系负责创建另一个继承体系 → 工厂方法。多个产品族 → 抽象工厂。

题 32:微服务英文完形填空

原题截图,可横向拖动查看打开原图
”英文微服务错题截图”

答案:71 integrate、72 respond、73 autonomous、74 deployable、75 communicate

微服务英文黄金搭配(必背)

英文搭配中文含义考试位置固定用法
integrate with与……集成常考第一空services integrate with other systems
respond to requests响应请求常考第二空respond to incoming requests
autonomous services自治服务描述微服务特性small, autonomous services
independently deployable可独立部署描述部署特性each service is independently deployable
communicate with与……通信描述服务交互services communicate with each other via HTTP
loosely coupled松耦合的描述服务关系services are loosely coupled
scale independently独立扩展描述扩展能力each service can scale independently

英文完形填空做题步骤

  1. 先读空前后 5 个词,找固定搭配(如 integrate + with, respond + to, communicate + with)
  2. 判断词性:空位置需要动词/名词/形容词?(看句子成分)
  3. 排除干扰项:微服务语境下,deploy(部署) 不用 submit(提交),autonomous(自治) 用 automatic(自动) 来干扰
  4. 验证:读完整句看是否通顺
易错词对:deployable vs deliverable(可交付的);autonomous vs automatic(自动的 ≠ 自治的);integrate vs integrity(完整性)。

口诀:集成用 integrate + with,响应用 respond + to,自治 autonomous,可部署 deployable,通信 communicate + with。

32 道错题全量套路总结

题号题型解题动作一句话记忆
1银行家算法算 Available,算 Need,按序试跑,完成释放。能跑就释放,跑完才安全。
2串联系统可靠性串联乘成功率,并联 1 减全失败。串联一个坏全坏,并联全坏才坏。
3分页地址转换商是页号,余数是偏移,查页表换块号。页号换块号,偏移不变。
4链接文件分配先算第几个逻辑块,再沿链表找物理块。逻辑第几块,链上数几步。
5架构设计活动区分架构设计和编码实现。架构设计构件,不实现构件。
6地址位数容量除以编址单位,再取 2 的指数。能表示几个地址,就要几位二进制。
7ABSD 描述方式架构看视角与视图,需求看用例和质量场景。视图描述架构,场景描述需求。
8开发模型判别阶段严格+评审通过→结构化/瀑布。严格阶段不是快速原型。
9存储芯片片数先算地址范围,再除以单片容量。尾 - 首 + 1。
10软件可靠性定义抓”特定环境+特定时间+无故障概率”。可靠性可以估算,不能说完全不能算。
11关系代数先选行(σ),再连接(⋈),最后投列(π)。σ 选行,π 选列,⋈ 自然连接。
12范式判断找候选键→查部分依赖(2NF)→查传递依赖(3NF)。2NF 消部分,3NF 消传递。
13数据访问模式前台在线(保持连接),后台离线(批处理)。在线实时,离线批处理。
14UML 依赖关系虚线箭头=使用关系=B变化影响A。泛实三角,依虚箭头。
15完整性约束主键→实体,外键→参照,CHECK→用户定义。主键实体,外键参照,规则用户定义。
16中介者模式不直接引用+集中协调→Mediator。多对象不直接通信,由中介协调。
17代理模式开销大+延迟加载+占位→Virtual Proxy。虚拟代理延迟加载。
18include 用例关系公共必做步骤→include。include 必做,extend 可选。
19I/O 控制方式轮询最占CPU,DMA最省。轮询>>中断>>DMA>>通道。
20OOA→OOD 转换需求模型进→设计模型出。分析进设计,设计进实现。
21Cache 地址映射纯硬件实现,对软件透明。Cache 透明=全部硬件自动完成。
22流水线加速比顺序时间/流水时间,长段定周期。加速比=非流水/流水。
23性能评价绝对化说法(“只/完全/仅”)→通常错。绝对化表述要警惕。
24网桥/交换机二层设备,根据MAC转发。交换机=多端口网桥。
25MD5 分类Digest=摘要,不可逆,非加密。摘要不是加密。
26OSI 排障电缆/EIA→物理,MAC→链路,IP→网络。EIA/电气偏物理层。
27交换机/冲突域交换机隔离冲突域不隔离广播域。路由器才隔离广播域。
28PV 操作前驱图箭头尾V(释放),箭头头P(等待)。前驱V释放,后继P等待。
29命令模式角色MenuItem=Invoker,具体命令=ConcreteCommand。菜单项触发命令对象。
30架构风格/黑板共享数据+多知识源+渐进求解。黑板=多专家协作求解。
31工厂方法角色Creator=Bank,Product=Account。工厂创建产品。
32微服务英文integrate+with,autonomous,deployable。看固定搭配。

选择题四大黄金技巧

技巧一:先归类再做题

看到题先判断属于哪个科目(OS/计组/数据库/软工/网络/架构),套用该科目的公式库。不要每道题都从头推。

技巧二:绝对化表述通常错

”只取决于”、”完全”、”必然”、”一定不” → 大概率是错误选项。正确选项往往用”可以”、”可能”、”通常”。

技巧三:固定搭配秒选

交换机=多端口网桥、MD5=摘要不是加密、Cache=纯硬件、include=必做公共步骤。这些是真题标准答案句,出现就直接选。

技巧四:计算题写步骤

银行家/分页/流水线/芯片片数/地址位数 → 按公式一步步算,中间结果也写出来。容易检查也容易拿步骤分。