Search code examples
filetimeoperating-systemdiskseek

Finding the time it would take to read a 1000 byte file


Disk D has one platter(2 surfaces), 200 tracks, 100 sectors/track, and sectors are 1KB. It rotates at 3600 RPM and average seek is 10ms.

1.) In the BEST CASE, how much time would it take to read a 1000 byte file?

I know on AVERAGE CASE I simply need to find the sum of seek time + rotational latency + transfer time. How would I do it with BEST CASE?

2.) If you changed D to 25 sectors per track, each sector is 4 KB: If disk sectors for files are scattered on the disk, would reading a 8000 byte file be faster, slower, or the same.

My answer for this is SLOWER, because it would have more seek time, but apparently it's wrong?


Solution

    1. Best case is the one sector containing the file is right under the read/write head. So there is no seek time, and no rotational latency time. The disk rotates 60 times/second, so reading an entire track would take 1/60 of a second. But you only want 1/100 of a track, so the answer is 1/(60 * 100) -> .16666 milliseconds.
    2. Yes, slower is wrong. If the disk sectors are 4K, an 8K file would be in 2 sectors, which would take 2 seeks and 2 rotational latencies. If the sectors are 1K, the file is in 8 sectors, which is 8 seeks and 8 rotational latencies. Thus 4K sectors are faster if the sectors are scattered.