Operating Systems UESTCHN4023
- Academic Session: 2026-27
- School: School of Engineering
- Credits: 10
- Level: Level 4 (SCQF level 10)
- Typically Offered: Semester 1
- Available to Visiting Students: No
- 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
None
Excluded Courses
None
Co-requisites
None
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: December
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.