COMPSCI 577: Operating Systems Design and Implementation (Spring 2020)

Course Description

This course will expose students to advanced concepts in operating system design and implementation through an in-depth study of operating system internals. The course will be based on an Unix-like operating system and will comprise of lectures and hands-on programming assignments that cover the design and implementation of OS system calls, device drivers, CPU scheduling, memory management, file systems. We will also cover advanced topics such as virtualization and cluster scheduling, time permitting. Students who complete this course will gain an appreciation of how key OS abstractions and concepts are implemented in practice, become proficient in the design and implementation of complex system software and acquire the skills to develop OS kernel components (e,g, OS modules, drivers, filesystems) or modify OS components (e.g. VM, schedulers).

A detailed list of course goals, objectives, and learning outcomes is available on the Course Outcomes page.

Prerequisites: Since OS kernels are written in C, students are expected to be proficient in the C programming language (or learn C quickly). An undergraduate course on operating systems (equivalent to COMPSCI 377) is also a prerequisite.

Note: Two sections of this class will be offered for credit: an undergraduate section and a graduate section. Please enroll for the appropriate section depending on your student status.

Course Information

Instructor: Prashant Shenoy
Classroom section: LGRC A104, Tu-Th 2:30 - 3:45 pm
Section 1 (undergrad):51578
Section 2 (graduate):51587
Credits: 3

Course Staff

Course Materials

This page is online at
Prashant Shenoy
Last modified: Sun Jan 19 05:33:01 EST 2020