系统分析师笔记
系统工程方法中的霍尔三维结构:以电商秒杀系统为例
霍尔三维结构(Hall's Three-Dimensional Structure)是系统工程领域最经典的方法论之一,由美国系统工程专家 A.D.霍尔(Arthur D. Hall) 于1969年提出。它为解决大型复杂系统问题提供了一个清晰的逻辑框架,核心思想是将整个系统工程活动分解为三个紧密关联的维度。
一、霍尔三维结构概述
| 维度 | 含义 | 核心问题 |
|---|---|---|
| 时间维(工作进程) | 系统从规划到退役的全生命周期 | “什么时候做” |
| 逻辑维(思维逻辑) | 完成每个阶段工作时遵循的思维步骤 | “怎么做” |
| 知识维(专业知识) | 完成系统工程所需的各种专业知识和技能 | “用什么知识做” |
二、三个维度的详细拆解
1. 时间维(工作进程)
这是系统从规划到退役的全生命周期,分为七个阶段:
| 阶段 | 说明 |
|---|---|
| 规划阶段 | 调研需求,确定系统目标。 |
| 设计阶段 | 制定初步方案和详细技术设计。 |
| 研制(开发)阶段 | 生产或开发系统的各个部件/模块。 |
| 生产(集成)阶段 | 将各部件组装成完整系统,并进行调试。 |
| 安装(部署)阶段 | 将系统交付给用户并投入实际环境。 |
| 运行阶段 | 系统正式投入使用,进行日常维护。 |
| 更新(退役)阶段 | 系统性能衰退后,进行改造升级或报废。 |
2. 逻辑维(思维逻辑)
这是完成上述每个阶段工作时,必须遵循的思维步骤,包含七个逻辑步骤:
| 步骤 | 说明 |
|---|---|
| 问题定义 | 搞清楚要解决什么问题。 |
| 目标选择 | 确定系统的具体评价指标和约束条件。 |
| 系统综合 | 提出多种可能的备选方案。 |
| 系统分析 | 对各方案进行模型推演、仿真和性能分析。 |
| 方案选择(最优化) | 选出最优或最满意的方案。 |
| 决策 | 拍板定案。 |
| 实施计划 | 制定具体的实施细节和行动计划。 |
关键点:逻辑维的这七个步骤,在时间维的每一个阶段中都要重复走一遍。
3. 知识维(专业知识)
这是完成系统工程所需的各种专业知识和技能支撑。不同系统需要不同的知识领域,通常包括:
- 工程技术(如机械、电子、土木、计算机硬件)
- 计算机科学(如软件工程、数据库、算法)
- 管理科学(如项目管理、财务分析、运筹学)
- 社会科学(如法律、经济学、环境科学)
三、实际案例:电商秒杀系统建设
我们用一个纯软件项目——“从零搭建一个高并发电商秒杀系统”(类似淘宝双11大促)来重新套用霍尔三维模型。这个例子更贴近系统分析师的日常场景。
1. 时间维(软件全生命周期推进过程)
| 阶段 | 在该项目中的具体体现 |
|---|---|
| 规划阶段 | 业务方提出“618大促”需求,IT部门调研预估并发量(如峰值QPS 10万+),确定系统目标和资源预算。 |
| 设计阶段 | 架构师进行技术选型(如Spring Cloud微服务),设计整体架构(网关层、业务层、数据层),设计数据库分库分表方案,设计防超卖和限流熔断策略。 |
| 研制(开发)阶段 | 开发团队分别编写商品详情页、下单服务、支付回调、库存扣减等微服务代码,并进行单元测试。 |
| 集成阶段 | 将所有开发完成的微服务(订单、商品、用户、营销)部署到测试环境,联调接口,验证全链路流程是否跑通。 |
| 安装(部署)阶段 | 将系统部署到生产环境的云服务器集群上,配置CDN加速、Redis缓存预热,并进行DNS切换。 |
| 运行阶段 | 系统正式上线,承接用户流量,运维团队7x24小时监控系统负载、GC频率和慢SQL。 |
| 更新(退役)阶段 | 大促结束后,下线临时扩容的弹性云服务器,并根据本次压测瓶颈,规划下一版本的重构(如将库存服务从MySQL迁移至Redis Lua脚本)。 |
2. 逻辑维(在每一阶段中的思维步骤)
以设计阶段为例,工程师们需要走完这7个逻辑步骤:
| 步骤 | 在该项目中的具体体现 |
|---|---|
| 问题定义 | 面对瞬时海量请求,如何保证数据库不被击穿?如何防止用户重复下单(幂等性)? |
| 目标选择 | 确定系统指标——可用性99.99%、响应时间<200ms、库存准确率100%、支持百万级QPS。 |
| 系统综合 | 提出三种备选架构方案:A)传统单体架构 + 关系型数据库读写分离;B)微服务 + Redis缓存 + MQ异步削峰;C)Serverless + 内存数据库分布式网格。 |
| 系统分析 | 对方案B进行建模推演:10万请求涌入,Redis能抗住多少?MQ积压多少?网络带宽是否够用?进行压力测试模拟。 |
| 方案选择 | 考虑到可扩展性和成本,优选方案B(微服务+缓存+MQ),并确定具体的中间件版本(如RocketMQ + Redis Cluster)。 |
| 决策 | 技术委员会评审通过,批准方案B的架构设计文档。 |
| 实施计划 | 制定排期——第1周搭建脚手架,第2周完成缓存架构,第3周对接支付网关……并制定代码规范和Review机制。 |
提示:逻辑维的这7步,在时间维的 “规划”、“设计”、“运行”等每一个阶段中,都需要反复循环执行。
3. 知识维(需要整合的专业知识)
要建成这个秒杀系统,单靠一种技能是不够的,必须整合以下软件领域的知识:
| 知识领域 | 具体技术 |
|---|---|
| 软件开发 | Java/Go高级编程、微服务框架(Spring Cloud/Dubbo) |
| 数据科学与数据库 | MySQL事务隔离级别、索引优化;Redis数据结构、持久化策略 |
| 网络与安全 | HTTPS加密、Token鉴权(JWT)、防XSS/CSRF攻击、DDoS防护 |
| 中间件与架构 | 消息队列(RocketMQ/Kafka)削峰填谷、分布式事务(TCC/Seata)、服务熔断降级(Sentinel) |
| 管理与运维 | DevOps(CI/CD流水线)、Docker容器化、Kubernetes编排、APM监控(SkyWalking/Prometheus) |
四、对系统分析师备考的应用价值
在软考系统分析师考试中,霍尔三维模型的用途非常大:
1. 论文写作
在写系统分析或项目管理的论文时:
- 按 “逻辑维”的七个步骤 去描述你的工作,展现清晰的思考路径。
- 按 “时间维”的阶段 去组织论文结构,让阅卷老师觉得你的思路非常严谨、专业。
论文开头的示范写法:
“在本项目的设计中,我严格遵循系统工程方法论,从时间维把控项目从需求分析到上线的全流程;在逻辑维,我带领团队针对‘库存扣减’这一核心环节进行了多方案的综合与分析;同时整合了知识维中的分布式架构与中间件技术,最终确保了系统的高可用。”
2. 案例分析
当题目问你“如何保证系统质量”或“如何进行需求分析”时,你可以联想霍尔模型:
- 题目问 “需求分析要做什么” → 答逻辑维的“问题定义、目标选择”。
- 题目问 “项目进度管理” → 答时间维的“规划到部署”。
- 题目问 “团队资源配置” → 答知识维里的“开发、运维、DBA协同”。
五、总结
| 维度 | 一句话总结 |
|---|---|
| 时间维 | 系统的生命周期管理,回答“项目分几步走”。 |
| 逻辑维 | 每步工作怎么思考,回答“怎么解决问题”。 |
| 知识维 | 需要哪些技术栈,回答“需要什么人才”。 |
掌握霍尔三维结构,不仅能为你的论文增色,更能帮助你建立系统分析师应有的 “系统全局观” ,在案例分析和实际工作中都受益匪浅。
🚇 实例 2 :城市新建地铁线路工程(嵌入式控制系统 + 大型信息管理系统)
-
1. 时间维(工程推进过程)
- 规划阶段:市政府调研交通拥堵数据,决定修建地铁,确定线路走向和站点位置。
- 设计阶段:设计院进行地质勘探,绘制地铁站结构图、隧道施工图、供电与信号系统设计图。
- 研制阶段:在工厂定制生产盾构机、地铁列车车厢、自动售检票闸机等设备。
- 集成阶段:将生产好的屏蔽门、信号系统、通信系统、监控系统安装到隧道和站台内,并连接调试。
- 安装阶段:完成线路铺设、车站装修、设备上电和空载试运行。
- 运行阶段:正式开通载客,地铁公司进行日常巡检、车辆维修和客流调度。
- 更新阶段:运行10-20年后,对老旧的信号系统进行升级改造,或更换新车型。
-
2. 逻辑维(在 每个 阶段中的思考方式)
以 设计阶段(第2阶段) 为例,工程师们需要这样思考:- 问题定义:该站点的地质条件是否适合明挖?周围建筑物是否需要保护?
- 目标选择:确定该段隧道施工的沉降控制标准、成本预算和工期要求。
- 系统综合:提出“明挖法”、“盾构法”、“矿山法”三种不同的施工方案。
- 系统分析:模拟三种方案对地面交通的影响、施工风险和造价差异。
- 方案选择:因市中心不能封路,最终优选“盾构法”。
- 决策:总工程师批准盾构方案。
- 实施计划:制定盾构机的进场时间、掘进速度和每日泥浆外运计划。
-
3. 知识维(参与其中的人员专业)
要建成这条地铁,需要整合以下领域的专业知识:- 土木工程(结构受力、岩土力学)
- 机械工程(车辆设计、盾构机操控)
- 电子与通信工程(信号传输、无线调度)
- 计算机软件(自动售检票系统、综合监控系统、列车运行图算法)
- 管理科学(工程概预算、供应链采购、人员排班)
商业智能 BI
后补
OLAP 联机分析处理

