# Calculating disk capacity and max data transfer rate of a hard drive?

I am learning about hard drive concepts and I came across this question:

Suppose we have a 10000 RPM disk has 8 heads and 480 cylinders. It is divided into 120- cylinder zones with the cylinders in different zones containing 200, 240, 280, and 320 sectors. As- sume each sector contains 4096 bytes and a seek time between adjacent cylinders of 2 msec.

1. what is the disk capacity?
2. What is the maximum transfer rate?

For the first question, I started off with these steps

1. Add the sectors together for a 120 cylinder zone: (200+240+280+320) = 1040 sectors
2. Since there are 4 cylinder zones, there are a total of 4160 sectors.
3. Multiply the sectors by 4096: 4160 * 4096 bytes = 17.03 MB

That seems incredibly small. Is this correct?

For problem 2, I am not sure where to start.

• Each of 120 cylinders in a zone contains 200 to 320 sectors. And you have 8 heads. That drive is an antique, but it has considerably more than 17.03 MB. Nov 26, 2016 at 13:29

To get the capacity of the disk, multiply the total number of sectors by the sector size. The total number of sectors is 120*200 + 120*240 + 120*280 + 120*320 or 124800, so the total disk capacity should be 124800 * 4096, or 511,180,800 bytes.

To get the transfer rate, first, pick the cylinder zone with the largest number of sectors (320). This is the cylinder zone that will yield the greatest transfer rate. It's probably near the outside of the disk (since there's more surface area to work with).

Now, multiply the number of sectors by the number of bytes per sector (320 * 4096) and you get 1310720. This is the number of bytes you can retrieve per disk rotation.

The number of rotations per second is 10000/60, approximately 166.67. Multiply that by 1310720 bytes per rotation, and you get 218453333, or about 208 megabytes per second.

Since you need 166.67 cylinders to get a full second's worth of data, you should subtract the amount of data that cannot be read while the head is seeking between cylinders (2 ms per seek).

• Thanks for such a through response Robert. To get the disk capacity, I would not multiply the total number of sectors by 4096 bytes? I am just looking for the total number of sectors? Apr 13, 2015 at 14:03
• I said exactly that in the first sentence. Apr 13, 2015 at 14:04
• But why do we neglect that each sector consists of 4096 bytes for the disk capacity? Apr 13, 2015 at 14:11
• See my update. I've spelled it out in the first paragraph. Apr 13, 2015 at 14:13
• Ok thats what I was thinking to do. Thanks Robert. Apr 13, 2015 at 14:17