我正在为考试而学习,但我遇到了以下问题:
一个磁盘有 20000 个磁道,转速为 7200 RPM,寻道时间为 1 毫秒。问题要求我计算读取磁盘上所有磁道所需的总时间。它给了我们一个提示:磁道的传输时间是它在磁头下完成一圈所需的时间。
我尝试先找到传输时间,但不知道是否正确。我得到的结果为 7200/3600。
我该如何解决这个问题?
答案1
如果考试题目问的是计算机或硬盘,我认为问题其实并不是计算机或硬盘。它更多的是关于基础知识。
- 如果你有 7200 RPM,这意味着磁盘
(7200/60) = 120
每秒将旋转次 - 理论上,磁盘每旋转一圈,你就能读取 1 个完整的磁道。这意味着读取 1 个磁道需要
(1/120)s
那么,现在的问题是 1ms 寻道时间:
- 如果您可以进行连续读取,则只需添加一次寻道时间。因此,您需要
(1/120)s
为每个磁道添加一次寻道时间。这似乎过于简单了。 - 更现实的是:假设问题意味着您需要额外的操作
1ms (1/1000)s
才能从一条轨道切换到下一条轨道,那么您无法像旋转本身所建议的那样每秒读取 120 条轨道。 - 考虑到旋转和寻道时间,
(1/1000 + 1/120)s
读取每个磁道都需要花费时间。
笔记:
正如 @sawdust 在评论中正确指出的那样,这个答案使用了多种简化方法。这是因为问题中没有提供更多信息,而我尝试使用基础知识。如果问题更复杂(或涉及实际硬件,而不是考试问题),则必须考虑以下因素:
- 磁盘可能有多个(例如
N
)盘片,因此 20000 个磁道可以分布在N
盘片上。一般来说,盘片的两面都可以使用。[1] 因此,2N
驱动器中每个读写头的 20000 个磁道不是 20000 个柱面,而是20000/(2N)
20000 个柱面。这样可以2N
同时读取磁道。然后,读取2N
磁道需要(1/120)s
。 - 寻道时间不应固定为
1ms
。它通常是磁头寻道时间,磁头移动到正确的柱面(根据驱动器上的位置,这可能并不总是恒定的),加旋转延迟,这意味着磁盘本身必须旋转,直到磁头位于正确的扇区上方。平均而言,旋转延迟可能简化为磁盘旋转一圈所需时间的一半。因此,(1/240)s
每个新柱面的旋转延迟可能都在附近。 - 实际驱动器在无法正确读取数据时可能会出现某些延迟问题。当块损坏或难以读取时,驱动器会尝试使用不同的磁头定位和参数读取扇区,以增加检索任何数据的机会。有时甚至可以在新的零售驱动器上观察到由此产生的延迟,在规划依赖于及时磁盘读取的实际系统时必须考虑到这一点。因此,您不能总是假设磁道在一次旋转后就会被完全读取。问题可能会变得非常严重,因此更多的企业驱动器提供诸如 TLER 之类的功能来限制重试读取扇区的允许时间。[2]
[1]:维基百科:气缸盖部门
[2]:西部数据:桌面版(WD Blue、WD Green 和 WD Black)和 RAID(企业版)硬盘之间的区别