OLTP 联机事务处理

2025年5月改版后第一次考试
- 软件工程(重中之重,下表未细化)
- 企业信息化
- 计算机硬件
- 网络
- 数据库
- 操作系统
- 安全
| 章节 | 分数 | 考点 |
|---|---|---|
| 计算机硬件 | 5 | 7SSD 代替 HDD 场景;10CPU 和外设数据交换方式;27 什么不属于主存;42cache 命中率计算;44RISC 特点; |
| 知识产权 | 2 | 34 侵权判定;55 著作权法不可用的; |
| 计算机网络 | 4 | 28 基于 TCP 协议;31 局域网拓扑结构;35C 类 IP 地址;64 奈奎斯特定理; |
| 数据库 | 9 | 2 分布式锁;11 外键约束;18CAP 理论;29-30 范式理论;37 数据库日志作用;39 分布式数据库;41 读脏数据;57 事务原子性; |
| 安全 | 4 | 13 防火墙类型判断;60 信息安全技术;63DDoS 攻击处理方法;69SSL/SSH; |
| 操作系统 | 6 | 4 流式文件定义;6 死锁判断;15 进程和线程区别;19 操作系统功能;38 段页式存储;54 信号量初值; |
| 软件工程 | 23 | 1 软件工程三要素;9 用例关系判断;14 设计模式;17 场景法评估质量属性;25-26 人机交互设计用户体验模型五个层次;32 黑板架构;33 测试判断;36 需求跟踪矩阵作用;40 变更控制;45 单例设计模式;47-49 三种设计类判断;50-51 黑盒白盒测试;52 面向对象设计原则;53 进度计算;59 代码重用方法;62 依赖倒置原则;65-66UML 图定义判断;67 开闭原则; |
| 数学 | 2 | 43 利润计算;46 线性规划法; |
| 企业信息化 | 10 | 8 电子商务技术;12 企业信息化方法;20-22 信息资源分类定义;23-24 信息资源管理基础标准;56 电子政务;68CRM 主要功能;70ERP 功能; |
| 新技术 | 5 | 3 公开源代码协议;5web 开发中 restful api 设计原则;16 负载均衡策略判断;58 人工智能图像识别算法;61 水平扩展和垂直扩展; |
| 专业英语 | 5 | 71-75 数据流图英文题 |
2025年11月改版后第二次考试(软件工程细化)
| 章节 | 分数 | 考点 |
|---|---|---|
| 计算机硬件 | 5 | 24MTTR 计算;32cache 组相联映射;42DMA 正误判断;56 编译器;57 运算指令正误判断; |
| 知识产权 | 2 | 22 著作权保护范围;48 发明专利和实用新型专利; |
| 计算机网络 | 4 | 3-4OSI 协议;3 子网划分和子网掩码;51 包过滤防火墙; |
| 数据库 | 5 | 5-6 范式判断;18 关系代数;34 求候选链;50 事务隔离级别并发性性能; |
| 安全 | 5 | 1 安全电子邮箱协议;27 非对称加密;29 数字签名;38 容错技术;65 单点登录; |
| 操作系统 | 1 | 70 进程和线程判断; |
| 软件工程 | 5 | 19CMM 级别;21 逆向工程和再工程;36 开发模型判断;37 敏捷开发;67 需求分析产出物 |
| 系统规划与分析 | 6 | 30-31 可行性分析;62 数据的属性分析;66 企业业务流程三要素;69BAM 流程图;73 业务流程建模和企业过程; |
| 需求工程 | 7 | 23 非功能需求;39-40UML 图判断;60 需求特性;61 三种设计类;63 需求获取方法;71 用例图参与者; |
| 架构设计 | 5 | 28 架构风格;44SOA 关键技术;72 分层架构优点;74 质量属性;75CS 架构和 MVC 架构; |
| 系统设计 | 2 | 25 面向对象设计原则;68 耦合; |
| 测试与维护 | 4 | 20 回归测试实例;41 维护类型判断;49 自底向上测试策略;58 测试正误判断; |
| 项目管理 | 6 | 12 进度管理工具;15 进度压缩费用计算;35WBS 分解原则;43 德尔菲法;59COCOMO 估算模型;64 产品质量模型; |
| 数学 | 3 | 16-17 网络与最大流量;55 线性规划; |
| 企业信息化 | 9 | 13-14 企业系统规划法;26 知识管理工具;45-47 信息资源管理的基础标准;52-54 企业信息化; |
| 新技术 | 1 | 2 开源协议 |
| 专业英语 | 5 | 7-11 系统分析主题英语完形填空 |
学习规划(约 3 个月)
- 选择题 100 小时,日均 2 小时
- 听课,刷题
- 案例 + 论文 70 小时
- 案例 近 5年 共 10 套,自己对答案打分。
- 论文 5-7 篇,每周 1 篇,找 批改
教材章节 - 考分对照表
| 视频课程目录 | 第二版教材对应章节及知识点 | 考分 |
|---|---|---|
| 1. 计算机系统 | 3.1-3.5:概述、存储器、输入输出、指令系统、多处理机系统 | 6 |
| 2. 操作系统 | 3.6:进程管理、存储管理、设备管理、文件管理、作业管理 | 6 |
| 3. 数据库技术 | 5:DBMS、关系数据库、并发控制、设计建模、分布式数据库、数据仓库、数据挖掘、非关系数据库。 | 6 |
| 4. 计算机网络与分布式系统 | 4:网络基础、网络架构与协议、局域网和广域网、网络工程、分布式系统、构件与中间件、Web 服务、云计算。 | 6 |
| 5. 信息安全 | 9:安全体系、保密、网络安全、访问控制、容灾与业务持续、安全管理、可靠性、冗余技术、容错技术 | 6 |
| 6. 企业信息化 | 6:概述、信息资源管理、信息化规划、企业信息系统、电子商务、电子政务、业务流程重组、企业应用集成 | 6 |
| 7. 软件工程 | 7:生命周期、开发方法和模型、开发环境和工具、软件过程管理、软件重用和再工程、软件产品线、统一建模语言、软件形式化方法 | 3 |
| 8. 项目管理 | 8:概述、范围管理、进度管理、成本管理、配置管理、质量管理、人力资源管理、风险管理、信息(文档)管理 | 2 |
| 9. 系统规划与分析 | 10:概述、项目提出与选择、系统分析概述、问题分析、业务流程分析、数据与数据流程分析、系统可行性分析、成本效益分析、系统方案建议 | 1 |
| 10. 软件需求工程 | 11:概述、需求获取、分析、结构化分析、面向对象分析、需求定义、验证、管理 | 3 |
| 11. 软件架构设计 | 12:概述、架构建模、架构风格、架构标准、架构实现、质量属性 | 3 |
| 12. 系统设计 | 13:概述、处理流程设计、结构化设计、面向对象设计、设计模式、输入 / 输出原型设计、人机交互设计 | 3 |
| 13. 软件实现与测试 | 14:软件实现概述、测试概述、测试方法、测试类型、测试组织、部署 | 4 |
| 14. 系统运行与维护 | 15:运维技术指标、运行管理、故障管理、软件维护、系统评价、遗留系统处置、新旧系统转换、现有系统演进。 | 1 |
| 15.Web 应用系统分析与设计 | 16:Web 应用系统简介、架构设计、开发框架、开发、测试 | 在案例纲内,选择题可能只考几分 |
| 16. 嵌入式系统分析与设计 | 17:嵌入式系统概述、数据库、操作系统、开发、验证 | 在案例纲内,选择题可能只考几分 |
| 17. 移动应用系统分析与设计 | 18:移动应用平台、开发环境、架构、开发、无代码开发 | 在案例纲内,选择题可能只考几分 |
| 18. 大数据处理系统分析与设计 | 19:大数据处理系统概述、架构、开发、测试 | 在案例纲内,选择题可能只考几分 |
| 19. 微服务系统分析与设计 | 20:微服务系统概述、架构、开发、测试 | 在案例纲内,选择题可能只考几分 |
| 20. 信息物理系统分析与设计 | 21:信息物理系统概述、架构、技术框架、开发技术、控制系统与网络通信、应用分析与设计 | 在案例纲内,选择题可能只考几分 |
| 21. 数据与经济管理 | 1+2:绪论、数学统计基础、图论应用、预测与决策、数学建模、工程伦理 | 3 |
| 补充:知识产权 | 虽然新版删除,但考的概率很大,必须学 | 3 |
| 补充:系统性能 | 新版删除,有考的可能,建议学 | 1 |
| 专业英语 | 无视频讲解,有总结英语单词和真题,自己练习记忆 | 5 |
分值排序
| 考分档位 | 对应章节列表 |
|---|---|
| 6 分(最高分值) | 1. 计算机系统2. 操作系统3. 数据库技术4. 计算机网络与分布式系统5. 信息安全6. 企业信息化 |
| 5 分 | 专业英语 |
| 4 分 | 软件实现与测试 |
| 3 分 | 1. 软件工程2. 软件需求工程3. 软件架构设计4. 系统设计5. 数据与经济管理6. 补充:知识产权 |
| 2 分 | 项目管理 |
| 1 分 | 1. 系统规划与分析2. 系统运行与维护3. 补充:系统性能 |
| 案例纲内选考(无固定选择题分值) | 1. Web 应用系统分析与设计2. 嵌入式系统分析与设计3. 移动应用系统分析与设计4. 大数据处理系统分析与设计5. 微服务系统分析与设计6. 信息物理系统分析与设计 |
[ 论文 ] 常考题目类型
- 需求工程:高频考查需求获取、需求分析,也会涉及需求验证、需求管理,相关内容都需要熟悉掌握。
- 软件测试:属于历年反复考察的重点内容。
- 开发相关技术:信息系统开发方法、开发模型、生命周期模型、企业应用集成技术。
- 系统保障相关:系统可靠性、安全性、容错技术等。
- 其他考点:项目管理、数据库等内容。
1. 计算机系统概述
微指令集 和 指令集 区别
计算机软件
按照功能,计算机系统中的软件可以分为系统软件和应用软件两大类。
- 系统软件:用于实现计算机系统的管理、调度、监视和服务等功能。通常将系统软件分为5类:操作系统、语言处理程序、服务性程序、数据库管理系统和计算机网络软件。
- 应用软件:是为解决某种应用问题而编制的一些程序。应用软件是用户或第三方软件公司为各自业务开发和使用的各种软件。
校验码
CRC
发送
- 补 r 个 0,r 是 生成多项式 G(x) 的最高次项的指数 \(x^r\)
- 生成多项式 G(x) 写出二进制
- G(x) = x^4 + x + 1 --> 10011
- DATA 除以 G(x),模2运算,同0非1,半加,不进位加法
- 计算余数
- 坑:余数位数要是 r 位,如果不是,则高位(左边)补 0
- 例如: 余数 110 ---> 0110
- 坑:余数位数要是 r 位,如果不是,则高位(左边)补 0
- 余数添加到校验位
接收
- 收到的数,除以 相同的 G(x)
- 如果 余数 = 0 ,正确;否则就报错
存储系统-四种存取方式
| 存取方式 | 寻址依据 | 访问时间特性 | 代表设备 | 一句话记忆 |
|---|---|---|---|---|
| 顺序存取 | 位置(物理顺序) | 与物理位置成正比(最慢) | 磁带 | 必须从头开始顺藤摸瓜。 |
| 直接存取 | 块地址 + 内部位置 | 先定位到块,块内需等待 | 机械硬盘 | 先找小区,再在小区里按门牌找。 |
| 随机存取 | 物理地址(信号译码) | 与位置无关(恒定) | 内存(RAM/ROM) | 报出门牌号,直接拿到货。 |
| 相联存取 | 内容 / 关键字(并行比对) | 与容量无关(极快,靠硬件) | Cache(高速缓存)/ TLB | 喊一嗓子 “谁叫张三”,大家都应声。 |
如果问“哪种方式不需要地址,也不需要移动读写头”,那一定是相联存取。
如果考“磁带的存取方式”,毫不犹豫选顺序存取。
RAID 廉价磁盘冗余阵列 Redundant Array of Inexpensive Disks
RAID(独立磁盘冗余阵列)技术通过将多个物理硬盘组合成一个逻辑单元,来提升存储性能或数据安全性。下面为你详细介绍从RAID 0到RAID 7这8个级别。
| 级别 | 核心原理 | 最少硬盘 | 容错能力 | 可用容量 | 主要优点 | 主要缺点 | 典型应用场景 |
|---|---|---|---|---|---|---|---|
| RAID 0 | 条带化 (Striping):数据被分割成大小相等的块,并行写入阵列中的所有硬盘。 | 2块 | 无 | 100% | 读写性能最高,充分利用所有硬盘的带宽。 | 无任何容错能力,任何一块硬盘损坏都会导致所有数据丢失。 | 视频非线编、图形图像处理等对速度要求极高,但数据可丢失的场景。 |
| RAID 1 | 镜像 (Mirroring):数据在写入一块硬盘的同时,完整地复制到另一块硬盘上。 | 2块 | 高(允许损坏1块) | 50% | 极高的数据安全性,读性能可提升。 | 成本高,磁盘空间利用率只有50%。 | 操作系统、数据库日志、财务数据等至关重要的核心数据。 |
| RAID 2 | 汉明码校验:数据按位(bit)分散存储,使用汉明码进行错误检测和纠正。 | 数量较多 | 中 | 较高 | 数据错误检测和纠正能力强。 | 极度复杂,成本极高,需要专用硬件,性能与RAID 3/5相比无优势。 | 极为罕见,理论设计,基本被市场淘汰。 |
| RAID 3 | 字节级条带化 + 专用校验盘:数据按字节(byte)条带化分布,并使用一块独立的硬盘存储奇偶校验信息。 | 3块 | 中(允许损坏1块) | (n-1)/n | 对大块连续数据(如视频)的读写性能好。 | 校验盘成为性能瓶颈,小文件读写性能差。 | 视频制作、数据仓库等大文件、连续数据流的应用。 |
| RAID 4 | 块级条带化 + 专用校验盘:与RAID 3类似,但数据按块(block)进行条带化。 | 3块 | 中(允许损坏1块) | (n-1)/n | 对大块数据的读写性能好,读性能非常优秀。 | 校验盘是性能瓶颈,写性能差。 | 很少使用,已被RAID 5取代。 |
| RAID 5 | 块级条带化 + 分布式校验:数据和校验信息分布在阵列的所有硬盘上。 | 3块 | 中(允许损坏1块) | (n-1)/n | 性能和冗余的绝佳平衡,读性能高。 | 写入性能有一定开销(需计算校验值),重建时性能下降。 | 最主流的RAID级别,适用于文件服务器、Web服务器等。 |
| RAID 6 | 块级条带化 + 双重分布式校验:比RAID 5多使用一份校验信息。 | 4块 | 高(允许损坏2块) | (n-2)/n | 极高的数据安全性,可容忍两块硬盘同时故障。 | 写性能更差,有效容量进一步降低,成本更高。 | 对数据安全性要求极高的关键任务服务器、大容量存储系统。 |
| RAID 7 | 智能控制器 + 异步I/O:包含一个内置的实时操作系统和高速缓存,所有I/O操作在缓存中异步完成。 | 2块以上 | 高 | 较高 | 理论上性能最高,读写速度极快,管理能力强。 | 成本极其昂贵,技术被专利保护,产品封闭。 | 对性能和可靠性有极致要求的高端企业级应用。 |
💡 常用的组合RAID级别
除了上述标准级别,还有一些将基础RAID级别组合使用的方案,以实现性能与安全的更好平衡:
- RAID 10 (RAID 1+0):先镜像,后条带化。它结合了RAID 1和RAID 0的优点,既提供了数据冗余,又提供了很高的I/O性能。它至少需要4块硬盘,可用容量为50%。这是大型数据库、高负荷应用服务器的常见选择。
💎 总结与选择建议
选择哪个RAID级别,本质上是在性能、数据安全和成本之间做权衡。你可以参考以下思路进行选择:
- 追求极致性能,不怕丢数据:选 RAID 0。
- 数据安全是第一要务:选 RAID 1(预算有限)或 RAID 10(预算充足,性能也重要)。
- 寻求性价比最高的平衡:选 RAID 5(最主流选择)。
- 数据非常重要,希望多一重保障:选 RAID 6。
历年考题,梳理了它的具体考法、高频考点和备考策略。
1. 概念与特性辨析
这是最基础的考法,要求你准确记忆不同RAID级别的核心特点,尤其是它们的冗余能力和性能表现。
- 常见考点:
- RAID 0:无冗余,性能最高。
- RAID 1:100%冗余(镜像),磁盘利用率50%。
- RAID 5:分布式奇偶校验,可坏一块盘。同一条带(Stripe)内,\(P = D₁ ⊕ D₂ ⊕ D₃\)(⊕ :按位异或,即模2或半加)
- RAID 6:双重奇偶校验,可坏两块盘。(两块独立校验码,P-模2,Q-Galoris运算-基于RS纠错码)
- RAID 10:RAID 1与RAID 0的结合。
- 真题示例:
题目:下列关于RAID的说法正确的是()。
A. RAID技术可以在提高数据安全性和性能的同时,降低总体存储成本。
B. RAID 0采用的是数据条带化技术,没有冗余机制,不能保障数据安全。
(正确答案:B)
2. 场景与级别选型
这是对概念理解的进阶考查,题目会描述一个具体的业务场景,让你选择最合适的RAID级别。
- 常见考点:根据业务对性能、数据安全性、成本的不同要求,选择合适的RAID级别。
- 真题示例:
题目:某系统主要处理大量随机数据,需要具有较高的数据容错性和高速读写性能,最佳的RAID级别选择是?
(分析:兼顾性能与容错,RAID 5或RAID 10是常见选择)
3. 容量计算
这是每年几乎必考的计算题,务必掌握。
-
核心公式:
- RAID 5:有效容量 = (N - 1) × 最小单盘容量。
- RAID 6:有效容量 = (N - 2) × 最小单盘容量。
- RAID 1/10:有效容量 = (N / 2) × 最小单盘容量。
- RAID 0:有效容量 = N × 最小单盘容量。
-
真题示例:
题目1:假如有3块80T的硬盘,采用RAID5的容量是()。
A.40T B.80T C.160T D.240T
解析:RAID 5有效容量 = (3 - 1) × 80T = 160T,选C。题目2:假如有5块80G和2块60G的硬盘,采用RAID5的容量是()。
A.240G B.300G C.360G D.480G
解析:总盘数为7,最小盘容量为60G,RAID5有效容量 = (7 - 1) × 60G = 360G,选C。
特别注意:计算时,容量以最小硬盘为准。例如,不同容量硬盘混用做RAID 5,会按最小容量计算所有硬盘。
Cache 高速缓存 访问时间计算
| 参数 | 数值 | 含义 |
|---|---|---|
| 主存访问时间 | 100 ns | 数据不在 Cache 中时,去内存读/写的时间 |
| Cache 访问时间 | 10 ns | 数据在 Cache 中时,读/写的时间 |
| 取指令命中率 | 98% | 从 Cache 取出指令的成功率(失效率 2%) |
| 取数据命中率 | 95% | 从 Cache 取出操作数的成功率(失效率 5%) |
| 取操作数比例 | 1/5 (20%) | 每条指令中只有 20% 的指令需要额外访问内存取数据 |
| 前提条件 | 流水线不阻塞 | 忽略流水线停顿带来的额外时间,只算纯访存时间 |
\((2% × 100ns + 98% × 10ns) + 1/5 × (5% × 100ns + 95% × 10ns) = 14.7ns\)
Cache 与 主存(内存)映射机制
- 解决 怎么放 和 怎么找
- 地址映射中,主存和Cache将均分成容量相同的块(页)
第一种:直接映射(Direct Mapping)—— 固定车位
- 核心逻辑:主存中的每一个数据块,只能被放到Cache中唯一固定的一个位置(位置 = 主存块号 mod Cache总块数)
- 假设:主存有 128块(0~127),Cache只有 8块(0~7)
- 主存中的 第0块、第8块、第16块... 都只能被放入Cache的第 0 块(因为 0 mod 8 = 0,8 mod 8 = 0 ,数据冲突,抖动)
- 硬件实现最简单、成本最低、速度最快;但命中率最低(容易发生抖动,即两个常用数据抢同一个位置)
第二种:全相联映射(Fully Associative Mapping)—— 任意车位 -- 用于TLB快表
- 可以放到Cache中的任何一个空闲位置
- [ 标记(Tag) | 块内地址(Offset)]。没有“行索引”字段
- 命中率最高,Cache空间利用最灵活;但硬件成本极高(需要N个并行比较器),且查表速度慢
第三种:组相联映射(Set-Associative Mapping)—— 指定小区,区内任意停 -- 现代CPU的主流(Intel Core i7常用8路/16路组相联)
- 前两种方案的折衷。先把Cache分成若干个组(Set),每组包含若干个路(Way)
- 映射规则:主存块固定进入某个组(组号 = 主存块号 mod 组数);但进入该组后,可以随意停放在该组的任意一路(Way)中
- 寻址方式(地址拆分):地址被拆分为:[ 标记(Tag) | 组索引(Set Index) | 块内地址(Offset)]
- 举例:
- 假设Cache总共8块,分成 4组,每组包含 2路。
- 主存块号 2 和 10 都会映射到 组号 2(因为 2 mod 4 = 2,10 mod 4 = 2)
- 但它们进入第2组后,可以自由停放:块号2停在该组的第0路,块号10停在该组的第1路
- 检查过程:CPU先根据“组索引”找到第2组,然后并行比较这一组内2个路的标记,看哪个匹配
物理层级是
- Cache(缓存) → 组(Set) → 路(Way) → 数据块(Block/Line)
- 想象你有一个大抽屉柜(Cache),里面有很多排抽屉
- 组(Set) = “一排抽屉”。
- CPU发来地址,先看“组索引”,直接告诉你:去第3排抽屉找
- 路数(Way) = “这一排里有几个抽屉”
- 如果是4路组相联,说明这一排并排躺着 4个抽屉(路0、路1、路2、路3)
- 块(Block) = “单个抽屉里的那个小盒子”
- 每个抽屉(路)里,恰好只放了 1 个小盒子(块)
- 组(Set) = “一排抽屉”。
- 硬件是怎么找数据的?(对应这个层级)
-
- CPU发来地址,取出 “组索引” → 定位到“第3排抽屉”(组)
-
- 这一排有4个抽屉(4路),硬件把4个抽屉里的“小盒子”(块)全部拿出来
-
- 比较器比对每个“小盒子”上贴的标签(Tag),看哪个匹配
-
- 匹配的那个“小盒子”(块)里的数据,就是CPU要的
-
多级缓存 Cache 物理架构

