COMP20180 Intro to Operating Systems

Academic Year 2024/2025

The course is an introduction to operating systems, with an emphasis on fundamental principles underlying modern general-purpose operating systems. The course is based on exploring and modifying a teaching operating system running on a simulated RISC-V computer. References to popular operating systems are also made at different points in order to illustrate concepts and/or implementation issues. The course starts with an introduction to “bare metal” programming using a combination of C and RISC-V assembly languages. The important concepts and historic developments related to Operating Systems are then introduced using a combination of lectures, historic videos, and practical assignments in which students develop extensions to the teaching operating system. These concepts include interrupts, executable file, execution context switching, process, system call, driver, file system, Unix system call API and shell language, process scheduling, virtual memory, interprocess synchronisation and communication.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

- Know what an operating system is and why operating systems are studied as a subject matter.

- Understand the concepts of process and thread.

- Understand the concepts of software and hardware interrupts.

- Understand the concept of the device driver.

- Understand the concepts of process/thread scheduling.

- Understand the concept of virtual memory.

- Understand the concept of system calls (syscalls).

- Understand key concepts of the Unix syscall API.

- Understand key ideas of Unix shell language

- Understand the concepts related to process synchronisation, interprocess communication, and associated issues such as deadlock.

- Understand essential concepts and techniques underlying file system implementation.

Indicative Module Content:

(see above)

Student Effort Hours: 
Student Effort Type Hours
Lectures

22

Tutorial

16

Autonomous Student Learning

88

Total

126

Approaches to Teaching and Learning:
Lectures; Problem-based learning 
Requirements, Exclusions and Recommendations
Learning Recommendations:

The students are expected to have knowledge of programming and data structures equivalent to that acquired in the Computer Science modules offered in these areas in levels 1 and 2.


Module Requisites and Incompatibles
Not applicable to this module.
 
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Assignment(Including Essay): System calls, interrupts, multitasking n/a Alternative linear conversion grade scale 40% No

9

Assignment(Including Essay): "Bare metal" computer programming n/a Alternative linear conversion grade scale 40% No

9

Exam (In-person): Written exam on all aspects of the module n/a Alternative linear conversion grade scale 40% No

60

Assignment(Including Essay): Unix syscall API and shell command syntax n/a Alternative linear conversion grade scale 40% No

9

Assignment(Including Essay): Virtual address spaces, interprocess communication and synchronisation, related topics n/a Alternative linear conversion grade scale 40% No

9

Quizzes/Short Exercises: Brightspace MCQ quizzes about historic videos presented in the course n/a Alternative linear conversion grade scale 40% No

4


Carry forward of passed components
Yes
 
Resit In Terminal Exam
Autumn No
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment

How will my Feedback be Delivered?

Not yet recorded.