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