In this module you will have the opportunity to:
- develop an understanding of the main operating system abstractions
- explore the trade-offs in the implementations of operating system functionality
- study the different sub-systems that make up a modern operating system
- investigate different operating system mechanisms and policies for resource management and allocation
- apply a theoretical understanding of operating systems to a real-world operating system implementation
Upon successful completion of this module, you will be able to:
- distinguish between different styles of operating system design
- explain the main principles behind resource abstraction and resource management
- explain the main priniciples behind process isolation and both process and thread models
- explain the problems of scheduling and the mechanisms behind inter-process communication
- identify the main problems related to concurrency and explain different synchronisation mechanisms in operating systems
- evaluate security risks in operating systems and understand the role operating systems should play in establishing security
- Operating system kernel organisation
- Process and thread abstractions
- Inter-process sychronisation mechnaisms
- Concurrency control and scheduling algorithms
- Virtual memory abstractions and mechanisms, including on-demand paging
- Device and disk management
- I/O APIs, and file system abstractions
- Basic security concepts and attacks
The material will be taught through traditional lectures, backed up by unassessed, formative, tutorial-style exercises designed to reinforce the material as it is taught. In addition, the module aligns with a substantial practical laboratory exercise, 'Pintos', which is part of the second-year Integrated Laboratory, in which you will implement an operating system, applying the concepts covered in this module.
The Piazza Q&A web service will be used as an open online discussion forum for the module.
There will be four courseworks that collectively contribute 15% of the mark for the module. These courseworks are aligned with the Pintos laboratory exercise, which involves implementing key components of a real operating system. There will be a final written exam, which counts for the remaining 85% of the marks. This close coupling between the module content and Pintos laboratory exercise provides an opportunity for you to appreciate how the theoretical underpinnings of operating system design are put into practice.
Feedback will be given on the unassessed, formative, exercises in class. You will also receive written feedback on the assessed coursework exercise, which counts for 15% of the module mark.