M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 43 - May 24, 2002

Quiz 3 - Statistics and Solutions

Students taking quiz:295
Mean Score:64
Median Score:64
Standard Deviation:15

Distribution of Scores

Quiz 3 Solutions

  1. D. The rate of vibration failures is 1/30 failures/day, the rate of surge failures is 1/60 failures/day. The total failure rate is 1/30 + 1/60 = 1/20 failures/day. So the MTTF is 20 days.

  2. A and C. B is wrong because System R would have to re-do winners regardless of when it does checkpoints; any transaction that commits after the checkpoint has to be re-done. D is incorrect; System R does not limit the duration of a transaction.

  3. B. In order for the 10 millisecond seek to take only 10% of the total segment write time, the segment must take 90 milliseconds to write. 0.090 seconds * 20 megabytes/second = 1.8 megabytes.

  4. C. A is wrong because Coda compares the storeid in the log with the storeid on the server. B is wrong because Coda doesn't know about the internal structure of non-directory files. D is wrong because Coda checks only write/write conflicts.

  5. A and B. The lecture argued that the high rate of change of technology makes system design harder, not easier, so C is excluded; Brooks's lecture (not his book) said the opposite of what answer D claims.

  6. A, B, and D. C is wrong because X's final value would increment only by 1, not 2, which is not a result achievable by any one-at-a-time execution.

  7. D. The change suggested by C doesn't work; suppose T1 writes X, then T2 reads X, then T1 aborts; now T2 has read a value that is not equal to that written by the last committed transaction.

  8. A; Write has to abort if a higher-numbered transaction has written the variable, since if it wrote the variable, the next transaction to read the variable wouldn't get the value written by the highest-numbered transaction. C is wrong because T' may already have committed, and we can't un-do it because some later transaction may have already read the new value and acted on it.

  9. D. Suppose X starts with the value 7. Then T1 writes 8 to X, then T2 writes 9 to X. Then T1 aborts, then T2 aborts. The correct final value of X has to be 7. But the abort of T2 will write 8 to X, since that was the old value of X that T2 saw. If T2 aborts before T1, T1 will correctly restore the old value of X, so answer C does not demonstrate the incorrect result.

  10. A and C. Since line E ensures tid >= WriteID(x), answer C is equivalent to answer A.

  11. B and D. Answers A and C both contradict the order of interleaving proposed by the figure.

  12. A and D. The BEGIN operation ensures that A is true, and the WRITE operation aborts any transaction that would violate D. But commits and aborts of independent transactions can occur in any order.

  13. A. Suppose a transaction sets X to 10, then commits, then the system fails before it writes X to cell storage. Recover() will not un-do this transaction, because the log has a commit record in it. Recover() doesn't have enough information to re-do since Write() logs only the old value.

Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu