The scheduling algorithm