Course Catalogue

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.

Minimum Requirement for Award of Credits

No exceptions