Homework 5

22C:116, Fall 2000

Due Friday Sep 22, 2000, in class

Douglas W. Jones

  1. Background: Back in the 1970's, one common disk drive had 20 recording surfaces, 200 cylinders, 24 sectors per track, and 512 bytes per sector. The The disk packs were removable from the drive; each pack had 11 platters 14 inches in diameter (the topmost and bottommost surfaces were not used for data). The disk drive rotated at 20 revolutions per second, and took about 30 seconds to start spinning or spin up and over a minute to spin down. It took about 0.1 second to seek from the outermost cylinder to the innermost cylinder, and the seek operation was performed at constant acceleration (so the relationship d = 1/2at2 applies, where d is the distance traveled, a is the acceleration, and t is the time taken to travel that distance). The disk drive itself was about the size of a washing machine.

    Part a: What is the maximum, minimum and expected rotational latency for this disk.

    Part b: What is the maximum, minimum and expected head positioning latency for this disk. Assume that the initial and final cylinders are selected uniformly from among the available cylinders.

    Part c: What is the time taken to read or write one sector?

    Part d: What is the expected time per I/O operation, assuming uniform random sequences of disk addresses.

    Part d: What is the storage capacity of this disk?

  2. Background: The UNIX write(d,b,s) service writes s bytes from the buffer at address b to the file described by the descriptor d. The current file position is incremented by s. When a file is opened, the position is initially zero. lseek(d,p,0) sets the position to p. The read(d,b,s) service is identical to write, except that the data movement is in the opposite direction, from the file to the buffer.

    Assume the disk drive from problem 1 (in fact, this disk drive was common on early UNIX systems). Assume the user opens file X for input or output, creates some buffer B, and then executes this code:

    lseek(X,10000,0);
    write(X,B,1);
    The user may then do anything else, but you don't know what the user does!

    The Problem: Taking into account everything you know about the UNIX file system, describe all disk I/O that would result from these two lines of code! Do not describe disk I/O that was done when the file was opened, nor describe disk I/O that will be done as a result of later computations.

  3. A Problem Why is it that the disk drivers included with personal computer operating systems rarely contain sophisticated disk schedulers, while the disk drivers included with timesharing systems and network servers frequently do contain good disk schedulers. Hint: One of Tannenbaum's exercises asks this same question in a very different way!