- Cache 写操作 目的
- 需要保证缓存在 Cache 中的数据与 内存 中的内容一致
- 写入策略:Write-Back是主流
- Write-Through (写通):数据被同时写入缓存和主存。这种方式实现简单,能保证数据一致性,但速度较慢
- Write-Back (写回):数据只写入缓存,并标记为“脏”(Dirty),只有当该缓存行被替换时,才将数据写回主存。这种方式速度更快,但实现复杂,需要维护数据一致性
- 在实际的现代CPU设计中,各级缓存通常采用的策略如下:
- L1 缓存:几乎都是 Write-Back (写回)
- 这是为了追求极致性能。由于L1速度最快,任何写主存的操作都会成为瓶颈,因此现代CPU(如ARM Cortex-A53/A55)的L1数据缓存普遍不支持Write-Through,而是采用Write-Back策略
- L2 缓存:通常也是 Write-Back (写回)
- 作为L1的缓冲,其策略需要与L1协同,为保证性能,也普遍采用Write-Back
- L3 缓存:通常是 Write-Back (写回)
- 为了减少对更慢的主存的直接写入,L3也普遍采用Write-Back策略
- L1 缓存:几乎都是 Write-Back (写回)
多核数据一致性
M E S I
-
用“办公室机密文件”彻底搞懂状态流转
- 假设你(核心0)和你的同事(核心1)在一个办公室里,桌上有一份主存(档案室)里的机密文件(数据 X=5)。
-
① Exclusive (E) —— 独占且干净
- 场景:你刚把档案室的 X=5 拿回来,放在了你的桌上(Cache),只有你一个人拿了。
- 状态特征:你桌上的文件有效,且和你脑子里的记忆(主存)一模一样,没有涂改过。
- 动作:此时如果同事来问“谁有X?”,你要回答“我有”。(发出共享信号)。
-
② Shared (S) —— 共享且干净
- 场景:同事听到你有X,也去档案室复印了一份拿回自己桌上。此时你和同事桌上都有一份 X=5。
- 状态特征:文件有效,且大家内容一致,都没涂改。
- 关键点:在S状态下,你不能随意涂改文件。如果你想改,必须先向所有人发广播:“我要改了啊,你们的都得作废!”(这叫 “升级(Upgrade)” 或 “读并修改(Read-for-Ownership)”)。
-
③ Modified (M) —— 已修改且独占
- 场景:你发广播说“我要独占了”,同事把自己的那份撕掉(变成 Invalid)。然后你拿起笔,把 X=5 改成 X=10。
- 状态特征:
- 你桌上的文件是最新的(10),档案室(主存)里的还是旧的(5),所以你的数据是脏的(Dirty)。
- 只有你桌上有这份文件(独占)。
- 权限:此时,只有你可以随意读写这份文件,不需要再问别人。
-
④ Invalid (I) —— 无效
- 场景:你同事的旧文件被你强制撕掉了(无效)。
- 或者,你的 Cache 刚初始化,里面全是空的垃圾数据(无效)。
- 规则:只要状态是 I,CPU 读这个 Cache 行必然缺失(Miss),必须去别处(内存或其他Cache)拿最新数据。
E独享干净,M脏独享,S都干净,I是废纸
- 当上午题问:“当某个缓存行状态为 Modified 时,如果收到其他核心的读请求,该缓存行应如何操作?”
- 标准答案:先写回(Write Back) 主存,然后状态变为 Shared(S)
网络存储技术
直接附加存储 DAS

