The Multi-Level Feedback Queue
In this note, we'll tackle the problem of developing one of the
most well-known approaches to scheduling, known as the Multi-
level Feedback Queue (MLFQ). The Multi-level Feedback Queue
(MLFQ) scheduler was first described by Corbato et al. in 1962
[C+62] in a system known as the Compatible Time-Sharing Sys-
tem (CTSS), and this work, along with later work on Multics, led
the ACM to award Corbato its highest honor, the Turing Award.
It has subsequently been refined throughout the years to the im-
plementations you will encounter in modern systems.
The fundamental problem MLFQ tries to address is two-fold.
First, it would like to optimize turnaround time, which, as we
saw in the previous note, is done by running shorter jobs first;
unfortunately, the OS doesn't generally know how long a job
will run for, exactly the knowledge that algorithms like SJF (or
STCF) require. Second, MLFQ would like to make a system feel
responsive to interactive users (i.e., users sitting and staring at
the screen, waiting for a process to finish), and thus minimize re-