news 2026/4/18 10:46:43

磁盘物理结构和工作原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
磁盘物理结构和工作原理

1.机械磁盘

1.1 磁盘物理结构

  • 磁盘由一个或多个盘片(Platter)组成,每个盘片有上下两个盘面(Surface)
  • 每个盘面被划分成许多同心圆轨道,称为磁道(Track)
  • 多个盘面上相同半径的磁道组成一个柱面(Cylinder)
  • 每个磁道又被划分成多个扇区(Sector),是磁盘读写的最小物理单位(通常为 512B 或 4KB)。
  • 柱面(Cylinder)所有盘片上相同编号的磁道构成一个柱面。



磁盘有正反两个盘面,一个磁道,每个每个盘面有多个同心圆,每个同心圆是同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。


1.2. 磁头与读写

  • 每个盘面对应一个磁头(Head),所有磁头固定在同一个磁头臂(Actuator Arm)上同步移动。
  • 磁头臂的移动称为寻道(Seeking),使磁头定位到目标磁道。
  • 磁盘在电机的带动下高速旋转(例如 7200 RPM),使扇区经过磁头下方。


1.3. 磁盘访问时间

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。公式为:存取时间=寻道时间+等待时间
注意:寻道时间是指磁头移动到磁道所需的时间;
等待时间为等待读写的扇区转到磁头下方所用的时间。

公式:
[
\text{磁盘访问时间} = \text{寻道时间} + \text{旋转延迟} + \text{传输时间}
]
有时也把旋转延迟 + 传输时间合称为等待时间

更常见的分解如下:

① 寻道时间(Seek Time)

  • 磁头从当前磁道移动到目标磁道的时间。
  • 取决于磁头臂的移动速度与移动距离(跨越的磁道数)。
  • 平均寻道时间为统计值(约几毫秒,机械硬盘通常在 3~15 ms)。
  • 扇区按顺序旋转

② 旋转延迟(Rotational Latency)

  • 磁头到达目标磁道后,等待目标扇区旋转到磁头正下方的时间。
  • 平均旋转延迟 = 磁盘旋转半圈所需的时间。
    例如:
    [
    \text{平均旋转延迟} = \frac{1}{2} \times \frac{60}{\text{RPM}} \ \text{秒}
    ]
    7200 RPM 时,平均旋转延迟 ≈ ( \frac{1}{2} \times \frac{60}{7200} = 4.17 \ \text{ms} )。

RPM = Revolutions Per Minute(转/分钟)

7200 RPM 表示 每分钟 7200 转

所以转速是 7200 转 / 60 秒

[
T_{\text{转一圈}} = \frac{60 \ \text{秒}}{ \text{RPM} }
]
60 秒 是因为 RPM 是 每分钟的转数,我们要得到 每转多少秒,就要用 60 秒 除以 每分钟转数。

类比
想象你在操场上等一位跑步的朋友,他每 60 秒跑完一圈。你随机时间到达操场边:

  • 有时他刚好经过你(等待 0 秒)。
  • 有时他刚离开你(等待近 60 秒)。
  • 平均你需要等他30 秒(半圈时间)。

③ 传输时间(Transfer Time)

  • 从目标扇区开始,数据通过磁头读取并传送到磁盘控制器缓存的时间。
  • 取决于扇区大小、磁盘转速与磁道数据密度。
    [
    \text{传输时间} = \frac{\text{要传输的数据量}}{\text{磁盘数据传输率}}
    ]

示例计算
假设:

  • 平均寻道时间 = 5 ms
  • 磁盘转速 = 7200 RPM → 平均旋转延迟 = 4.17 ms
  • 读取一个扇区(512B),磁盘内部传输速度 150 MB/s → 传输时间 ≈ 3.4 μs(远小于前两者)

总访问时间 ≈ 5 + 4.17 + 0.0034 ≈9.17 ms

可见主要开销是寻道旋转延迟,因此磁盘调度算法(如 SSTF、SCAN)和扇区布局优化很重要。

这是一个很好的问题!平均旋转延迟等于磁盘旋转半圈所需的时间,这其实是一个统计学上的结论。我们来一步步解释:


1.4.磁盘调度算法

