CS 416: Operating Systems Design (Spring 2020)

CS Department, Rutgers -- The State University of New Jersey

Welcome to Operating Systems Course! This course will introduce you to the principles of Operating system design. The course will be a project-intensive course.


  • This course is designed for students who understand Systems programming.
  • We will use Operating Systems: Three Easy Pieces, which is freely available online.
  • Topics: See tentative schedule below.
  • Exams: Two exams -- Midterm (25%) and Finals (25%)
  • Projects: Four coding projects (40%), Maximum group size of 2 students
  • Assignments: ~4 short assignments (10%)

Class News

Self Assessment Quiz up, not graded
Project1 posted up, Feb 13, 2020 11:55 pm
Assignment 1 (Sakai Quiz) posted up, Due Feb 17, 2020, 11:55 pm

Tentative Schedule

Topic Lecture 1 Lecture 2
Virtualization 01/23 Intro [code] 01/27 CPU Virtualization
Schedulers 01/30 OS Scheduler 02/03 - 02/07 Schedulers continued
Virtual Memory 02/10-02/12 Virtual memory 02/X Paging
Virtual Memory 02/X TLB 02/X Superpages
Synchronization Threads Locks
Synchronization Semaphores Deadlocks
Midterm Exam in Class
I/O I/O Devices RAID
File System File System Basics File System Impl.
File System Fast File System
Crash Consistency Journaling LFS
Distributed Systems MapReduce Google File System
Acclerators and Trends TBA TBA