712: Advanced Operating Systems and Distributed Systems (Fall 2000)
See here for the top-level 712 (Fall 2000) page.
This course examines the design and analysis of
selected aspects of operating systems and distributed systems. It
covers topics such as concurrency and distributed communication;
fault-tolerance, availability, and persistence; and operating system
structure. Lecture focus on the principles used in the design of
operating systems and distributed systems, and algorithms and data
structures used in their implementation. Readings include case
studies, seminal papers, and recent conference and journal articles.
Prereqs
Members of this class are expected to have taken
an operating systems course equivalent to CMU's 15-412 and achieved a
grade of A or better. This includes familiarity as a user with an
interactive operating system (e.g., Unix) and solid understanding of
basic concepts in the design and implementation of operating systems.
Students without this prerequisite knowledge are likely to struggle.
712 is a graduate-level class, and thus operates differently from
an undergraduate class; particularly interested and prepared
undergraduates can participate, with explicit permission of the
instructor.
Components
Regular lectures by the instructor on core topics.
Critical study and discussion of recent literature in each of the
core topic areas. This will include student involvement in discussions!
Homework problems and summaries of papers.
A term project that involves designing,
constructing, and evaluating an interesting software system related
to the problems and techniques discussed in class.
Midterm and final exams.
Topics covered
- File systems, Distributed File Systems, and Distributed Storage Services
- Function Placement and Mobile Code
- OS Structure, Extensibility, and Composable Systems
- Concurrency, Distributed Event Ordering, and Multi-Party Consensus
- Fault Tolerance and Security
- Naming and Resource Discovery
- Mobile Computing, QoS Resource Management, and Future Directions
- Cluster Computing and Distributed OSes
See the full topic and reading list for details.
Books and Readings
There is no assigned textbook. However, there will be a variety of
readings that will be handed out in class. Also, a number of books
will be on reserve in the library for background reading deeper study:
Tanenbaum, Modern Operating Systems (Background)
Silberschatz, Operating Systems Concepts (Background)
Coulouris, et al., Distributed Systems: Concepts and Design, 2nd ed.,
004.36 C85d2
Lynch, Distributed Algorithms, 004.36 L98d
Lynch, et al., Atomic Transactions, 005.74 A88i
Bernstein, et al., Concurrency Control and Recovery in Database Systems,
004.35 B53c
Korth & Silberschatz, Database Systems Concepts, 005.74 K85d2
Casevant & Singhal, Readings in Distributed Computing Systems, 004.36 C33r
Ananda & Srinivasan, Distributed Computing Systems: Concepts and
Structures, 005.36 D614
Mullender, Distributed Systems, 004.36 D6142a2
Filman & Friedman, Coordinated Computing: Tools and Techniques for
Distributed Software, 004.36 F48c
Ceri & Pelagatti, Distributed Databases: Principles and Systems,
510.7848 C41d
Andrews, Concurrent Programming: Principles and Practice, 004.65 P48c
Jain, The Art of Computer Systems Performance Analysis, 004.24 J25a 004.36,
Project
Projects should be done in teams of 2 or 3 students.
You are encouraged to propose your own project, though suggestions
will be provided by the staff to help you with this.
Projects plans must be explicitly okay'd by the course staff.
More information about the project is available here.
Grading
20% exam #1
20% exam #2
40% project
20% subjective evaluation (participation, summaries, homeworks)
Final Note
* Everything here is subject to change.