Skip to content

Mass-Storage Structure

Disk scheduling

磁盘调度算法(Disk Scheduling Algorithms)是操作系统用于优化磁盘访问顺序的机制,旨在减少磁头移动(寻道时间),提高磁盘I/O效率。以下是常见算法及其详解:

1. 先来先服务(FIFO/First-Come, First-Served)

  • 原理:按请求到达的顺序处理。
  • 优点:简单、公平。
  • 缺点:效率低(可能产生大量不必要的磁头移动)。
  • 示例
    请求序列:[35, 10, 40, 5, 20, 45, 15, 65],磁头初始位置:50
    处理顺序:50 → 35 → 10 → 40 → 5 → 20 → 45 → 15 → 65
    总寻道距离:15 + 25 + 30 + 35 + 15 + 25 + 30 + 50 = 225(单位:磁道)

2. 最短寻道时间优先(SSTF/Shortest Seek Time First)

  • 原理:优先处理离当前磁头位置最近的请求。
  • 优点:平均寻道时间较短。
  • 缺点:可能导致“饥饿”(远距离请求长期不被处理)。
  • 示例
    请求序列同上,初始位置:50
    处理顺序:50 → 45 → 40 → 35 → 20 → 15 → 10 → 5 → 65
    总寻道距离:5 + 5 + 5 + 15 + 5 + 5 + 5 + 60 = 105

3. 扫描算法(SCAN/Elevator Algorithm)

  • 原理:磁头从一端移动到另一端(如从左到右),处理路径上的请求;到达端点后反向移动。
  • 优点:公平,无饥饿。
  • 缺点:端点附近的请求等待时间较长。
  • 示例
    初始位置:50,移动方向:向右(假设磁盘范围 0-100)
    处理顺序:50 → 65(端点)→ 45 → 40 → 35 → 20 → 15 → 10 → 5
    总寻道距离:15 + 20 + 5 + 5 + 15 + 5 + 5 + 5 = 75

SCAN algorithm

4. 循环扫描算法(C-SCAN/Circular SCAN)

  • 原理:单向扫描(如仅向右),到达端点后立即返回起点重新开始。
  • 优点:更均匀的等待时间。
  • 缺点:返回起点时不做处理,可能浪费时间。
  • 示例
    初始位置:50,方向:向右
    处理顺序:50 → 65 → 5 → 10 → 15 → 20 → 35 → 40 → 45
    总寻道距离:15 + 60(从65到5)+ 5 + 5 + 5 + 15 + 5 + 5 = 115

CSCAN algorithm

5. 观察算法(LOOK)

  • 原理:改进版SCAN,仅移动到最远请求点后立即返回,无需到达磁盘端点。
  • 优点:减少不必要的移动。
  • 示例
    初始位置:50,方向:向右
    处理顺序:50 → 65(最远请求)→ 45 → 40 → 35 → 20 → 15 → 10 → 5
    总寻道距离:15 + 20 + 5 + 5 + 15 + 5 + 5 + 5 = 75

6. 循环观察算法(C-LOOK)

  • 原理:改进版C-SCAN,仅移动到最远请求点后返回最近的另一方向请求点。
  • 示例
    初始位置:50,方向:向右
    处理顺序:50 → 65 → 5 → 10 → 15 → 20 → 35 → 40 → 45
    总寻道距离:15 + 60(从65到5)+ 5 + 5 + 5 + 15 + 5 + 5 = 115

CLOOK algorithm

对比总结

算法 平均寻道时间 公平性 饥饿问题 适用场景
FIFO 公平 简单场景
SSTF 不公平 中等负载
SCAN 中等 公平 高负载
C-SCAN 中等 公平 均匀服务时间要求
LOOK 公平 现代系统常用
C-LOOK 公平 高吞吐量需求

例题:

disk scheduling

冗余阵列(RAID)

RAID(Redundant Array of Independent Disks) 是一种通过组合多个物理磁盘来提升存储性能、可靠性和容错能力的技术。 以下是常见 RAID 级别及其核心原理、优缺点和应用场景的详解:

RAID 核心概念

  1. 条带化(Striping)
    将数据分割成块,分散存储在多个磁盘上,提升读写速度(如 RAID 0)。
  2. 镜像(Mirroring)
    数据同时写入多个磁盘,提供冗余(如 RAID 1)。
  3. 奇偶校验(Parity)
    通过校验数据恢复丢失信息,实现容错(如 RAID 5、6)。

常见 RAID 级别对比

RAID 级别 最小磁盘数 原理 优点 缺点 适用场景
RAID 0 2 数据条带化 读写速度最快 无冗余,可靠性低 高性能需求,临时数据处理
RAID 1 2 数据镜像 高可靠性,快速恢复 存储利用率仅50% 关键数据备份(如系统盘)
RAID 5 3 条带化 + 分布式奇偶校验 平衡性能与冗余,存储利用率高 单磁盘故障恢复慢 中小型数据库、文件服务器
RAID 6 4 条带化 + 双重奇偶校验 允许两磁盘同时故障 写入速度较慢,成本高 大容量高可靠性存储(如医疗数据)
RAID 10 4 RAID 1 + RAID 0(先镜像再条带) 高性能 + 高可靠性 存储利用率仅50% 高并发事务(如金融数据库)

详细解析

1. RAID 0(条带化)

  • 原理:数据分割为块,交替写入多个磁盘。
  • 示例
    写入文件时,文件分块存储到 Disk1 和 Disk2。
  • 缺点:任一磁盘故障将导致全部数据丢失。
  • 场景:视频编辑、临时缓存。

2. RAID 1(镜像)

  • 原理:数据同时写入两个磁盘,互为备份。
  • 示例
    Disk1 和 Disk2 存储完全相同的数据。
  • 场景:关键系统盘、小型服务器。

3. RAID 5(分布式奇偶校验)

  • 原理:数据与奇偶校验信息分散存储在所有磁盘。
  • 奇偶校验块(Parity)用于恢复数据。
  • 示例
    3 磁盘 RAID 5:数据块 D1、D2 和奇偶校验 P 分布在 Disk1、Disk2、Disk3。
    若 Disk1 故障,可通过 D2 和 P 恢复 D1。
  • 场景:企业文件共享、中型数据库。

4. RAID 6(双重奇偶校验)

  • 原理:使用两组独立的奇偶校验,允许两磁盘故障。
  • 示例
    4 磁盘 RAID 6:数据块 D1、D2 和奇偶校验 P、Q 分布在 Disk1-Disk4。
  • 场景:高可靠性需求的长期存储。

5. RAID 10(镜像+条带化)

  • 原理:先镜像(RAID 1),再条带化(RAID 0)。
  • 每组镜像对构成一个逻辑条带。
  • 示例
    4 磁盘 RAID 10:Disk1 和 Disk2 镜像,Disk3 和 Disk4 镜像,数据条带化写入两组镜像。
  • 场景:高并发、高可靠性的核心数据库。

Comments