Final answer:
a. The total capacity of a track is 10,240 bytes and its useful capacity is 7,040 bytes. b. There are 800 cylinders. c. The total capacity of a cylinder is 4,096,000 bytes and its useful capacity is 3,968,000 bytes. d. The total capacity of a disk pack is 3,276,800,000 bytes and its useful capacity is 3,174,400,000 bytes. e. The transfer rate is 4.2666667 bytes/msec, the block transfer time is 120 msec, the average rotational delay is 60 msec, and the bulk transfer rate is 2181.6533 bytes/msec. f. It takes 210 msec to locate and transfer a single block. g. It takes 4200 msec to transfer 20 random blocks and 4500 msec to transfer 20 consecutive blocks using double buffering.
Step-by-step explanation:
a. The total capacity of a track can be calculated by multiplying the block size by the number of blocks per track: 512 bytes x 20 blocks = 10,240 bytes. The useful capacity of a track is the total capacity minus the size of the inter block gaps: 10,240 bytes - 20 gaps x 128 bytes = 7,040 bytes.
b. The number of cylinders can be calculated by multiplying the number of tracks per surface by the number of surfaces (double-sided disks): 400 tracks/surface x 2 surfaces = 800 cylinders.
c. The total capacity of a cylinder can be calculated by multiplying the total capacity of a track by the number of tracks per cylinder: 10,240 bytes x 400 tracks = 4,096,000 bytes. The useful capacity of a cylinder is the total capacity minus the size of the inter block gaps: 4,096,000 bytes - 400 gaps x 128 bytes = 3,968,000 bytes.
d. The total capacity of a disk pack can be calculated by multiplying the total capacity of a cylinder by the number of cylinders: 4,096,000 bytes x 800 cylinders = 3,276,800,000 bytes. The useful capacity of a disk pack is the useful capacity of a cylinder multiplied by the number of cylinders: 3,968,000 bytes x 800 cylinders = 3,174,400,000 bytes.
e. The transfer rate (tr) can be calculated by multiplying the number of bytes per revolution by the number of revolutions per minute and dividing by the number of milliseconds per second: 512 bytes x 500 revolutions/minute / 60000 milliseconds/second = 4.2666667 bytes/msec. The block transfer time (btt) can be calculated by dividing the block size by the transfer rate: 512 bytes / 4.2666667 bytes/msec = 120 msec. The average rotational delay (rd) can be calculated by dividing the time for one revolution by 2: (60 / 500) x 1000 / 2 = 60 msec. The bulk transfer rate can be calculated by multiplying the transfer rate by the block size: 4.2666667 bytes/msec x 512 bytes = 2181.6533 bytes/msec.
f. The average time to locate and transfer a single block can be calculated by summing the average seek time (30 msec), the average rotational delay (60 msec), and the block transfer time (120 msec): 30 msec + 60 msec + 120 msec = 210 msec.
g. To transfer 20 random blocks, we would need to include the average seek time for each block, resulting in a total transfer time of 20 blocks x (30 msec + 60 msec + 120 msec) = 4200 msec. To transfer 20 consecutive blocks using double buffering, we can ignore the average seek time after the first block, resulting in a total transfer time of 1 block x (30 msec + 60 msec + 120 msec) + 19 blocks x (60 msec + 120 msec) = 4500 msec. Therefore, it would take less time to transfer 20 consecutive blocks using double buffering, as compared to transferring 20 random blocks.