之前已经说过,磁盘数据的读取时间分为寻道时间+旋转时间,也即先找到对应
的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需
要重点调度,有如下调度算法:

  • 先来先服务FCFS:根据进程请求访问磁盘的先后顺序进行调度。
  • 最短寻道时间优先SSTF: 请求访问的磁道与当前磁道最近的进程优先调度,使得
  • 每次的寻道时间最短。会产生“饥饿”现象,即远处进程可能永远无法访问。
  • 扫描算法SCAN:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头
    当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都
    是从里向外或者从外向里一直移动完才掉头,与电梯类似。
  • 单向扫描调度算法CSCAN: 与SCAN不同的是,其只做单向移动,即只能从里向
    外或者从外向里。

你总结得非常准确!磁盘调度算法的核心目标是最小化平均寻道时间,从而提升 I/O 性能。下面我将对你提到的几种经典磁盘调度算法进行系统梳理,并补充一些关键细节、优缺点对比以及适用场景,帮助你更深入理解。


磁盘调度的目标

  • 减少平均寻道时间(Seek Time):这是磁盘 I/O 延迟的主要来源。
  • 提高吞吐量:单位时间内完成更多 I/O 请求。
  • 避免“饥饿”(Starvation):确保所有请求最终都能被服务。
  • 公平性与实时性:在某些系统中需兼顾响应及时性。

常见磁盘调度算法详解

1.4.1. 先来先服务(FCFS, First-Come First-Served)

  • 原理:按请求到达的顺序依次处理。
  • 示例:当前磁头在 50 号磁道,请求序列为 [98, 183, 37, 122, 14] → 按此顺序移动。
  • 优点
    • 实现简单,公平(无饥饿)。
  • 缺点
    • 寻道路径可能来回跳跃,效率低。
    • 平均寻道时间长。
  • 适用场景:请求较少或对性能要求不高的系统。

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

  • 原理:每次选择距离当前磁头位置最近的请求。
  • 示例:当前在 50,请求为 [45, 60, 10, 120] → 先服务 45(差5),再60(差15)……
  • 优点
    • 显著降低平均寻道时间,性能优于 FCFS。
  • 缺点
    • 可能导致饥饿:远处的请求若不断有新近请求插入,可能长期得不到服务。
    • 非公平调度。
  • 变种:可结合超时机制缓解饥饿。

⚠️ SSTF 是贪心算法,局部最优 ≠ 全局最优。


1.4.3. 扫描算法(SCAN,又称“电梯算法”)

  • 原理
    • 磁头沿一个方向(如向外)移动,服务路径上所有请求;
    • 到达最外(或最内)磁道后,反向扫描
  • 特点
    • 移动方向固定,直到边界才掉头。
    • 请求按方向分组处理。
  • 优点
    • 避免 SSTF 的饥饿问题(所有请求最终都会被扫到);
    • 寻道效率高,适合负载较重的系统。
  • 缺点
    • 刚刚错过的请求需等待磁头走到尽头再返回,响应延迟可能较大
  • 示例
    • 当前磁头在 50,向外移动,请求 [40, 60, 10, 120]
    • 先服务 60 → 120(到边界),然后掉头服务 40 → 10。

1.4.4. 循环扫描算法(C-SCAN, Circular SCAN)

  • 原理
    • 磁头单向移动(如只从内向外);
    • 到达最外磁道后,立即跳回最内磁道(不服务返回路径上的请求),继续向外扫描。
  • 效果:形成一个“环形”服务队列。
  • 优点
    • 所有请求的等待时间更均匀
    • 更适合随机分布的请求
  • 缺点
    • 磁头跳回起点时存在空转(浪费时间),但现代硬盘可通过预测优化。
  • 与 SCAN 对比
    • C-SCAN 牺牲少量效率换取更好的公平性和可预测性

其他进阶调度算法(扩展了解)

1.4.5. LOOK 算法(SCAN 的优化版)

  • 不必移动到物理边界才掉头,而是在最远请求处就转向。
  • 减少无效移动,提升效率。
  • 同理有C-LOOK(C-SCAN 的优化版)。

1.4.6. FSCAN(分队列 SCAN)

  • 将请求分为两个队列:
    • 一个用于当前扫描周期;
    • 新请求进入另一个队列,下一轮处理。
  • 防止新请求“插队”导致原队列延迟过大。

算法对比总结

算法平均寻道时间是否公平是否饥饿实现复杂度适用场景
FCFS简单系统、低负载
SSTF轻负载、性能优先
SCAN中~低通用服务器、多任务系统
C-SCAN✅✅随机访问、强调公平性
LOOK低于 SCAN中高现代操作系统常用

