The module covers the main concepts of modern operating systems (OS). The module has three main parts. The first part of the course provides a short history of operating systems and their purposes. It also introduces the student to multiprocessing and multithreading, i.e. how an OS manages multiple tasks that execute at the same time (concurrently) and share resources. The second part of the course addresses the problem of memory management. The final part of the course introduces file systems and Input/output handling. Throughout the module, case studies of various operating systems are presented while the exercises and labs focus on one Linux flavour suitable to run on a platform such as Raspberry Pi 3.

The lab work consists of 11 sessions of OS concepts applications often using a platform such as the Raspberry Pi. The lab sessions are a mix of tutorials, problem solving tasks and programming exercises.

Two summative assessments are required: 40% for an theoretical test, and 60% for Operating System Simulator. Formative assessments are offered during the lab hours.