Advanced Operating Systems M (2010-2011)

The computing landscape has changed radically in the last decade. The desktop personal computer has become largely irrelevant, and heterogeneous, multicore, mobile, and real-time systems — smart mobile phones, net books, and laptops — are now ubiquitous. Yet, despite this shift, these systems are still programmed in C, and the majority run some variant of the Unix operating system. This course will review research literature on systems programming techniques and operating systems design, discuss the limitations of deployed systems, and show how the operating system infrastructure might evolve to address the challenges of supporting modern computing systems.

Aims and Objectives

This course aims to explore the programming language and operating systems facilities essential to the implementation of real-time, reactive, and embedded systems. To discuss the limitations of industry-standard operating systems, and introduce new approaches to operating systems design that address the challenges of security, robustness, and concurrency. To give participants an understanding of the practical engineering issues caused by the design of real-time and concurrent systems; to suggest appropriate implementation techniques for such systems.

At the end of this course, students should be able to:


Required pre-requisite courses are Computer Systems 2, Operating Systems 3, Advanced Programming 3, and Functional Programming 4.

Computer Architecture 4 is a recommended co-requisite.


The course runs during semester 2, and consists of lectures and associated tutorials. There are no scheduled laboratory sessions.

Recommended Reading

Jane W. S. Liu, "Real-Time Systems", Prentice Hall, 2000, ISBN 0130996513 is recommended background reading for the real-time systems parts of the course. Research papers will be set as required reading for some tutorials, and as background reading for some lectures.


This is a level M course, worth 10 credits.


The course will be assessed by a combination of coursework (20%) and a final examination (80%).


  • Sample exam
  • Sample exam (with answers)
  • Lecture Handouts

    Tutorial Handouts