读取单个扇区(磁盘)的平均时间

读取单个扇区(磁盘)的平均时间

假如有一块磁盘如下:

平均寻道时间:12 毫秒

转速: 3600 RPM

传输速率:3.5 MB/秒

每磁道扇区数:64

扇区大小:512 字节

控制器开销:5.5 毫秒

读取单个扇区的平均时间是多少?我不确定如何/为什么计算 2 个部分。

我们需要知道:

  Seek time: 12 ms
  Average rotational delay: The answer here should be 8.3 but why? 60000/7200 would indeed give me 8.3 but why do I need to double the 3600?
  Transfer time: Not sure what to do here. Sector size is 512 bytes and rate is 3.5 MB/sec -- what do I need to calculate here? 
  Overhead: 5.5ms

磁盘访问时间:我相信答案大约是 25ms

结果是(寻道时间)12 毫秒 + (平均旋转延迟)8.3 + (传输时间)? + (开销)5.5 毫秒。

答案1

我们需要知道:

寻道时间:12 毫秒(文中给出)

平均旋转延迟:3600 RPM = 每秒 60 转,或 16.7 毫秒/转。平均值为其一半,即 8.3 毫秒。

传输时间:512 / 3.5 MB/s = 146 µs — 但是,实际读取扇区需要的时间会更长一些,因为磁盘上有 64 个扇区,磁盘每 16.7 毫秒旋转一次,每个扇区需要 16.7 毫秒 / 64 = 260 µs 来读取。由于这大于传输时间,因此可以使用这个数字。

开销:5.5ms(文中给出)

磁盘访问时间:

寻道时间(12 毫秒)+ 平均旋转延迟(8.3 毫秒)+ 扇区读取时间(260 微秒)+ 开销(5.5 毫秒)= 26.1 毫秒

这是有可能的,取决于磁盘控制器的工作方式,扇区可能会被读入硬件缓冲区(260 µs),然后作为两个独立的操作传输到内存(146 µs),在这种情况下答案将是 26.2 ms。

相关内容