Operating Systems (H) COMPSCI4011

  • Academic Session: 2023-24
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 4 (SCQF level 10)
  • Typically Offered: Semester 2
  • Available to Visiting Students: Yes

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

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below. 

 

The programming and assessed questions coursework cannot be redone because the feedback provided to the students after the original coursework would give any student redoing the coursework an unfair advantage. The presentation can't be redone as the audience is an essential component.

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

Students must submit at least 75% by weight of the component (including examinations) of the course's summative assessment.