In this course we will explore the relationship and boundaries between high-performance Internet servers and the underlying operating system. We will study some example server designs and implementations and the underlying system calls that are used by these servers. The goal of the course will be to to design and evaluate new methods for interacting with the operating system and/or 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 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.
The course newsgroup is the first place you should look for course-related announcements and for answers to course-related questions. You should read the newsgroup regularly.
You may read the course newsgroup using your favorite newsreader. Alternatively, you may use your WWW browser to read the group by clicking on the hypertext reference above. Some WWW browsers, like mosaic, require you to set the environment variable NNTPSERVER before reading newsgroups. If you have trouble reading the course newsgroup using your WWW browser, try this
setenv NNTPSERVER news.math.uwaterloo.ca
before starting your browser.
Better yet, add this line to your .cshrc file.