Skip to content

Advanced Operating Systems

Topics overview

  • Multiplexing the CPU and address translation
    • Threads, processes and scheduling, concurrency
    • Memory virtualisation
    • System virtualisation
  • Interfacing and persistence
    • I/O, disks
    • Booting
  • 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)