COMP25111 Operating Systems syllabus 2018-2019
An operating system is typically the 'lowest' layer of software in a computer. It provides an abstracted interface so that applications can run on diverse hardware without modification and it provides security which prevents misbehaving software from crashing the hardware or disturbing other tasks which may be running simultaneously.
This course unit provides an introduction to the major principles of implementation of an operating system and some experience in how these features may be exploited by the 'higher' software layers. Note that this module is currently undergoing major redevelopment and modernisation and, whilst the principles will not change, some of the details both in the syllabus and teaching methods may differ in the autumn.
This course unit assumes that students are familiar with the idea that their applications programs run on some sort of 'box'. The intention is to peel back another layer to see how the system software - and in a few cases the associated hardware - conspire to run that application safely and securely, despite the hardware itself - processors, memory, filestore etc. - differing from case to case. It also seeks to illuminate the services a typical operating system provides, some of which will probably be unfamiliar, in a practical way.
To support this material there will also be some revision of (or an introduction to, for a few students) some architectural features and enough material on the C language to enable someone already familiar with (say!) Java to be able to poke around the machine.
- Overview; abstraction layers; purpose.
- Basic C programming and pointers
- Memory map and structure
- Virtual memory, paging; caches et alia.
- Processes & threads
- Protection, priority, real-time constraints
- Scheduling, context switching
- Ownership, protection
- Polling, Interrupts, DMA
- File organisation; types; security
Multiprocessors, hypervisors and future stuff
22 in total, 2 per week
11 hours in total, 1 hour weekly sessions
Mid-term test: 5%
The intention is to automate as much feedback as possible by providing many small 'exercises' to illuminate the various concepts. Some exercises may only take a few minutes - at least for those who grasp the concept immediately - others a bit longer but wherever feasible misconceptions will be highlighted immediately and more 'goes' provided. There is a strong intent to keep the assessment elements as minimal as sensible during the duration of the course.
Scheduled'laboratories' are intended to support the on-line systems which will be available at all times; they are not for generating marks.
Lectures and other material are intended to guide one sensible path through the various interdependent topics.
Inevitably, there will also be an examination at the end of the semester.
- Assessment written exam (2 hours)
- Lectures (24 hours)
- Practical classes & workshops (11 hours)
- Analytical skills
- Problem solving
|Programme outcome||Unit learning outcomes||Assessment|
|A2 A3||Have knowledge and understanding of the overall structure and functionality of a modern operating system and of its interactions with the underlying computer hardware and overlying user-program.|
|A2 A3||Have detailed knowledge and understanding of the operation of the following major component of an operating system: - the I/O device manager|
|A2 A3||Have detailed knowledge and understanding of the operation of the following major component of an operating system: - the memory manager|
|A2 A3||Have detailed knowledge and understanding of the operation of the following major component of an operating system: - the process manager|
|A2 A3||Have detailed knowledge and understanding of the operation of the following major component of an operating system: - the file manager.|
|A2 A3 B1 B2 B3 C1 C5 D1 D4 D5||Have the ability to design and implement (an emulation of) a prototypical process manager.|
|A2 A3 B1 B2 B3 D1 D4 D5||Be aware of how fundamental techniques in 1) and 2) are applied in practice in two distinct modern operating systems.|
|Modern operating systems (4th edition)||Tanenbaum, Andrew S.||9781292061429||Pearson||2014||✔|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.