Advanced Operating Systems
Topics overview
- Multiplexing the CPU and address translation
- Threads, processes and scheduling, concurrency
- Memory virtualisation
- System virtualisation
- Interfacing and persistence
- System-level programming
- 80% CPU Linux kernel programming (C)
- 20% MCU OS programming (C++)
Advanced concepts
- Scheduling policies (not only Linux's CFS)
- Virtual machines (hypervisors)
- Memory management (e.g., segmentation, buddy algorithm, Linux PFRA)
- Advanced kernel synchronization primitives (Linux's RCU and MCS)
- Modern C/C++ concurrency and design patterns
- Memory consistency models
- Booting and configuring a system (UEFI, UBoot, PCI, ACPI)