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.
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.
- HW1: Your Own Shell
- HW2: Green Threads
- HW3: A Multi-Media Filesystem
- HW4: Containerization
- HW5: Code Downloading
- 15%: HW1
- 15%: HW2
- 15%: HW3
- 15%: HW4
- 15%: HW5
- 25%: In class design or Final Exam
- 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.
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.
- 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.
|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|
|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|
|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|
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:
- Operating Systems: Principles and Practice (2nd Edition) by Thomas Anderson and Michael Dahlin
- Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
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 firstname.lastname@example.org. 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.
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.
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.
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.