In this course we will explore the relationship and boundaries between high-performance Internet services and their underlying software systems, with emphasis on the operating system. We will study some example service designs and implementations and the underlying software infrastructure that are used by these services. The goal of the course will be to to design and evaluate new methods for interacting with existing software infrastructures. We are particularly interested in new interfaces and mechanisms that can be provided by the operating system to significantly improve application performance.
This course is an intensive paper-reading course that will also require a written course project (<= 10 pages) a project presentation, and most likely a programming assignment. Projects and the programming assignment will be done in groups. Survey papers will most likely NOT be accepted as course projects.
General prerequisites, including Operating Systems, Networking, strong C and UNIX programming skills.
The System Performance and Evaluation course (CS 457/657) is not required but is strongly recommended for students interested in doing research in systems or networks.
This is a graduate systems course. You are expected to be capable programmers and skilled testers and debuggers. Additionally you are capable of using good programming and writing practices.
Grades will be based on class participation and on the course project and presentation. If there is a programming assignment, it may also carry some weight in the grading scheme but it would not be large.
The first few classes will be lecture sytle classes in I will provide some background material. Subsequent classes will take the form of discussions around two or three research papers.