CIS 548

Operating Systems Design and Implementation
Spring 2021


Instructor: Boon Thau Loo
Room: Virtual
Time: Monday and Wednesday 12-1:30pm (asynchronous)
Newsgroup: We will be using Piazza for course-related discussions. Sign up via Penn Canvas for this course.

Instructor and TA office hours (time and location) are listed on Canvas. All communications with teaching staff should be done within Piazza.


Course Description

This is a master’s-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?). The course will involve substantial programming projects cumulating into the development of an operating system.

Optional course textbook:

Course pre-requisites:

  • Working knowledge of the C programming language. Students who have taken CIS 380 are not allowed to take this class for credit. Penn undergrads can however take CIS 548 and use this to satisfy the CIS 380 BSE requirement via a petition that I will approve. Do note that CIS 548 is more challenging than CIS 380, hence pursue this option only if you are keen to dive deeper into operating systems.

Grading

  • Programming projects: 62% (5% for project 0, 13% for project 1, 9% for project 2, 35% for final project)
  • Class participation: 3%
  • Two midterm exams: 35%

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


Schedule

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