COMPSCI 577: Operating Systems Design and Implementation (Spring 2020)

Course Description

This course will expose students to advanced concepts in operating system design and implementation through an in-depth study of operating system internals. The course will be based on an Unix-like operating system and will comprise of lectures and hands-on programming assignments that cover the design and implementation of OS system calls, device drivers, CPU scheduling, memory management, file systems. We will also cover advanced topics such as virtualization and cluster scheduling, time permitting. Students who complete this course will gain an appreciation of how key OS abstractions and concepts are implemented in practice, become proficient in the design and implementation of complex system software and acquire the skills to develop OS kernel components (e,g, OS modules, drivers, filesystems) or modify OS components (e.g. VM, schedulers).

A detailed list of course goals, objectives, and learning outcomes is available on the Course Outcomes page.

Prerequisites: Since OS kernels are written in C, students are expected to be proficient in the C programming language (or learn C quickly). An undergraduate course on operating systems (equivalent to COMPSCI 377) is also a prerequisite.

Note: Two sections of this class will be offered for credit: an undergraduate section and a graduate section. Please enroll for the appropriate section depending on your student status.

Information about post spring-break Online Version of this Class

First, please read this note from Prashant providing an overview of how the class will be conducted for the rest of the term.

All lectures have been recorded and posted on the Lectures page. Please view each lectures on or around the suggested view date.

We will adopt a flipped virtual classroom model for the rest of the course. The Tue/Thu lecture slots have beeen superseded by a weekly online discussion every Thursday (2:30-3:30pm). This discussion will be held over zoom. The expectation is that you should have viewed the lectures for that week prior to the discussion and will come with questions.

All assignments (lab 3, project) are also available with immediate effect.

New Office Hours for the rest of the term are as follows (supersedes the old schedule):

  1. Monday, 4-4:30pm, Walid
  2. Tuesday, 4-4:30pm, Walid
  3. Wednesday, 4-4:30pm, Walid
  4. Thursday, 2:30-3:30, Prashant (online discussion plus office hours)
  5. Friday, 4-4:30pm, Walid

To make things simple, we will use a single Zoom link for all TA office hours, Thu discussions etc. Please use the following zoom link for all 577 meetings

  1. Meeting ID: 814 323 831.
  2. To join by phone, find your local number:
  3. USA dial-in number: +1 646 876 9923 US (New York), Meeting ID 814 323 831.

Course Information

Instructor: Prashant Shenoy
Classroom section: LGRC A104, Tu-Th 2:30 - 3:45 pm
Section 1 (undergrad):51578
Section 2 (graduate):51587
Credits: 3

Course Staff

Course Materials

This page is online at
Prashant Shenoy
Last modified: Sun Jan 19 05:33:01 EST 2020