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.
General prerequisites, including Operating Systems, Networking, strong C and UNIX programming skills. The System Performance and Evaluation course (CS 457/657) is strongly recommended for students interested in doing research in systems or networks.
Grades will probably be computed using the weighting scheme below (grades assignments and dates are tentative):
Due Class Participation 10% Reading Summaries 15% (at start of each class) Project Proposal 5% (NEW: Sept. 25 - 4 pm sharp!) Course Project 45% (Nov. 25 - at start of class) Paper refereeing 10% (Dec. 2 - before class starts) Project Presentation 15% (Dec. 2 - extra day/class)
This is a graduate class. You are expected to be capable programmers and skilled testers and debuggers. Use good programming and writing practices when doing your project. These practices will be considered when assigning grades.
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.
NOTE: There is no text book required for this course. However, there may be text books that you will find useful or even necessary in order to complete your course projects.
Here are the code examples talked about in class.
Please watch the newsgroup for class announcements. You may also wish to use the newsgroup to contact other people in the class who may be looking to join or have somoene join their group. Later in the term we'll probably use the newsgroup to post information about the labs (clusters), their availablity, unavailability, etc.