A disk rotates at 12000 rpm and has 500 sectors per track. Moving the head from a track to an adjacent track takes 0.5 ms, and seek time is proportional to the number of tracks crossed. The head is initially on track 20. A request reads, in this order:
- 6 randomly located sectors on track 35;
- a run of 200 consecutive sectors on track 10;
- 6 randomly located sectors on track 50.
Assume that each randomly located sector is preceded by an average rotational latency of half a rotation; the run of consecutive sectors is preceded by one such average latency and is then read in a single sweep; reading one sector takes of a rotation; and all other overheads are zero.
The total time to serve the request, in milliseconds, is
Show solution
Solution MCQ · 2 marks · −⅔ if wrong
Answer: (C) 74.62
Method. Get the three per-unit times, then add seek, latency and transfer separately.
- One rotation ms, so the average latency is ms.
- One sector transfer ms.
- Seek: tracks crosses tracks, so ms.
| Track | Accesses | Time (ms) |
|---|---|---|
| 35 | 6 random sectors, each | |
| 10 | one latency, then 200 sectors in a sweep: | |
| 50 | 6 random sectors, each |
Total ms.
The trap. "Randomly located" means the head has to wait for each sector separately, so latency is paid per sector; a consecutive run pays it once. Mixing these up is the main error (49.62 if you pay latency per track everywhere). The other two slips are using a full rotation as the average latency (107.12) and starting the seek count at the first requested track instead of the head's actual starting track (67.12).
What was tested. Building disk service time from its three components and knowing when each component is paid: seek once per track change, latency once per independent positioning, transfer once per sector.
Copied. Paste it into the new chat.Too long to send. Copy the question and solution by hand.