Reducing MLFQ Scheduling Starvation with Feedback and Exponential Averaging
The Multi-Level Feedback Queue (MLFQ) for process scheduling is efficient and effective, but can allow low-priority and CPU-intensive processes to be starved of CPU attention and make little progress. Process scheduling algorithms in general favor the "shortest CPU-burst first" approach, which provides good performance for interactive processes. A disadvantage often cited for the MLFQ is that processes in the lowest priority queue are in danger of being starved for CPU attention. Other scheduling techniques involve periodically increasing the priority of a process to enable the process to make some forward progress.
This paper presents a technique that mitigates MLFQ starvation, which is low overhead and does not jeopardize the servicing of interactive and high-priority processes. This is accomplished by adding a second level of feedback to redirect a "safe" amount of CPU time to the lowest-priority queue to prevent starvation of processes in that queue.