The goal of the course is to introduce the students to modern operating systems design. Both practical and theoretical aspects of operating Systems will be studied. The course will cover 5 main topics, namely,
Topic 1: Introduction This module will provide a top level description of modern operating systems.
Topic 2: kernels and processes Introduces the students to the design and implementation of different operating system kernels in some detail.
Topic 3: concurrency, synchronization and scheduling The module covers threads and the semantics of concurrency, synchronization of multi-threaded programs, deadlocks, race conditions, processor scheduling and other related topics.
Topic 4: memory management The fourth module cover topics related to memory such as hardware and software address translation mechanisms, caching and virtual memory.
Topic 5: I/O and File Systems This module introduces the File system abstraction, different storage devices and filesystems