Operating Systems (H) COMPSCI4011
- Academic Session: 2026-27
- School: School of Computing Science
- Credits: 10
- Level: Level 4 (SCQF level 10)
- Typically Offered: Semester 2
- Available to Visiting Students: Yes
- Collaborative Online International Learning: No
- Curriculum For Life: No
Short Description
To introduce the students to the styles of coding required with an OS;
To give a thorough presentation of the contents of a traditional OS, including the key abstractions;
To show the range of algorithms and techniques available for specific OS problems, and the implications of selection specific algorithms for application behaviour;
To develop an integrated understanding of what the computer is doing, from a non-naive view of hardware to the behaviour of multi-threaded application processes; present the alternatives and clarify the trade-offs that drive OS and hardware design.
Timetable
Two one-hour lectures and one one-hour tutorial/lab session per week.
Requirements of Entry
Networks and Operating Systems Essentials 2 (or equivalent)
Object Oriented Software Engineering 2 (or equivalent)
Java Programming 2 (or equivalent)
Algorithms and Data Structures 2 (or equivalent)
This course is only available to Honours students.
Excluded Courses
None
Co-requisites
Systems Programming (H) (required)
Networked Systems (H) (recommended and optional)
Assessment
Examination (60%); Practical Exercises (20%) involving intensive C programming; thorough evaluation of understanding of principles and techniques via assessed questions (15%); presentation of studied materials, assessed on content , delivery and response to questions (5%)
Main Assessment In: April/May
Are reassessment opportunities available for all summative assessments? Not applicable
It is the default expectation that all courses will offer opportunities for reassessment or deferred assessment. Where it is not possible to offer this in some assessment components, the grade achieved at the first attempt will be counted towards the final course grade, and any exceptions for this course are described below.
[No exceptions]
Course Aims
To introduce the students to the styles of coding required with an OS;
To give a thorough presentation of the contents of a traditional OS, including the key abstractions;
To show the range of algorithms and techniques available for specific OS problems, and the implications of selection specific algorithms for application behaviour;
To develop an integrated understanding of what the computer is doing, from a non-naive view of hardware to the behaviour of multi-threaded application processes; present the alternatives and clarify the trade-offs that drive OS and hardware design.
Intended Learning Outcomes of Course
By the end of this course, students will be able to:
1. Use current operating system terminology in correctly explaining the functions of an OS;
2. Relate operating system functions to computer hardware;
3. Describe the mechanisms of interrupts, context switching and address translation;
4. Describe the relation of operating system functions to language run-time systems;
5. Explain the significance of concurrency in operating system design;
6. Demonstrate an understanding of the semantics of operating system functions, including scheduling and memory management, by being able to describe their functioning;
7. Implement simple operating system components and basic algorithms (CPU scheduling, deadlock detection and avoidance algorithms);
8. Critique designs and implementations of OS components, eg the Unix file system;
9. Illustrate the influence of operating system functions on application behaviour;
10. Compare and contrast alternative approaches to hardware components such as the CPU and bus;
11. Engineer medium-sized (multi-file) software components for integration into larger C and/or Java programs.