Scheduling is de manier waarop processen prioriteiten worden gegeven in een prioriteitenwachtrij van multitasking- en multiprocessingbesturingssystemen en in het ontwerp van een realtimebesturingssysteem. Deze taak wordt uitgevoerd door software die bekendstaat als een scheduler of CPU scheduler.
De processor (CPU) moet regelmatig lange tijd wachten op in- en uitvoer. Tijdens deze wachttijd kan dan een deel van een ander proces uitgevoerd worden. Om te bepalen welk proces uitgevoerd mag worden, wordt een scheduler gebruikt. De scheduler moet de processorbelasting balanceren en voorkomen dat één proces alle CPU-tijd gebruikt, of juist geen CPU-tijd krijgt. In realtimeomgevingen, zoals industriële robots, zorgt de scheduler er ook voor dat processen zich aan hun deadline kunnen houden; dit is cruciaal om het systeem stabiel te houden.
Er bestaan verschillende methoden om scheduling te implementeren. Deze kunnen in twee groepen ingedeeld worden:
De term scheduler wordt ook gebruikt als benaming voor een programma dat op gezette tijden andere programma's start. Een voorbeeld hiervan is het programma cron in Unix-achtige besturingssystemen. Scheduling met cron gebeurt op een enkele machine. Scheduling op meerdere machines kan met Cronacle van Redwood, AutoSys van Computer Associates of Tivoli Workload Scheduler van IBM.
Databases zoals Oracle en MySQL kennen ook een ingebouwd schedulingmechanisme.