读取一个 k 字节块的时间(以毫秒为单位)
Posted
技术标签:
【中文标题】读取一个 k 字节块的时间(以毫秒为单位)【英文标题】:The time in milliseconds to read a block of k bytes 【发布时间】:2013-06-11 20:04:09 【问题描述】:以下是 Andrew S. Tanenbaum 的《操作系统设计与实施》一书中的一个问题及其答案。
As an example, consider a disk with 131,072 bytes/track, a rotation time of 8.33 msec, and an
average seek time of 10 msec. The time in milliseconds to read a block of k bytes is then the sum
of the seek, rotational delay, and transfer times:
10 + 4.165 + (k / 131072)x 8.33
现在,如果每个磁道有 131,072 字节,则要为此块读取 k/131,072 个磁道。更改磁道是否涉及旋转延迟?为什么要乘以 8.33?
旋转时间究竟是什么意思?
4.165 是从哪里来的?
这是我用来描绘轨道的图像。
【问题讨论】:
自从本书写作以来,硬盘设计已经有了很大的飞跃,所以你引用的整个部分有点过时了。现在的情况要复杂得多。 是的,但我想理解这些可能有助于理解复杂的技术。感谢您的信息 【参考方案1】:4.165 毫秒是绕到一半所需的时间 (8.33 毫秒 / 2)。由于磁盘可以准确地旋转到您需要开始的位置,或者尽可能远离您需要开始的位置,因此您可以分开差异。
您乘以 8.33 毫秒,因为这是绕一圈所需的时间。这就是“轮换时间”。
k / 131072 是以 k 字节为单位的旋转次数。
平均寻道时间(10 毫秒)会考虑更改磁道。
(编辑:将我对搜索时间和旋转时间的解释移出评论。)
我会用电唱机做一个类比(希望我没有在这里显示我的年龄)。
寻道时间是读/写磁头移动到指定磁道所用的时间。在电唱机上,这是您将指针移到您最喜欢的歌曲所需的时间。
旋转时间是磁盘旋转一周所花费的时间。 8.33 ms 的旋转时间意味着磁盘每秒运行大约 120 次 (1 / 0.00833)。在电唱机上,这将是 33 1/3 RPM(对于 LP),或 45 RPM 对于单曲。
【讨论】:
那么寻道时间和旋转时间实际上有什么区别?我从您的解释中理解了 4.165 是如何产生的。 我在答案中添加了对寻道时间和旋转时间的解释。以上是关于读取一个 k 字节块的时间(以毫秒为单位)的主要内容,如果未能解决你的问题,请参考以下文章
汇编 x86 从任何文件读取并转义所有特殊字符并以字节为单位获取文件大小
Realstudio (2011 4.2) 以毫秒为单位的日期