Ein
Prozess-Scheduler (Scheduler = Steuerprogramm; vom englischen für „Zeitplan“) ist eine
Arbitrationslogik, die die
zeitliche Ausführung mehrerer
Prozesse in
Betriebssystemen regelt. Prozess-Scheduler kann man grob in
unterbrechende (
präemptiv) und
nicht unterbrechende (, auch
kooperativ genannt) aufteilen. Nicht unterbrechende Scheduler lassen einen Prozess, nachdem ihm die
CPU einmal zugeteilt wurde, solange laufen, bis dieser diese von sich aus wieder freigibt oder bis er blockiert. Unterbrechende Scheduler teilen die CPU von vornherein nur für eine bestimmte Zeitspanne zu und entziehen dem Prozess diese daraufhin wieder. Weiter ist eine Unterscheidung in „work-conserving” und „non work-conserving” Strategien möglich. Eine Scheduler-Strategie arbeitet „work-conserving”, wenn das Umschalten zwischen Prozessen nur eine vernachlässigbar geringe Zeit in Anspruch nimmt. Man kann verschiedene Systeme unterscheiden, in welchen jeweils verschiedene Anforderungen an den Scheduler gestellt werden:
- Stapelverarbeitungssysteme
- interaktive Systeme
- Echtzeitsysteme