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
