CS 519: Operating System Theory

Rutgers, The State University of New Jersey
Department of Computer Science
Fall 2018


Welcome to Operating Systems Course! This course will introduce you to the principles of traditional, current, and futuristic Operating systems. This will be a project-intensive course with an aim to teach about Systems (OS) research (additional materials).

Overview

  • This course is designed for graduate students who already understand OS fundamentals. We will spend some time in the class to refresh the basics. Additionaly, the reference book, Operating Systems: Three Easy Pieces, is a great book for learning the fundamentals (parts of this course is inspired from Prof. Remzi H. Arpaci-Dusseau's OS class).
  • Topics: We will discuss the following topics (tentative): OS structure, virtual memory management, file system design, threads and scheduling, virtualization, and distributed systems.
  • Structure: For each topic, we will discuss seminal papers and ideas, current influential papers, and future research trends.
  • Papers: Students must read the assigned paper before the class and submit either a short review or solve problems posted in Sakai. The reviews must have at least three paragraphs describing the basic idea of the paper, technical design, and limitations of the paper. Please use Sakai to submit the reviews (look for [Paper Review #] to submit the reviews).
  • Homework: This course is a project-intensive course. We will have three or four small homework coding projects and a semester-long research project. The homework projects must be solved independently.
  • Semester Project: The goal is to work on a research idea and write a short workshop paper. Working in a group of two or three students is perfectly acceptable, and you can pick your project partner too! You are welcome to propose your ideas; I will also help with topics. Ph.D. students can also extend their ongoing research with a separate OS/Systems deliverable.
  • Exams: There will be two exams -- midterm and finals. The exams will be based on lectures, papers, and homeworks.

Class News

Homework 0 up, due 09/17
Homework 1 up, due 08/15
Project Proposal up, due 08/3
Project Checkpoint 1 up, due 09/7
Homework 2 up, due 09/22


Tentative Schedule

Component Topic Paper 1 Paper 2
OS Design 09/10 Exokernel 09/12 Microkernel
OS Scalability 09/17 Multikernel (Linux Scalability) 09/19 Multics
Virtual Memory Design Disco Mach
Current Design Linux Virtual Memory 1 - 2 Superpages
Heterogeneous Mnemosyne HeteroOS 1 - 2
File System Design LFS (book ref) Disks - FFS
Project Checkpoint 1
Crash Consistency OptFS - Journaling RAID - AutoRAID
Scheduling OS Schedulers Lottery (book ref) Linux Scheduler
Events and Threads Scheduler Activations SEDA
Project Checkpoint 2
Distributed File Systems GFS Lego OS
Processing MapReduce Spark
Final Project Prentation

Grading

  • Midterm - 10%
  • Finals - 15%
  • Homeworks - 30%
  • Semester-long Project - 35%
  • Paper Reviews - 10%
  • Extra Credits (Class participation) - 10%