CS 416: Operating Systems Design

Rutgers, The State University of New Jersey
Department of Computer Science
Spring 2019

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.

Overview

  • 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: 2 or 3 short in-class or take-home assignments (10%)

Contact and Office Hours

  • Instructor - sudarsun.kannan@rutgers.edu, Office Hours: Mon, 10:30-12:30am @ CoRE 313
  • TA 1 - Baber Khalid, baber.khalid@rutgers.edu, Office Hours: Fri, 3pm-4pm @ CoRE 334
  • TA 2 - Yujie Ren, yr181@scarletmail.rutgers.edu, Office Hours: Wed,11am-12pm @ Hill410

Class News

Self Assessment Quiz up, Feb 4, 2019 11:00 pm
Project1 Warmup posted up, Feb 8, 2019 11:55 pm
Project2 Schedulers posted up, Mar 4, 2019 11:55 pm
Project3 User-level memory management posted up, April 8, 2019 11:55 pm
Project4 User-level file system posted up, May 6, 2019 11:55 pm

Tentative Schedule

Topic Lecture 1 Lecture 2
Virtualization 01/24 Intro [code] 01/28 CPU Virtualization
Schedulers 01/31 OS Scheduler 02/04 Schedulers continued
02/07 No Class
Virtual Memory 02/11 Virtual memory 02/14 Paging
Virtual Memory 02/18 TLB 02/21 Superpages
Synchronization 02/25 Threads 02/28 Locks
Synchronization 03/04 Semaphores 03/08 Deadlocks
03/11 Midterm Exam in Class
I/O 03/25 I/O Devices 03/28 RAID
File System 04/01 File System Basics 04/04 File System Impl.
File System 04/08 Fast File System
Crash Consistency 04/11 Journaling 04/15 LFS
Distributed Systems 04/18 MapReduce 04/22 Google File System
Acclerators and Trends TBA TBA