Operating Systems Design and Implementation
Instructor and TA office hours (time and location) are listed on Canvas. All communications with teaching staff should be done within Piazza.
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:
- A.S. Tanenbaum. Modern Operating Systems (4/e). Prentice Hall.
- (Highly recommended): W. Richard Stevens and Stephen A. Rago. Advanced Programming in the UNIX Environment (3/e). Addison-Wesley Professional. 2005.
- 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.
- 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.
Visit our Penn Canvas website for more up-to-date information, including links to lecture notes, course resources, etc.