CS 380L Advanced Operating Systems Fall 2023

Course Objectives

This course considers advanced operating system topics and exposes students to recent developments in operating systems research. The course involves readings and lectures on classic and recent papers on a range of topics, including OS design, virtual memory management, virtualization, concurrency and synchronization, file systems, cloud systems, heterogeneity, and security. The course also exposes students to basic system-building and evaluation methodologies through a handful of programming assignments and a final project.

The course assumes background commensurate with that provided by an undergraduate course on operating systems such as UT's CS 439. If you have not had a formal OS course, please discuss with the instructor before committing to the course.

The course objectives include:


Teaching Assistant

Yibo Huang GDC 6.504E in person on Mondays: 2:00pm-3:00pm

Instructor

Emmett Witchel GDC 6.432 Zoom Wednesdays 3:30pm-4:30pm, or by appointment

Course Materials

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 the majority should be available on the web.

For background reading about Linux, I recommend the three books below. While I will likely refer to materials from these books in class, they are not required. That said, these books are all very much a worthwhile investment and great references for anyone doing systems research.

Online resources. We will use Ed Discussion for this course (here). I will use it mostly for announcements and as a discussion forum, but feel free to provide feedback, and suggestions. Similarly, feel free to use email for questions and discussion.

Class Participation

Paper critiques

A template review form for papers is here. I strongly encourage you to actually write out a review/reaction for each of these papers. Not only will it help you understand your own thoughts, but it helps you solidify your understanding, and provides you with an artifact to which you can refer to help refresh your memory in the future. I do not plan to require that these reviews be handed in, however, I reserve the right to require a handful, depending on how well prepared the class at large seems to be for discussions.

In-class Presentation

The course includes a final project, which can be done individually or in pairs. During one of the final class meetings, each project group is responsible for a presentation about their project.

Programming Assignments

The 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.

The goal of the assignments is to demystify the operating system and convince you that the OS really is just another (super-interesting) 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. 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.

Grading

Your final grade for the course will be based on the following approximate weights. Canvas will have more precise breakdowns.

Course Policies

Collaboration

Exams

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.

Late Policy


Last updated: 2023-08-23 16:50:03 -0500 [validate xhtml]