假如有一块磁盘如下:
平均寻道时间: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。