操作系统学习(十一)——磁盘
一、磁盘
在操作系统中,磁盘(Disk) 是最主要的辅助存储设备,主要用于持久化存储文件和数据。
磁盘的管理对文件系统的效率、系统性能与数据安全有直接影响。
磁盘访问速度通常由以下三部分组成:
时间类型 | 说明 |
---|---|
寻道时间(Seek Time) | 移动磁头到目标柱面所需的时间,是最耗时的一项 |
旋转延迟(Rotational Latency) | 等待目标扇区转到磁头下方的时间(平均为半圈) |
传输时间(Transfer Time) | 将数据从磁盘传输到内存所需的时间 |
示例:假设磁盘每分钟转7200圈,1圈=8.3ms,平均旋转延迟≈4.15ms
二、磁盘的结构
1. 物理结构
磁盘通常指的是硬盘(HDD),它由多个刚性盘片(Platter)组成,每个盘片都涂有磁性材料,两面都可以用于存储数据。
- 盘面(Surface):盘片的每一面。
- 磁道(Track):每个盘面上按同心圆划分出的圆环。
- 柱面(Cylinder):所有盘面在相同位置的磁道集合。
- 扇区(Sector):每条磁道被划分为若干扇区,是最小读写单位(如512B、4KB)。
- 磁头(Head):每个盘面配有磁头,用于读写数据。
- 磁臂(Arm):用于移动磁头到不同的柱面。
2. 磁盘的逻辑结构
操作系统不直接使用物理结构,而是将磁盘划分为逻辑块进行管理:
- 块(Block):文件系统中的基本读写单位(通常为4KB)。
- 操作系统通过逻辑块地址(LBA)访问磁盘,隐藏了磁道/扇区的具体细节。
三、磁盘调度算法
磁盘调度算法是操作系统中负责优化磁盘I/O访问顺序的策略,其目标是减少磁头移动距离、提高系统吞吐量,以及改善响应时间。
由于磁盘访问中,寻道时间(磁头移动)最耗时,因此调度算法通常围绕如何优化磁头移动顺序设计。
调度算法:
算法名称 | 全称 | 主要思想 |
---|---|---|
FCFS | First Come First Serve | 按请求到达顺序处理 |
SSTF | Shortest Seek Time First | 优先处理离当前磁头最近的请求 |
SCAN | 电梯算法 | 磁头向一个方向移动,直到末端再反向 |
C-SCAN | Circular SCAN | 只向一个方向扫描,回到起点后重扫 |
LOOK | 改进的 SCAN | 只扫描到最远请求处,再折返 |
C-LOOK | 改进的 C-SCAN | 只扫描到最远请求处,循环到最小请求 |
1. FCFS
(先来先服务)
原理:按照请求到达的先后顺序访问磁道,不考虑当前位置和最优路径。
- 简单,公平;
- 但可能导致大量磁头移动,效率低。
示例:磁头当前位置在 50,队列为:95, 180, 34, 119, 11, 123, 62, 64;
磁道移动距离:50→95→180→34→119→11→123→62→64(移动总距离较大)
2. SSTF
(最短寻道优先)
原理:每次选择距离当前磁头位置最近的请求。
- 寻道时间最短,效率高;
- 可能造成饥饿(远处请求长时间等待)。
当前磁头在 50,最近的是 62 → 64 → 34…
3. SCAN
(电梯算法)
原理:磁头朝一个方向移动,处理沿途请求,遇到磁道边界后反向继续。
- 类似电梯上下运行,公平性更好;
- 减少饥饿,适合高负载场景。
磁头从50向右移动,顺序访问大于50的请求,之后向左折返处理剩余请求。
4. C-SCAN
(循环 SCAN
)
原理:磁头只向一个方向移动,处理完最右侧请求后直接回到最左侧重新开始。
- 响应时间更均匀,避免边缘请求等待太久;
- 不处理反向请求,回程是空移动。
5. LOOK
原理:与 SCAN 类似,但只扫描实际存在的请求区间,不盲目到磁道边界。
- 更高效率;
- 磁头“看到”最远请求就回头。
6. C-LOOK
原理:只向一个方向移动,处理到最远请求后立即跳转回起点。
- 避免空磁道扫描;
- 提升系统响应一致性。
磁盘调度算法对比:
例:磁头当前在 50,请求队列:[95, 180, 34, 119, 11, 123, 62, 64]FCFS :50→95→180→34→119→11→123→62→64
SSTF :50→62→64→34→11→95→119→123→180
SCAN :50→62→64→95→119→123→180→回头→34→11
C-SCAN :50→62→64→95→119→123→180→跳转→11→34
LOOK :50→62→64→95→119→123→180→回头→34→11(不达磁道尽头)
C-LOOK :50→62→64→95→119→123→180→跳转→11→34(不达磁道尽头)
五、磁盘的分区与格式化
1. 分区(Partitioning)
- 磁盘可以被划分为多个逻辑分区(C盘、D盘等),每个分区可以使用不同的文件系统。
- 分区信息存储在 主引导记录(MBR) 或 GUID 分区表(GPT)。
2. 格式化(Formatting)
-
格式化是将分区初始化为某种文件系统的过程,包括:
- 写入文件系统结构(如FAT表、inode表等);
- 建立根目录;
- 初始化空闲空间管理。
六、磁盘的管理技术
1. 缓存(Cache)
- 磁盘访问速度慢,操作系统使用页缓存或缓冲区提升性能。
2. I/O 调度(I/O Scheduling)
- 结合磁盘调度和进程管理,减少I/O等待时间。
3. 预读(Read Ahead)
- 操作系统预判将要访问的数据并提前加载,提高命中率。
4. 延迟写(Write Back)
- 写操作先缓存,延迟真正写入磁盘,提升性能。
七、磁盘类型对比
类型 | HDD(机械硬盘) | SSD(固态硬盘) |
---|---|---|
构造 | 旋转盘片 | 闪存芯片 |
速度 | 慢(机械移动) | 快(无移动部件) |
寿命 | 较长 | 有擦写次数限制 |
成本 | 便宜 | 昂贵 |
适合场景 | 大容量存储 | 高速访问场景 |
八、RAID技术(冗余磁盘阵列)
RAID(Redundant Array of Independent Disks)将多个磁盘组合成一个逻辑磁盘,提升性能和容错能力。
RAID级别 | 特点 |
---|---|
RAID 0 | 条带化,提高性能,但无冗余 |
RAID 1 | 镜像,数据冗余,提高可靠性 |
RAID 5 | 带奇偶校验,性能与冗余兼顾 |
RAID 10 | RAID 1 + RAID 0 ,兼顾性能和可靠性 |
九、现代磁盘相关技术
- NVMe协议:针对SSD优化的高速存储协议,比传统SATA快得多。
- TRIM指令:SSD特有,通知删除的数据块可重用,提高寿命。
- SMART监控:磁盘自检技术,用于健康状态预警。
- 热插拔与热备份:提高可维护性。