Thanh Do's notes on UW Operating Systems Qualifying Exam Reading List

Hopefully, the notes below will help you prepare better for your OS qualify exam. Feel free to use that at YOUR OWN RISK.

Acknowledgement: some of the notes below borrow directly from Remzi, Andrea, Mike's lectures.


A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. Wiley Publishing, 2 most recent editions (currently 7 and 8), Chapters 1-12 (Introduction through Mass Storage)


  1. P. B. Hansen. The nucleus of a multiprogramming system. Commun. ACM, 13(4):238-241, 1970.
  2. D. M. Ritchie and K. Thompson. The unix time-sharing system. Commun. ACM, 17(7):365-375, 1974.
  3. W. Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, and F. Pollack. Hydra: the kernel of a multiprocessor operating system. Commun. ACM, 17(6):337-345, 1974.
  4. D. D. Redell, Y. K. Dalal, T. R. Horsley, H. C. Lauer, W. C. Lynch, P. R. McJones, H. G. Murray, and S. C. Purcell. Pilot: an operating system for a personal computer. Commun. ACM, 23(2):81-92, 1980.
  5. D. R. Engler, M. F. Kaashoek, and J. O'Toole, Jr. Exokernel: an operating system architecture for application-level resource management. In SOSP '95: Proceedings of the fifteenth ACM symposium on Operating systems principles, 1995. ACM.
  6. E. Bugnion, S. Devine, K. Govil, and M. Rosenblum. Disco: running commodity operating systems on scalable multiprocessors. ACM Trans. Comput. Syst., 15(4):412-447, 1997.
  7. D. Cheriton. The v distributed system. Commun. ACM, 31(3):314-333, 1988.

    Distributed Systems

  8. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558-565, 1978.
  9. K. M. Chandy and L. Lamport. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst., 3(1):63-75, 1985.
  10. A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. ACM Trans. Comput. Syst., 2(1):39-59, 1984.
  11. M. D. Schroeder, A. D. Birrell, and R. M. Needham. Experience with grapevine: the growth of a distributed system. ACM Trans. Comput. Syst., 2(1):3-23, 1984.
  12. M. L. Powell and B. P. Miller. Process migration in demos/mp. SIGOPS Oper. Syst. Rev., 17(5):110-119, 1983.
  13. T. J. LeBlanc and J. M. Mellor-Crummey. Debugging parallel programs with instant replay. IEEE Trans. Comput., 36(4):471-482, 1987.
  14. K. Petersen, M. J. Spreitzer, D. B. Terry, M. M. Theimer, and A. J. Demers. Flexible update propagation for weakly consistent replication. In SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principles, 1997. ACM.
  15. L. Lamport, R. Shostak, and M. Pease. The byzantine generals problem. ACM Trans. Program. Lang. Syst., 4(3):382-401, 1982.
  16. J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. In OSDI'04: Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, 2004. USENIX Association.
  17. G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: amazon's highly available key-value store. SIGOPS Oper. Syst. Rev., 41(6):205-220, 2007.
  18. I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In SIGCOMM '01: Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications, 2001. ACM.

    Memory Management

  19. R. C. Daley and J. B. Dennis. Virtual memory, processes, and sharing in multics. Commun. ACM, 11(5):306-312, 1968.
  20. R. W. Carr and J. L. Hennessy. Wsclock-a simple and effective algorithm for virtual memory management. SIGOPS Oper. Syst. Rev., 15(5):87-95, 1981.
  21. R. Rashid, A. Tevanian, M. Young, D. Golub, R. Baron, D. Black, W. Bolosky, and J. Chew. Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures. SIGARCH Comput. Archit. News, 15(5):31-39, 1987.
  22. J. Navarro, S. Iyer, P. Druschel, and A. Cox. Practical, transparent operating system support for superpages. In OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation, 2002. ACM.
  23. C. A. Waldspurger. Memory resource management in vmware esx server. SIGOPS Oper. Syst. Rev., 36(SI):181-194, 2002.

    Synchronization and Communication

  24. B. W. Lampson and D. D. Redell. Experience with processes and monitors in mesa. Commun. ACM, 23(2):105-117, 1980.
  25. B. N. Bershad, T. E. Anderson, E. D. Lazowska, and H. M. Levy. Lightweight remote procedure call. ACM Trans. Comput. Syst., 8(1):37-55, 1990.
  26. S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst., 15(4):391-411, 1997.
  27. P. E. McKenney, J. Appavoo, A. Kleen, O. Krieger, R. Russell, D. Sarma, and M. Soni. Read-copy update. In Ottawa Linux Symposium, July 2001.


  28. T. E. Anderson, B. N. Bershad, E. D. Lazowska, and H. M. Levy. Scheduler activations: effective kernel support for the user-level management of parallelism. In SOSP '91: Proceedings of the thirteenth ACM symposium on Operating systems principles, 1991. ACM.
  29. K. J. Duda and D. R. Cheriton. Borrowed-virtual-time (bvt) scheduling: supporting latency-sensitive threads in a general-purpose scheduler. SIGOPS Oper. Syst. Rev., 33(5):261-276, 1999.
  30. A. Adya, J. Howell, M. Theimer, W. J. Bolosky, and J. R. Douceur. Cooperative task management without manual stack management. In ATEC '02: Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference, 2002. USENIX Association.
  31. C. A. Waldspurger and W. E. Weihl. Lottery scheduling: flexible proportional-share resource management. In OSDI '94: Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation, 1994. USENIX Association.

    File Systems and Storage

  32. M. K. McKusick, W. N. Joy, S. J. Leffler, and R. S. Fabry. A fast file system for unix. ACM Trans. Comput. Syst., 2(3):181-197, 1984.
  33. M. Rosenblum and J. K. Ousterhout. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst., 10(1):26-52, 1992.
  34. J. H. Howard, M. L. Kazar, S. G. Menees, D. A. Nichols, M. Satyanarayanan, R. N. Sidebotham, and M. J. West. Scale and performance in a distributed file system. ACM Trans. Comput. Syst., 6(1):51-81, 1988.
  35. S. Ghemawat, H. Gobioff, and S.-T. Leung. The google file system. SIGOPS Oper. Syst. Rev., 37(5):29-43, 2003.
  36. J. Wilkes, R. Golding, C. Staelin, and T. Sullivan. The hp autoraid hierarchical storage system. ACM Trans. Comput. Syst., 14(1):108-136, 1996.
  37. R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh, and B. Lyon. Design and implementation of the sun network filesystem. In Proceedings of USENIX Summer Techincal Conference, 1985.

    Protection and Security

  38. R. M. Needham and M. D. Schroeder. Using encryption for authentication in large networks of computers. Commun. ACM, 21(12):993-999, 1978.
  39. J. G. Steiner, C. Neuman, and J. I. Schiller. Kerberos: An authentication service for open network systems. In USENIX 1988, Feb. 1988.
  40. P. Karger, M. Zurko, D. Bonin, A. Mason, and C. Kahn. A vmm security kernel for the vax architecture. In Proceedings of the IEEE Computer Society Symposium on Security and Privacy, may 1990.
  41. J. Saltzer and M. Schroeder. The protection of information in computer systems. Proceedings of the IEEE, 63(9):1278- 1308, Sept. 1975.

    Fault Tolerance and Reliability

  42. J. Gray and D. P. Siewiorek. High-availability computer systems. Computer, 24(9):39-48, 1991.
  43. M. M. Swift, B. N. Bershad, and H. M. Levy. Improving the reliability of commodity operating systems. In SOSP '03: Proceedings of the nineteenth ACM symposium on Operating systems principles, 2003. ACM.
  44. N. P. Kronenberg, H. M. Levy, and W. D. Strecker. Vaxcluster: a closely-coupled distributed system. ACM Trans. Comput. Syst., 4(2):130-146, 1986.
  45. R. Wahbe, S. Lucco, T. E. Anderson, and S. L. Graham. Efficient software-based fault isolation. In SOSP '93: Proceedings of the fourteenth ACM symposium on Operating systems principles, 1993. ACM.
  46. D. Engler, D. Y. Chen, S. Hallem, A. Chou, and B. Chelf. Bugs as deviant behavior: a general approach to inferring errors in systems code. SIGOPS Oper. Syst. Rev., 35(5):57-72, 2001.
  47. F. Qin, J. Tucek, J. Sundaresan, and Y. Zhou. Rx: treating bugs as allergies-a safe method to survive software failures. In SOSP '05: Proceedings of the twentieth ACM symposium on Operating systems principles, 2005. ACM.

    Experience Reports

  48. J. H. Saltzer, D. P. Reed, and D. D. Clark. End-to-end arguments in system design. ACM Trans. Comput. Syst., 2(4):277-288, 1984.
  49. B. W. Lampson. Hints for computer system design. SIGOPS Oper. Syst. Rev., 17(5):33-48, 1983.
  50. H. C. Lauer. Observations on the development of an operating system. In SOSP '81: Proceedings of the eighth ACM symposium on Operating systems principles, 1981, ACM.

Last modified: 2011 Jan