如果函数f(x)作为将磁头移动到n个磁道的时间的估计给出,那么如何计算磁盘的平均寻道时间?
以前的答案可能在90年代是准确的,当寻求时间是显着的。
实际上,现代硬盘驱动器的查找速度非常快,访问时间几乎总是以延迟为主 – 在磁盘旋转之前等待,以使数据正确。 寻找与旋转并行发生,所以你不会把它们加起来,你只是看什么是最慢的。 旋转是最慢的。 旋转平均最大比例为1/2,不是1/3,所以整体访问比例为1/2。
把很多小分区放在邻居轨道上是一个过时的build议。 90年代也是这样,今天不是这样。 然而,现在的磁盘格式化,使得较大的外部磁道的数据量大约是内部磁道的两倍。 这不会改变avg到最大访问时间比率,但是这会改变磁盘开始附近的吞吐量。 所以还是值得分区的,这样你更常使用的数据(比如OS)将会在磁盘的开始处,比起接近驱动器末尾的区域来得到两倍的顺序读取时间。
PS我刚刚创build了我的账户,但我还没有足够的声望来回答@jitendra的评论,所以让我在这里回答:“为什么在一般情况下,平均寻道时间被认为是最大值的三分之一寻求时间?“
如果您有N个轨道(从1到N编号),我们可以通过查看开始轨道(i)和目标轨道(j)的所有不同可能性来计算平均值。 旅行距离将是abs(ji)。 总距离:sum {abs(ji)}对于i = 1..N,j = 1..N。 点数:N ^ 2最大距离:N平均距离:(对于i = 1..N,j = 1..N)/ N ^ 2,总和{abs(ji)}。 平均/最大比率将是(sum {abs(ji)},对于i = 1..N,j = 1..N)/ N ^ 3。
Wolframalpha不想计算它,除非我简化它 – 我只想看看j> i的情况,然后加倍结果来近似解释对称情况: – 代替sum(abs(ji)} for i = 1 … N,j = 1 … N – 对于i = 1 … N,我将使用2 * sum {ji},j = 1 … N
将它重写为Wolframalpha语法中的嵌套和: 2 *(sum(sum(ji)j = i到N)i = 1到N)/(N * N * N)
获得1/3 – 1 /(3 * N ^ 2)。 这几乎是1/3。
但正如我刚才所说,这并不重要,因为访问时间是由延迟而不是寻求占主导地位。
可以通过计算从所有轨道到所有其他轨道的寻道时间并将其平均来完全枚举。 有math公式可以用来简化计算。 提供的价值是基于真正的随机访问的理论值。
实际上,正在使用的特定磁盘的平均寻道时间可能会有很大的不同。 这个值将落在单个磁道移动的寻道时间和磁盘两端磁道之间的寻道时间之间。 解决时间可能是小动作的重要因素。
将大量访问的文件和分区放在一起可以缩短访问时间。 这增加了解决时间对磁盘访问的影响。
更糟糕的是,新磁盘的实际几何结构与传统HCS规范所描述的不同。 在这种情况下平均寻道时间更复杂。
一次磁盘访问优化是筛选磁道之间的扇区,使得扇区1位于从前一个磁道的最后一个扇区的单个磁道向前寻道完成之后的第一个扇区读取的位置。
编辑:使用逐次逼近,1/3的最大寻道时间是一个很好的估计。 平均搜寻时间的限制将在极限之间; 最大寻道时间为0.5(最坏情况,从磁盘边缘),最大寻道时间为0.25(最好从磁盘中心出发)。 对于两个边缘和中心,平均值为0.417。 磁盘四分之一处的平均寻道时间是(1/4 * 0.125 + 3/4 * 0.375 = 0.315)。 这五个样本的平均值是0.376,接近1/3。 您使用的样品越多,接近1/3就可以find结果。