CS 571: Operating Systems – Spring 2021


Location
Virtual meeting on Zoom (info will be sent thru BB)
Meeting time
W 7:20 pm - 10:00 pm
Instructor
Dr. Yue Cheng
Office
Zoom or Piazza
Email
yuecheng _AT_ gmu.edu
Office hours (Zoom)
W 1:30 pm - 2:30 pm

Description

This is a graduate-level course that covers the concepts and design principles of modern operating systems, both from theory and practical aspects, spanning four major aspects: virtualization, concurrency, persistence, and distributed systems. Fundamental concepts such as processes, synchronization, scheduling and memory management will be presented.


Course website

The materials will be published on our course website: https://tddg.github.io/cs571-spring21/.


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)

Michael Crawshaw
Email
mcrawsha@masonlive.gmu.edu
Office hours
TBD

Textbooks

The only required textbook for this class is OSTEP, which is an excellent resource for learning OS and is completely free. The material of this class is based on OSTEP and is publicly available at:

Other textbooks but not required:

  • Operating Systems Principles and Practice, by Thomas Anderson and Michael Dahlin, Second Edition. ISBN: 978-0-9856735-2-9, Recursive Books, Ltd.
  • Operating System Concepts, by Silberschatz, Galvin and Gagne (9th Edition, John Wiley & Sons 2012, ISBN 978-1-118-06333-0).

Course outcomes

Upon completion of this course, the students should be able to:

  • Demonstrate knowledge about the role and purpose of the operating systems
  • Demonstrate knowledge about different design philosophies of operating systems (LDE, interrupts, cooperative scheduling, non-cooperative scheduling) and the involved trade-offs.
  • Show an understanding of the need for concurrent operation of multiple tasks (processes/threads) and an ability to solve basic process synchronization problems that arise from concurrent operation settings.
  • Be able to explain the main performance evaluation criteria for computer systems and how the operating system design can have an impact on these.
  • Demonstrate the knowledge about process scheduling, basic memory management, storage and I/O systems (HDDs), file system management techniques, and their impact on the overall performance.
  • Demonstrate the basic knowledge about distributed systems including RPC, MapReduce, Network File Systems (NFS), and Google File System.
  • Be able to implement a suite of basic algorithms proposed for the main OS and/or system programs using both C (e.g., green threads, shell) and Go (e.g., MapReduce).

Topics

  • Introduction
  • CPU scheduling
  • Memory management and virtual memory
  • Concurrency
  • Synchronization
  • I/O and storage systems
  • Distributed systems
  • File systems

Projects

There will be several programming projects You need to be comfortable with programming in C to complete these assignments. You don't have to be familiar with Go. You will learn how to use Go as we go. 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 projects written in C will be tested and graded on the zeus server. Your projects written in Go will be tested and graded on zeus or a cloud server (that has the Go runtime installed).


Grading policy

Your grade will be calcuated as follows:

  • 50% projects
  • 10% homeworks
  • 20% midterm exam
  • 30% final exam

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.