Skip to content

CMPUT 379: Operating System Concepts

At a glance

  • Units: 3
  • Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 229, E E 380 or ECE 212.
  • Offered: Now: Fall 2026; Scheduled: Winter 2027
  • Difficulty: Medium
  • Workload: Light-Heavy (instructor-dependent)

Introduction to the structure, components, and concepts behind modern general-purpose operating systems. Processes: process state transitions; operations on processes; interrupt processing; multiprocessor considerations; resource allocation; synchronization; critical sections and events; semaphores; deadlock: avoidance, detection, and recovery; memory management; virtual memory; paging and segmentation; page replacement strategies; working sets; demand paging; process scheduling; scheduling algorithms; file system functions; file organization; space allocation; virtual machines.

Official catalogue entry ยท facts synced 2026-10-01

What Students Say

Imported from the original course reviews page, which mixed student contributions with summarized Reddit discussion. Tips aren't term-stamped yet; if you've taken this course recently, add your experience.

For anyone pursuing Computer Science, this course is extremely useful, but it is especially important for anyone pursuing a career in systems. Completing 379 opens up further systems courses, including CMPUT 481 (Parallel and Distributed Systems), which requires it. Students say it is one of the most professor-dependent courses in the program; the same material can result in a very different experience depending on who's teaching.

Students recommend the free online textbook, Operating Systems: Three Easy Pieces.

Reviews:

"It's basically an extension of 201 with more interesting theory and a little bit of new programming. Definitely worth taking." "It can be up there in difficulty; my prof curved it so nobody got an A."

Instructor notes: - Omid Ardakanian: solid coverage in lectures; accommodating, with a midterm and final described as "very reasonable if you pay attention." - Ioannis Nikolaidis: entertaining with tangents; hard assignments and tests. The textbook is essential in his sections; his lectures don't cover everything. - Paul Lu: also teaches 481, where students find his lectures very engaging. In 379, one student found that exams asked about intricacies that lectures didn't cover in depth, so lean on the textbook.

Student tips: - 379 is significantly easier if you're solid on material from 201. Comfort with C (or C++, depending on the instructor) matters.