# 6.6 磁盘存储器管理 ## 一、磁盘的性能参数 ### 1.1 寻道时间 **定义**:磁头移动到目标磁道所需的时间。 **计算**: $$T_s = m × n + s$$ 其中: - m:每移动一个磁道的时间 - n:移动的磁道数 - s:启动时间 ### 1.2 旋转延迟 **定义**:目标扇区旋转到磁头下方所需的时间。 **平均旋转延迟**: $$T_r = \frac{1}{2r}$$ 其中: - r:磁盘转速(转/秒) **例子**: - 磁盘转速:7200 RPM(转/分钟)= 120转/秒 - 平均旋转延迟:1/(2×120) = 4.17ms ### 1.3 传输时间 **定义**:读写数据所需的时间。 **计算**: $$T_t = \frac{b}{rN}$$ 其中: - b:传输的字节数 - r:磁盘转速(转/秒) - N:每磁道的字节数 ### 1.4 总访问时间 $$T_a = T_s + T_r + T_t$$ **注意**: - 寻道时间和旋转延迟占主导 - 传输时间相对较小 --- ## 二、磁盘调度算法 ### 2.1 先来先服务(FCFS) **思想**:按请求到达的顺序服务。 **优点**: - 公平 - 实现简单 **缺点**: - 寻道时间长 - 磁头移动大 ### 2.2 最短寻道时间优先(SSTF) **思想**:选择与当前磁头位置最近的请求。 **优点**: - 寻道时间短 - 平均等待时间少 **缺点**: - 可能产生饥饿 - 远处请求长期得不到服务 ### 2.3 扫描算法(SCAN,电梯算法) **思想**: - 磁头从一端向另一端移动 - 途中服务遇到的请求 - 到达端点后反向移动 **优点**: - 避免饥饿 - 寻道时间较短 **缺点**: - 两端请求等待时间长 ### 2.4 循环扫描算法(C-SCAN) **思想**: - 磁头从一端向另一端移动 - 途中服务遇到的请求 - 到达端点后快速返回起点 - 只单向服务 **优点**: - 等待时间更均匀 - 避免两端请求等待时间过长 **缺点**: - 返回时不服务,浪费 ### 2.5 LOOK算法 **思想**: - SCAN算法的改进 - 只移动到最远请求处,不移动到端点 **优点**: - 减少不必要的移动 ### 2.6 C-LOOK算法 **思想**: - C-SCAN算法的改进 - 只移动到最远请求处,不移动到端点 - 快速返回到最小请求处 **优点**: - 减少不必要的移动 - 等待时间均匀 --- ## 三、磁盘管理 ### 3.1 磁盘初始化 **低级格式化(物理格式化)**: - 划分扇区 - 设置扇区头部、尾部、校验码 - 标记坏扇区 **分区**: - 将磁盘划分为多个逻辑分区 - 每个分区可以独立使用 **高级格式化(逻辑格式化)**: - 创建文件系统数据结构 - 超级块、inode表、目录等 ### 3.2 坏块管理 **坏块**: - 不能正常读写的扇区 **处理方法**: - **扇区备用**:预留一些扇区替换坏块 - **坏块链表**:记录坏块位置,不再使用 ### 3.3 磁盘碎片整理 **碎片**: - 文件分散存储在磁盘的不连续位置 **影响**: - 增加寻道时间 - 降低磁盘性能 **整理**: - 移动文件,使文件连续存储 - 减少碎片 --- ## 四、提高磁盘I/O速度的方法 ### 4.1 提前读 **思想**: - 预测接下来要访问的数据 - 提前读入内存 **依据**: - 空间局部性 ### 4.2 延迟写 **思想**: - 数据先写入缓冲区 - 延迟写入磁盘 **优点**: - 减少磁盘写次数 - 可能避免写入(数据被修改多次) ### 4.3 优化物理块分布 **思想**: - 将相关数据存储在相邻位置 - 减少寻道时间 ### 4.4 虚拟盘 **思想**: - 使用内存模拟磁盘 - 提高访问速度 **缺点**: - 易失性 - 占用内存 --- ## 五、RAID技术 ### 5.1 RAID 0(条带化) **特点**: - 数据分散存储在多个磁盘 - 提高读写速度 - 无冗余,可靠性低 ### 5.2 RAID 1(镜像) **特点**: - 数据完全复制到两个磁盘 - 提高可靠性 - 容量减半 ### 5.3 RAID 5(分布式奇偶校验) **特点**: - 数据和校验信息分布在多个磁盘 - 允许一个磁盘故障 - 读写性能较好 ### 5.4 RAID 6(双分布式奇偶校验) **特点**: - 两个独立的奇偶校验 - 允许两个磁盘故障 ### 5.5 RAID 10(镜像+条带化) **特点**: - 先做镜像,再做条带化 - 性能和可靠性都好 --- ## 六、考研重点 1. **磁盘性能参数**:寻道时间、旋转延迟、传输时间 2. **磁盘调度算法**:FCFS、SSTF、SCAN、C-SCAN、LOOK、C-LOOK 3. **磁盘管理**:低级格式化、分区、高级格式化、坏块管理 4. **提高磁盘I/O速度的方法**:提前读、延迟写、优化分布、虚拟盘 5. **RAID技术**:RAID 0、1、5、6、10的特点 --- *下一节:6.7 设备驱动程序*