I have read in many books and papers, considering disk performance, that the average seek time is roughly one-third of the full seek time, but no one really offers any explanation about that. Where does this come from?
The average is calculated mathematically using calculus. We use the very basic formula for calculation of average.
Average seek time = (Sum of all possible seek times)/(Total no. of possible seek times)
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). Let us say that the initial position of the disk head is at track 'x' and the final position of the disk head is at track 'y' , so that x can vary from 0 to N and also, y can vary from 0 to N.
On similar lines as we defined average seek time, we can say that,
Average seek distance = (Sum of all possible seek distances)/(total no. of possible seek distances)
By definition of x and y, Total no. of possible seek distances = N*N and Sum of all possible seek distances = SIGMA(x=0,N) SIGMA(y=0,N) |x-y| = INTEGRAL(x=0,N)INTEGRAL(y=0,N) |x-y| dy dx
To solve this, use the technique of splitting modulus of the expression for y = 0 to x and for y = x to N. Then solve for x = 0 to N.
This comes out to be (N^3)/3.
Avg seek distance = (N^3)/3*N*N = 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
Reference:
http://pages.cs.wisc.edu/~remzi/OSFEP/file-disks.pdf Page-9 gives a very good answer to this.
来源:https://stackoverflow.com/questions/9828736/why-is-average-disk-seek-time-one-third-of-the-full-seek-time