✅ 表示“是”或“好”,❌ 表示“否”或“差”。


实际应用

  • Linux 内核早期使用CFQ(Completely Fair Queuing),后来默认采用DeadlineNOOP/MQ-DEADLINE(针对 SSD 优化)。
  • Windows使用基于SCAN/LOOK的变种。
  • SSD 不需要磁盘调度(无机械部件),因此现代系统会自动禁用复杂调度算法。

2.固态硬盘

固态硬盘(SSD)

SSD无机械运动部件,依靠闪存芯片存储数据,结构更简洁,核心由核心电子组件构成,无逻辑存储区域的划分,具体如下:

  1. 核心电子组件
    组件作用
    闪存芯片存储数据的核心载体,通常采用NAND闪存,由大量存储单元组成,通过浮栅晶体管的电荷状态存储0/1信号,常见多芯片并联提升容量和读写速度。
    主控芯片相当于SSD的“大脑”,负责管理闪存芯片,包括数据的读写分配、磨损均衡(避免部分芯片过度使用)、错误校验等,直接影响SSD的读写速度和稳定性。
    缓存芯片可选组件,多为DRAM芯片,用于临时缓存频繁读写的数据,减少对闪存芯片的直接访问,提升读写响应速度,部分入门级SSD会省略缓存以降低成本。
    接口电路负责与主板接口(如SATA、M.2)适配,实现SSD与CPU、内存的数据传输。
  2. SSD结构示意图
    ┌─────────────────────────────────────┐ │ 接口电路(SATA/M.2) │ ← 连接主板 ├─────────────────────────────────────┤ │ 主控芯片 │ ← 核心控制单元 ├─────────────┬─────────────┬─────────┤ │ 缓存芯片 │ 闪存芯片1 │ 闪存芯片2│ ├─────────────┼─────────────┼─────────┤ │ │ 闪存芯片3 │ 闪存芯片4│ │ └─────────────┴─────────┘ └─────────────────────────────────────┘

补充说明

HDD的容量可通过公式计算:容量=磁头数×柱面数×每磁道扇区数×扇区大小;而SSD容量则由闪存芯片的单颗容量和芯片数量决定,其结构无机械磨损,读写速度通常远快于HDD,但闪存芯片有写入寿命限制。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 1:59:55

chmod效率指南:-r递归操作节省你90%时间

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个chmod效率对比工具,功能包括:1) 自动统计手动修改多层目录权限所需时间 2) 测量使用chmod -R的耗时 3) 生成效率对比图表 4) 提供批量权限修改建议 …

作者头像 李华
网站建设 2026/4/18 3:53:33

Pikafish象棋AI:让你的棋局分析从此告别“差一点“的遗憾

为什么你的复盘总是停留在"差点就赢了"的懊恼中?为什么对手的关键妙手你总是事后才发现?这些困扰无数棋手的痛点,现在有了终极解决方案——Pikafish象棋AI引擎。 【免费下载链接】Pikafish official-pikafish/Pikafish: Pikafish 是…

作者头像 李华
网站建设 2026/4/18 3:51:16

macOS窗口切换终极解决方案:alt-tab-macos完整使用指南

macOS窗口切换终极解决方案:alt-tab-macos完整使用指南 【免费下载链接】alt-tab-macos Windows alt-tab on macOS 项目地址: https://gitcode.com/gh_mirrors/al/alt-tab-macos 如果你每天需要在数十个窗口间频繁切换,一定深有体会——macOS原生…

作者头像 李华
网站建设 2026/4/17 23:15:13

2025年PC软件多系统兼容性测试覆盖策略与实践对比

核心观点摘要 1. 2025年PC软件多系统兼容性测试面临操作系统内核差异、图形渲染机制不同、文件系统异构及第三方库碎片化等核心挑战,需针对性设计覆盖策略。 2. 主流解决方案包括虚拟机环境搭建、云真机平台测试、自动化工具链部署及分层测试策略,各…

作者头像 李华
网站建设 2026/4/18 3:49:16

FlyFish:企业级数据可视化大屏快速搭建实战指南

FlyFish:企业级数据可视化大屏快速搭建实战指南 【免费下载链接】FlyFish FlyFish is a data visualization coding platform. We can create a data model quickly in a simple way, and quickly generate a set of data visualization solutions by dragging. 项…

作者头像 李华