Operating Systems Design and Implementation
Instructor: Boon Thau Loo
Instructor and TA office hours (time and location) are listed on Canvas. All communications with teaching staff should be done within Ed Stem.
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 3800 are not allowed to take this class for credit. Penn undergrads can however take CIS 5480 and use this to satisfy the CIS 3800 BSE requirement via a petition that I will approve. Do note that CIS 5480 is more challenging than CIS 3800, hence pursue this option only if you are keen to dive deeper into operating systems.
- Programming projects (see Canvas for detailed breakdown)
- Two midterm exams
Visit our Penn Canvas website for more up-to-date information, including links to lecture notes, course resources, etc.