CS 571: Operating Systems – Spring 2022


Location
East 122
Meeting time
W 7:20 pm - 10:00 pm
Instructor
Dr. Yue Cheng
Office
Engineering 5324
Email
yuecheng _AT_ gmu.edu
Office hours (open studio)
Fri, 10-11:30am

Description

This is a graduate-level course that covers advanced concepts and design principles of modern operating systems (OSes), both from theory and practical aspects, spanning the following aspects: virtualization, concurrency, persistence, distributed systems, and virtual machines/containers. The purpose of this course is to teach OS designs from a research point of view.


Course website

The materials are published on course webpage: https://tddg.github.io/cs571-spring22/.


Prerequisites

Grade of C or better in CS310 and CS 367 and CS 465. All students *MUST* be comfortable with programming in the C language. This is a strong requirement.


Teaching assistant (TA)

Yuyang Leng
Email
yleng2@gmu.edu
Office hours
Tue+Thur, 5-6pm, virtually on BB Collaborate

Topics

  • CPU virtualization (basic scheduling, advanced scheduling: CFS/ghOSt, etc.)
  • Memory virtualization (basic memory management, caching policies: LRU/ARC)
  • Concurrency (synchronization, concurrency control, transactions)
  • Persistence and storage (file systems, large-scale distributed storage)
  • Distributed systems (MapReduce/GFS, Spark)
  • Virtual machines and containers (Xen, Firecracker, etc.)

Readings

There are no official textbooks. Required readings are (most frequently) in the form of seminal research papers and/or selected textbook chapters of the awesome OSTEP textbook.

If you need a textbook to review and catch background, go get OSTEP, which is an excellent resource for learning OS and is completely free. OSTEP and is publicly available at:

I also strongly encourage you to discuss the papers with other students in the class — you may have insights that others do not, and vice versa. Oftentimes, students form reading groups, which I encourage; on the other hand, I would like to point out that group discussion is not an effective substitute for actually reading the paper.

Class participation

In addition to textbook concepts that I will cover in the form of lectures, for research papers, we will use a discuss-oriented format. Therefore, class participation is required. We will discuss the papers and articles that we will have all read before each class. I will provide you with a review form that you must complete and submit before the class. I will provide feedback to your paper reviews the night before the class. During the class, I will lead discussions by asking questions of students at random in class. Note that your performance in class form 10% of your overall grade, so it does matter that you both show up to class and participate in the discussion (which in fact requires you to read the papers).

Labs and research project (tentative -- will be finalized as semester begins)

There will be several programming labs and a research project. You need to be comfortable with programming in C to complete these lab assignments. Programming labs will be individual. For research projects, you may choose to do it individually or in a group of two. I will provide a list of ideas to get you started thinking, but I highly encourage you to pursue your own ideas, which typically lead to better results. You will write a project report and present it at the end of the course. Details concerning the projects will be presented in class.

All students should have accounts on the VSE Unix cluster (aka zeus.vse.gmu.edu). Instructions and related links can be found here. Your labs written in C will be tested and graded on the zeus server.


Grading policy (tentative -- will be finalized as semester begins)

There is no homework, no midterm, no final exams. Discussion and paper reading carries 30%, projects carries the rest 70%. Your grade will be calcuated as follows:

  • 15% class participation
  • 15% paper reviews
  • 10% project proposal
  • 10% project checkpoint 1 report
  • 10% project checkpoint 2 report
  • 40% final project report, presentation and artifact eval

The final grade is computed according to the following rules:

  • A+: >= 97%; A: [92%, 97%); A-: [87%, 92%)
  • B+: [82%, 87%); B: [77%, 82%); B-: [72%, 77%)
  • C+: [66%, 72%); C: [63%, 66%); C-: [60%, 63%)
  • D+: [56%, 60%); D:[53%, 56%); D-: [50%, 53%)
  • F: < 50%

Academic integrity

All students must adhere to the GMU Honor Code and the Computer Science Department's Honor Code Policies. The students are supposed to work individually on the homeworks, assignments projects, unless told otherwise. We reserve the right to use MOSS to detect plagiarism. Violation of the Honor Code will result in an F.


Accommodations for disabilities

If you have a documented learning disability or other condition that may affect academic performance, you should:

  1. make sure this documentation is on file with Office for Disability Services (SUB I, Rm. 4205; 993-2474; http://ods.gmu.edu) to determine the accommodations you need;
  2. talk with the instructor within the first week of the semester to discuss any accommodation needs.