CS 571 Operating Systems (Spring 2021)

Course Information

Syllabus

The course syllabus is posted here.

Instructor’s office hours

  • Where: Virtual
  • When: Wednesday 1:30 pm - 2:30 pm

GTA & office hours

  • Michael Crawshaw
  • Email: mcrawsha@masonlive.gmu.edu
  • Where: Virtual (Blackboard Collaborate Ultra)
  • When: Monday 1:30 pm - 2:30 pm, and Thursday 2:30 pm - 3:30 pm

Prerequisite

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

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:

Recommended 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 projects

Here is a tentative list of projects:

  • Project 0a: (C warm-up): Practice C programming by implementing four command line tools;
  • Project 0b: (Intro to Go): Familiarize yourself with the Go programming language;
  • Project 1: Implement a Linux shell using C;
  • Project 2: Implement and analyze a suite of commonly used caching policies;
  • Project 3: Implement a multi-threaded HTTP server;
  • Project 4: Implement a MapReduce framework (and applications) using Go;
  • Project 5 (extra credits): Implement a Mason Distributed File System (MDFS) using Go. –> TLB measurement.

GitLab rules

Refer to GitLab Setup for detailed instructions on setting up GitLab repos.

Grading policy

Your grade will be calculated as follows:

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

Grading rules

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: [50%, 60%)
  • F: < 50%