COMP 3150Operating Systems

Module 2 of 5 · The core of the course

Processes and Concurrency

The heart of the course. This module develops the process and thread abstractions, the algorithms that decide which runnable entity uses the CPU next, the mechanisms that keep concurrent code correct, and the conditions that bring a system to a halt.

5 units · 30 lessons Labs 2–6 CLO2 · CLO3 · CLO6 · CLO8 ≈ 5 weeks at recommended pace
Process state diagram and scheduling timeline The five process states — New, Ready, Running, Blocked, and Terminated — with the transitions admit, dispatch, preempt, I/O wait, I/O complete, and exit. A small timeline shows three processes interleaving on one CPU. New Ready Running Terminated Blocked admit dispatch exit preempt I/O wait I/O complete SCHEDULE TIMELINE P1 P2 P1 P3
5UnitsProcesses to deadlocks
30LessonsThe largest module
5LaboratoriesLabs 2–6
4CLOs2 · 3 · 6 · 8
≈5WeeksAt recommended pace

Module overview

The heart of the course

Every modern operating system is, at its core, a manager of concurrent activity. This module builds the abstractions — process, thread, scheduler, lock, semaphore — that make that management possible, and it develops the analytical tools you need to reason about their behaviour.

You will model process states, measure context-switch costs, compare scheduling algorithms on real workloads, and design synchronization solutions that are correct and deadlock-free. Each unit ends with a laboratory in which you implement and stress the mechanism you have just studied.

Module learning outcomes

What you will be able to do

After Module 2 you will be able to

  • Explain the process model, process states, and the role of the PCB.
  • Compare user-level and kernel-level threading, and write POSIX-threaded programs.
  • Analyse FCFS, SJF, SRTF, priority, round-robin, and multilevel-queue scheduling.
  • Identify race conditions and apply locks, semaphores, monitors, and condition variables.
  • Detect, prevent, avoid, and recover from deadlocks, including the Banker's algorithm.
  • Implement, test, and measure concurrent systems programs in Linux.

Course outcomes addressed

  • CLO2 — Explain process and thread management principles and mechanisms.
  • CLO3 — Analyse scheduling, synchronization, and deadlock solutions.
  • CLO6 — Apply Linux systems-programming techniques and operating-system tools.
  • CLO8 — Design and implement software components related to operating-system functionality.

Units

Units in this module

Laboratory & assessment

How Module 2 is assessed

Laboratories

LabTopicUnit
Lab 2Process ManagementUnit 3
Lab 3POSIX ThreadsUnit 4
Lab 4Scheduling SimulationUnit 5
Lab 5SynchronizationUnit 6
Lab 6Deadlock AnalysisUnit 7

Quizzes, discussion, and Assignment 1

  • Five unit quizzes — one per unit.
  • Five discussion activities — one per unit.
  • Assignment 1 — processes, threads, and synchronization, worth 15% of the final grade. Covers CLO2, CLO3, CLO6, and CLO8.

Density warning

This is the largest and most demanding module in the course. Budget additional time for Units 6 and 7 — the synchronization and deadlock material rewards slow, careful reading.

👤