重点#
- 磁盘的组成结构
- 磁盘的术语
- 磁盘的读写操作
- 磁盘的数据存储格式
- 磁盘的性能指标和计算
- RAID 可靠性的提高
1. 组成结构#
磁盘存储器主要由盘片、磁盘驱动器、磁盘控制器三部分组成。
- 磁盘驱动器:驱动磁盘旋转并通过磁头在盘面上执行读/写操作
- 磁盘控制器:磁盘驱动器与主机之间的接口,负责接收并解析来自 CPU 的命令,向磁 盘驱动器发送控制信号,同时监控其运行状态。

如图 7.15 所示,磁盘驱动器主要由多张硬盘片、主轴、主轴电机、移动臂、磁头和控制电 路等部分组成,通过在接口插座上的电缆与磁盘控制器连接。
每个盘片的两个面上各有一个磁头,因此,磁头号就是盘面号。磁头和盘片相对运动形成的圆,构成一个磁道(track)。
磁头位于不同的半径上,则得到不同的磁道。多个盘面上的相同磁道形成一个柱面(cylinder),所以,磁道号就是柱面号。
信息存储在每个盘面的磁道上,每个磁道被分成若干扇区(sector),以扇区为单位进行磁盘读写。在写磁盘时,总是在一个柱面的所有磁道上写完后,再移到下一个柱面的各磁道上写信息。磁道从外向里编址,最外面的为磁道 0。
2. 术语#

磁盘由多个记录面(也称盘面)构成,每一个记录面包含多条磁道,每条磁道被划分成多个扇区,磁盘的读写以扇区作为最小单位。
-
记录面数:记录面数等于磁头数量,记录面也称盘面。
数据的读写需要磁头参与,而一个磁盘有两个面(盘面),可以两面都记录独立的信息,因此一个磁盘可以在上下各自分配一个磁头进行数据的读写,这样一个磁盘就可以使用两个盘面记录数据。
-
柱面数:由”2.组成结构”知,磁头和盘片的相对运动画成的若干个圆把盘面划分成了多个磁道,每一个磁道就对应着一个柱面。因此,柱面数等于磁道数。
-
扇区数:每一个磁道被划分为多个扇区,因此扇区数指的是单条磁道上的扇区数量。扇区是单次读写的最小单位
3. 读写操作#
磁盘地址
磁盘读写是指根据磁盘寄存器里的盘地址,向目标磁道的正确扇区进行读写。
磁盘地址由三部分组成:柱面号、盘面号、扇区号

例如,磁盘有 16 个盘面,每个盘面有 256 个磁道,每个磁道划分为 16 个扇区,则每个扇区 的地址可用 16 位二进制代码表示:其中柱面号占 8 位,盘面号占 4 位,扇区号占 4 位。
考试会考地址计算
磁盘进行读写时,一般有三个步骤:寻道、旋转等待、数据传输(读写)
3.1. 寻道#
磁盘控制器把磁盘地址送到磁盘驱动器的磁盘地址寄存器后,便产生寻道命令,以启动磁头定位伺服系统根据柱面号移动磁头到指定的柱面(磁道),并选择指定的磁头准备进行读写。此操作完成后,发出寻道结束信号给磁盘控制器,并转旋转等待操作。
总结:磁盘控制器依据磁盘地址寄存器里的磁盘地址,发出指令控制对应盘面号的磁头,将磁头移动到正确的磁道上,准备进行读写。(控制磁头移到目标磁道)
3.2. 旋转等待#
盘旋转开始时,首先将扇区计数器清零,以后每来一个扇区标志脉冲,扇区计数器加 1,把计数内容与磁盘地址寄存器中的扇区号进行比较,如果一致,则输出扇区符合信号,说明要读写的信息已经转到磁头下方。
总结:磁头开始沿磁道寻找目标扇区。
3.3. 读写#
扇区符合信号送给磁盘控制器后,磁盘控制器的读写控制电路开始动作。如果是写操作,就将数据送到写电路,写电路根据记录式成相应的写电流脉冲;如果是读操作,则由读出放大电路读出内容送磁盘控制器。
4. 数据存储格式#
还没有看见有考,可跳过
磁盘的数据存储格式有两种:定长记录格式和不定长记录格式

