15-712: Advanced Operating Systems & Distributed Systems
Fall 2008
MWF 3:00-4:20 PM, Wean Hall 5409
OVERVIEW
15-712 is a graduate course in operating systems. The goals are:
- To understand the state of the art in operating systems and distributed systems, and how and why we got there.
- To understand how to engage in systems research.
- To investigate novel ideas in systems through a semester-long research project.
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. Lectures 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.
NEWS
- [22nd Nov. 2008] Sample Midterm2 solutions.
- [15th Nov. 2008] Sample Midterm2 questions.
- Please use this wiki page and register for a meeting time slot on the the following days (edit the wiki) - Wed (29th Oct 2008) from 7 to 9 pm, Thursday (30th Oct 2008) from 9 am to noon.
- [13th Oct. 2008] Sample Midterm answers.
- [9th Oct. 2008] Sample Midterm1 questions: F05, F06.
- [28th Sept. 2008] No class on Monday (29th Sept). Class resumes on Wed (1st Oct).
- [24th Sept. 2008] Please send us (Garth, Amar) an email about your project group (group members) and a short description of the project you intend to work on.
- [23rd Sept. 2008] The first Mid-term is scheduled for Oct 13th. Please contact Garth if you have a conflict wrt the date.
- [18th Sept. 2008] Please use this wiki page if you are looking for people to work with for class projects.
- [16th Sept. 2008] The reading list has been updated and lectures so far have been posted on the schedule page. Get the goodies now!
- [12th Sept. 2008] Amar: I will be out at MobiCom (San Francisco) for the week starting Sept 15 (until Sept 22), and will not be holding office hours on Friday (Sept 19). Please send me an email if you have questions.
- The schedule, reading list, and review submission pages have been updated.
- Because this is primarily a CSD PhD course, lectures do not begin until Monday Sept 8, 2008, after the CSD Immigration Course for new PhD students.
Course Staff
Instructor:
Garth Gibson
office: WeH 8219
phone: x8-5890
office hours: Wed 11-12
email: garth [at] cs.cmu.edu |
Teaching Assistant:
Amar Phanishayee
office: WeH 8121
phone: x8-3069
office hours: Friday 10-12
email: amarp+ [at] cs.cmu.edu |
Course Secretary:
Angela Miller
office: WeH 8215
phone: x8-6645
hours: 10 AM - 4 PM
email: amiller [at] cs.cmu.edu |
PREREQUISITES
Members of this class are expected to have taken an operating systems course equivalent to CMU's 15-410 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 classic and recent literature in the core topic areas. This will include student involvement in discussions!
- Summaries of papers.
- A term project that involves designing, constructing, evaluating and writing up an interesting and novel systems research issue related to the problems and techniques discussed in class.
- Two midterm exams.
PROJECT
Projects should be done in teams of about 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.
BOOKS & READINGS
There is no assigned textbook. However, there will be a variety of readings that will be handed out in class. You can also use a number of books available in the library for background reading and 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
GRADING
-
20% exam #1
- 20% exam #2
- 40% project
- 20% subjective evaluation (participation, summaries, homeworks)
CAVEAT
* Everything here is subject to change.
Last modified: Mon Oct 13 08:57:03 EDT 2008
| ©2008 Carnegie Mellon University