系统分析师真题笔记
系统分析师真题笔记
真题 1
题目
某4级流水线各阶段耗时分别为:取指 \(2\Delta t\)、分析 \(1\Delta t\)、取操作数 \(3\Delta t\)、运算并保存 \(2\Delta t\)。请计算该流水线的最大吞吐率,以及执行5条指令时的流水线加速比。
答案
- 最大吞吐率:\(\boldsymbol{\dfrac{1}{3\Delta t}}\)
- 5条指令加速比:\(\boldsymbol{\dfrac{5}{3}}\)(或 1.67)
解析
步骤1:确定流水线周期(瓶颈原理)
流水线时钟周期由执行速度最慢的子阶段(瓶颈阶段)决定,保障所有阶段同步完成操作。
- 各阶段耗时:取指 \(2\Delta t\)、分析 \(1\Delta t\)、取操作数 \(3\Delta t\)、运算并保存 \(2\Delta t\)
- 瓶颈阶段:取操作数(耗时最长 \(3\Delta t\))
- 流水线周期:\(T = 3\Delta t\)
步骤2:计算最大吞吐率
吞吐率定义:单位时间内流水线完成并输出的指令数量。流水线稳定运行后,每1个时钟周期输出1条指令。
- 最大吞吐率公式:\(TP = \dfrac{1}{T}\)
- 计算结果:\(TP = \dfrac{1}{3\Delta t}\)
步骤3:计算流水线加速比
加速比定义:无流水线串行执行总时间 / 流水线并行执行总时间
- 串行执行总时间
- 单条指令完整耗时:\(2\Delta t+1\Delta t+3\Delta t+2\Delta t = 8\Delta t\)
- 5条指令串行总时间:\(T_1 = 5 \times 8\Delta t = 40\Delta t\)
- 流水线执行总时间
- 通用公式:\(T_{pipe} = (k + n - 1) \times T\)
- 参数说明:\(k\)=流水线级数(4级),\(n\)=指令条数(5条),\(T\)=流水线周期(\(3\Delta t\))
- 计算结果:\(T_2 = (4+5-1) \times 3\Delta t = 24\Delta t\)
- 加速比计算
- 加速比 \(S = \dfrac{T_1}{T_2} = \dfrac{40\Delta t}{24\Delta t} = \dfrac{5}{3} \approx 1.67\)
核心考点
- 流水线周期规则:瓶颈决定节拍,等于流水线最慢阶段执行时间
- 最大吞吐率:稳定状态下 \(TP = \dfrac{1}{流水线周期}\)
- 流水线指令总耗时:\((流水线级数 + 指令条数 - 1) \times 流水线周期\)
- 加速比核心公式:串行执行总时间 ÷ 流水线执行总时间
真题 2
题目
对关系模式 \(R<U,F>\),Armstrong公理A1自反律:若 \(Y \subseteq X \subseteq U\),则 \(X \to Y\) 成立,请解释该规则如何理解。
答案
自反律:属性集X的子集Y,一定可以由X函数决定Y。
简单说:知道X全部属性的值,就一定能确定它任意子集Y的值,该函数依赖是必然成立,和F中的函数依赖无关。
解析
- 符号含义
- \(U\):关系模式全部属性集合
- \(X、Y\):都是属性的子集
- \(Y \subseteq X\):Y是X的一部分(Y里面所有属性,全部都在X里面)
- \(X \to Y\):函数依赖,X可以决定Y;同一个X值,一定对应唯一Y值。
- 通俗举例
假设 \(X=\{学号,姓名\}\),\(Y=\{学号\}\),满足 \(Y \subseteq X\)。
已知【学号+姓名】,那学号必然是确定的。
所以:\(\{学号,姓名\} \to \{学号\}\) 一定成立。
再举:\(X=\{a,b,c\}\),\(Y=\{a,b\}\),\(Y\subseteq X\),则 \(abc \to ab\)。
- 关键点
- 自反律推出来的函数依赖叫平凡函数依赖:\(Y \subseteq X\) 的 \(X\to Y\)。
- 不需要依赖F集合,永远成立,不是由现实业务语义得来,是集合属性自带。
- 反过来:如果 \(Y \nsubseteq X\),就不能使用自反律。
核心考点
- A1自反律条件:\(\boldsymbol{Y \subseteq X \subseteq U} \implies X \to Y\)
- 推导出的是平凡函数依赖,恒成立,与F无关。
- 含义:属性全集可以决定自己的任意子集。
- Armstrong公理三大基础推理规则:A1自反律、A2增广律、A3传递律。
对关系模式R <U,F >来说有以下的推理规则:
- A1.自反律(Reflexivity):若Y⊆X⊆U,则X →Y成立。
- A2.增广律(Augmentation):若Z⊆U且X→Y,则XZ→YZ成立。
- A3.传递律(Transitivity):若X→Y且Y→Z,则X→Z成立。
根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:
- 合并规则:由X→Y,X→Z,有X→YZ。 (A2, A3)
- 伪传递规则:由X→Y,WY→Z,有XW→Z。 (A2, A3)
- 分解规则:由X→Y及 Z ⊆ Y,有X→Z。 (A1, A3)
真题 3
题目
在 UML 的顺序图和协作图中,顺序图可(1),其消息(2);协作图用于(3)。
A. 展示对象关系和协作,不强调时间
B. 展示用例行为顺序与对象交互,强调时间顺序
C. 仅显示对象链接,无交互体现
D. 侧重单个对象生命周期,忽略交互
答案
(1) B
(2) 有时间先后顺序
(3) A
解析
- 顺序图(时序图)
- 核心特点:强调时间顺序,垂直方向代表时间流逝,展示对象之间交互消息的先后执行次序,体现用例行为过程。所以(1)选B。
- 消息:按照从上到下代表时间先后,消息具备明确的时间顺序。
- 协作图(通信图)
- 重点表达对象之间的链接关系、对象间的协作交互;不侧重时间轴,时间顺序依靠消息编号体现。所以(3)选A。
- C错误:协作图是有交互消息的,不是无交互。
- D错误:状态图才侧重单个对象生命周期,不是顺序/协作图。
补充:UML中,顺序图、协作图都属于交互图,都描述对象之间交互;区别在于侧重点:
- 顺序图:重时间顺序
- 协作(通信)图:重对象结构与连接关系
核心考点
- 顺序图:强调时间顺序,纵向表示时间,展示对象交互时序。
- 协作图(通信图):强调对象之间链接与协作关系,不强调时间轴,依靠消息序号表达时序。
- 二者同属交互图;对象生命周期由状态图表达。
真题 4
题目
UML 2.0所包含的图中,(1)强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序;(2)描述计算机中一个系统的物理结构;(3)描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。
答案
(1) 定时图(时间图 / Timing Diagram)
(2) 制品图
(3) 构件图
解析
-
定时图(时间图)
顺序图只表达消息的相对先后顺序;定时图重点刻画实际时间、时间约束,展示对象状态随真实时间的变化,消息会体现真实时间维度。 -
制品图
制品图用来描述系统物理结构,表达制品(文件、可执行程序、库等物理产物)以及制品之间的关系。
易错辨析:
- 制品图:描述软件制品本身的物理结构;
- 部署图:描述制品部署到硬件节点上,是软硬件结合的部署物理架构。
本题题干“描述计算机中一个系统的物理结构”标准答案为制品图。
- 构件图
构件图描述封装构件,包含构件的接口、端口,构件内部嵌套子构件、连接件,展示构件内部组成结构。
易混辨析:复合结构图侧重类的内部结构;构件图侧重构件及其内部端口、内嵌构件、连接件。
核心考点
- 定时图:关注实际时间,区别于顺序图的仅相对消息顺序。
- 制品图:描述系统软件制品层面的物理结构;部署图:制品部署在硬件节点。
- 构件图:封装构件、接口、端口、内嵌构件、连接件的内部结构。
真题 5
题目
在我国商用密码算法体系中:( )属于摘要算法。请介绍国密各主要算法。
答案
SM3 属于摘要(哈希)算法。
解析
国密商用密码主要算法分类:
- SM3:密码杂凑(摘要/Hash)算法
- 作用:对任意长度输入,输出256比特哈希摘要;用于数据完整性校验、数字签名、消息认证。
- 类似国际算法:SHA‑256。
- SM2:非对称公钥密码算法(椭圆曲线ECC)
- 作用:密钥交换、数字签名、公钥加密。
- 基于椭圆曲线密码,替代RSA;支持签名、加密、密钥协商。
- SM4:对称加密算法(分组密码)
- 作用:数据加解密,分组长度128位。
- 用于大量业务数据加密,类似AES。
- SM9:标识密码算法(IBC)
- 作用:基于标识的非对称密码,不需要数字证书,可直接用手机号、邮箱作为公钥标识,完成签名、加密。
快速区分记忆
- 摘要(哈希):SM3
- 对称加密:SM4
- 椭圆曲线非对称:SM2
- 标识密码:SM9
核心考点
- SM3:国密摘要算法,输出256bit杂凑值,完整性校验。
- SM2:ECC椭圆曲线,签名、加密、密钥协商。
- SM4:分组对称加密,业务数据加密。
- SM9:标识密码算法,无需证书。
真题 6
题目
在关系\(R(A_1,A_2,A_3)\)和\(S(A_2,A_3,A_4)\)上进行关系运算的4个等价的表达式\(E_1、E_2、E_3\)和\(E_4\):
如果严格按照表达式运算顺序,则查询效率最高的是(1),将该查询转换为等价的SQL 语句为:SELECT A1, A4 FROM R,S WHERE (2)。
答案
(1) \(\boldsymbol{E_2}\)
(2) \(\boldsymbol{R.A_3=S.A_3\ AND\ A_2<'2022'\ AND\ A_4='95'}\)
解析
关系代数优化核心原则:选择运算应尽可能早执行(先选后连接),减少参与连接的元组数量,降低计算开销。
- \(E_1\):先做\(R\bowtie S\)连接,连接完成后再执行筛选。连接操作处理全部元组,中间结果集大,效率低。
- \(E_2\):先分别对R、S做选择过滤:\(\sigma_{A_2<'2022'}(R)\)先过滤R;\(\sigma_{A_4='95'}(S)\)先过滤S;再把过滤后的小结果集做自然连接。参与连接的数据量最小,开销最小,效率最高。
- \(E_3\):先执行笛卡尔积\(R\times S\),笛卡尔积会产生海量元组,之后再筛选,性能极差。
- \(E_4\):先做选择得到R、S子集,但依然执行笛卡尔积,再做等值筛选。笛卡尔积开销远大于连接,效率低于E2。
补充概念:
- \(\bowtie\):自然连接,自动按同名属性等值匹配,本题\(R.A_3=S.A_3\)为连接条件。
- \(\times\):笛卡尔积,两个表所有元组全部两两组合,代价很高,优化中尽量避免。
SQL转换
FROM R,S代表笛卡尔积,where子句同时写连接条件和筛选条件。
条件包含三部分:
- 连接条件:
R.A3 = S.A3 - R筛选条件:
A2 < '2022' - S筛选条件:
A4 = '95'
完整SQL:
SELECT A1, A4
FROM R, S
WHERE R.A3=S.A3 AND A2<'2022' AND A4='95';
浙公网安备 33010602011771号