Operating Systems
Module aims
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
Learning outcomes
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
Module syllabus
- 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
Teaching methods
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.
An online service will be used as a discussion forum for the module.
Assessments
There will be four courseworks that collectively contribute 20% 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 80% 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 20% of the module mark.
Reading list
Core reading
-
Modern operating systems.
Fifth edition / Andrew S. Tanenbaum, Herbert Bos., Pearson
-
Operating systems
3rd international edition., Prentice Hall
-
Operating systems : internals and design principles
Global, ninth edition., Harlow, England : Pearson
-
Operating systems : internals and design principles
Global edition.; Ninth edition., Pearson
-
Operating Systems : International Edition.
7th ed., : Pearson Education UK
Supplementary reading
-
Understanding the Linux kernel
Third edition., O'Reilly
-
Linux kernel development
3rd ed., Addison-Wesley
Module leaders
Dr Lluis VilanovaProfessor Peter Pietzuch