Problem 4


One track encircles an entire hard disk plate. Thus it will take one rotation to pass over the entire track. At 300 RPM (rotations per minute), the hard drive head will pass over a given track 300 times in one minute. Because the disk is double-interleaved, it will take 2.5 rotations to read an entire track in order (count the sectors in Fig. 3-4(c)).

A) We know that it takes .5 rotations to position the head over sector 0 and 2.5 rotations to read the track. Thus it will take 3 rotations to transfer a track of information from the hard disk. By this, we see that at 300 RPM, we will read 100 tracks per minute or one track in 1/100th of a minute or one track in 3/5th of a second.

B) We need the data rate in the amount of information transferred per unit of time. Thus, from A), we already know we read 100 tracks per minute. Since there are 512 bytes per track, we multiply them together to yield 51,200 bytes per minute transfered.

For a non-interleaved disk, we see in Fig. 3-4(c) that it will take one rotation to read an entire track.

C) As it still takes .5 rotations to position the head correctly over sector 0, it takes 1.5 rotations to completely read one track of a non-interleaved disk. (Or is it non-interloaven? :-) Thus it takes 1/2 the amount of time to read a non-interleaved disk as a double-interleaved disk. By this logic, it is a simple matter of arithmetic to calculate that a non-interleaved reads data twice as fast (102,400 bytes per second).

Problem 5


At 1200 bits per second (or baud), the DM-11 was capable of sending/receiving one bit every 833 microseconds. Since the lines were half-duplex, every request on the line tied up both sending and receiving. Sampling took 5.7 microseconds and was done 7 times the baud rate (1200 * 7 = 8400). Thus for each line, sampling took 8400 * 5.7 (=47,880) microseconds of the line's time. Assuming the line did nothing but sample, each DM-11 could handle 1,000,000/47,880 (=20) separate lines at one time. (Albeit slowly)

Problem 14


This is an application of the Dining Philosopher's problem. Since each process may need two tape drives, we will assume worst case scenario and say that each process needs exactly two tape drives. Thus so long as not every process is waiting for a free drive we cannot deadlock. Using this logic, we know that if we have fewer processes than tape drives (i.e. n-1 processes) not every process can be waiting at the same time and thus we will not deadlock.

Problem 17


There a muliple solutions to this problem. One of the simplest and most efficient is to use a checking mutex.

mutex down
if x && y up {
down x
down y
mutex up
perform transaction
x up
y up
}
else
mutex up

As it has been noted, this solution only works if the transaction can be postponed with the odds favourable for gaining both accounts in the future. A second solution involves checking for a circular state. A good way to implement this solution would be a linked list in shared memory of x/y pairs of accounts currently waiting to be accessed.

Problem 21


A) 6 * sigma[|a-b|] : where a is the first number and b is the second number in a sequence.

B) 6 * (22-20 + 22-10 + 10-6 + 6-2 + 38-2 + 40-38)

C) 6 * (40-20 + 40-2)



If you have any questions on these solutions, send me an e-mail at: s-hillbrand@uchicago.edu