图为温切斯特磁盘的磁道格式示意图,它采用定长记录格式。最早的硬盘由 IBM 公司开发,称为温切斯特盘,简称温盘,它是所有现代硬盘产品的原型。
如图所示,每个磁道由若干扇区(也称扇段)组成,每个扇区记录一个数据块,每个扇区有头空(间隙 1)、ID 域、间隙 2、数据域和尾空(间隙 3)组成。头空占 17 字节,不记录数据,用全 1 表示,磁盘转过该区域的时间是留给磁盘控制器作准备用的;ID 域有同步字节、磁道号、磁头号、扇段号和相应的 CRC 码组成;数据域占 515 字节,有同步字节、数据和相应的 CRC 码组成,其中真正的数据区占 512 字节;尾空是在数据块的 CRC 码后的区域,占 20 字节,也用全 1 表示。
5. 性能指标#
此部分为重点内容,涉及较多计算
磁盘存储器的性能指标包括记录密度、存储容量、数据传输速率和平均存取时间等。

5.1. 记录密度#
记录密度即单位面积上可存储的二进制数据量,通常以道密度、位密度和面密度表示。
-
道密度:沿磁盘半径方向单位长度上的磁道数,也就是磁道的分布密度。
-
位密度:单条磁道单位长度上可记录的二进制位数。
-
面密度:位密度与道密度的乘积,反映单位面积的存储能力。
低密度存储与高密度存储:
低密度存储方式下,所有磁道上的扇区数相同,因此每个磁道上的位数相同,因而内道上的位密度比外道位密度高。
高密度存储方式下,每个磁道上的位密度相同,因此外道上的扇区数比内道上扇区数多,因而整个磁盘的容量比低密度盘高得多。
5.2. 磁盘容量#
存储容量指整个存储器所能存放的二进制信息量,它与磁表面大小和记录密度密切相关。
磁盘容量分为非格式化容量和格式化容量。
磁盘的未格式化容量是指按道密度和位密度计算出来的容量,它包括了可利用的所有磁化单元的总数,未格式化容量(或非格式化容量)比格式化后的实际容量要大。
非格式化的计算公式为:
其中每个磁道的磁化单元数就是没有进行格式化划分前,每一条磁道能够存储的所有比特位数。
但在实际使用时,我们需要按照扇区为单位进行读写,因此实际使用前需要进行格式化。
格式化容量的计算公式为:
看末尾,当进行格式化后,每一条磁道被划分为多个扇区,每一个扇区默认可存储 512 字节的数据,当然具体依照题目给的数据。
因此,非格式化容量 格式化容量。
非格式化容量是磁盘理论可承载数据的最大值,格式化容量是实际可用的容量。二者之间的差距在于:在划分扇区时,需要使用一些数据块作为格式字段(类似 HTTP 协议的首部行),作为对扇区进行编号(扇区号)和数据校验。而这些内存不存储用户的数据,但是占用了磁道的磁化单元(比特数)。而至于是哪些字段占用了内存,可查看”4. 数据存储格式”部分。
实际上,非格式化容量的计算方式有两种,主要区别是磁盘是低密度存储还是高密度存储方式。
低密度存储下,每条磁道的容量相等,所以同一个记录面下,不管是最内侧的磁道,还是最外侧的磁道,所拥有磁化单元是相等的(即使最外侧磁道更长):
相比之下,高密度存储(如现代硬盘的 ZBR 区位记录)会让外圈磁道存更多扇区,每条磁道容量不等,计算时需要分区域求和。(不会考这么细)
5.3. 平均存取时间#
磁盘响应读写请求的过程如下:首先将读写请求在队列中排队,出队列后由磁盘控制器解析请求命令,然后进行寻道、旋转等待和读写数据3个过程。
因此,总响应时间的计算公式为
磁盘上的信息以扇区为单位进读写,上式中后面3个时间之和称为存取时间 。即:
- 寻道时间:磁头移动到指定磁道所需时间;
- 旋转等待时间(旋转延迟):目标扇区旋转到磁头下方所需要的时间;
- 数据传输时间:传输一个扇区的时间。
不过相比于寻道时间和旋转等待时间,数据传输时间非常小,可以忽略不计。因此磁盘的平均存取时间近似于平均寻道时间加上平均等待时间。
寻道时间:由于磁头原来位置与目标磁道的距离远近不一,因此取平均寻道时间为最大寻道时间的一半,即磁头从最外道移到最内道的时间的一半。
旋转等待时间(旋转延迟):取平均等待时间为磁盘旋转半周的时间。
例如:磁盘转速为 转/分,则平均旋转等待时间
5.4. 数据传输速率#
磁盘在单位时间内向主机传送的数据量,单位 。设磁盘转速为 转/秒,单条磁道的容量为 字节,则 最大传输速率为:
5.5. 例题#
例题一#

