operating-systems scheduling

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:

  1. New Processes: Placed in the highest-priority queue (e.g., RQ0).
  2. Execution: The process runs for a specified time slice.
  3. 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).
  4. 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.