Operating System Technologies

Objectives

  • Understand the design and architectures of modern operating systems
  • Acquire knowledge of advanced process scheduling mechanisms, under multi-processor and multi-core environments and modern applications including features such as polling and kernel-bypass.
  • Understand the operation of advanced memory management components in modern operating systems (e.g., Page Cache), and the management policies associated with these.
  • Deepen knowledge of I/O components and optimizations for data storage in modern operating systems (e.g., file systems, block devices).
  • Implement monitoring and diagnostics of modern operating systems to further comprehend their behavior and the behavior of applications using them.
  • Evaluate the performance of modern operating systems and of the applications using these.

Program

  • Overview of the designs and architectures of modern UNIX operating systems
  • Concepts and tools (e.g., extended Berkeley Packet Filter (eBPF)) for the observability and monitoring of operating systems behavior.
  • Advanced process scheduling topics, including multi-core/CPU environments and modern applications using polling and kernel-bypass techniques.
  • Advanced operating system memory management topics (e.g., Page Cache). Notions of buffering and caching, eviction policies.
  • Advanced I/O solutions for data storage in operating systems. Understanding the internal organization of modern file systems and the optimizations they implement (e.g., caching, deduplication, compression).
  • Theoretical and practical concepts on diagnosing and evaluating modern operating systems and the applications they support.

Bibliography

Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Arpaci-Dusseau Books, 2018 BPF Performance Tools. Brendan Gregg. Addison-Wesley Professional, 2019 Understanding the Linux Kernel, 3rd Edition. Daniel Bovet, Marco Cesati. O’Reilly 2005

Updated: