首页/计算机组成原理/存储器/磁盘存储器 🔗 在 Obsidian 中打开
计算机组成原理 · 存储器

磁盘存储器

重要度 ⭐⭐⭐⭐⭐存储器层次结构存储器磁记录寻址
速查
磁盘存取时间 = 寻道时间 + 旋转延迟 + 数据传输时间。平均寻道 ≈ 最大寻道时间 / 3;平均旋转延迟 = 转半圈的时间 = $30 / \text{RPM}$ 秒。记录密度分位密度、道密度、面密度。

速查

项目
记录密度道密度、位密度、面密度
存取时间寻道时间 + 旋转延迟 + 数据传输时间
平均寻道≈ 最大寻道时间 / 3

1. 基本结构

  • 磁盘片(Platter):表面涂有磁性材料的圆盘
  • 磁头(Head):读写数据的电磁转换装置
  • 磁道(Track):盘片上同心圆的数据存储区域
  • 扇区(Sector):磁道上等分的数据块,通常 512B 或 4KB
  • 柱面(Cylinder):所有盘片上同一半径的磁道集合
  • 主轴电机(Spindle Motor):驱动盘片旋转

2. 关键性能参数

参数含义典型值
位密度每英寸磁道上的比特数
道密度每英寸的磁道数
面密度位密度 $\times$ 道密度
存储容量磁头数 $\times$ 柱面数 $\times$ 每道扇区数 $\times$ 每扇区字节数
转速 RPM每分钟转数5400 / 7200 / 10000 / 15000
平均寻道时间磁头移到目标磁道的时间3–12 ms
平均旋转延迟等待目标扇区转到磁头下转半圈时间
数据传输率单位时间传输的数据量

3. 存取时间计算

$$T_a = T_{seek} + T_{rotational} + T_{transfer} + T_{other}$$

平均寻道时间

$$T_{seek} = \frac{最大寻道时间 + 最小寻道时间}{3}$$

(平均寻道时间约为最大寻道时间的 1/3)

平均旋转延迟

$$T_{rotational} = \frac{1}{2} \times \frac{60}{RPM}\text{(秒)}$$

数据传输时间

$$T_{transfer} = \frac{每扇区字节数}{转速 \times 每道字节数}$$

4. 手算示例

例 1 容量:4 个盘片(8 个记录面),每面 500 磁道,每道 100 扇区,每扇区 512B → $8 \times 500 \times 100 \times 512 = 200\text{MB}$。

例 2 平均存取时间:7200 RPM,平均寻道 8ms,每道 16 扇区 × 512B = 8KB。

平均旋转延迟 = (60/7200)/2 = 4.17ms
数据传输率   = (7200/60) × 8KB = 960KB/s
读 1 扇区传输时间 = 512B / 960KB/s = 0.52ms
总存取时间 = 8 + 4.17 + 0.52 = 12.69ms

例 3 地址位数:4 面(2 位)、200 道(8 位)、50 扇区(6 位)→ 共 16 位。

5. 磁盘调度算法

  • FCFS(先来先服务):按到达顺序,简单但寻道时间长
  • SSTF(最短寻道优先):选离当前磁头最近的请求,可能饥饿
  • SCAN(电梯):单方向移动,到端点反向,公平高效
  • C-SCAN(循环扫描):只单向服务,到端点快速返回起点
  • LOOK / C-LOOK:不走到端点,到该方向最远请求即反向

6. 手算示例:磁盘调度

磁头当前在 53 号磁道,请求队列:98, 183, 37, 122, 14, 124, 65, 67。

FCFS : 53→98→183→37→122→14→124→65→67   总移动 = 640 道
SSTF : 53→65→67→37→14→98→122→124→183  总移动 = 236 道
SCAN : 53→65→67→98→122→124→183→37→14  总移动 = 299 道
C-SCAN:53→65→67→98→122→124→183→(回0)→14→37  总移动 = 350 道

7. 固态硬盘(SSD)对比

特性HDDSSD
存储介质磁性碟片NAND Flash
随机读取慢(寻道 + 旋转)快(无机械)
顺序读取较快很快
寿命机械磨损写入次数有限
价格便宜较贵
抗震

记忆卡片

平均旋转延迟怎么算?
转半圈时间 = $(60/\text{RPM})/2 = 30/\text{RPM}$ 秒。
平均寻道是最大寻道的多少?
约 1/3(不是 1/2)。
SCAN 与 SSTF 谁更公平?
SCAN 更公平;SSTF 可能让远请求饥饿。
磁盘地址由哪些部分组成?
柱面号(磁道号)+ 磁头号(面号)+ 扇区号。
存取时间的三大组成?
寻道时间 + 旋转延迟 + 传输时间。
C-SCAN 与 SCAN 区别?
C-SCAN 只单向服务,到端点回起点而非反向。

交互动画 · 磁盘调度磁头移动

0 50 100 150 200 磁道号(0 – 200)
选择一种调度算法,查看磁头移动轨迹与总寻道道数
磁头起点:53 | 请求:98,183,37,122,14,124,65,67

相关知识点

raid-technology disk-scheduling-algorithm

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。