This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems.
Objective
The goals of the course are, firstly, to give students a broader perspective on OS design than that provided by knowledge of Unix or Windows, building on the material in a standard undergraduate operating systems class, and secondly, to provide them with practical experience in dealing directly with the concurrency, resource management, and abstraction problems confronting OS designers and implementers.
Content
This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems. We will pay particular attention to system structures that differ from traditional monolithic arrangements of Unix/Linux and Windows.
Prerequisites / Notice
The course consists of lectures, project work, and a written examination. Project work will be performed in small groups, where students will implement major components of a microkernel-based operating system. The final assessment will be a combination of project and examination grades.