磁盘调度中的旋转延迟与磁盘访问时间差异

2025年4月28日 | 阅读 6 分钟

操作系统通过磁盘调度来安排到达磁盘的 I/O 请求。磁盘调度很重要,因为不同进程可能会有多个 I/O 请求到达,而磁盘控制器一次只能服务一个 I/O 请求。因此,其他 I/O 请求需要等待在等待队列中并需要被调度。有一些重要的术语:寻道时间、旋转延迟、传输时间以及磁盘访问时间。

寻道时间 定义了硬盘读/写磁头找到磁盘上数据物理位置所需的时间。延迟 是指被访问的扇区旋转到磁头下方所需时间的平均值,在完成寻道后。

什么是旋转延迟?

磁盘被划分为许多圆形磁道,这些磁道又被划分为称为扇区的块。要访问数据,执行臂会移动读/写磁头到盘片上的特定磁道,同时盘片旋转,将请求的扇区定位在读/写磁头下方。盘片旋转并将数据定位在读/写磁头下方所需的时间称为旋转延迟

这种延迟取决于主轴的旋转速度,并以毫秒为单位。磁盘的平均旋转延迟是磁盘进行一次完整旋转所需时间的一半。

旋转延迟时间取决于磁盘或主轴电机的旋转速度,以每分钟转数(RPM)为单位。对于大多数基于磁介质的驱动器,平均旋转延迟通常基于经验关系,即此类驱动器的平均延迟(以毫秒为单位)是旋转周期的二分之一。以下是两种磁盘旋转方法:

  1. 恒定线性速度 (CLV),主要用于光存储,其光学磁盘的旋转速度根据磁头的位置而变化;
  2. 恒定角速度 (CAV),用于硬盘驱动器、标准软盘驱动器、一些光盘系统和黑胶唱片,无论磁头位置如何,介质都以一个恒定的速度旋转。

例如,我们将每个磁道分成了 4 个扇区。系统收到请求要从磁道 1 读取一个扇区。因此,读/写磁头将移动到磁道 1,这将是寻道时间。在下面显示的图中,读/写磁头当前位于扇区 3。

Rotational Latency vs Disk Access Time in Disk Scheduling

但是数据可能不在扇区 3,数据块可能在扇区 1。读/写磁头从扇区 3 移动到扇区 1 所需的时间是旋转延迟,显示在下面的下一张图中。

Rotational Latency vs Disk Access Time in Disk Scheduling

公式

以下公式用于计算磁盘调度中的旋转延迟。

所有盘片都有自己的读/写磁头。磁头只能向前和向后移动。如果磁头向前移动,意味着磁头正在向内圈磁道移动。如果磁头向后移动,意味着磁头正在向外圈磁道移动。

  • 最佳情况 = 当磁头已经在目标扇区时。
  • 最坏情况 = 当磁头位于离目标扇区最远的扇区时,您需要等待一个完整的旋转。
  • 平均情况 = 一半的旋转时间。

示例

在下面的示例中,我们使用公式计算旋转延迟,

什么是磁盘访问时间?

磁盘访问时间定义为计算机处理读/写请求并随后从磁盘存储检索所需数据所需要的总时间。

磁盘访问时间有两个组成部分。第一个组成部分是寻道时间,发生在读写臂寻道到目标磁道时。第二个组成部分是延迟或等待时间,发生在磁头写入臂等待磁道上目标扇区旋转到位时。

磁盘上数据的访问以毫秒为单位。然而,这比 CPU 的处理速度慢得多。尽管 I/O 仍然很慢,但它无法跟上现代处理器速度的提升。磁盘访问时间分为两部分:

  1. 访问时间
  2. 数据传输时间

公式

您可以使用以下公式计算磁盘访问时间。

1. 访问时间

访问时间定义为实际数据传输发生之前的设置时间。例如,读/写磁头在磁道 1 上,但我们需要从另一个磁道或段读取数据。因此,读/写磁头将在实际传输发生之前移动到数据块位置。这种延迟称为访问时间。访问时间通过将以下各项相加来计算:

  • 寻道时间:读/写磁头到达目标输出所需的时间。它被认为是时间最重要的部分,因为它不能产生间隙。寻道时间与性能成反比。寻道时间越短,性能越好。
  • 旋转延迟:读/写磁头从当前扇区移动到请求扇区所需的时间。
  • 命令处理时间:磁盘设备处理命令并建立磁盘设备各个组件之间连接以读取/写入数据所需的时间。这是由于内部电路。
  • 稳定时间:读/写磁头停止振动所需的时间。

注意:命令处理时间和稳定时间在数值问题中通常不提及,我们将它们视为零。

2. 数据传输时间

数据传输时间定义为在系统和磁盘之间传输数据所需的时间。数据传输时间有两种类型:

  • 内部传输速率:它定义了在磁盘表面和硬盘缓存之间移动数据所需的时间。
  • 外部传输速率:它定义了在硬盘缓存和系统之间移动数据所需的时间。

旋转延迟与磁盘访问时间之间的区别

以下是磁盘调度中旋转延迟和磁盘访问时间之间的一些区别,例如:

旋转延迟磁盘访问时间
它是读/写磁头从一个扇区移动到另一个扇区所需的时间。它是计算机处理读/写请求并检索所需数据所需的时间。
大多数磁盘调度不考虑旋转频率,因为在大多数现代系统中,块的实际物理位置是不可用的。它比寻道时间大得多。
旋转延迟取决于主轴的旋转速度。磁盘访问时间取决于两个部分,即访问时间和数据传输时间。
如果后续请求属于相邻扇区,则可以减小旋转延迟。如果我们能减少访问时间和数据传输时间,就可以减少磁盘访问时间。
旋转延迟,
= (当前扇区与所需扇区之间的角度) / (旋转频率)。
磁盘访问时间,
= 寻道时间 + 旋转延迟 + 数据传输时间

下一个主题Opera-operating-system