- 物理连接:SCSI/SATA/SAS数据线直连,类似"脐带"
- 数据流向:CPU必须亲自处理文件系统,数据经过服务器内存再落盘
- 致命伤:存储跟服务器绑定,服务器宕机,存储就"失联"了
网络附加存储 NAS

- 物理连接:插在普通交换机上,跟电脑一样用网线
- 数据流向:服务器发来"我要读/xx目录/1.doc"(文件路径),NAS自己的CPU去磁盘找,找到后把整个文件返回
- 核心优势:解耦!应用服务器只管计算,存文件的事情交给 NAS 去干
存储区域网络 Storage Area Network,SAN

- 物理连接:服务器插两块光纤网卡,分别连到交换机A和B(冗余多路径)
- 数据流向:服务器看到的不再是"共享文件夹",而是一块裸盘(未格式化)。服务器直接发SCSI命令("把扇区1024的数据读给我"),存储控制器收到后直接返回原始数据块
- 极致冗余:交换机A坏了、控制器1坏了,甚至光纤线断了,服务器都可以瞬间切到另一条通路,业务零中断
SAN 图中的 LUN 是什么
- LUN(Logical Unit Number,逻辑单元号),是存储设备(磁盘阵列)通过SCSI协议对外提供的一个独立的、可寻址的“逻辑硬盘”
- 本质:它不是物理硬盘,而是存储控制器(阵列的大脑)通过RAID和虚拟化技术,从一堆物理硬盘里切出来的一块“逻辑空间”
DAS、NAS、SAN 对比
| 对比维度 | DAS(直连) | NAS(网络文件存储) | SAN(网络块存储) |
|---|---|---|---|
| 传输内容 | 块级(Block) | 文件级(File) | 块级(Block) |
| 连接方式 | SATA/SAS线缆(物理短距) | 标准以太网(网线) | 光纤(FC)或以太网(iSCSI) |
| 扩展性 | 极差(瓶颈) | 好(增设备即可) | 极好(无限横向扩展) |
| 性能/延迟 | 极低延迟(最快) | 较高延迟(文件协议栈开销) | 极低延迟(专业硬件芯片) |
| 成本 | 很低 | 适中 | 极高(尤其FC-SAN) |
| 典型场景 | 服务器C盘、个人电脑 | 办公文件共享、文档归档 | 大型核心数据库、虚拟化平台、高性能计算 |
输出/输出工作方式
5 种工作方式:程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机
程序控制方式 -- CPU 主动“问”
-
- 无条件传送
- I/O端口时刻准备好数据,CPU无需查询,想读就读,随时访问(利用I/O指令)
- 要求时序配合精确,一般用来实现简单 开关量I/O控制
-
- 程序查询方式
- CPU 先查询(轮询) I/O端口,如果未 准备好 就循环等待
程序中断方式 -- 程序主动通知
- CPU 无需等待,提高了效率
- 保护现场 --> 中断处理 --> 恢复现场
- 中断执行的 5 个过程:
- 中断请求、中断判优、中断响应、中断处理、中断返回
- 多个中断源时,中断处理(第4个过程)的 5种方式:
- 多中断信号线、中断软件查询、雏菊链法、总线仲裁法或向量表法。
- 这5种方式主要解决 “如何物理上 识别中断源 并 找到入口 ”的问题
总线仲裁法 DMA方式
以 CAN 2.0A 总线协议为例,仲裁段+控制段(数据长度)+数据
- 仲裁段,数值越小,优先级越高
- CAN总线仲裁段(标识符ID)的发送顺序按 大端序,即从 高位MSB 开始发
| 问题 | 直接回答 |
|---|---|
| 11位仲裁段,二进制数值越小优先级越高? | 是的。 CAN协议中ID就是优先级,数值越小越优先。物理上靠“显性0覆盖隐性1”实现。 |
| 数值越小,0越先出现,自然就抢占总线? | 是的。 这是纯硬件“边发边听”自动完成的,不需要像以太网那样冲突后退避,胜出的节点完全感觉不到发生过竞争。 |
| 低优先级的设备会不会一直抢不到总线? | 存在理论可能(饿死),但工程上可以避免。 通过合理分配ID(让非关键设备用大ID)+ 控制总线负载率(留足空闲间隙)来解决。CAN协议本身不提供公平性保障。 |
通道方式
- 通道是一个专门负责I/O控制的、具有执行指令能力的专用处理器。
- 它有自己的指令集(通道指令,如“读磁盘扇区”、“写磁带块”)
- 它有自己的控制器(无需CPU去轮询外设状态)
- 它共享主存:通道程序和待传输的数据都存放在主存中,通道通过总线(或专用通道总线)直接访问主存
- 通道不是一个物理接口(比如USB口),而是一个独立的功能模块。
- 在大型机(Mainframe)中,它是一个独立的芯片甚至板卡;
- 在PC中,它通常集成在芯片组的南桥或存储控制器中。
- DMA只能完成单一、连续的数据块搬运(如“从磁盘读1KB到内存地址X”)。通道可以完成多条、带逻辑判断、交叉访问多个设备的复杂I/O任务(如“读磁盘A的前100条记录→处理后→写磁盘B的后200条记录”)。
- 举例:场景:某银行核心主机(IBM大型机),需要每晚执行批处理任务:读取1000个客户的账户流水文件(存储在磁盘阵列A),经过计算后,生成新的汇总报表(写入磁盘阵列B),同时还要打印所有超过100万的客户清单(发送到高速行式打印机)。
- 如果只用DMA:CPU必须分成3次启动DMA(读A、写B、打印),每次启动后等着DMA完成中断,再启动下一个。串行执行,效率低。
- 如果采用通道方式:
- CPU在主存中写好一段通道程序(指令序列):
- 指令1:连接磁盘A,读文件块1~100。
- 指令2:连接磁盘B,写文件块1~100。
- 指令3:如果出现超百万记录,发数据到打印机。
- 指令4:循环执行指令1~3,直到读完1000个客户。
- CPU发一条“START I/O”指令给选择通道(用于磁盘高速读写)和字节多路通道(用于打印机)。
- CPU完全不管了,回去做别的计算(如利率重算)。
- 选择通道自己通过总线矩阵与磁盘A、磁盘B交互,并行地把数据倒来倒去。
- 当所有文件处理完,通道通过中断信号通知CPU:“老板,活干完了。”
- 核心优势:CPU在整个批量传输过程中几乎不参与,极大地提高了CPU与外设的并行度。
PLL 锁相环
PFD 鉴频鉴相器

f_ref 大于 f_in 时,其CLK上升沿先到,Q_1 = UP = 1,VCO输入电压增大,输出 f_in 增大
现代 X86 总线架构

浙公网安备 33010602011771号