操作系统——RAID
RAID
基本概念
- 定义:将多个独立磁盘组合成一个逻辑磁盘,通过并行存取提高性能,通过冗余校验提高可靠性。
- 设计目标:解决CPU性能增长与磁盘I/O性能增长不平衡的问题。
- 关键术语:
- Striping (条带化):将数据分块,交叉存放到多个磁盘,提高并行I/O。
- Redundancy (冗余):通过校验码或镜像来保证数据在部分磁盘损坏时不丢失。
常见RAID级别对比
| 级别 | 数据分布方式 | 冗余方式 | 空间利用率 | 读性能 | 写性能 | 容错能力 (可坏盘数) | 适用场景 |
|---|---|---|---|---|---|---|---|
| RAID 0 | 条带化 (Striping) | 无 | 100% (N块盘 → N倍) | 高 (N倍) | 高 (N倍) | 0 | 追求速度,不要求安全(如临时缓存、游戏) |
| RAID 1 | 镜像 (Mirroring) | 完全复制 | 50% (N/2) | 高 (N倍) | 最慢的磁盘 | N-1 | 高安全性(如操作系统、关键数据) |
| RAID 2 | 位级条带化 | 海明码 | (n)/(n+k) | 较高 | 低 (受校验盘限制) | 1 | 顺序数据访问,成本高,现已罕见 |
| RAID 3 | 字节/位级条带化 | 单块奇偶校验盘 | (N-1)/N | N-1倍 | 低 (校验盘瓶颈) | 1 | 大容量顺序数据(如视频流、科学计算) |
| RAID 4 | 块级条带化 | 单块奇偶校验盘 | (N-1)/N | 高 (N-1倍) | 低 (校验盘瓶颈) | 1 | 随机读多、写少的数据 |
| RAID 5 | 块级条带化 | 分布式奇偶校验 | (N-1)/N | 高 (N倍) | 中等 (写惩罚) | 1 | 综合性能最佳(如文件服务器、数据库) |
| RAID 6 | 块级条带化 | 双重分布式奇偶校验 | (N-2)/N | 高 (N倍) | 较低 (写惩罚更大) | 2 | 高安全性需求(如金融、档案存储) |
| RAID 10 | 先镜像(RAID1),再条带(RAID0) | 镜像 | 50% | 高 | 高 | N-1 | 既追求速度又要求安全(如高性能数据库) |
关键RAID级别特性补充
- RAID 0 vs. RAID 5:RAID 0 写性能略好于 RAID 5,但无容错能力。
- RAID 3 vs. RAID 4:RAID 3 适合大块顺序数据(如视频),RAID 4 适合小块随机数据(如文件)。
- RAID 5 vs. RAID 6:RAID 6 提供双重校验,可容忍两块盘同时损坏,安全性更高,但写性能略低,空间利用率稍低。
- RAID 10 (RAID 1+0):结合了RAID 1的高可靠性和RAID 0的高性能,既快又安全,但成本高(利用率50%)。
其他补充内容
- Disk Cache (磁盘缓存):利用主存中开辟的缓冲区缓存磁盘扇区数据,减少实际磁盘I/O。
- SSD (固态硬盘):当前主流趋势,无机械部件,速度远超机械硬盘(顺序读速可达7000MB/s以上,如NVMe SSD)。
核心公式与计算技巧
RAID容量与空间利用率
- RAID 0:总容量 = N × 单盘容量
- RAID 1:总容量 = (N/2) × 单盘容量
- RAID 3/4/5:总容量 = (N-1) × 单盘容量
- RAID 6:总容量 = (N-2) × 单盘容量
- RAID 10:总容量 = (N/2) × 单盘容量 (N为偶数)
软工II整理Chapter19~23
点击 –>这里<– 查看原始复习提纲
Chapter 19
需要掌握白盒测试和黑盒测试的常见方法,并进行优缺点比较 能解释并区别白盒测试三种不同的方法:语句覆盖、分支覆盖和路径覆盖
基于规格的技术——黑盒测试方法
把测试对象看做一个黑盒子,完全基于输入和输出数据来判定测试对象的正确性
- 等价类划分
- 边界值分析
- 决策表
- 状态转换
基于代码的技术——白盒测试方法
将测试对象看做是透明的,不关心测试对象的规格,而是按照测试对象内部的程序结构来设计测试用例进行测试工作
- 语句覆盖(对简单情况)
- 确保被测试对象的每一行程序代码都至少执行一次
- 分支覆盖(对复杂代码)
- 确保程序中每个判断的每个结果都至少满足一次
- 路径覆盖(对关键、复杂的代码)
- 确保程序中每条独立的执行路径都至少执行一次
高级算法复习
复习间隙有感
2026年6月4日,距离大二下的期末考试还有大约三周。这次考试对我来说意义比较重大——如果能拿到非常好的分数,我或许会重新考虑是否读研。虽然我一直倾向于本科毕业后直接就业,但总想试一试,觉得读研究生也是一个不错的选择。
有限理解协议
Finite Understanding Protocol(FUP)
作者:Hanerson
摘要
在学习算法、数学等封闭性问题时,“先完全理解,再进行实现”往往是一种高效且可靠的学习路径然而,当学习对象转变为大型工程、复杂框架或持续演化的软件系统(如 React、Spring、libGDX 等)时,这一策略常常导致严重的认知消耗、学习停滞,甚至行动能力下降
有限理解协议(Finite Understanding Protocol,简称 FUP)正是为解决这一结构性矛盾而提出的一套个人学习方法论 FUP 并非降低学习深度,而是通过阶段化管理理解程度,将“深度理解”从入口阶段延迟至回看阶段,从而在有限时间窗口内实现可持续、高效率的学习与实践