Der Scheduler selbst ist meist als Interrupt mit der Priorität \(0\) (niedrigste Priorität; beachte ggf. reziproke Prioritätenskala) implementiert. Die "triggernden" Aktionen kennt man auch unter der Bezeichnung Scheduling-Points. Diese wären:
- Entstehung eines neuen Prozesses (fork)
- Beenden eines aktiven (running) Prozesses (exit)
- Wenn ein aktiver (running) Thread blockiert wird (z. B. wegen I/O-Operationen)
- Wenn ein blockierter (blocked) Prozess beendet wird
- Wenn ein Prozess schon zu lange rechnet/die CPU besitzt (bei Round-Robin hätte der entsprechende Prozess sein Quantum aufgebraucht)
- Wenn ein Interrupt auftritt (z. B. ein Timer-Interrupt)