磁盘
5.3 讲的是最重要的一类外存设备。它之所以要单独占一节,是因为磁盘有一个别的设备没有的特点:访问同一块数据的耗时,取决于上一次访问的是哪一块。
这个”有状态”的特性是后面磁盘调度算法存在的全部理由,也是本节访问时间公式要刻画的东西。
机制
磁盘的物理结构

磁盘由若干盘面组成,每个盘面上有一个磁头。每个盘面被划分成一圈圈的磁道,每条磁道又被划分为若干扇区——扇区是磁盘读写的最小单位。
所有盘面上处于同一半径位置的磁道,合起来称为一个柱面。 这个概念之所以重要,是因为所有磁头是固定在同一个磁臂上、一起移动的:磁臂移动到某个位置,所有盘面上的磁头就同时对准了同一个柱面。
磁盘地址为什么是”柱面号 | 盘面号 | 扇区号”
磁盘地址由三部分构成,且顺序是固定的:柱面号在最高位,然后是盘面号,最后是扇区号。
这个顺序不是随意的,它由三种动作的代价差异决定:
换柱面要移动磁臂——这是机械运动,最慢。换盘面只需切换到另一个磁头——这是电子切换,几乎不花时间。换扇区要等盘片转过来——介于两者之间。
把柱面号放在最高位,意味着地址连续的数据块会优先分布在同一柱面的不同盘面上,只有一个柱面用满了才换到下一个柱面。这样读一大片连续数据时,磁臂几乎不用动。
若把盘面号放在最高位,结果会完全相反:每读完一个盘面的一条磁道就要移动磁臂,寻道次数暴增。
磁盘的访问时间
一次磁盘访问的时间由三部分组成:
本节与 5.3.3 的分工说明:教材把”磁盘地址结构的设计”与”减少延迟时间的方法(交替编号、错位命名)” 一并放在 5.3.3 中。本页只保留地址结构(下面那道连续存放的真题需要它), 交替编号与错位命名请看 5.3.3。
边界
影响最大的是寻道时间
疑问点:磁盘读取时间中影响最大的部分
在磁盘中读取数据的下列时间中,影响最大的是( )。 A. 处理时间 B. 延迟时间 C. 传送时间 D. 寻道时间
当设计针对传统机械式硬盘的磁盘调度算法时,主要考虑下列哪种因素对磁盘 I/O 的性能影响最为显著?( ) A. 移动磁头的延迟 B. 单个磁盘块的读/写时间 C. 磁盘平均旋转延迟 D. 磁盘最大旋转延迟
两题答案分别是 D 和 A,本质是同一件事:寻道(移动磁头)最慢。
原因是量级差:寻道是唯一涉及”磁臂机械移动”的动作,要克服惯性、要加速减速、要定位,通常是毫秒量级;旋转延迟只是等盘片转半圈;传输时间只是数据流过磁头,两者都小得多。
第二题问的是”设计调度算法时主要考虑什么”,答案自然也是寻道——这正是 所有磁盘调度算法都在优化磁头移动距离、而没有一个算法去优化旋转延迟的原因。
旋转延迟与什么有关、与什么无关
疑问点:关于旋转延迟的不正确叙述
- 在下列有关旋转延迟的叙述中,不正确的是( )。 A. 旋转延迟的大小与磁盘调度算法无关 B. 旋转延迟的大小取决于磁盘空闲空间的分配程序 C. 旋转延迟的大小与文件的物理结构有关 D. 扇区数据的处理时间对旋转延迟的影响较大
答案 D(选”不正确”的)。
A 对:磁盘调度算法优化的是磁头移动顺序,即寻道,它不改变盘片的转速,也不改变数据落在哪个扇区,因此与旋转延迟无关。
B 对:空闲空间分配程序决定了数据块被放在哪些扇区,而扇区的角位置直接决定了要等多久,因此有关。
C 对:文件的物理结构(连续、链接还是索引)决定了下一块数据在哪里,进而影响读完这一块后要等多久,因此有关。
D 错:扇区数据的处理时间属于 CPU 或控制器处理数据的时间,它不是”盘片转动等待”的组成部分。虽然处理慢了可能错过下一个扇区(这正是 5.3.3 中”交替编号”要解决的问题),但**“影响较大”的说法过强**,且它与旋转延迟不是同一个量。
连续存放时下一块放在哪
疑问点:连续存放的下一块的磁盘地址
- 假设磁盘有 256 个柱面,4 个磁头(盘面),每个磁道有 8 个扇区(编号均从 0 开始)。文件 A 在磁盘上连续存放。若文件 A 中的一个块存放在 5 号柱面、1 号磁头下的 7 号扇区,则文件 A 的下一块应存放在( )。 A. 5 号柱面,2 号磁头下的 7 号扇区 B. 5 号柱面,2 号磁头下的 0 号扇区 C. 6 号柱面,1 号磁头下的 7 号扇区 D. 6 号柱面,1 号磁头下的 0 号扇区
答案 B。 这道题就是”柱面号在最高位”这条设计的直接应用。
扇区编号 0~7,当前在 7 号扇区,已经是本磁道的最后一个。 因此要进位。问题是往哪个方向进位。
按地址结构”柱面号 | 盘面号 | 扇区号”,扇区号进位应该进到盘面号上——即换到同一柱面的下一个磁头(1 → 2),扇区号归 0。得到 5 号柱面、2 号磁头、0 号扇区,即选项 B。
这样做的物理意义正是本节开头讲的那条:换磁头是电子切换,不用移动磁臂;只有当这个柱面上所有 4 个盘面都用完了,才需要移到 6 号柱面。
逐项排除:A 错在扇区号没归零——7 号已是最后一个,不可能还是 7。C 和 D 都错在过早换柱面——5 号柱面上还有 2、3 号磁头没用,没理由现在就去移动磁臂。
随机寻道下的平均访问时间
疑问点:随机寻道方式下读写 b 字节的平均访问时间
- 已知某磁盘的平均转速为
秒/转,平均寻道时间为 秒,每个磁道可以存储的字节数为 ,现向该磁盘读/写 字节的数据。采用随机寻道的方法,每道的所有扇区组成一个簇,其平均访问时间是( )。 A. B. C. D.
答案 A。 这道题的关键是先想清楚”要访问几个磁道”和”访问一个磁道要多久”。
① 要访问几个磁道。 每条磁道存
因此访问一个磁道的时间是
③ 相乘。
对照速查
| 磁盘结构 | 含义 |
|---|---|
| 扇区 | 读写的最小单位 |
| 磁道 | 盘面上的一圈 |
| 柱面 | 所有盘面上同一半径的磁道 |
| 磁头 | 每个盘面一个,全部固定在同一磁臂上一起移动 |
| 磁盘地址 | 顺序 | 理由 |
|---|---|---|
| 柱面号(最高位) | 换柱面要移动磁臂,最慢 | 放最高位使其最少变化 |
| 盘面号 | 换盘面只是电子切换,最快 | 优先在同一柱面内换 |
| 扇区号(最低位) | 换扇区要等盘片转 | — |
| 访问时间 | 公式 | 量级 |
|---|---|---|
| 寻道时间 | 最大(毫秒级机械运动) | |
| 旋转延迟 | 中 | |
| 传输时间 | 小 |
| 旋转延迟 | 有关 / 无关 |
|---|---|
| 磁盘调度算法 | 无关(调度优化的是寻道) |
| 空闲空间分配程序 | 有关(决定数据落在哪个扇区) |
| 文件的物理结构 | 有关(决定下一块在哪) |
考点
- 柱面 = 所有盘面上同一半径的磁道;磁头一起移动
- 磁盘地址是”柱面号 | 盘面号 | 扇区号”,因为换柱面最慢、换盘面最快
- 连续存放时扇区号进位进到盘面号,不是柱面号(真题选项 B)
- 访问时间三部分,寻道时间最大——这是磁盘调度算法的唯一优化目标
- 旋转延迟与磁盘调度算法无关,与空闲空间分配和文件物理结构有关
- 随机寻道题:磁道数
(寻道 + 转一圈)
链接
- 🏠 返回总览:操作系统第 5 章:输入/输出管理总览
- ⬅️ 上一节:5.2.6 I/O 操作举例
- ➡️ 下一节:5.3.2 磁盘的管理
- 🔗 为什么要调度,见 5.3.3 磁盘调度算法
- 📖 名词库:第 5 章名词库