CS6420 - Operating Systems

Instructor

George Riley
Office: GCATT 225
Office hours: M/W/F 12:00 - 1:00 in CoC 136
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!

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.


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.

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.


Grading

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

Syllabus

This syllabus is very tentative, and will certainly change over time. % Removed multimedia storage servers, a tutorial..try to fit back in...
Day Month Date Topic Reading
Wed Jun 24 Shared Memory Systems Mellor-Crummey, J. M. and Scott, M.,
``Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors",
Pages 1-10, ACM Transactions on Computer Systems, Feb. 1991.
Fri Jun 26 Shared Memory Systems Mellor-Crummey, J. M. and Scott, M.,
Pages 10-18, ACM Transactions on Computer Systems, Feb. 1991.



Project 1 Assigned
Mon Jun 29 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.
Wed Jul 1 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.
Fri Jul 3 Holiday
Mon Jul 6 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.



Project 1 Due



Project 2 Assigned
Wed Jul 8 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.
Fri Jul 10 Post-Mortem on Program 1 and Overview of Program 2



Project 2 Design Report DUE
Mon Jul 13 Distributed Systems (Communication) Basics on message passing and communication protocols (Silberschatz/Galvin textbook and Tenenbaum textbook).
Wed Jul 15 Distributed Systems (Communication) Birrell and Nelson,
"Implementing Remote Procedure Calls"
ACM Transactions on Computer Systems, 2, 1, pgs. 39-59.
Fri Jul 17 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 20 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.
Tue Jul 21 Project 2 DUE BEFORE 11:59 PM
Wed Jul 22 Midterm
Fri Jul 24 Midterm Answer Key Midterm Post-Mortem



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 27 Distributed Systems (Communication) x-Kernel, continued
Wed Jul 29 Distributed Systems (Communication) x-Kernel, continued



Project 3 Assigned
Fri Jul 31 File Systems Anderson, T. et. al.,
Serverless Network File System,
ACM Transactions on Computer Systems, February 1996.
Mon Aug 3 Distributed Systems (Communication) Clark, D.D.,
"The Structuring of Systems Using Upcalls",
Proceedings of Tenth ACM Symposium on Operating Systems Principles, pgs. 171-180, Dec. 1985.
Wed Aug 5 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.
Fri Aug 7 NO CLASS Instructor out of town
Mon Aug 10 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.
Wed Aug 12 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
Fri Aug 14 Memory Management Freeley et. al.
``Implementing Global Memory Management in a Workstation Cluster'',
Fifteenth ACM Symposium on Operating System Principles, Dec. 1995.
Mon Aug 17 Distributed Systems: Failures, Consistency and Recovery Walker et al.,
"The LOCUS Distributed Operating System,"
Proceedings of the Ninth ACM Symposium on Operating Systems Principles, pgs 49-70, December 1983
Wed Aug 19 Distributed Systems: Failures, Consistency and Recovery R. Haskin et. al.,
``Recovery Management in QuickSilver",
ACM Transactions on Computer Systems, February 1988.
Fri Aug 21 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.
Mon Aug 24 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.
Tue Aug 25 Project 3 DUE BEFORE 11:59 PM
Wed Aug 26 Protection Linden, T.A.,
``Operating System Structures to Support Security and Reliable Software",
Computer Surveys, 8, 4, pgs. 409-445, 1976.
WedAug26 Final exam for Graduating Seniors 6pm, Room 101 CoC
Fri Aug 28 Review Final Exam Review
WedSep2 Final Exam, 8AM!

Grades

Student ID (anonymous) Prog 1 Prog 2 Prog 3 Participation MidTerm Final Grade % Grade Letter
01100901003368375.8C
021006000315237.8F
039085404928978.8B
04351001000487773.0C
05951001002868589.5A
061001001004617984.0B
071001001002739589.0A
081001001005678989.0A
09100100953899392.5A
100005005.0P
111001001005809192.8A
121001001005939196.0A
1360951005909493.0A
141001001005699089.8A
1510010010051059399.5A
16901001001487375.8C
1860005008.0W
190000000.0W
2095901005668084.3B
211001001005958795.5A
222580452618264.0C
23851001003646780.0B
241001001003838991.0A
2595951005716282.0B
26100951002485672.0C
271001001005707987.3B
281001001005717686.8B
291001001005759191.5A
301001001005818290.8A
311001001005999297.8A
328000456022.0W
3395951002938991.3A
34100000005.0W
351001001004809191.8A
361001001005727386.3B
37901001004808389.3A
38751001005958393.3A
3990100805808586.8B
401001001005979096.8A
41851001001758284.5B
420005005.0P

Contact Information:

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

Last Modified: Jun 18, 1998