磁盘总结

1 磁盘结构

我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。其中灰色的直线是间隙,用于分割扇区,间隙大约占磁道的10%.

磁盘总结_第1张图片
Paste_Image.png

图1 老式磁盘一个盘片的结构

图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。
盘片的每一面都对应一个磁头,磁头可以进行读写。磁头根据磁臂可以伸缩找到相应的磁道。而磁片转动可以找到相应的扇区。磁盘控制器控制磁头和磁盘的转动。一个磁盘控制器可以控制多个磁盘。

磁盘总结_第2张图片
Paste_Image.png

图2 老式磁盘的整体结构

一个磁盘的容量计算公式为:
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

2 读写磁盘

读写一个磁盘需要三个步骤,每一步都有相关的延迟:

  1. 磁盘控制器将磁头组合定位在磁盘块所在磁道的柱面上所需要的时间即寻道时间
  2. 磁盘控制器等待访问块的第一个扇区旋转到磁头下。此时间称为旋转延迟
  3. 当磁盘控制器读取或写数据时,数据所在的扇区和扇区间的空隙经过磁头,此时间称为传输时间

寻道时间、旋转延迟和传输时间的总和称为磁盘的延迟。

让我们计算一下读16 384字节块的最小、最大和平均时间。

  • 最小时间仅计算传输时间。也就是说,磁头已经定位在块所在的磁道上,而且块的第一个扇区即将从磁头下面通过。
    由于Megatron 747的每个扇区有4096字节。所以该块要占用4个扇区。为此,磁头必须越过4个扇区和扇区之间的3个间隙。间隙占圆周的10%,而扇区占其余的90%。围绕着圆周有256个间隙和256个扇区。由于间隙合在一起覆盖36度圆弧,而扇区覆盖其余的324度圆弧,所以被3个间隙和4个扇区覆盖的圆弧的总度数为:36 × 3 / 256 + 324 × 4 / 256 = 5.48度。传输时间是(5.48/360)×0.008 3=0.000 13s,即5.48/360得到该总度数占一个圆周的分数,而0.008 33s是旋转360度所需的时间。
    现在让我们来看一下读该块的最大的可能时间。在最坏的情况下,磁头被定位于最内圈柱面,而我们要读的块是在最外圈柱面上(或者相反)。这样,控制器必须做的第一件事就是移动磁头。正如我们在前面已经知道的,移动Megatron 747磁头跨越全部柱面所花费的时间大约是17.38ms。这个数量就是读盘的寻道时间。
    当磁头到达正确的柱面时,可能发生的最糟糕的事情是,所需要的块的起点刚好从磁头下面越过。假定我们必须从块的起点开始读,实际上我们必须等待完整一圈的时间,或者说8.33ms,使块的起点再次到达磁头下。一旦发生这种情况,我们必须等待的仅仅是读整个块的0.13ms传输时间的总量。这样,最坏情况下的等待时间是17.38 +8.33+ 0.13 = 25.84ms。

  • 最后让我们来计算读一个块的平均时间。等待时间的两个要素是容易计算的:传输时间总是0.13ms,平均旋转等待时间是磁盘旋转半周所需要的时间,即4.17ms。可以假定,平均寻道时间正好是越过一半磁道所需要的时间。然而,这样计算并不很准确,因为通常磁头起初是位于中间位置附近的某个位置,因此平均来说,磁头到达所要求柱面需移动的距离小于跨越一半的磁道的距离。我们将它作为一个习题,说明平均移动距离是移过整个磁盘的1/3。
    在Megatron 747的磁盘上移动1/3的距离需要1+(65 536/3)/4000=6.46ms。因此,我们估算的平均延迟时间是6.46+4.17+0.13=10.76ms;上式中3个相加的数字分别表示平均寻道时间、平均旋转延迟和平均传输时间。

你可能感兴趣的:(磁盘总结)