CS6420 - Operating Systems

Instructor

George Riley
Office: GCATT 225
Office hours: M/W/F 10:30 - 11:30in CoC 215
Email: riley@cc.gatech.edu

Course Summary

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. In many cases, understanding the problem is as important as understanding the solution.

For this course, we will have one simple programming project and two fairly difficult programming projects, requiring an implementaion of some aspect of operating system design using the "C" programming language. Students are expected to be fairly competent in "C", although the instructor and/or the TA can assist with diffuculties in debugging the projects.

There will be no homework assignments. There will be required reading for each class, as outlined in the syllabus below. Between reading papers and programming projects, I did not feel that other homework would be beneficial.


Teaching Philosophy

The syllabus gives the paper to be read and discussed for each class period, and the students are expected to have read the paper prior to class. The class lectures will cover briefly the information presented in the paper, and then we will discuss in detail why things are done in certain ways. I encourage (and expect) you to participate actively in the learning process. In particular, I welcome your comments and questions as we cover material in class. One-way lectures quickly becoming boring, both for you and for me. Also, I have found that students often learn more from other students comments than from the instructor! By asking lots of questions, your understanding of the material will be deepened signficantly, and the course will be much more fun!

Students are also encouraged to help each other via postings on the class newsgroup git.cc.class.6420. If you have difficulty understanding a particular programming assignment or getting some aspect of the programming assignment working, post a newsgroup message. However, there is a fine line between helping someone and doing their work for them. I will read the newsgroup regularly, and if I feel a student has ``stepped over the line'' in helping, I'll let you know.


Teaching/Learning Goals

The purpose of this course is for you to understand the fundamentals of what is happening in a modern operating system when you as a computer user ask the computer to do something for you. Very few of us will actually design or implement an operating system in our careers, but all of us will use a computer frequently, and often things will not work as we expect. A good solid understanding of what is going on inside the computer when your application is misbehaving will enable us to more easily determine what the problem is and what to do about it.

Textbook

None.

Getting Help

There will a teaching assistant for this course. He will do all grading of programming projects, and should be your first point of contact when you have questions about projects or grading. The instructor will be available during office hours (and other times by appointment) to help out as well.


Grading

Project 1 5%
Project 2 20%
Project 3 20%
Midterm 25%
Final 25%
Class Participation 5%
Total 100%





Posting of Grades

Each student will be assigned an anonymous identifier number, which will be used to post grades on this web page. Thus, you can see how you are doing relative to the other students, and you will be able to determine if you need additional help or effort in the class.

Syllabus

This syllabus is very tentative, and will certainly change over time.
Day Month Date Topic Reading
Mon Jun 21 Shared Memory Systems Mellor-Crummey, J. M. and Scott, M.,
``Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors",
Pages 1-18, ACM Transactions on Computer Systems, Feb. 1991.



Project 1 Assigned
Wed Jun 23 Shared Memory Systems Mellor-Crummey, J. M. and Scott, M.,
``Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors",
Pages 1-18, ACM Transactions on Computer Systems, Feb. 1991.
Fri Jun 25 Shared Memory Systems 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.
Mon Jun 28 Shared Memory Systems 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.
Wed Jun 30 Shared Memory Systems 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.



Project 1 Due



Project 2 Assigned
Fri Jul 2 Shared Memory Systems 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.



Post-Mortem on Program 1 and Overview of Program 2
Mon Jul 5 HOLIDAY!
Wed Jul 7 Distributed Systems (Communication) Basics on message passing and communication protocols (Silberschatz/Galvin textbook and Tenenbaum textbook).
Wed Jul 7 Distributed Systems (Communication) Birrell and Nelson,
"Implementing Remote Procedure Calls"
ACM Transactions on Computer Systems, 2, 1, pgs. 39-59.
Fri Jul 9 Distributed Systems (Communication) Birrell, A.D.,
"Secure Communication Using Remote Procedure Calls",
ACM Transactions on Computer Systems, 3,1, pgs. 1-14, February 1985
Mon Jul 12 Distributed Systems (Communication) Von Eicken et. al
Active Messages: A Mechanism for Integrated Communication and Computation"



Distributed Systems (Communication) 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.
WedJul14 Distributed Systems (Communication) 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.
Thu Jul 15 Project 2 DUE BEFORE 11:59 PM
Fri Jul 16 Midterm Exam
MonJul19 Distributed Systems (Communication) 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.
Mon Jul 19 File Systems Anderson, T. et. al.,
Serverless Network File System,
ACM Transactions on Computer Systems, February 1996.



Midterm Answer Key Midterm Post-Mortem



Project 3 Assigned
WedJul21 File Systems Anderson, T. et. al.,
Serverless Network File System,
ACM Transactions on Computer Systems, February 1996.
FriJul23
Mon Jul26 Distributed Systems (Concepts) Lamport, L.,
``Time, Clocks, and the Ordering of Events in a Distributed System",
Communications of the ACM, 21, 7, pgs. 558-565, July 1978.
WedJul28 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.
Memory Management Freeley et. al.
``Implementing Global Memory Management in a Workstation Cluster'',
Fifteenth ACM Symposium on Operating System Principles, Dec. 1995.
FriJul30 File Systems 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, pP. 81-94, December 1991
Mon Aug 2 Distributed Systems: Failures, Consistency and Recovery Satyanarayanan, M., et al.,
``Lightweight Recoverable Virtual Memory''
The Proceedings of Fourteenth ACM Symposium on Operating System Principles, pgs. 146-160, December 1993.
Wed Aug 4 Distributed Systems: Failures, Consistency and Recovery David E. Lowell and Peter M. Chen,
``Free Transactions With Rio Vista'',
Proceedings of the Sixteenth ACM Symposium on Operating System Principles, October 1997.
Thu Aug 5 Project 3 DUE BEFORE 11:59 PM
Fri Aug 6 Final Exam Review
SatAug7 Final Exam, 2:50pm - 5:40pm

Grades

Student ID (anonymous) Prog 1 Prog 2 Prog 3 Participation MidTerm Final Grade % Grade Letter
0190991005938493.6A
0285100905817887.0B
039098955958994.1A
041001001005927591.8A
05951001005758890.5A
061001001005867790.8A
071001001004608284.5B
081001001005746885.5B
09100981001787383.4B
101001001005608185.3B
110000000.00
120001001.00
131001001000717381.0B
141001001000575673.3C
15951001005797588.3B
161001001001908990.8A
17901001005815282.8B
181001001005878793.5A
1985100955909193.5A
20100100975777286.7B
210000000.00
221001001005898794.0A
230000000.00
241001001004707284.5B
251001001000818586.5B
26100981005898693.4A
271001001005537682.3B
280005005.00
291001001005969397.3A
301001001005868292.0A
318099903716979.8B
321001001005705481.0B
33901001005818490.8A
3410010010059810099.5A
350000000.00
360000000.00
371001001005928293.5A
38100100905707885.0B
3995100405638173.8C
40100100805706479.5B

Contact Information:

riley@cc.gatech.edu
College of Computing
Georgia Institute of Technology
Atlanta, GA 30332-0280

Last Modified: Jun 18, 1998