CS6210 - Advanced Operating Systems
Spring 2000
Instructor: Mustaque Ahamad ( mustaq@cc
)
Office: 220 CoC Bldg.
Office hrs.: TTh 1-2, or by appointment.
TA: Hao Wu( wh@cc )
Office: CCB 334 (5-1335)
Office hours: MF 11am-12:30 (Common Area)
Newsgroup: git.cc.class.cs6210
Course Description
CS6210 (Operating Systems) is a graduate level course that covers in
detail many advanced topics in operating system design and implementation.
It starts with topics such as operating systems structuring, multithreading
and synchronization and then moves on to systems issues in parallel and
distributed computing systems. 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 that is covered in class, students are expected
to gain a solid understanding of the problem that is addressed by the paper,
and the solution proposed by the authors. Some papers will
be assigned for self study. You must carefully read the self study
papers because the understanding of their content may be essential for
the papers that will be covered in class. Reading only papers will cover
topics that extend or supplement the material in papers that are
covered in class. The students will be expected to have some understanding
of the results in these papers but they will not be tested on these
papers.
Projects/Homeworks
This course is project intensive and will have a sequence of four
projects. Strong programming skills are absolutely essential for completing
these projects. Students can either do the projects that will be assigned
by the instructor or they can choose to define one that has a better fit
with their research goals. See the last section of the handout for
information about projects that can be defined by students.
Course Outline
Basics
(1/11/00)
-
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.
OS
Structures (1/13-1/18)
-
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.
-
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.
-
J. Liedtke, "On Micro-Kernel
Construction", Proceedings of the 15th ACM Symposium on Operating System
Principles, ACM, December 1995.
Shared
Memory Systems (1/20-2/3, no class on 1/25)
-
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.
-
Mellor-Crummey, J. M. and Scott, M., "Algorithms
for Scalable Synchronization on Shared-Memory Multiprocessors", ACM
Transactions on Computer Systems, Feb. 1991.
-
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.
-
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.
-
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.
-
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. (reading only)
From
Parallel to Distributed Systems: Communication Mechanisms (2/8-2/17)
-
Basics on message passing and communication protocols (refer to networking
courses and to Peterson/Galvin).
-
Birrell and Nelson, "Implementing Remote Procedure Calls", ACM Transactions
on Computer Systems, 2, 1, pgs. 39-59, February 1984 (mostly self-study,
a brief overview will be presented in class, also see Silberschatz/Galvin).
-
Birrell, A.D., "Secure Communication Using Remote Procedure Calls", ACM
Transactions on Computer Systems, 3,1, pgs. 1-14, February 1985.
-
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.
-
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 (2/22-2/24)
-
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).
-
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.
-
C.A. Thekkath and H.M. Levy, "Limits to Low-Latency Communications on High-Speed
Networks", ACM Transactions on Computer Systems, May 1993.
-
Marcel-Catalin Rosu, Karsten Schwan, and Richard Fujimoto,"Supporting
Parallel Applications on Clusters of Workstations", Cluster Computing,
Baltzer Science Publishers, May 1998.
-
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)
-
"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. (reading only)
Review
(2/29)
Midterm exam in class (3/2)
Distributed
Systems: Concepts (3/14-3/16)
-
Lamport, L., "Time, Clocks, and the Ordering of Events in a Distributed
System", Communications of the ACM, 21, 7, pgs. 558-565, July 1978.
-
Ricart, G. and Agrawala, A.K., "An Optimal Algorithm for Mutual Exclusion
in Computer Networks", Communication of the ACM, 24, 1, pgs. 9-17, January
1981.
Distributed
Systems: File Systems and Distributed Shared Memory (3/21-3/28)
-
The SUN NFS, Locus, and Sprite - Silberschatz/Galvin, "Operating System
Concepts". (self study).
-
Nelson, M.N., Wlech, B.B., Ousterhout, J.K., "Caching in the Sprite Network
File System", ACM Transactions on Computer Systems, 6, 1, pgs. 134-154,
February 1988. Available
here.
-
Anderson, T. etc. all., "Serverless Network File System", ACM Transpaction
on Computer Systems, February 1996. Available
here.
-
Karlin, A.R., Levy, H.M., and Thekkath, "Implementing Global Memory Management
in a Workstation Cluster", Fifteenth ACM Symposium on Operating System
Principles, Dec. 1995.
-
C. Amza, A. Cox, S Dwarkadas, P Keleher, H Lu, R. Rajamony, W. Yu and W.
Zwaenepoel, ``TreadMarks: Shared Memory Computing on Networks of Workstations,''
IEEE Computer, February, 1996.
Distributed
Systems: Failures, Consistency and Recovery (4/11-4/13)
-
Walker et all., "The LOCUS Distributed Operating System," Procedings of
the Ninth ACM Symposium on OPeraitng Systems Principles, pgs 49-70, December
1983 (self study).
-
R. Haskin et. al., "Recovery Management in QuickSilver", ACM Transactions
on Computer Systems, February 1988.
-
Satyanarayanan, M., et al., "Lightweight Recoverable Virtual Memory", The
Proceedings of Fourteenth ACM Symposium on Operating System Principles,
pgs. 146-160, December 1993 (self-study).
-
David E. Lowell and Peter M. Chen, "Free Transactions
With Rio Vista", Proceedings of the Sixteenth ACM Symposium on Operating
System Principles, October 1997.
Multimedia,
Real-Time, and Web Services (3/30-4/6)
-
Rangan, P.V. and Vin, H.M., "Designing File Systems for Digital Video and
Audio", Proceedings of the Thirteenth ACM Symposium on Operating System
Principles, pgs. 81-94, December 1991 (self-study).
-
D. James Gemmell, Harrick M. Vin, Dilip D. Kandlur, P. Venkat Rangan, and
Lawrence A. Rowe, "Multimedia
Storage Servers: A Tutorial", IEEE Computer, May 1995.
-
Henry Massalin and Calton Pu, "Threads and Input/Output in the Synthesis
Kernel", ACM 12th Symposium on Operating Systems Principles, Dec. 1989.
-
Armando Fox, Steven Gribble, Yatin Chawathe, Eric Brewer, and Paul Gauthier,
"Cluster-based
Scalable Network Services", Sixteenth ACM Symposium on Operating System
Principles, Oct. 1997.
-
Erik Riedel, Garth Gibson, Christos Faloutsos, "Active
Storage For Large-Scale Data Mining and Multimedia," Proc. of the 24th
International Conference on Very large Databases (VLDB '98), New York,
New York, August 24-27, 1998.
-
Clark and Zhang, "Supporting Real-time Applications in an Integrated Services
Packet Network: Architecture and Mechanism", ACM SIGCOMM, 1992.
-
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger and Deborah A. Wallach,
"Server Operating
Systems," 7th SIGOPS European workshop: Systems suppport for worldwide
applications, Connemara, Ireland, September 1996.
Protection,
Object-based Systems and Object Technologies (4/18-4/25)
-
Linden, T.A., "Operating System Structures to Support Security and Reliable
Software", Computer Surveys, 8, 4, pgs. 409-445, 1976. Also see chapter
on protection in Silberschatz/Galvin, Operating System Concepts.
(reference only).
-
Cohen, E., and Jefferson, D., "Protection in the HYDRA Operating System",
Proceedings of Fifth ACM Symposium on Operating System Principles, pgs.
141-160, 1975.
-
Mitchell, J. G., et al., "An
Overview of the Spring System". (self study)
-
Hamilton, G., Powell, M.L., and Mitchell, J.J., "Subcontract:
A Flexible Base for Distributed Programming", Proceedings of the Fourteenth
ACM SOSP, pgs. 69-79, December 1993.
-
Birrell, A., Nelson, G., Owicki, S., and Wobber, E., "Network
Objects", Digital, SRC Research Report No. 115, Dec. 1995.
-
Wollrath, A., Riggs, R., and Waldo, J., "A Distributed Object Model for
the Java System", Usenix Conference on Object Oriented Technologies and
Systems, May 1996. (reading only)
-
Aldrich, Dooley, et al., "Providing Easier
Access to Remote Objects in Client-Server Systems," 31th Hawaii International
Conference on System Sciences in January, 1998. (reading only)
Advanced
Topics in Object Systems: Representations (4/27)
-
Christian Clemencon, Karsten Schwan, and Bodhi Mukherjee, "Distributed
Shared Abstractions (DSA) on Large-Scale Multiprocessors", IEEE Transactions
on Software Engineering, February 1996.
-
M. Ahamad and R. Kordale, "Scalable Consistency Protocols for Distributed
Services," IEEE Transactions on Parallel and Distributed Systems, 1999.
-
Ahmed Gheith and Karsten Schwan, "CHAOS-Arc -- Kernel Support for Atomic
Transactions in Real-Time Applications", ACM Transactions on Computer Systems,
April 1993.
Other Information
-
Text: Papers available online (via the links above) or from instructor.
-
Supplementary Materials: Operating System Textbook used in GT OS undergraduate
courses: Operating System Concepts, Silberschatz and Galvin; Advanced
Operating Systems text: OS: Advanced Concepts, Maekawa, Oldehoeft.
Addison-Wesley. "Distributed Systems", Sape Mullender, Addison-Wesley.
"Distributed Operating Systems", Andrew S. Tanenbaum, Prentice Hall.
-
Prerequisites: CS 3431/4431 and its prerequisites or equivalent.
-
Homeworks and projects will be posted on the course web page. Information
related to the course that is of general interest can also be posted in
the course newsgroup git.cc.class.6210.
-
Graduating students will be given the final examination in dead week. Consult
the instructor for details.
Grading
45% project/homework (5% for project 1, 10% each for projects 2, 3,
and 4, 10% for two homeworks)
25% midterm
25% final
5% class participation
Instructions for Special Projects
To propose a special project for this class, I would like from you the
following materials:
Brief Project Description
-
purpose of project
-
expected outcome/results
-
at least three different intermediate project steps, with delivery iitems
and deadlines for each
-
final project deadline sometime during the week before finals
The first step is often background work, such as producing a bibliography
of relevant papers and having read them and having designed suitable algorithms/approaches.
The second step, typically around midterm time, is having produced much
of the software necessary, and having debugged it.
The third step must include not only software testing but also
performance evaluation, on whatever platform you choose to use.
The final deliverable not only includes the actual software but also
a report, which is outlined next.
Final Report
You are asked to submit an on-line final report regarding your special
project that consists of the following parts:
-
A statement of your approach to the project and the technique used to solve
it - two typewritten pages minimum, 8 pages maximum, including a list of
references to related work.
-
If applicable, a running program with sufficient documentation so that
someone can understand your program without re-running it. Such documentation
should consist of detailed comments within the program text and of
explanations on a separate piece of paper. You should be prepared to hand
in your program electronically, if requested. Most likely, you will simply
schedule a demo with me. (please do so!)
-
A conclusion, stating the main results of your work. This conclusion might
contain a performance evaluation of your program or a list of next st.ps
concerning it (what might be interesting to do next). How it should be
extended, what should be done to make it more useful. Maximum 4 pages,
minimum 2 pages.
-
A one page evaluation of what you did: its usefulness in the context of
other work AND in the context of general research (namely, why did you
do this and why was or wasn't it worthwhile doing?)
-
A one page discussion relating the work you did to the topics we studied
in class. Comment on what papers in class relate to what you did
or to extensions of what you did, if applicable.