磁盘访问时间计算

来源:互联网 发布:egd网络黄金美国上市 编辑:程序博客网 时间:2024/05/24 04:52

通常磁盘数据访问时间计算分为三个部分(实际上是四个,但是启动时间不加说明时忽略不计):

  • 寻道时间,也称寻找时间:磁头移动到指定磁道需要的时间
  • 延迟时间:磁头定位到某一磁道的扇区所需要的时间
  • 传输时间:从磁盘读出或者写入经历的时间

值得强调的是,寻找磁道的时间是最大的影响因子,因此各种调度算法目的都是为了优化寻道的时间。盘面上密密麻麻的同心圆,找到需要的那个想来就很费时间,再加上访问的数据不必在相邻或相近磁道,因此如何降低总的寻道时间是我们关注的重点。

一旦找磁道的问题得到了解决,那么在道上寻找扇区也不会那么难了。最多是转一圈就可以找到,最少是进到道上就是需要的扇区。因此平均是转半圈的时间。

而读取磁道上的数据耗时计算,我们通常是简化了的,即读一个磁道的数据耗时就是转动一圈的时间。

实际上,为了达到这个效果,需要的策略是扇区的交错编号。为什么呢,因为读完一个扇区,就需要一点时间休息调整一下。机器也要缓冲,不能连续不断工作。

连续编号是指,读取的扇区是0,1,2,3…编号时它们不相邻,隔着一段能够修整好的时间,通常隔一个扇区即可。这样读取一圈磁道需要耗时并不是转一圈的时间,而是两圈。但是我们计算时还是简化了,也不考虑背后的设计逻辑,简单考虑为,可以连续工作。

背后的设计与妥协可以思考一下,计算本身还是依据简化的模型来。

因此总的时间可以简单记为:寻道+转半圈寻找扇区+读取。

看一个例子,这里需要注意的是转速的单位。我们通常用r转/s,但是不排除有些故意挖坑,设置为r s/转。因此要留心。

已知某磁盘的平均转速是r秒/转,平均寻找时间是T秒,每个磁道可以存储的字节数是N,现在向该磁盘写入b字节的数据,采用随机寻道的方法,每道的所有扇区组成一个簇,其平均访问时间是(r+T)b/N.

推导:寻道时间已经告知为T, 现在需要读出b字节,随机读写,则需要的磁道数是b/N。
那么寻道的总时间是:bT/N.
因为一个道就作为一个簇,不用涉及寻找扇区时间,因此读写总时间就是:rb/N.

因此总时间就是(r+T)b/N。

0 0
原创粉丝点击