Scheduling-Grundlagen
Scheduling-Grundlagen
Scheduling ist die Zuteilung von Ressourcen zu Prozessen — bei Multi-Prozess-Systemen mit begrenzten Ressourcen stets notwendig. Kategorisierbar nach Zeitskala, Zielsetzung und Zuteilungsverfahren.
Definition
Unter Scheduling versteht man die Zuteilung von Ressourcen zu Prozessen.
Es ist eine spezielle Form der Ressourcen-Vergabe und „Synchronisation": Die Ressource ist die CPU, und der Scheduler greift von außen in die Reihenfolge ein. Je nach Algorithmus wird dabei eine der Deadlock-Bedingungen ausgeschaltet.
Kategorisierung
1. Zeitskala
- schnelle Abläufe für die CPU
- langsame für I/O-Geräte (→ Festplatten-Scheduling)
2. Zielsetzung (oft „Systemart" genannt)
- optimale Antwortzeit · optimale Fairness · optimaler Durchsatz · optimale Auslastung
(Diese Ziele stehen teils im Konflikt — niedrige Antwortzeit vs. hoher Durchsatz.)
3. Verfahren der Zuteilung
- präemptiv — aktive Unterbrechung des laufenden Prozesses (per Timer-Interrupt)
- nicht-präemptiv — nur freiwillige Rückgabe der CPU durch den Prozess
Überblick der Verfahren
| Verfahren | präemptiv? | typisch für |
|---|---|---|
| FCFS | nein | Batch |
| SJF | nein (auch präemptiv möglich) | Batch |
| Round Robin | ja | interaktiv |
| MFBQ | ja | klassisches Unix |
Verwandte Notes
FCFS & SJF · Round Robin · Multilevel Feedback Queue · Festplatten-Scheduling · Prozess-Zustandsmodell · Prozesskontext & Kontextwechsel