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
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.
Some of the lecture slides for this course have been provided by Professors Ricardo Bianchini, Liviu
Iftode, Richard Martin, and Thu Nguyen.