# 5.7 磁盘管理 ## 一、磁盘的结构 ### 1.1 磁盘的物理结构 **磁盘组成**: - **盘片**:圆形磁盘,两面可存储数据 - **磁道**:盘片上的同心圆 - **扇区**:磁道上的扇形区域,最小存储单位 - **柱面**:不同盘片上相同位置的磁道组成的圆柱面 **磁盘地址**: - **CHS地址**:柱面号(Cylinder)、磁头号(Head)、扇区号(Sector) - **LBA地址**:逻辑块地址,线性编号 ### 1.2 磁盘性能参数 **寻道时间**: - 磁头移动到目标磁道的时间 - 通常:5-10ms **旋转延迟**: - 目标扇区旋转到磁头下方的时间 - 平均:半圈时间(4-8ms) **传输时间**: - 读写数据的时间 - 与数据量和磁盘转速有关 **访问时间**: $$访问时间 = 寻道时间 + 旋转延迟 + 传输时间$$ --- ## 二、磁盘调度算法 ### 2.1 先来先服务(FCFS) **思想**:按请求到达的顺序服务。 **优点**: - 公平 - 实现简单 **缺点**: - 寻道时间长 - 磁头移动大 ### 2.2 最短寻道时间优先(SSTF) **思想**:选择与当前磁头位置最近的请求。 **优点**: - 寻道时间短 - 平均等待时间少 **缺点**: - 可能产生饥饿 - 远处请求长期得不到服务 ### 2.3 扫描算法(SCAN,电梯算法) **思想**: - 磁头从一端向另一端移动 - 途中服务遇到的请求 - 到达端点后反向移动 **优点**: - 避免饥饿 - 寻道时间较短 **缺点**: - 两端请求等待时间长 ### 2.4 循环扫描算法(C-SCAN) **思想**: - 磁头从一端向另一端移动 - 途中服务遇到的请求 - 到达端点后快速返回起点 - 只单向服务 **优点**: - 等待时间更均匀 - 避免两端请求等待时间过长 **缺点**: - 返回时不服务,浪费 ### 2.5 LOOK算法 **思想**: - SCAN算法的改进 - 只移动到最远请求处,不移动到端点 **优点**: - 减少不必要的移动 ### 2.6 C-LOOK算法 **思想**: - C-SCAN算法的改进 - 只移动到最远请求处,不移动到端点 - 快速返回到最小请求处 **优点**: - 减少不必要的移动 - 等待时间均匀 ### 2.7 算法比较 | 算法 | 寻道时间 | 饥饿 | 实现复杂度 | |-----|---------|------|-----------| | FCFS | 长 | 无 | 简单 | | SSTF | 短 | 有 | 简单 | | SCAN | 中等 | 无 | 中等 | | C-SCAN | 中等 | 无 | 中等 | | LOOK | 较短 | 无 | 中等 | | C-LOOK | 较短 | 无 | 中等 | --- ## 三、磁盘管理 ### 3.1 磁盘初始化 **物理格式化**: - 划分扇区 - 设置头部、尾部、校验码 **逻辑格式化**: - 创建文件系统数据结构 - 超级块、inode表、目录等 ### 3.2 坏块管理 **坏块**: - 不能正常读写的扇区 **处理方法**: - **扇区备用**:预留一些扇区替换坏块 - **坏块链表**:记录坏块位置,不再使用 ### 3.3 磁盘阵列(RAID) **RAID 0(条带化)**: - 数据分散存储在多个磁盘 - 提高读写速度 - 无冗余,可靠性低 **RAID 1(镜像)**: - 数据完全复制到两个磁盘 - 提高可靠性 - 容量减半 **RAID 5(分布式奇偶校验)**: - 数据和校验信息分布在多个磁盘 - 允许一个磁盘故障 - 读写性能较好 **RAID 6(双分布式奇偶校验)**: - 两个独立的奇偶校验 - 允许两个磁盘故障 **RAID 10(镜像+条带化)**: - 先做镜像,再做条带化 - 性能和可靠性都好 --- ## 四、考研重点 1. **磁盘的结构**:盘片、磁道、扇区、柱面 2. **磁盘性能参数**:寻道时间、旋转延迟、传输时间 3. **磁盘调度算法**: - FCFS、SSTF - SCAN、C-SCAN - LOOK、C-LOOK - 各种算法的优缺点 4. **磁盘管理**:物理格式化、逻辑格式化、坏块管理 5. **RAID**:RAID 0、1、5、6、10的特点 --- *第五章完,进入第六章:I/O管理*