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.

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: ~4 short assignments (10%)

Class News

Self Assessment Quiz is up, not graded
Project 1will be released this weekend
Assignment 1will also be released this weekend. Must be answered individually

Tentative Schedule

Topic Lecture 1 Lecture 2
Virtualization 01/23 Intro [code] 01/27 CPU Virtualization
Schedulers 01/30 OS Scheduler Schedulers continued
Virtual Memory 02/X 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