Winter Semester 2023-24

Lecture: Operating Systems


  • Introduction to Operating Systems (OS) – Role, purpose and design issues
  • Processes and Threads – OS structures, process control, abstractions, kernel/user modes and operations, context switching, interrupts
  • Inter-Process Communication – Message passing IPC, RPC, layers, interfaces, hierarchies
  • Coordination: Deadlocks – Process coordination, critical sections, deadlock characterization, deadlock detection and recovery, deadlock avoidance
  • Scheduling/Resource Management – Task ordering, preemptive and non-preemptive scheduling, schedulers and policies, OS implementations
  • Concurrency: Races, Mutual Exclusions – Critical sections, races, spin locks, synchronization
  • Programming Abstractions: Semaphores – Semaphores, Monitors
  • Memory Management – Storage structures, management/replacements approaches, virtual memory, paging, caching, segmentation
  • I/O – Device management, drivers, segmentation, interrupt handling, DMA
  • File systems – File systems requirements, design and implementation, file structures, directories, naming, partitions, virtual file systems
  • Fault Tolerance/Resilience – Fault types, fault handling approaches, reliable message delivery, OS reliability and availability, security issues
  • Embedded/RT OS – Memory/disk/performance management, recovery, fault-tolerances, real-time aspects
  • Distributed OS – Distributed computation and communication abstractions, synchronization, coordination, consistency
  • Virtual Machines – Purpose and types of virtualization, virtual file systems, Hypervisors


Operating Systems: Three Easy Pieces (v0.92); Remzi H. Arpaci-Dusseau & Andrea C. Arpaci-Dusseau; Arpaci-Dusseau Books

Modern Operating Systems, 4th Edition; Andrew S. Tanenbaum & Herbert Bos; Pearson; ISBN-13: 978-0133591620

Operating System Concepts, 9th Edition; Abraham Silberschatz, Peter B. Galvin, Greg Gagne; John Wiley & Sons; ISBN-13: 978-1118093757

Please check Moodle for more information:

*Coming soon*

Practical Lab: System and IoT Security


In this practical course, the students deal with different aspects of (mobile and IoT) system security. They comprise the following areas:

  • System programming in general
  • Design and implementation of selected software attacks
  • Design and implementation of secure applications
  • Modifications of and Experiments with Linux kernel-based systems
  • Security of Machine Learning
  • Applications of Machine Learning for Security Tasks
  • Programming Robots as Messengers in Distributed Systems

Please check Moodle for full information: