If there is a magnetic disk as following:
Average seek time: 12 ms
Rotation rate: 3600 RPM
Transfer rate: 3.5 MB/second
Number of sectors per track: 64
Sector size: 512 bytes
Controller overhead: 5.5 ms
What's the average time to read a single sector? I'm not sure how/why 2 parts are calculated.
We need to know:
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
Disk Access time:
I believe the answer is about 25ms
Resulting from (seek time) 12 ms + (average rotational delay) 8.3 + (transfer time) ? + (overhead) 5.5ms.
Best Answer
We need to know:
Seek time: 12 ms (given in text)
Average rotational delay: 3600 RPM = 60 revs per second, or 16.7 ms/rev. Average is half that, or 8.3 ms.
Transfer time: 512 / 3.5 MB/s = 146 µs -- however, it will take a little longer to actually read the sector, since there are 64 sectors on the disk, and the disk rotates once every 16.7 ms, each sector will take 16.7 ms / 64 = 260 µs to read. Since this is greater than the transfer time, it is the figure to use.
Overhead: 5.5ms (given in text)
Disk Access time:
Seek time (12 ms) + Average rotational delay (8.3 ms) + Sector read time (260 µs) + Overhead (5.5 ms) = 26.1 ms
It is possible, depending on how the disk controller works, the sector may be read into a hardware buffer (260 µs) and then transferred to memory (146 µs) as two separate operations, in which case the answer would be 26.2 ms instead.