平均存取时间 = 平均寻道时间 + 控制器延时 + 平均旋转等待时间 + 数据传输时间
由题,平均寻道时间和控制器延时已给出。平均旋转等待时间为磁盘转动一周时间的一半,因此平均等待时间为
即 ,而数据传输时间为:
所以结果为:
例题二#

平均存取时间 = 平均寻道时间 + 控制器延时 + 平均旋转等待时间 + 数据传输时间
由于本题没有给每个扇区具体的数据字节数,因此可知该题是使用平均寻道时间 + 平均旋转延迟来近似平均存取时间。求出平均旋转等待时间即可。
所以平均存取时间为
6. RAID#
RAID 即冗余磁盘阵列,目的是为了改善磁盘的存储性能。
RAID技术的基本思想是,将多个独立的物理磁盘驱动器按某种方式组织成磁盘阵列,以增加容量,在操作系统下这些物理磁盘驱动器被视为单个逻辑驱动器;采用类似于主存中的多模块交叉技术,使数据按小条带或大数据块交叉分布存储在多个盘体上,通过让磁盘并行工作来提高数据传输速度;并用冗余磁盘技术来进行错误恢复以提高系统可靠性。
只考提高 RIAD 可靠性的措施
当前 RIAD 方案分为 8 个等级,了解其中几个即可。
RAID 的分级如下所示。在RAID1~RAID5 等方案中,当任意磁盘发生故障时,可随时拔出损坏的磁盘并插入新盘,系统仍能恢复或维持数据完整性,显著提升了可靠性。
- RAID0:无冗余、无校验的磁盘阵列。
- RAID1:镜像磁盘阵列。
- RAID2:采用海明码进行纠错的磁盘阵列。
- RAID3:位交叉奇偶校验的磁盘阵列。
- RAID4:块交叉奇偶校验的磁盘阵列。
- RAID5:无独立校验盘的分布式奇偶校验磁盘阵列。

RIAD 0 没有冗余磁盘,没有任何校验信息,通过把连续的多个数据块放在不同的物理磁盘的扇区里,利用多个磁盘交叉并行读取(条带化技术),扩展了存储容量、提高了读写速度,但是只适合容量和速度要求非常高的、非关键数据的场景。
图中是一个磁盘,红框部分称为磁盘的一个盘片,盘片有两个记录面(盘面)
RIAD 1 使用镜像方式实现一对一冗余。发送读请求时,由定位时间最少的磁盘返回数据;进行写入时,两个磁盘并行写入数据,因此写的性能由两次写操作中写入最慢的磁盘决定。代价是:由于两个磁盘存储的是同一份数据,因此容量减半。不过提高了可靠性,因为是镜像方式进行了数据的备份和冗余。
核心考点:
总结:观察 RIAD X 的做法,可以发现 RIAD 阵列有以下特点:
- 通过多个磁盘的并行工作提高数据传输速率
- 通过并行存取提高系统的吞吐量(类似主存的低位交叉编址)
- 通过镜像备份实现高可用性
- 通过数据校验机制提高容错能力
第三点和第四点是提高可靠性的关键
