Operating System Kernels

Teaching goals

The goal of this course is to present the implementation of the fundamental concepts of operating systems (processes, threads, synchronization, address spaces and demand paging) in operating system kernels. The lecture will give the general implementation principles of operating systems together with the provided hardware support for their efficient implementation (memory management units, hardware support for synchronization and virtualization). A significant amount of time will be dedicated to practical work, during which students will build the main parts of a small operating system kernel (implementation of synchronization, device drivers, demand paging and memory-mapped files).

Course description

  • Implementation of system kernels: context switches, main data structures of operating systems kernels, implementation of scheduling and synchronization tools (semaphores, locks)
  • Driver implementation (busy waiting, use of interrupts)
  • Memory management: dynamic memory allocation, virtual memory and demand paging, region sharing, memory-mapped files
  • Security in operating systems: access rights, operating system support for security

Keywords

Operating systems, implementation, synchronization, demand paging, security.

Prerequisite

Basic concepts of (1) computer architecture and compilers: usage of stack, heap; (2) basic concepts of operating systems: processes, inter-process synchronization using semaphores; (iii) programming using imperative compiler languages such as C.

Bibliography

  • Operating System Concepts (10th edition), by Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, 2018
  • Modern Operating Systems (4th edition), by Andrew S. Tanenbaum, 2014
  • Operating Systems: Internals and Design Principles (9th edition), by William Stallings, 2017

Biography

Isabelle Puaut is a researcher professor at the Université de Rennes 1. Isabelle Puaut’s research focuses on real-time embedded systems: timing analysis of real-time software (WCET estimation), real-time operating systems, security in real-time embedded systems, architectural support for predictability in embedded systems. Isabelle Puaut carries out her research with IRISA.