Graduate Operating Systems

This is an advanced course in computer operating systems. We discuss principles of operating systems, distributed systems, networking, specialized operating systems, real-time operating systems, embedded operating systems, and other related topics.

This course is not primarily research-paper focused, but will leverage research papers for various topics, particularly later in the semester.

The Distributed Version!

Due to COVID-19 measures, the second half of this course will be entirely online.

Starting on March 23, the class has gone distributed! The plan:

  • On Mondays I will post a recorded lecture. You must watch the lecture before our meeting on Wednesday.
  • There will be discussion items or other questions to consider included with the lecture. You should spend some time thinking about them.
  • There are also related readings (as before) and you should read the material before Wednesday’s meeting.
  • On Wednesdays, from 10 am - 11 am eastern, we will meet on Zoom to discuss the readings and discussion topics.
  • Homeworks will continue unchanged.

Deliverables

This course will include five programming-based homeworks and one of:

  • in-class design questions OR
  • a take-home final exam.

The in-class design questions will happen later in the semester. Using the papers assigned for that day and the lecture material, we will explore design tradeoffs in cutting edge systems.

Instead of the in-class designs you may instead opt to take a final exam.

Homeworks

  • HW1: Your Own Shell
  • HW2: Green Threads
  • HW3: A Multi-Media Filesystem
  • HW4: Containerization
  • HW5: Code Downloading

Grading

  • 15%: HW1
  • 15%: HW2
  • 15%: HW3
  • 15%: HW4
  • 15%: HW5
  • 25%: In class design or Final Exam

Homework Policies

  • All homeworks must be completed individually.
  • You may submit each homework up to two days late. Ten percentage points will be deducted from the final score for any assignment submitted on the day after the due date, and twenty percentage points will be deducted for any assignment submitted on the second day after the due date.
  • All homeworks will be submitted through Collab.

Honor

I trust every student in this course to fully comply with all of the provisions of the University’s Honor Code. By enrolling in this course, you have agreed to abide by and uphold the Honor System of the University of Virginia.

Collaboration Policy

  • Each homework should be completed individually. You may discuss the assignments with others at a high level, but the implementation must be your own. For debugging, you may talk through the issue you are having with others, but you may not share code that solves the problem.
  • The final exam must be done entirely individually.

Schedule

Class Topic Reading Lecture Due
  OS Fundamentals      
M, Jan 13 Intro The Night Watch (if you are interested)    
W, Jan 15 Processes      
M, Jan 20 ✘ No Class. MLK Day.      
W, Jan 22 Concurrency Optional: Scheduler Activations    
M, Jan 27 Scheduling     HW1
W, Jan 29 I/O      
M, Feb 3 Memory      
W, Feb 5 Filesystems Optional: RAID    
M, Feb 10 ✘ No Class.      
W, Feb 12 MMAP & IPC      
M, Feb 17 Security      
W, Feb 19 Networking     HW2
  Advanced OS      
M, Feb 24 System Design Hints, End-to-end argument    
W, Feb 26 Kernel Architectures Microkernel, Exokernel    
M, Mar 2 Kernel Architectures Multikernel    
W, Mar 4 Distributed systems Spanner    
M, Mar 9 ✘ No Class. Spring Break      
W, Mar 11 ✘ No Class. Spring Break      
M, Mar 16 ✘ No Class. Canceled for COVID-19      
W, Mar 18 ✘ No Class. Canceled for COVID-19      
Mar 23-25 Distributed systems Dynamo Video  
Mar 30-Apr 1 Virtualization Xen, cgroups: part 3 & part 4 Video HW3
  Changing Requirements      
Apr 6-8 Heterogeneous Hardware and ML SplitFS, Tensorflow Video  
Apr 13-15 Testing & Verification and Security Klee, ZebRAM Video  
Apr 20-22 Embedded OS and RTOS Tock, Mixed Criticality Systems Video HW4
Apr 27 eBPF   Video HW5

Background

Graduate standing and a previous operating systems course are the only prerequisites for this course. We will not be following a textbook, but some references you may find useful:

Disabilities

The University of Virginia strives to provide accessibility to all students. If you require an accommodation to fully access this course, please contact the Student Disability Access Center (SDAC) at (434) 243-5180 or sdac@virginia.edu. If you are unsure if you require an accommodation, or to learn more about their services, you may contact the SDAC at the number above or by visiting their website at http://studenthealth.virginia.edu/student-disability-access-center/faculty-staff.

Your Wellbeing

The Computer Science Department and SEAS aims to promote their students’ wellbeing. If you are feeling overwhelmed, stressed, or isolated, there are many individuals here who are ready and wanting to help. If you wish, you can make an appointment with me and come to my office to talk in private.

Alternatively, there are also other University of Virginia resources available. The Student Health Center offers Counseling and Psychological Services (CAPS) for its students. Call 434-243-5150 (or 434-972-7004 for after hours and weekend crisis assistance) to get started and schedule an appointment. If you prefer to speak anonymously and confidentially over the phone, call Madison House’s HELP Line at any hour of any day: 434-295-8255.

If you or someone you know is struggling with gender, sexual, or domestic violence, there are many community and University of Virginia resources available. The Office of the Dean of Students, Sexual Assault Resource Agency (SARA), Shelter for Help in Emergency (SHE), and UVA Women’s Center are ready and eager to help. Contact the Director of Sexual and Domestic Violence Services at 434-982-2774.

Diversity

It is the instructors’ intent that students from all diverse backgrounds and perspectives be well served by this course, that students’ learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. It is my intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, and culture. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally or for other students or student groups.

Religious Accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements. Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to me by email as far in advance as possible. Students and instructors who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200. Accommodations do not relieve you of the responsibility for completion of any part of the coursework missed as the result of a religious observance.