answer given every where = 255.5

please help !!!

The Gateway to Computer Science Excellence

+45 votes

A hard disk system has the following parameters :

- Number of tracks $= 500$
- Number of sectors/track $= 100$
- Number of bytes /sector $= 500$
- Time taken by the head to move from one track to adjacent track $= 1 \ ms$
- Rotation speed $= 600 \ rpm$.

What is the average time taken for transferring $250$ bytes from the disk ?

- $300.5 \ ms$
- $255.5 \ ms$
- $255 \ ms$
- $300 \ ms$

+6

Danish Its correct answer is 300= 249.5+50+.5, we take average of seek time, so do include 0 also in that sum i.e, (0+1+2+......499)/500 = 249.5

0

?? how are you calculating this ?

I am wrong somewhere i am not getting any of the answers .Sir help

I am wrong somewhere i am not getting any of the answers .Sir help

0

HI Guys,

Check @pC and @Sachin Mittal 1's comment on finding seek time.

In this question it is assumed that entire 250 Bytes data is continuous( that is why avg. seek and avg. rotational latency is added once). I think this assumption is made because sector size is 500 B.

But i am not sure when should we take $N/3$ for seek time (for derivation refer @pC's comment) ? If you know the answer then please mention.

+131 votes

Best answer

**option (D)**

Explanation

Avg. time to transfer $=$ Avg. seek time $+$ Avg. rotational delay $+$ Data transfer time

Avg Seek Time

given that : time to move between successive tracks is $1 \ ms$

time to move from track $1$ to track $1 : 0ms$

time to move from track $1$ to track $2 : 1ms$

time to move from track $1$ to track $3 : 2ms$

..

..

time to move from track $1$ to track $500 : 499 ms$

Avg Seek time $= \frac{\sum 0+1+2+3+...+499}{500}$

$\mathbf{= 249.5 \ ms}$

Avg Rotational Delay

RMP $: 600$

$600$ rotations in $60$ sec

one Rotation takes $60/600$ sec $= 0.1$ sec

Avg Rotational Delay $= \frac{0.1}{2}$ { usually $\frac{\text{Rotation time}}{2}$ is taken as Avg Roational Delay }

$= .05 sec$

$\mathbf{= 50 \ ms}$

Data Transfer Time

One $1$ Roatation we can read data on one complete track .

$= 100 \times 500 = 50,000$ B data is read in one complete rotation

one complete rotation takes $0.1$ s ( we seen above )

$ 0.1 \rightarrow 50,000$ bytes.

$ 250$ bytes $ \rightarrow 0.1 \times 250 / 50,000 = \mathbf{ 0.5 \ ms}$

**Avg. time to transfer $=$ Avg. seek time $+$ Avg. rotational delay $+$ Data transfer time**

** ** $\mathbf{= 249.5+50+0.5}$

** ** $\mathbf{= 300 \ ms}$

+13

Average seek time calculation has a flaw. You cannot assume that everytime the head will start from position 0 and hence you have missed out a whole lot of $\binom{500}{2}$ values of seek times while calculating average. Real average seek time is t/3=166.67ms. Here's an explanation http://stackoverflow.com/questions/9828736/why-is-average-disk-seek-time-one-third-of-the-full-access-time

This, however, leads to solution 166.67+50+0.5=217.2ms which doesn't match any option

+11

@pc,

Plz clear one doubt.

Why not we are taking average for every possible pair of tracks ?

Avg Seek time = $\frac{\sum\text{seek time between every pair of tracks }}{\text{total seek distance}}$ = $\frac{\sum\limits_{x = 1}^N \sum\limits_{y = 1}^N \text{(seek time between x and y)}}{N^2}$ (here $N$=$500$)

I found this calculation here- Average Seek Time Calculation

0

@sachin_mittal_1 @Ishaan_sood

Its a good shot !

I was following my teachers explanation for calculating avg access time .

@arjun sir might have something to say about this

Its a good shot !

I was following my teachers explanation for calculating avg access time .

@arjun sir might have something to say about this

+4

Trick to seek true knowledge: Stop trusting anyone and start questioning everything. Your teachers can be wrong, your "sir" can be inaccurate, even GATE/JEE committee is not sanctified with all the errata every year. Humans believed Earth to be the centre of the universe for 2 millenia (Aristotle to Copernicus). (Disclaimer- I am a student of philosophy :) )

