Operating Systems
About
- Module: Operating Systems (CO-562)
- Semester: Fall 2026
- Prerequisite: Programming in C and C++ (CH-230)
- Prerequisite: Digital Systems and Computer Architecture (CH-234)
- Instructor: Jürgen Schönwälder
- Instructor: Alexander Tormasov
- Office Hours: Monday, 11:15-12:30 (Research I, Room 87)
- TA (Group A): Bhave, Aneesh Archis
- TA (Group B): Chernii, Artem
- TA (Group C): Maghri, Ahmed
- TA (Group D): Mati, Erik
- TA (Group E): Mitov, Rumen Valentinov
- TA (Group F): Znaien, Mohamed
- Lecture: Tuesday, 15:45-17:00 (RLH-172)
- Tutorial: Tuesday, 17:15-18:30 (RLH-172)
- Lecture: Thursday, 15:45-17:00 (RLH-172)
- TA Tutorial: Monday, 18:00-19:00 (East Hall 5)
- Dec Exam: TBD
- Dec Exam Review: TBD
- Jan Exam: TBD
- Jan Exam Review: TBD
- Aug Exam: TBD
Content and Educational Aims
This module introduces concepts and principles used by operating systems to provide programming abstractions that enable an efficient and robust execution of application programs. Students will gain an understanding of how an operating system kernel manages hardware components and how it provides abstractions such as processes, threads, virtual memory, file systems, and inter-process communication facilities. Students learn the principles of event-driven and concurrent programming and the mechanisms that are necessary to solve synchronization and coordination problems, thereby avoiding race conditions, deadlocks, and resource starvation. The Linux kernel and runtime system will be used throughout the course to illustrate how key ideas and concepts have been implemented and how application programs can use them.