Definition
Feedback Scheduling
Feedback scheduling is a dynamic priority-based scheduling strategy that penalises processes based on their CPU usage. Processes that use the CPU for long continuous bursts are demoted to lower-priority queues.
Mechanism
The system maintains a set of scheduling queues with different priority levels:
- New Processes: Placed in the highest-priority queue (e.g., RQ0).
- Execution: The process runs for a specified time slice.
- Demotion: If the process uses its full time slice without blocking (e.g., CPU-intensive), it is moved to the next lower-priority queue (e.g., RQ1).
- Promotion: To prevent starvation of long processes in low-priority queues, the system may periodically promote them to higher-priority queues.
Characteristics
- Selection Function: Always pick from the highest-priority non-empty queue. Within a queue, FCFS or Round Robin may be used.
- Decision Mode: Preemptive.
- Bias: Naturally favours I/O-intensive and interactive processes, as they block frequently and thus stay in high-priority queues.
- Dynamic Adaptation: Automatically adapts to the behaviour of processes without requiring prior estimation of service times.