
An operating system is an intermediary between the user programmes and the computer hardware resources. By managing disparate hardware resources, an OS shields user programmes from the complexities of individual hardware devices and issues such as concurrency and failure. The user gets an abstraction of hardware resources, which is convenient to use and allows for efficient utilisation of these resources. This course provides an opportunity to learn about operating systems through: examination of theoretical concepts underlying various operating systems components; and a hands-on project involving design and implementation of these components.