Round-robin scheduling (RR) is a scheduling mechanism that divides execution into time slices (or quanta) with a given length . We maintain a queue of processes, but only execute each process for a maximum of time units at a time. If it’s still running, then we pre-empt and re-add to the back of the queue.

The performance of RR depends on the quantum length:

  • Low means there’s too much context switching so too much overhead. This isn’t very useful.
  • High means there’s not enough switching. It effectively reduces down to a FCFS.
  • RR has poor average waiting time when jobs have a similar length.

Weighted-fair queueing

  • generalises round robin
  • but gives each class a different amount of service