Operating System Foundations
What an operating system is, how it evolved, what services it provides, and how its architecture shapes everything above it.
Course
This course introduces the principles, design, implementation, and evaluation of modern operating systems. Students examine process and thread management, scheduling, synchronization, deadlocks, memory management, virtual memory, file systems, storage management, security, virtualization, and cloud operating systems. Through Linux-based laboratories and programming assignments, students gain practical experience implementing and analyzing operating-system mechanisms.
Also known as: CMIS 3150
Canonical ID:
urn:taxonomy:cip-aligned:course:COMP3150
| Course name | Operating Systems |
|---|---|
| Course code | COMP3150 |
| Level | intermediate |
| Status | active |
| Subject | Programming (SUB-0101-01) |
| Discipline | Computer Science |
| Category | Computing and Information Sciences |
This course introduces the principles, design, implementation, and evaluation of modern operating systems. Students examine process and thread management, scheduling, synchronization, deadlocks, memory management, virtual memory, file systems, storage management, security, virtualization, and cloud operating systems. Through Linux-based laboratories and programming assignments, students gain practical experience implementing and analyzing operating-system mechanisms.
| Min | 3 |
|---|---|
| Max | 4 |
| Type | semester |
Asynchronous, self-paced.
Introduction to Programming, Object-Oriented Programming, Data Structures and Algorithms, Computer Organization and Architecture
None
None
Explore
Five modules, thirteen units, and eighty-one lessons make up the course. Every lesson follows the same eleven-part structure.
What an operating system is, how it evolved, what services it provides, and how its architecture shapes everything above it.
The heart of the course: process and thread abstractions, CPU scheduling, synchronization, and the deadlock problem.
From the memory hierarchy and address binding to paging, page replacement, and the control of thrashing.
How persistent data and devices are organised: files, inodes, journaling, drivers, interrupts, DMA, RAID, and SSDs.
Protection and access control, OS hardening, hypervisors, containers, orchestration, and cloud operating systems.
Laboratories
Every laboratory runs in the supplied Linux virtual machine using GCC, Make, Git, GDB, and the POSIX API. Each combines implementation, measurement, and analysis.
| Lab | Topic | Related unit |
|---|---|---|
| Lab 1 | Linux Fundamentals | Unit 2 |
| Lab 2 | Process Management | Unit 3 |
| Lab 3 | POSIX Threads | Unit 4 |
| Lab 4 | Scheduling Simulation | Unit 5 |
| Lab 5 | Synchronization | Unit 6 |
| Lab 6 | Deadlock Analysis | Unit 7 |
| Lab 7 | Memory Management | Unit 8 |
| Lab 8 | Virtual Memory | Unit 9 |
| Lab 9 | File Systems | Unit 10 |
| Lab 10 | Storage Systems | Unit 11 |
| Lab 11 | Security | Unit 12 |
| Lab 12 | Containers and Virtualization | Unit 13 |
Assignments
Each assignment spans multiple weeks and draws on several units. Together they account for 35% of the final grade.
Design and implement a concurrent log-analysis system that uses both processes and threads, communicates through pipes and shared memory, synchronises access to a bounded buffer, and shuts down gracefully on a signal.
Design, implement, test, and analyse a discrete-event simulator for one OS subsystem. Choose from a CPU scheduler, virtual-memory manager, or file system, and build it end to end with rigorous testing and quantitative analysis.
Examinations
Both papers include full instructor answer keys with model answers and marking guides.
A two-hour, closed-book examination covering Modules 1–3. Four parts: multiple choice, short answer, problems, and design/analysis.
A three-hour comprehensive examination covering all thirteen units, with emphasis on Modules 4–5. Same four-part structure as the midterm.
Final Project
A substantial operating-system component, worth 20% of the final grade, evaluated on design, functionality, depth, validation, documentation, demonstration, and professional quality.
Build a small but complete operating-system kernel for x86-64 that boots, manages memory, schedules processes, handles interrupts, and runs a simple user-space program.
Build a container runtime from scratch — image pulling, root file-system assembly, namespace and cgroup configuration, and container lifecycle management.
Build a type-2 hypervisor that uses KVM to run a guest virtual machine, including VM creation, memory mapping, virtual CPU management, and virtio-based I/O.
Build a component of a distributed operating system — a replicated key-value store, a cluster scheduler, or a distributed file system — with fault tolerance and consistency.
Build a suite of tools that observe and diagnose a running Linux system: system-call tracer, scheduler analyser, memory profiler, I/O observer, integrated into a single dashboard.
Discussions
Every unit includes a graded discussion worth 5% of the final grade in total. Each requires a substantive original post and replies to two classmates.
Assessment
Roughly half of the final grade comes from laboratory and project work; the other half comes from quizzes, two assignments, and the midterm exam.
| Assessment | Weight | Primary outcomes |
|---|---|---|
| Quizzes (13) | 10% | CLO1–CLO5, CLO7 |
| Laboratories (12) | 15% | CLO2–CLO7 |
| Assignment 1 — Parallel Log Analyzer | 15% | CLO2, CLO3, CLO6, CLO8 |
| Assignment 2 — Operating-System Simulator | 20% | CLO3, CLO4, CLO5, CLO6, CLO8 |
| Midterm Exam | 15% | CLO1–CLO4 |
| Final Project | 20% | CLO2–CLO6, CLO8 |
| Participation (13 discussions) | 5% | CLO1, CLO3, CLO7 |
| Total | 100% |
Alignment
Every course learning outcome is assessed in more than one way, so no single artefact carries the whole weight of an outcome.
| CLO | Quiz | Lab | A1 | A2 | Midterm | Final | Project | Discussion |
|---|---|---|---|---|---|---|---|---|
| CLO1 | ✓ | — | — | — | ✓ | ✓ | — | ✓ |
| CLO2 | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | — |
| CLO3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| CLO4 | ✓ | ✓ | — | ✓ | ✓ | ✓ | ✓ | — |
| CLO5 | ✓ | ✓ | — | ✓ | — | ✓ | ✓ | — |
| CLO6 | — | ✓ | ✓ | ✓ | — | — | ✓ | — |
| CLO7 | ✓ | ✓ | — | — | — | ✓ | — | ✓ |
| CLO8 | — | — | ✓ | ✓ | — | — | ✓ | — |
Resources
Arpaci-Dusseau, R. H., & Arpaci-Dusseau, A. C. Operating Systems: Three Easy Pieces (OSTEP) — Open Educational Resource.
Open access Required reading
Accreditation & design
Designed to satisfy the requirements of a required third-year operating systems course in Computer Science, Computing and Information Systems, Software Engineering, or Information Technology programs.
Start with Lesson 1.0 — Setting Up Your Course VM, then work through Module 1. Everything you need is already available.