40.9k views
5 votes
Consider a disk with the following characteristics (these are not parameters of any particular disk unit): block size B 512 bytes; inter block gap size G 128 bytes; number of blocks per track 20; number of tracks per surface 400. A disk pack consists of 15 double-sided disks. a. What is the total capacity of a track, and what is its useful capacity (excluding inter block gaps)? b. How many cylinders are there? c. What are the total capacity and the useful capacity of a cylinder? d. What are the total capacity and the useful capacity of a disk pack? e. Suppose that the disk drive rotates the disk pack at a speed of 2,400 rpm (revolutions per minute); what are the transfer rate (tr) in bytes/msec and the block transfer time (btt) in msec? What is the average rotational delay (rd) in msec? What is the bulk transfer rate? f. Suppose that the average seek time is 30 msec. How much time does it take (on the average) in msec to locate and transfer a single block, given its block address? g. Calculate the average time it would take to transfer 20 random blocks, and compare this with the time it would take to transfer 20 consecutive blocks using double buffering to save seek time and rotational delay.

2 Answers

4 votes

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.

User Willj
by
5.3k points
6 votes

Answer:

a)
total capacity = (Block size + I. Gap size)*N


total capacity = (512+128 Bytes)* 20= 12800 Bytes = 12.8 Kb


Useful.cap = Block size * N = 512*20 = 10240 Bytes = 10.24 Hb

b)
Cylinders </p><p>c) [tex] T = (512+128 Gb) *20 *15*2 = 384000 Bytes= 384Kb


U = 512Gb*20*15*2= 307200 Bytes= 307.2 Kb

d)
TS= 384000 Bytes *400 =153600000 Bytes= 153500 Kb= 153. 6Mb


UT = 307200 Bytes*400=122880000 Bytes = 122880 Kb = 122.88 Mb

e)
RS= 2400 rpm * (60 s)/(1 min)= 144000 rps


Tr= (total capacity)/(RS) = (12800 By)/(144000 rps)= 0.0889 bytes/s

And if we convert using 1 s = 1000 ms we have"


0.0889 bytes/s * 1000 =88.89 bytes/ms

The block transfer time btt would be given by:


btt= (512 bytes)/(88.9 bytes/ms)=5.76 ms

And the average rotational delay would be given by:


rd= (1)/(2) ((1)/(2400 rpm)) 60 s &nbsp;(1000 ms)/(1 s)= 12.5 ms

f) For this case we can calculate the average time to locate and transfer adding the following time:


TT= btt +rd+ st = 5.76 +12.5 +30 ms= 48.26 ms

g) For this case we can calculate the time to transfer 20 random blocks like this:


t_1 = 20*(s+rd+btt) = 20*(30+12.5+5.76) =965.2 ms

And the time to transfer 20 consecutive blocks using double buffering would be:


t_2 = s+ rd+ 20 btt = 30 +12.5 + 20 (5.76)=157.7 ms

Step-by-step explanation:

Part a

For this case we need to calculate first the total capcity like this:


total capacity = (Block size + I. Gap size)*N

Where N represent the number of blocs per track, and if we replace we got:


total capacity = (512+128 Bytes)* 20= 12800 Bytes = 12.8 Kb

And the useful capacity is given by:


Useful.cap = Block size * N = 512*20 = 10240 Bytes = 10.24 Hb

Part b

For this case the number of cylinders correspond to the number of tracks.


Cylinders = tracks= 400

Part c

First we can calculate the total cylinder capacity like this:


T = (512+128 Gb) *20 *15*2 = 384000 Bytes= 384Kb

And the useful capacity is:


U = 512Gb*20*15*2= 307200 Bytes= 307.2 Kb

Part d

We can calculate the totals like on part d but we just need to multiply by 400 since that represent the number of tracks per surface


TS= 384000 Bytes *400 =153600000 Bytes= 153500 Kb= 153. 6Mb


UT = 307200 Bytes*400=122880000 Bytes = 122880 Kb = 122.88 Mb

Part e

For this case we can convert the revolution per minute in revolutions per second like this:


RS= 2400 rpm * (60 s)/(1 min)= 144000 rps

And we can calculate the transfer rate like this:


Tr= (total capacity)/(RS) = (12800 By)/(144000 rps)= 0.0889 bytes/s

And if we convert using 1 s = 1000 ms we have"


0.0889 bytes/s * 1000 =88.89 bytes/ms

The block transfer time btt would be given by:


btt= (512 bytes)/(88.9 bytes/ms)=5.76 ms

And the average rotational delay would be given by:


rd= (1)/(2) ((1)/(2400 rpm)) 60 s (1000 ms)/(1 s)= 12.5 ms

Part f

For this case we can calculate the average time to locate and transfer adding the following time:


TT= btt +rd+ st = 5.76 +12.5 +30 ms= 48.26 ms

Part g

For this case we can calculate the time to transfer 20 random blocks like this:


t_1 = 20*(s+rd+btt) = 20*(30+12.5+5.76) =965.2 ms

And the time to transfer 20 consecutive blocks using double buffering would be:


t_2 = s+ rd+ 20 btt = 30 +12.5 + 20 (5.76)=157.7 ms

User Tom Tanner
by
5.1k points