0

@Ishaan Sood

Shouldn't the Avg seek time = 499/3 = 166.334

time to move from track 1 to track 500 : 499 ms (Why have you taken it as 500ms?)

The disk is assumed to have N number of tracks, so that these are numbered from 1...N The position of the head at any point of time can be anything from 0 to N (inclusive).

Avg seek distance = N/3

Average seek time = Avg seek distance / seek rate

If the seek time for the from position 0 to track N takes 't' seconds then seek rate = N/t

Therefore, avg seek time = (N/3)/(N/t) = t/3

+4

@VS Other way to calculate average seek time is, Ts= {(number of tracks - 1) * seektime }/ 2

so here Ts= (499 * 1ms) / 2 = 249.5ms

This one looks simpler and gives same answer

His formula gives {(n-1)*(n)/ 2} /n = (n-1) / 2

I just simplified his formula.

so here Ts= (499 * 1ms) / 2 = 249.5ms

This one looks simpler and gives same answer

His formula gives {(n-1)*(n)/ 2} /n = (n-1) / 2

I just simplified his formula.

+1

0

Note that the solution uses seek *distance *instead of seek *time*, for this question this is fine because the question (kind of) states that the RW head moves uniformly over tracks, but in general seek distance cannot be used in place of seek time because the RW head does not move at a constant speed.

0

I am being naive here , I just wanted to know why are we calculating average seek time , is it because we are not aware of the no of track movement done? Plz help @pC

+14 votes

Avg. time to transfer = Avg. seek time + Avg. rotational delay + Data transfer time

RPM = 600

So, rotational delay = 60 / 600 = 0.1 s

In 1 rotations we can transfer the whole data in a track which is equal to number of sectors in a track * bytes per track

= 100 * 500 = 50,000

i.e., in 0.1 s, we can transfer 50,000 bytes.

Hence time to transfer 250 bytes = 0.1 * 250 / 50,000 = 0.5 ms

Avg. rotational delay = 0.5 * rotational delay = 0.5 * 0.1s = 50 ms

Avg. seek time = (0 + 1 + 2 + .... + 499)/500 (as time to move between successive tracks is 1 ms and we have 500 such tracks) = 499 * 250 /500 = 249.5

So, average time for transferring 250 bytes = 249.5 + 50 + 0.5 = 300 ms

RPM = 600

So, rotational delay = 60 / 600 = 0.1 s

In 1 rotations we can transfer the whole data in a track which is equal to number of sectors in a track * bytes per track

= 100 * 500 = 50,000

i.e., in 0.1 s, we can transfer 50,000 bytes.

Hence time to transfer 250 bytes = 0.1 * 250 / 50,000 = 0.5 ms

Avg. rotational delay = 0.5 * rotational delay = 0.5 * 0.1s = 50 ms

Avg. seek time = (0 + 1 + 2 + .... + 499)/500 (as time to move between successive tracks is 1 ms and we have 500 such tracks) = 499 * 250 /500 = 249.5

So, average time for transferring 250 bytes = 249.5 + 50 + 0.5 = 300 ms

0

The average seek time mean time taken to move from innermost track to outermost track ? and since it is given we have to transfer 250 bytes . it implies that 250 bytes from each track has to be read ?? Is this is what you meant in seek time calculation

+10 votes

Time taken by head to move from one track to other is seek time = 1 ms

There are 500 tracks so total average seek time= (total tracks - 1) * seek time/2 = (500 -1) * 1/2 = 249.5 ms

Ave. Rotational latency = 0.5* rotation speed= 50 ms

In one rotation it can read one track

Hence 1 sector can be read in 60/(600*100) sec

To read 1/2 sector it takes = 60/(600*100*2) sec = 0.5 ms

Hence total 300 ms

- All categories
- General Aptitude 1.9k
- Engineering Mathematics 7.5k
- Digital Logic 2.9k
- Programming and DS 4.9k
- Algorithms 4.4k
- Theory of Computation 6.2k
- Compiler Design 2.1k
- Databases 4.1k
- CO and Architecture 3.4k
- Computer Networks 4.2k
- Non GATE 1.4k
- Others 1.4k
- Admissions 595
- Exam Queries 573
- Tier 1 Placement Questions 23
- Job Queries 72
- Projects 18

50,737 questions

57,297 answers

198,263 comments

104,977 users