This article is about data storage problem solving numericals in real life or college life.
Problem: #1
Consider a 5.25 inch disk with 16 double-surfaced platters rotating at 5280 rpm. It has a usable capacity of 16 gigabytes (2**34 bytes) stored on 1024 cylinders. Assume 12% of each track is used as overhead.
- What is the burst bandwidth this disk could support reading a single block from one track?
- What is the sustained bandwidth this disk could support reading an entire track?
- What is the average rotational latency, assuming it is not necessary to start about the beginning of the track?
- Assuming the average seek time is 10 ms, what is the average time to fetch a 4-Kbyte (2**12 bytes) sector?
Solutions:
1. What is the burst bandwidth this disk could support reading a single block from one track?
#Bytes/Track = Capacity / (#cylinders * #platters * 2)
= 2**34 / (2**10 * 2**4 * 2)
= 2**19 Bytes
Time/revolution = 1/5280 minute = 1/88 second
Suppose a sector has X bytes.
#sector/track = 2**19 / X
total time spent per sector + gap = (1/88 second) / (2**19/X)
= X / (88 * 2**19) second
time spent per sector = 0.88 * total time for a sector and a gap
= X / (100 * 2**19) second
BB = bytes per sector / time spent per sector
= X / (X / (100 * 2**19))
= 100 * 2**19 B/s
= 100 * 2**19 / 2**20 MB/s
= 50 MB/s
#2. What is the sustained bandwidth this disk could support reading an entire track?
SB (Sustained Bandwidth) = bytes per track / time per revolution
= 2**19 bytes / (1/88) seconds
= 2**19 * 88 B/s
= (2**19 * 88) / (2**20) MB/s
= 44 MB/s
3. What is the average rotational latency, assuming it is not necessary to start abt the beginning of the track?
Avg. rotational latency = 0.5 * time per revolution
= 0.5 * (1/88) seconds
= 5.68ms
4. Assuming the average seek time is 10 ms, what is the average time to fetch a 4-Kbyte (2**12 bytes) sector?
Transfer time = (2**12)/(100 * 2**19) seconds = 0.078 ms
Fetch time = seek time + avg. rotational time + transfer time
= 10 + 5.68 + 0.078
= 15.758 ms