CIS 700/001
Operating Systems Design and Implementation
Spring 2017

Instructor: Boon Thau Loo
Room: Towne 313.
Time: Monday and Wednesday 12-1:30pm
Office hours: Monday and Wednesday 1:30-2pm (605 Levine).
Newsgroup: We will be using Piazza for course-related discussions. Sign up here.

Teaching assistants:

TA office hours (time and location) are listed here.

Course Description

This is a masters-level project-oriented course that focuses on the design and implementation of modern computer operating systems. Topics will include what an operating system does system calls and interfaces, processes, concurrent programming, resource scheduling and management (of the CPU, memory, etc.), virtual memory, deadlocks, and file systems. We will approach the subject from both a theoretical perspective (what are the abstractions and algorithms?) as well as a practical one (what are the mechanisms and how are they built?). Advanced topics will include case studies of seminal operating systems research papers.

Course textbook:

Course pre-requisites:


Class participation will be graded based on regular class attendence, visibility on piazza, and contribution to group projects.

Tentative Schedule

Visit our Piazza website for more up-to-date information, including links to lecture notes, course resources, etc.

Date Topic Reading Remarks
Jan 11 Introduction Chapter 1
Jan 18 Processes and system calls;
Unix system calls and process management
Unix "man" pages for:
read(2), write(2), fork(2), execve(2),
execl(3), wait(2), exit(2)
Project 0 (due Feb 1)
Jan 23 Processes and threads Chapter 2.1-2.2.  
Jan 25 Concurrent programming and IPC Chapter 2.3, 2.5  
Jan 30 NO CLASS   Instructor out of town
Feb 1 Interprocess communication and synchronization   Project 1 (milestone Feb 10, due Mar 3)
Feb 6 Scheduling Chapter 2.4
Feb 8 Scheduling (continue) Chapter 2.4
Feb 13 Resources and deadlocks Chapter 6 Homework 0 (due Feb 20)
Feb 15 Memory Management Chapter 3.1-3.3
Feb 20 Memory Management Chapter 3.1-3.3  
Feb 22 Midterm 0
Feb 27 Memory Management (continue)  
March 1 Buffer  
Mar 13 TLBs, Page replacement  
Mar 15 Page replacement algorithms; thrashing Chapter 3.4  
Mar 20 TA-led project discussion Final project (milestones March 24, Apr 7, demo Apr 19)
Mar 22 I/O and devices, Disks, terminals and networks Chapter 5  
Mar 27 File systems Chapter 4  
Mar 29 NO CLASS Instructor out of town
Apr 3 File Systems (continue)
Apr 5 NO CLASS   Instructor out of town
Apr 10 File Systems (continue)   Homework 1 (due Apr 22)
Apr 12 Advanced topics: Virtual machines DISCO and Xen papers
Apr 17 Advanced topics: Log structured file systems  
Apr 19 NO CLASS. Final project demo day
Apr 24 Midterm review / buffer  
Apr 26 Midterm 1   Covers all material after the break