UW Logo

CS856: Internet Server Performance

The contents of this page are subject to change.
Please remember to frequently use the reload button for these pages.


[General]   [Description]   [Prerequisites]   [Grading]  
[Assignment]   [Readings]   [Newsgroup]   [Lab]   [Project]

Instructor: Tim B. Brecht
Email: brecht@cs.uwaterloo.ca
Put CS856 in the Subject line if you don't want your mail to be accidentally flagged as spam.
Office: Davis Center, 3508
Class Times and Locations: Tuesday 2:00-5:00 Location: DC 3313 Starting May 2, 2006.
Note: On May 2 we will finish in time for students to attend orientation.
Also Note: class will most often meet for about 2 or 2.5 hours but we may occasionally have a 3 hour class.

Course Description

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.


There is one assignment that is due roughly two weeks after the first class.

Course Readings

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

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.

The Class Lab(s)

Course Project

I encourage you to come up with your own course project ideas but if you are having problems coming up with a project come and talk to me about some ideas.

Last modified: Tue May 16 22:27:24 EDT 2006