软考系统架构师 1000 问|Flomo 原始专题迁移¶
本页保留原始专题导航与问题内容,作为 Wiki 的可追溯副本。
原始来源: https://v.flomoapp.com/mine/?memo_id=MjQ3Mjg1Mjgy
创建时间: 2026-07-17T20:34:10+08:00
最近更新: 2026-10-06T21:01:09+08:00
原文长度: 4836 字
软考高级·系统架构师:核心知识 1000 问
计算机组成与体系结构
-
软考中"计算机体系结构"和"计算机组成"怎么区分?体系结构关注指令集(程序员看到的机器),组成关注硬件实现——软考选择题里问"哪个属于体系结构"时,怎么快速判断?(冯诺依曼 vs 哈佛、指令集是体系结构,Cache/流水线是组成)
-
Flynn分类法把计算机分成SISD/SIMD/MISD/MIMD四类——GPU属于哪一类?为什么"MISD"几乎没有实际的商业产品?
-
RISC和CISC在软考里常考的区别有哪几条?指令长度固定、寻址方式少、LOAD/STORE架构——RISC的"编译优化"为什么比CISC复杂(因为编译器要做更多工作来安排流水线)?
-
流水线的"结构冒险"、"数据冒险"、"控制冒险"分别是什么?软考常考的"流水线吞吐率"怎么算——最大吞吐率=1/Δt,实际吞吐率=n/(k+n-1)Δt?
-
Cache的命中率怎么影响平均访问时间?t_avg = H × t_cache + (1-H) × t_mem——如果Cache命中率95%、Cache访问1ns、内存访问10ns,平均访问时间是多少?(1.45ns)
-
Cache的写策略——"写直达"和"写回"各适合什么场景?如果一个系统中多个设备共享内存(DMA),写直通有什么优势(数据一致性更简单)?
-
磁盘调度算法(FCFS/SSTF/SCAN/C-SCAN)中,哪个可能会导致"饥饿"(SSTF——短任务优先导致大任务一直等)?
-
指令流水线的"加速比"怎么算?一个k级流水线、执行n条指令——加速比 = (k × n) / (k + n - 1),当n→∞时加速比趋近于k——这意味着什么?
操作系统
-
进程和线程的本质区别——为什么软考每年必考?进程是资源分配的最小单位、线程是CPU调度的最小单位——为什么说"线程切换比进程切换代价小"(线程共享地址空间,不需要切换页表/TLB刷新)?
-
死锁的四个必要条件(互斥、保持并等待、不可剥夺、环路等待)——破坏其中任何一个就能预防死锁。软考常考的"银行家算法"是怎么判断系统是否安全的?检查每个进程的"剩余需求"是否小于当前可用资源?
-
虚拟内存的页面置换算法——OPT(最优)、FIFO(先进先出)、LRU(最近最久未使用)、Clock(时钟)。为什么FIFO可能有Belady异常(增加物理块数反而缺页率上升)而LRU没有?
-
段页式存储管理——先分段再分页。逻辑地址结构是"段号+段内页号+页内偏移"——为什么需要这么复杂?因为分段对用户可见(代码段/数据段/堆栈段),分页对用户透明(解决外部碎片)?
-
Spooling系统(假脱机技术)——把独占设备(如打印机)变成共享设备。原理是什么(在磁盘上建输入/输出井,把慢速设备的I/O变成对磁盘的读写)?
数据库系统
-
关系代数——选择(σ)、投影(π)、连接(⋈)、除(÷)。软考案例分析里"用关系代数表达查询"怎么快速写出?先把条件写成选择、再把需要的列写成投影、多表关联写成连接?
-
范式(1NF/2NF/3NF/BCNF/4NF)——为什么BCNF比3NF更严格?3NF允许"传递依赖"但BCNF要求所有非平凡依赖左边都是候选码?如果一个表里有"学号→系名、系名→系主任"——这满足3NF但不满足BCNF?
-
事务的ACID特性(原子性、一致性、隔离性、持久性)——软考常考"隔离级别"(读未提交、读已提交、可重复读、串行化)。为什么"可重复读"仍然有幻读问题(其他事务插入了满足条件的新行——行锁解决不了,需要间隙锁或表锁)?
-
三级模式结构——外模式(用户视图)、概念模式(全局逻辑)、内模式(物理存储)。在软考中,问"哪个模式对应视图"、"哪个模式对应基本表"——答:外模式→视图,概念模式→基本表,内模式→存储文件?
嵌入式系统(你的强项)
-
软考教材里"嵌入式系统"部分跟你的实践比简单很多——但考试会考什么你容易忽略的?"嵌入式系统的实时性"——硬实时和软实时在软考中的定义是什么?(硬实时错过截止时间=系统失效,软实时错过截止时间=性能下降)
-
嵌入式操作系统的分类——VxWorks(硬实时)、μC/OS-II(硬实时)、Linux(软实时)、WinCE(软实时)。软考选择题问"哪个不是嵌入式操作系统"——常见干扰项:Android(虽然基于Linux但软考把它归为移动OS不是嵌入式)?
-
嵌入式系统设计中的"交叉编译"——在宿主机上编译、在目标机上运行。为什么需要交叉编译工具链(目标机资源不够跑编译器)?软考论文如果写嵌入式方向,可能考"交叉开发环境"的组成(宿主机+目标机+连接方式+调试方式)?
网络与信息安全
-
OSI七层模型和TCP/IP四层模型的对应关系——软考最经典的送分题。应用层/表示层/会话层→应用层;传输层→传输层;网络层→网际层;数据链路层/物理层→网络接口层?
-
加密体制——对称加密(DES/3DES/AES/SM4)和非对称加密(RSA/ECC/SM2)。为什么实际应用中常用"混合加密"(非对称加密传输对称密钥,对称密钥加密业务数据)?
-
数字签名和数字证书的区别——签名证明"谁发的",证书证明"公钥是谁的"。CA(证书中心)做什么——用它的私钥给用户的公钥签名,产生数字证书。证书链怎么验证——从根CA到二级CA到用户证书,逐级验证签名?
-
防火墙的类型——包过滤(网络层)、状态检测(网络层+传输层)、代理(应用层)。为什么"代理防火墙"最安全但也最慢(需要在应用层拆包/组包,重新建立连接)?
-
VPN的隧道协议——PPTP/L2TP/IPSec/SSL VPN。IPSec在传输模式和隧道模式中的区别——传输模式只加密IP数据载荷(保持原IP头),隧道模式加密整个原始IP包并加新IP头。哪种场景用哪种?
软件工程与系统架构设计
-
软件生命周期模型——瀑布模型(需求稳定时用)、原型模型(需求不确定)、螺旋模型(大项目高风险)、敏捷开发(需求变化快)。为什么软考案例分析题里"选一个模型并说明理由"必须结合题目描述的场景——不能照搬教科书?
-
架构风格——数据流风格(批处理/管道-过滤器)、调用返回风格(主程序-子程序/面向对象/层次结构)、独立构件风格(进程通信/事件系统)、虚拟机风格(解释器/规则系统)、仓库风格(数据库/黑板)。软考论文如果让你"设计一个系统的架构",怎么选风格——先看系统的主要关注点是数据流动(管道)、模块调用(层次)还是数据共享(仓库)?
-
软件质量属性——性能(Performance)、可用性(Availability)、可修改性(Modifiability)、安全性(Security)、可测试性(Testability)、易用性(Usability)。论文里"架构设计如何满足质量属性"怎么写——用"场景-策略-权衡"三段式:某个质量属性场景(如并发用户1000),用某种架构策略解决(缓存+负载均衡),代价是什么(引入缓存后的数据一致性问题)?
-
设计模式在系统架构师考试中的考法——创建型(单例/工厂/抽象工厂)、结构型(适配器/代理/装饰)、行为型(策略/观察者/模板方法)。怎么在案例分析里用设计模式解决问题——比如"系统需要支持多种支付方式"→策略模式;"需要给已有接口增加访问控制"→代理模式?
-
面向服务的架构(SOA)和微服务架构的区别——SOA强调"企业服务总线(ESB)"做中心化集成,微服务强调"去中心化"(每个服务独立部署、独立数据库)。为什么2010年代SOA被微服务取代——因为ESB成了单点瓶颈和运维噩梦?
系统工程与UML
-
用例图——参与者(Actor)、用例(Use Case)、关系(包含/扩展/泛化)。软考案例里经常让你"补充用例图的缺失元素"——常见的坑:漏了"包含"(include——子用例必选)和"扩展"(extend——子用例可选)的方向箭头(箭头指向被包含/被扩展的用例)?
-
类图——关联、聚合、组合、依赖、泛化、实现——这六种关系的UML符号和语义区别。为什么"组合"比"聚合"更强(组合:部分不能脱离整体独立存在——如"订单"和"订单项";聚合:部分可以独立存在——如"班级"和"学生")?
-
时序图——生命线(Lifeline)、激活条(Execution Occurrence)、消息(Message)。如果案例题里给了时序图让你找设计缺陷——最常见的问题是什么?消息的序号顺序错了(应该按时间从上到下)?
系统可靠性分析与设计
-
串联系统可靠度 R=R1×R2×...×Rn——为什么串联的组件越多可靠度越低(任何一个坏了整个系统就坏了)?
-
并联系统可靠度 R=1-(1-R1)×(1-R2)×...×(1-Rn)——为什么并联能提高可靠度(所有组件都坏了系统才坏)?
-
软件可靠性模型——"浴缸曲线"(早期故障期→偶然故障期→耗损故障期)。为什么软件没有"耗损故障期"(软件不会因为"用久了"而磨损,硬件会)——那软件的"维护"跟硬件的"维护"有什么区别?
论文写作技巧
-
软考高级(系统架构师/项目管理师)论文的评分标准——"结构完整"(摘要+正文+结尾)、"理论联系实际"(不能只写理论要有项目实例)、"字迹工整"(手写2300-2500字)。为什么很多人论文挂在了"摘要"上(没写清楚"什么时间、什么单位、什么项目、担任什么角色、解决了什么问题")?
-
论文的"项目背景"怎么写才能拿高分?不要用"我参与了一个XX系统"这种泛泛的表达——要写具体的:项目名称(可以虚拟但听起来真实)、项目规模(投资金额/团队人数/工期)、你的角色(架构师/技术负责人)?
-
论文里"理论+实践"的比例怎么控制?40%理论(用了什么架构模式、什么质量属性场景)+60%实践(具体怎么选的、选的过程中遇到了什么取舍、最后效果如何)——全是理论=背书,全是实践=流水账?
-
论文的"结尾"——除了总结项目成果,还要写"反思与展望"(如果再来一次会在哪改进、当前方案有什么不足、未来可以怎么优化)。为什么结尾的"反思"比"总结"更能体现架构师的深度?
-
论文时间分配——选题和构思(10分钟)→写摘要(5分钟)→正文(80分钟)→检查(5分钟)。为什么绝对不能在选题上超过15分钟(每年4道题至少有一个你会写的,选你最熟悉的那个方向,别犹豫)?
高频考点汇总
-
软考系统架构师历年论文真题高频方向——2015-2025年,"软件架构风格"考了7次、"系统建模"考了6次、"设计模式"考了5次、"可靠性设计"考了5次、"微服务"考了4次。什么方向最近3年出现频率上升——云原生、中台架构、数据治理?
-
案例分析三大题型——"填空题"(补充架构图/设计图元素)、"判断改错题"(判断说法是否正确并解释)、"方案设计题"(根据需求设计架构方案)。哪种题型最容易失分——方案设计题,因为主观性强、需要你对"非标准答案"做论述?
-
综合知识选择题的"排除法"——四个选项里通常有两个明显错误、一个模糊干扰、一个正确答案。怎么对付"以下关于XX的说法中,错误的是"这类题——先找绝对化的词("所有"、"必须"、"一定"——往往是错的)?
Project/考试管理¶
Wiki 维护说明¶
- 原始 Flomo 笔记保留不动。
- 后续可按子专题拆分页面,避免单页过长。
- 区分问题清单、初稿答案与已验证答案,并保留参考来源。