Course Overview

An operating system is a layer of software that manages hardware resources and that provides user programs with a simple and consistent interface to the computer. In this course, we will examine services and abstractions commonly provided by operating systems, and we will study the underlying mechanisms used to implement them. Topics will include processes and threads, synchronization, CPU scheduling, deadlocks, memory management, segmentation and paging, storage and file systems, security, and virtualization.

The concepts presented in class will be explored through a series of several intensive programming assignments. The assignments will make use of the C programming language, which is the universal language for implementing and accessing operating systems at the lowest level. The projects will give students ample practice in manipulating pointers, managing memory, invoking system services, and dealing with error conditions. Although the course will offer some technical guidance on these matters, students should expect to spend significant time debugging, consulting reference materials, and revising the projects until they work properly.

The goals for each student in this course are:
  • To understand the abstractions and services provided by an operating system.
  • To understand the mechanisms and algorithms used to implement these services.
  • To get practical experiences using and implementing operating system services.
The course materials will test each student's achievement of these goals at several levels. For each topic in the course, students must be able to:
  • Describe traditional operating system structures and algorithms.
  • Demonstrate in detail how they apply to various programs and data.
  • Evaluate the strengths and weaknesses of related structures and algorithms.
  • Propose and evaluate a variety of improvements upon traditional methods.
  • Implement basic methods in a working computing system.


  • Operating System Concepts, A. Silberschatz, P. B. Galvin, G. Gagne, Wiley, 8th edition or newer. Textbook Website
  • Note: The slides used in class will be posted on this website; it is not essential to purchase the book (i.e., students should be able to follow the course with the slides only)! The chapters referenced in the course schedule follow the 10th edition of the textbook.

Recommended Book for C Programming

  • The C Programming Language, B. W. Kernighan, D. M. Ritchie, Prentice Hall, 2nd edition.

Course Information:

  • Instructor: Christian Poellabauer
  • - Office hours: Mo 11.30AM-12.15PM, We 10-11AM
  • - Office: CASE 383
  • - Email:

  • TAs: Sajad Farrokhi ( & Maryam Songhorabadi (
  • Class location: PG5 Market Station 134
  • Lab location: PG6 105
  • Lecture times: Mo/We 12.30-1.45PM
  • Lab hours: Mo/We 2-3.15

  • Zoom (lectures & office hours)

News Items:

  • No news is good news