Operating Systems

Undergraduate course, TU Darmstadt, 2024

Course Contents:

  • 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