CS 6210
Advanced Operating
Systems
Spring 2003
Instructor: Dr. Karsten Schwan ( schwan@cc
)
Office: CoC Building, Room 216.
Office Hours: Fri. 3-4, Wed 11-11:30, or by appointment.
TA: Raj Krishnamurthy ( rk@cc)
Office: CoC Building, Room 353.
Office Hours: By appointment only.
email: emails without "[6210]" in the subject will receive delayed
attention.
Newsgroup: git.cc.class.cs6210
|
Midterm: Feb 21, 2003 Friday Class hours
Lecture Slides by Dr. Greg Eisenhauer
Spin, SystemR
(big,
takes a while to load)
Other Lecture Slides
Subcontracts,
Web
Services
Computing Resources:
EDHPC
and their hostnames are here
Machine Reservations: edhpc-lab@cc.gatech.edu
|
Course Description
CS 6210 (Advanced 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 . Students 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. Some papers
are marked reading only . These papers will cover topics
that extend or supplement the material in papers that are covered in class.
Students will be expected to have some understanding of the results in
these papers but will not be tested on them.
Prerequisites
-
CS4210 or equivalent undergraduate OS course.
-
Good knowledge of Unix and C programming.
-
CS4210's prerequisites or equivalents.
Grading
10% class participation / abstracts
35% projects & homework
25% midterm
30% final
Abstracts
Students must submit written abstracts for at least 80% of the papers
presented in class . These abstracts must summarize the main points
of the paper, including what you learned or found of interest in the paper,
or how the paper relates to other materials studied in class. Each abstract
must end with a 2-3 sentence critical analysis ("why was this paper
interesting or otherwise"). The abstract is usually 1-2 paragraphs
in length. Papers indicated as self study or reading
only are not considered "papers presented in class". Please
include "[6210]" in the subject for all other email questions.
Abstracts are due before the paper's presentation in class,
and should be placed in the class project directory [/net/hc280/class/cs6210/~coc_account].
You should see a link in your home directory. Create a directory called
"abstract". Name your abstract as "<first_author_last_name> .
<paper_id>". <paper_id> is the sequence number of the paper presented
in class. Make sure you write the title of the whole paper and author list
in the text abstract. The abstract should be simple ascii text. For example,
the name of the
first abstract should be engler.1 . You may constantly
update the abstracts - after the lecture class, when you study for the
midterm,
final etc. If you do so, annotate the abstract with a date/time stamp.
This will be useful for systems and architecture students who can
retain these notes for the systems and architecture qualifier exams.
This will also help the TA grade the abstracts.
Assume that one paper will be covered each class period, starting with
the Exokernel paper on 1/8/03. The instructor will confirm the "next paper"
at the end of each class period -- if he forgets, please remind him to
clarify.
Projects & Homework
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 assigned projects or they can choose
to define a project that fits more closely with their individual research
goals. Homework may also be assigned. Check here for updates!. You will
place individual projects in [/net/hc280/class/cs6210/~coc_account] under
a directory called projects. Group projects have a separate directory for
submission under
[/net/hc280/class/cs6210/] called "groups".
Syllabus
Papers or references that are not available online will
be handed out by instructor, or will be available outside instructors door.
Optional supplimentary reference texts include the following:
-
Operating Systems
Concepts , Silberschatz and Galvin.
-
OS: Advanced Concepts , Maekawa, Oldehoeft. Addison-Wesley.
-
"Distributed Systems", Sape Mullender, Addison-Wesley.
-
"Distributed Operating Systems", Andrew S. Tanenbaum, Prentice Hall.
-
"An Introduction to Programming
with Threads" , Andrew Burrell.
-
Multithreaded Programming with Pthreads, Chapter 4, Bil Lewis, Daniel
J. Berg. (handout).
Basics
-
Course overview and assumptions, which include basics of operating system
structure, micro-kernels, user- and kernel-level threads, synchronization,
deadlock detection and avoidance. Refer to Operating System Concepts
, Silberschatz and Galvin, and Multithreaded Programming with Pthreads,
Chapter 4 ( handout ).
OS Structures
-
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.
-
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.
-
J. Liedtke, "
On Micro-Kernel Construction ", Proceedings of the 15th ACM Symposium
on Operating System Principles, ACM, December 1995.
Shared Memory Systems
-
Anderson, T.E., " "The Performance of Spin
Lock Alternatives for Shared-Memory Multiprocessors ", IEEE Transactions
on Parallel and Distributed Systems, 1, 1, pgs. 6-16, January 1990. (mostly
self
study , no abstract due )
-
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 (self-study,
no abstract due).
-
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.
-
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. (reference only
)
-
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.
From Parallel to Distributed Systems: Communication
Mechanisms
-
Basics on message passing and communication protocols. Refer to Operating
System Concepts, Silberschatz and Galvin. Also refer to the web pages
of the CoC networking courses.
-
Birrell and Nelson, "
Implementing Remote Procedure Calls ", ACM Transactions on Computer
Systems, 2, 1, pgs. 39-59, February 1984. (mostly self study).
Also refer to Operating System Concepts, Silberschatz and Galvin.
Abstract
due for either this paper or the next, but not both. Will be covered
in the same class period.
-
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. (mostly self
study ) Abstract due for either
this paper or the last, but not both. Will be covered in the same
class period.
-
Birrell, A.D., "
Secure Communication Using Remote Procedure Calls ", ACM Transactions
on Computer Systems, 3,1, pgs. 1-14, February 1985. (reference only).
-
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.
High Performance Communications
-
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.
-
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.
-
David Wetherall, ``
Active Networks: Vision and Reality: Lessons from a Capsule-based System'
', 17th ACM Symposium on Operating System Principles, OS Review, Volume
33, Number 5, Dec. 1999.
-
Liu, Kreitz, van Renesse, Hickey, Hayden, Birman, Constable, ``
Building Reliable High Performance Communication Systems from Components
'', 17th ACM Symposium on Operating System Principles, OS Review, Volume
33, Number 5, Dec. 1999.
Midterm Exam
Example Midterm 1
Example Midterm 2
Example Midterm 3
Distributed Systems: Concepts
-
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.
-
Lamport, L., "
Time, Clocks, and the Ordering of Events in a Distributed System ",
Communications of the ACM, 21, 7, pgs. 558-565, July 1978.
Distributed Systems: File Systems and Distributed Shared
Memory
-
SUN NFS, Locus, and Sprite - from Operating System Concepts , Silberschatz
and Galvin. (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. (self study )
-
Anderson, T. etc. all., "
Serverless Network File System" , ACM Transpaction on Computer Systems,
February 1996.
-
M. Satyanarayanan, ``Integrating
Security in Large Scale Distributed Systems '', ACM TOCS, Aug. 1989.
-
Feeley, Morgan, Pighin, Karlin, Levy, 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 (self-study).
Multimedia, Real-Time, and Web Services
-
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. (Partial
Reading.)
-
Shahabi, Zimmermann, Fu, and Yao. "Yima:
A Second-Generation Continuous Media Server", IEEE Computer Magazine,
June 2002.
-
Bolosky, Fitzgerald, and Douceur. "Distributed
Schedule Management in the Tiger Video Fileserver" In Proceedings
of the 16th ACM Symposium on Operating Systems Principles, Oct. 1997.
-
Michael B. Jones, Daniela Rosu and Marcel Rosu, "CPU
Reservations and Time Constraints: Efficient, Predictable Scheduling of
Independent Activities, " Proceedings of the 16th ACM Symposium on
Operating Systems Principles (SOSP '97), St. Malo, France, 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. (Reference only.)
-
Saito, Bershad, Levy, "Manageability,
Availability, and Performance in Porcupine: A Highly Scalable Cluster-based
Mail Service'' , 17th ACM Symposium on Operating System Principles,
OS Review, Volume 33, Number 5, Dec. 1999.
-
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 .
-
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.
Distributed Systems: Failures, Consistency and Recovery
-
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, handout).
-
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.
-
David E. Lowell and Peter M. Chen, "
Free Transactions With Rio Vista" , Proceedings of the Sixteenth ACM
Symposium on Operating System Principles, October 1997. (no abstract
due)
-
J. N. Gray, P. McJones, M. W. Blasgen, R. A. Lorie, T. G. Price, G. R.
Putzolu, and I. L. Traiger.
"The Recovery
Manager of a Data Management System" , ACM Computing Surveys, Vol.
13, No. 2, June 1981, pp. 223-242.
Protection, Object-based Systems and Object Technologies
-
Linden, T.A., " Operating
System Structures to Support Security and Reliable Software ", Computer
Surveys, 8, 4, pgs. 409-445, 1976. Also refer to Operating System Concepts
, Silberschatz and Galvin, the chapter on protection.
(reference
only)
-
Saltzer, J.H., ``Protection and the Control
of Information Sharing in Multics '', Communications of the ACM, 17,
7, 1974. (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. (handout)
-
Mitchell, J. G., et al., "
An Overview of the Spring System ", Proceedings of Compcon, Feb. 1994.
-
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.
-
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)
-
Jason Maassen, Rob van Nieuwpoort, Ronald Veldema, Henri Bal, Thilo Kielmann,
Ceriel Jacobs, Rutger Hofman, "
Efficient Java RMI for Parallel Programming" , Vrije Universiteit Amsterdam,
Faculty of Sciences, March 2000.
-
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)
-
Curbera, F.; Duftler, M.; Khalaf, R.; Nagy, W.; Mukhi, N.; Weerawarana,
S., "Unraveling the Web services web: an
introduction to SOAP, WSDL, and UDDI" , IEEE Internet Computing , Volume:
6 Issue: 2 , March-April 2002, Page(s): 86 -93.
-
Govindaraju, M.; Slominski, A.; Choppella, V.; Bramley, R.; Gannon, D.,
"Requirements
for and evaluation of RMI protocols for scientific computing" , Conference
on High Performance Networking and Computing, Proceedings of the 2000 conference
on Supercomputing, Dallas, Texas, USA.
Final Exam
Graduating students will be given the final examination in
dead week. Consult the instructor for details.
Example Final 1
Example Final 2