CIS 548
Operating Systems Design and Implementation
Spring 2018

Instructor: Boon Thau Loo
Room: Moore 216
Time: Monday and Wednesday 12-1:30pm
Office hours: Monday and Wednesday 1:30-2pm (605 Levine), Tuesday 3:30-4:30pm (109C Towne).
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.

Optional 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 10 Introduction Chapter 1
Jan 17 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 (released on Jan 15, due Jan 22)
Jan 22 Processes and threads Chapter 2.1-2.2.  
Jan 24 Processes and threads (cont) Chapter 2.3, 2.5 Project 1 (milestone Feb 2, due Feb 14)
Jan 29 Project 1 discussion
Jan 31 Scheduling Chapter 2.4
Feb 5 Scheduling (cont) Chapter 2.4
Feb 7 Memory Management Chapter 3.1-3.4
Feb 12 Buffer
Feb 14 NO CLASS Instructor out of town
Feb 19 Memory Management Chapter Project 2 (released Feb 16, due Mar 2)
Feb 21 Memory Management Chapter 3.1-3.4
Feb 26 Interprocess communication and synchronization Chapter 2.3, 2.5
Feb 28 Resources and deadlocks
Mar 12 Midterm review / buffer
Mar 14 Midterm
Mar 19 TA-led project discussion Final project (released Mar 16, milestones March 21, Apr 4, demo Apr 18)
Mar 21 Resources and deadlocks
Mar 26 I/O and devices, Disks, terminals and networks Chapter 5  
Mar 28 File systems Chapter 4  
Apr 2 File Systems (continue)
Apr 4 File Systems (continue)  
Apr 9 Virtual Machines
Apr 11 Advanced topics  
Apr 16 Advanced topics Seminar papers in OS
Apr 18 NO CLASS. Final project demo day
Apr 23 Midterm review / buffer  
Apr 25 Midterm 1   Covers all material after the break