CS-537 Introduction to Operating Systems: Lecture Videos
by Remzi H. Arpaci-Dusseau · University of Wisconsin-Madison
Lecture recordings and notes from Remzi Arpaci-Dusseau's Wisconsin CS-537 course, the class OSTEP was written for. Lecture 2 covers scheduling policies and metrics; lecture 3 works through the multi-level feedback queue on the whiteboard.
More resources on Scheduling Algorithms
CS162: Operating Systems and Systems Programming
UC Berkeley's upper-division operating systems course, with lectures, projects and exams covering processes and threads, synchronization, CPU scheduling, virtual memory, file systems, I/O and networking. Students build kernel features in the Pintos teaching OS and understand how operating systems work internally.
Operating Systems: Three Easy Pieces
Learn concurrency in operating systems with this course from Remzi & Andrea Arpaci-Dusseau, based on "Operating Systems: Three Easy Pieces."
The Linux Scheduler: a Decade of Wasted Cores
EuroSys 2016 study that found four bugs in Linux's load balancer leaving cores idle while threads waited, costing up to 13-23% on real workloads. Shows how scheduler invariants break at scale and how to detect it.
An EEVDF CPU Scheduler for Linux
Jonathan Corbet's explanation of why Linux replaced the Completely Fair Scheduler with EEVDF, covering lag, eligibility, virtual deadlines and per-task latency requirements. Clarifies the design reasoning that the kernel's own documentation states only tersely. Practitioner writing with verifiable skin in the game that supplies the 'why' the terse kernel docs omit: what fairness failed to capture and how lag plus virtual deadlines fix latency.
Lottery Scheduling: Flexible Proportional-Share Resource Management
The 1994 OSDI paper introducing lottery scheduling, a randomized proportional-share mechanism using tickets and currencies. It shows how relative execution rates can be controlled directly, with prototype results on Mach, and grounds every later fair-share scheduler.
OSTEP Chapter 8: Scheduling: The Multi-Level Feedback Queue
Chapter 8 of OSTEP derives the multi-level feedback queue: how a scheduler infers job behavior at runtime, adjusts priorities with rule changes, and prevents starvation and gaming through periodic priority boosts. Explains the design behind Solaris, BSD and Windows schedulers. MLFQ is where scheduling stops being a quiz topic and becomes design under uncertainty. The chapter builds it rule by rule, breaks each rule with an attack (gaming the quantum, changing behavior), and repairs it, which is exactly the structural reasoning the tutorial pages omit.