CS6210 - Advanced Operating Systems

Fall 1999

Instructor: Karsten Schwan (schwan@cc)
Office: 216 CoC Bldg.
Office hrs.: M 1-2, F 1-2, or by appointment

TA: Vernard Martin (vernard@cc)
Office: 226D CoC Bldg.
Office hours: Tu 1-2, Th 1-2 in CoC commons



Course Description

CS6420 (Operating Systems) a graduate level course that covers in detail many advanced topics in operating system design and implementation. There is no textbook for this course. Rather, we will read and discuss a number of important research papers which have been published. For each paper, students are expected to understand the problem that is addressed by the paper, and what the solution is.



Projects/Homeworks



Course Outline

Basics

  1. Course overview and assumptions, which include basics of operating system structure, micro-kernels, user- and kernel-level threads, synchronization, deadlock detection and avoidance - see Silberschatz/Galvin, Operating System Concepts. Also see Cthreads paper (class project).
OS Structures
  1. Brian Bershad et al., "Extensibility, Safety and Performance in the SPIN Operating System", Proceedings of the 15th ACM Symposium on Operating System Principles, December 1995.
  2. Dawson R. Engler, Frans Kaashoek and James O'Toole, "Exokernel: An Operating System Architecture for Application-Level Resource Management", Proceedings of the 15th ACM Symposium on Operating System Principles, ACM, December 1995.
  3. J. Liedtke, "On Micro-Kernel Construction", Proceedings of the 15th ACM Symposium on Operating System Principles, ACM, December 1995.
Shared Memory Systems
  1. Engler, D.R., Andrews, G.R., Lowenthal, D.K., "Filaments: Efficient Support for Fine-Grain Parallelism", The Univ. of Arizona, Department of Computer Science, TR 93-13a, February 1994.
  2. Anderson, T.E., "The Performance Implications of Spin-Waiting Alternatives for Shared-Memory Multiprocessors", IEEE Transactions on Parallel and Distributed Systems, 1, 1, pgs. 6-16, January 1990. (mostly self-study)
  3. Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M., "User Level Interprocess Communication for Shared Memory Multiprocessor", ACM Transactions on Computer Systems, 9, 2, pgs. 175-198, May 1991. (mostly self-study)
  4. Draves, R.P., Bershad, B.N., Rashid, R.F. and Dean, R.W., "Using Continuations to Implement Thread Management and Communication in Operating Systems", Proceedings of the Thirteenth ACM Symposium on Operating System Principles, pgs. 122-136, December 1991.
  5. T.E. Anderson, B.D. Bershad, E. Lazowska, and H. Levy, "Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism", Proceedings of the Thirteenth ACM Symposium on Operating System Principles, pgs. 95-109, December 1991. (mostly self-study)
  6. M.S. Squillante and E.D. Lazowska, "Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling", IEEE Transactions on Parallel and Distributed Systems, Feb. 1993, pgs. 131-143.
  7. Mellor-Crummey, J. M. and Scott, M., "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors", ACM Transactions on Computer Systems, Feb. 1991.
From Parallel to Distributed Systems: Communication Mechanisms:
  1. Basics on message passing and communication protocols (refer to networking courses and to Peterson/Galvin).
  2. Birrell and Nelson, "Implementing Remote Procedure Calls", ACM Transactions on Computer Systems, 2, 1, pgs. 39-59, February 1984 (mostly self-study, also see Silberschatz/Galvin).
  3. Birrell, A.D., "Secure Communication Using Remote Procedure Calls", ACM Transactions on Computer Systems, 3,1, pgs. 1-14, February 1985 (self-study).
  4. Schroeder, M., and Burrows, M., "Performance of the Firefly RPC", Proceedings of the Twelfth ACM Symposium on Operating Systems Principles, pgs. 83-90, December 1989.
  5. Wallach, D.A., Hsieh, W.C., Johnson, K.K., Kaashoek, M.F., and Weihl, W.E., "Optimistic Active Messages: A Mechanism for Scheduling Communication with Computation", Proceedings of ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP), pgs. 217-225, July 1995.

Advanced Topics in Communications

  1. Clark, D.D., "The Structuring of Systems Using Upcalls", Proceedings of Tenth ACM Symposium on Operating Systems Principles, pgs 171-180, Dec. 19885. (self-study, to understand implications of layering)
  2. Hutchinson, N.C., Peterson, L.L., "The x-Kernel: An Architecture for Implementing Network Protocols", IEEE Transactions on Software Engineering, 17, 1, pgs. 64-76, January 1991.
  3. C.A. Thekkath and H.M. Levy, "Limits to Low-Latency Communications on High-Speed Networks", ACM Transactions on Computer Systems, May 1993.
  4. Marcel-Catalin Rosu, Karsten Schwan, and Richard Fujimoto,"Supporting Parallel Applications on Clusters of Workstations", Cluster Computing, Baltzer Science Publishers, May 1998.
  5. John Hartman, Larry Peterson, Andy Bavier, Peter Bigot, Patrick Bridges, Brady Montz, Rob Piltz, Todd Proebsting, and Oliver Spatscheck "Joust: A Platform for Liquid Software". IEEE Computer (1999)
  6. "CCL: A portable and tunable Collective Communication Library for scalable parallel computers", V. Bala, et.al, in IEEE Transactions on Parallel and Distributed Systems, Vol 6, No 2, Feb 1995.
Midterm