16:198:519:01 (28736) - CS 519: Operating Systems Theory
Fall 2013
Rutgers University - Computer Science



Instructor: Steve Smaldone (smaldone [at] cs.rutgers.edu)
TA: Chris Woithe (hcwoithe [at] cs.rutgers.edu)
Schedule: Wednesdays, 5:00 PM - 8:00 PM
Location: Hill 124
Office hours: Wednesdays, 4:00 PM - 5:00 PM (by arrangement only)
TA office hours: Tuesdays, 1:30 PM - 2:30 PM

Course Information: CS519 is a graduate level course in Operating Systems. The target audience for the course are graduate students who have already taken an undergraduate OS course, and are familiar with systems programming and computer architecture. This semester we will cover the fundamental operating systems concepts emphasizing OS internals, including design and performance issues. We will also discuss relevant topics related to special-purpose operating systems designed for data center and mobile environments, among others. The lectures will cover the core operating systems concepts, recent important trends in OS research, and emerging technologies influencing the future of OS design. In conjunction with the lectures, we will study the relevant OS components from the code of the xv6 teaching OS from MIT. There will be reading assignments for each lecture, homework/programming assignments, and a large project. The purpose of the assignments is to deepen students' understanding of OS concepts through independent work involving user and kernel level C programming.

Course Material: There is no required textbook. Required readings will be based upon conference papers and other documents posted to the course lecture schedule page. Recommendations for relevant textbooks and other resources can be found on the course resources page.

Prerequisites: There are no formal prerequisites for this course, but it will be assumed that students have taken undergraduate level Operating Systems (e.g., CS416) and Computer Architecture (e.g., CS211) courses. Students must be able to program in C within a UNIX POSIX-like programming environment (e.g., GNU/Linux, Cygwin, etc.) and should be familiar with the basic concepts of networking, especially sockets and TCP/IP.

Acknowledgment: Some of the lecture slides for this course have been provided by Professors Ricardo Bianchini, Liviu Iftode, Richard Martin, and Thu Nguyen.