Tuesday, 7 January 2020

computer architecture - Average time to read a single sector (disk)


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.



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.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...