Students will study advanced operating system topics and be exposed to recent developments in operating systems research. This course involves readings and lectures on classic and new papers. Topics include operating system design, virtual memory management, virtual machines, OS interaction with the hardware architecture, synchronization and communication, file systems, protection, and security.
The course assumes an undergraduate course on operating systems (such as UT's CS 372). If you have not had any formal OS course, please see the instructor.
The course balances the following objectives.
Josh Berlin (josh.berlin@utexas.edu) |
Emmett Witchel | witchel AT cs DOT utexas DOT edu | GDC 6.432 | Friday 1:00pm - 2:00pm (or just send an email for an appointment) |
Readings. There is no textbook for this course. The course is based on a collection of journal, conference, and other papers that describe the history and state of the art in operating systems. The preliminary list of papers and schedule is available here. You must read the papers before class. At a minimum we recommend two close readings. We will provide papers online from a machine in the utexas.edu domain, but they should be available on the web.
Class participation is vital to the success of the course. Class time will not be used to rehash the material in the papers. Instead, it will be used to highlight the important points and discuss some of the more interesting features. There will be as much as 10-15 hours of reading per week. Only take this course if you are willing and able to do a lot of reading.
If you cannot do the reading for a class, please do not come to class. I will ask direct questions about the paper and will expect you to be able to answer. We might have in-class quizzes. If you feel hopelessly confused by a paper, then write a critique (see below) to at least demonstrate that you tried to engage the material outside of class.
You are allowed a maximum of two absences and must consult the instructor if there will be more.
Paper critiques. We provide a template review form for papers here. We recommend that you actually write out a reaction for each paper you read as a way to understand your own thoughts, but we will only require you to hand in a few reviews (see course schedule for details).
In-class presentations. You will present twice for this class.
During the class, you will be assigned a paper and will do a short (10 minutes maximum) presentation on one technical aspect of the paper. Then you will lead a 5 minute discussion.
Ideally, take one idea from the paper and find another reading to develop the point. For example, there is a paper about replicating the experiments in Xen (SOSP 2003). You could use that to discuss the experiments and the methodology. Don't just summarize the paper, pick a technical point that you find engaging and explore that point. Extracting a part from the whole is part of the importance of the exercise.
This course requires several programming assignments that will give you experience in building, booting and running an operating system. The assignments will also expose you to methodological systems issues such as how to model, measure and report performance, how to design a workload to test kernel functionality, and the dependence on workload for the evaluation of a system feature. Finally the assignments will expose you to how to write about systems, their design, implementation, and measurement.
These assignments should demystify the operating system, convincing you that the OS really is just a program. Sometimes puzzling system behavior can be understood and worked around by reading and understanding the source code of the OS. Why did mmap return ENOMEM? There are several distinct possibilities that you can see in the code. These assignments might even give you a bit of practical knowledge, for example allowing you to get Linux to recognize your fancy, new USB device.
We will use Linux and the KVM virtual machine. Unfortunately, the CS machines are not set up to allow use of KVM. So the easiest solution is for you to find a machine that runs Linux on which you have root privilege. Like a laptop. Failing that, I will give out accounts on my group's machines for you to run experiments.
Your final grade for the course will be based on the following approximate weights:
Students are encouraged to pair up for projects
All exams are done individually, with absolutely no collaboration.
Each student must present twice, though partners can collaborate on a project presentation
I strongly encourage you to discuss the papers and the homeworks with anyone you can. That's the way good science happens. But all work and writeup for the homework must be your own, and only your own.
As a professional, you should acknowledge significant contributions or collaborations in your written or spoken presentations.
The student code of conduct is here. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
Special offer: you can write your own exam questions! Submit a question with your solution in advance of the exam, and if we like it, it will appear on the exam.
Last updated: 2013-09-15 20:36:29 -0500 [validate xhtml]