CSC 573 - Advanced Operating Systems (Spring 2008)

Meeting time and location:
Tuesday/Thursday 4:50pm-6:05pm at CSB 632.

Instructor: Kai Shen
Email: kshen@cs.rochester.edu
Office hours: Tuesday/Thursday 6:05pm-7:05pm at CSB 714; or just walk in please (appointments can be arranged, but not necessary).

TA: Konstantinos (Kostas) Menychtas
Email:
Office hours: TBD at CSB 626.

Prerequisites:
The course is open to both graduate students and undergraduate students who have already taken CSC 2/456 (Operating Systems). Everyone who took the Operating Systems course is expected to have good command of C/C++ programming. Knowledge on computer networking is helpful, but CSC 2/457 is NOT a prerequisite for this course.

Breath requirement:
For non-systems CS graduate students, you can use this course to fulfill your breath requirement in systems.

Overview:
The operating system functions as the software backbone of modern computer systems. In CSC 2/456, you have learned fundamental operating system materials such as OS architectures, scheduling and synchronization, multiprogramming, memory management, file and I/O system, protection and security. Built upon that, this course will explore several advanced topics on operating systems. Most of these topics relate directly to real-world deployed systems and practical problems. In many cases, theoretical foundations and artificial intelligence techniques are utilized in solving these problems. Tentatively, this course is expected to cover the following topics:

Text and reference books:
There is no required text for this course. Given that you already took the Operating Systems course, you should have a copy of the OS text and you might find it handy when you need to brush off the dirt on some concepts you learned before.

Although there is no required text, I plan to use a lot of materials from the following book:

You might find it helpful to read the book to reinforce class discussions. Probably more importantly, this is an excellent reference book for computer systems performance analysis --- a good thing to own for the long run.

Some course assignments will require you work with Linux and you may find a Linux reference book useful:

In addition, you may also want to use the following on-line Linux source online reference: Cross-Referencing Linux.

Assignments and grading:
There will be a few programming assignments and a final project. The assignments will be based on materials discussed in class. The final project can be chosen from a variety of topics related to operating systems (including those that are not discussed in class). The instructor will be available to help you devise concrete scope for your project. You will be asked to submit a project proposal several weeks before the final project due time. The project proposal should include a survey of past results related to your project. You should also be prepared to make a presentation of your final project. Your grade will be based on a combination of your assignments and the final project. No exams will be administered for this course.

Given that the success of this seminar course will depend very much on lively discussions in classes, I will also consider assign extra credits to those whose make significant contributions to class discussions.