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.

Respuesta :

Answer:

a) [tex] total capacity = (Block size + I. Gap size)*N[/tex]

[tex] total capacity = (512+128 Bytes)* 20= 12800 Bytes = 12.8 Kb[/tex]

[tex] Useful.cap = Block size * N = 512*20 = 10240 Bytes = 10.24 Hb[/tex]

b) [tex] Cylinders

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

[tex] U = 512Gb*20*15*2= 307200 Bytes= 307.2 Kb[/tex]

d) [tex]TS= 384000 Bytes *400 =153600000 Bytes= 153500 Kb= 153. 6Mb[/tex]

[tex]UT = 307200 Bytes*400=122880000 Bytes = 122880 Kb = 122.88 Mb[/tex]

e) [tex] RS= 2400 rpm * \frac{60 s}{1 min}= 144000 rps[/tex]

[tex] Tr= \frac{total capacity}{RS} = \frac{12800 By}{144000 rps}= 0.0889 bytes/s[/tex]

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

[tex] 0.0889 bytes/s * 1000 =88.89 bytes/ms[/tex]

The block transfer time btt would be given by:

[tex] btt= \frac{512 bytes}{88.9 bytes/ms}=5.76 ms[/tex]

And the average rotational delay would be given by:

[tex] rd= \frac{1}{2} (\frac{1}{2400 rpm}) 60 s  \frac{1000 ms}{1 s}= 12.5 ms[/tex]

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

[tex] TT= btt +rd+ st = 5.76 +12.5 +30 ms= 48.26 ms[/tex]

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

[tex] t_1 = 20*(s+rd+btt) = 20*(30+12.5+5.76) =965.2 ms[/tex]

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

[tex] t_2 = s+ rd+ 20 btt = 30 +12.5 + 20 (5.76)=157.7 ms[/tex]

Explanation:

Part a

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

[tex] total capacity = (Block size + I. Gap size)*N[/tex]

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

[tex] total capacity = (512+128 Bytes)* 20= 12800 Bytes = 12.8 Kb[/tex]

And the useful capacity is given by:

[tex] Useful.cap = Block size * N = 512*20 = 10240 Bytes = 10.24 Hb[/tex]

Part b

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

[tex] Cylinders = tracks= 400[/tex]

Part c

First we can calculate the total cylinder capacity like this:

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

And the useful capacity is:

[tex] U = 512Gb*20*15*2= 307200 Bytes= 307.2 Kb[/tex]

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

[tex]TS= 384000 Bytes *400 =153600000 Bytes= 153500 Kb= 153. 6Mb[/tex]

[tex]UT = 307200 Bytes*400=122880000 Bytes = 122880 Kb = 122.88 Mb[/tex]

Part e

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

[tex] RS= 2400 rpm * \frac{60 s}{1 min}= 144000 rps[/tex]

And we can calculate the transfer rate like this:

[tex] Tr= \frac{total capacity}{RS} = \frac{12800 By}{144000 rps}= 0.0889 bytes/s[/tex]

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

[tex] 0.0889 bytes/s * 1000 =88.89 bytes/ms[/tex]

The block transfer time btt would be given by:

[tex] btt= \frac{512 bytes}{88.9 bytes/ms}=5.76 ms[/tex]

And the average rotational delay would be given by:

[tex] rd= \frac{1}{2} (\frac{1}{2400 rpm}) 60 s \frac{1000 ms}{1 s}= 12.5 ms[/tex]

Part f

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

[tex] TT= btt +rd+ st = 5.76 +12.5 +30 ms= 48.26 ms[/tex]

Part g

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

[tex] t_1 = 20*(s+rd+btt) = 20*(30+12.5+5.76) =965.2 ms[/tex]

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

[tex] t_2 = s+ rd+ 20 btt = 30 +12.5 + 20 (5.76)=157.7 ms[/tex]