Operating Systems Practice Question 4: MLFQ Starvation Boost
Operating Systems · Test 1 · question 4 of 10
A scheduler uses a multi-level feedback queue: a job that uses its whole time slice is moved down one priority level, and the scheduler always runs a job from the highest non-empty queue. On a busy server, a steady stream of short interactive requests keeps the top queues full. A long-running report job that sank to the lowest queue has not received any CPU time for hours.
Which change most directly guarantees the report job eventually makes progress?
Show answer and explanation
Answer:
Strict priority scheduling can starve low-priority work: if higher queues are never empty, the lowest queue is never chosen. MLFQ's fix is the priority boost: after some period S, move all jobs to the topmost queue. The starved job then competes at the top, gets time slices in round robin with the interactive jobs, and is guaranteed to make some progress. The boost also helps a job whose behaviour has changed from CPU-bound to interactive.
Option A is wrong: a longer slice only helps once the job is actually scheduled. Because the top queues are never empty, the lowest queue is never picked, so the length of its slice is irrelevant.
Option B is wrong: it pushes the job further from the CPU, the opposite of what is needed. It is already at the lowest level in any case.
Option D is wrong: changing the order *within* a queue does not change whether the lowest queue is ever reached. Starvation here comes from the rule that higher queues always win.
Reference: OSTEP - Scheduling: The Multi-Level Feedback Queue