Einführung in die CPU-Scheduling¶
📚 1️⃣ Einführung¶
CPU-Scheduling bestimmt, welcher Prozess die CPU bekommt und wann.
Da mehrere Prozesse gleichzeitig um die CPU konkurrieren, muss das Betriebssystem faire und effiziente Zuweisungen treffen.
🔑 Wichtige Begriffe¶
- Prozesszustände: Ready, Running, Blocked
- Workload: Menge von Jobs mit Ankunftszeit, Laufzeit, I/O-Bedarf
- Scheduler: Wählt, welcher Prozess als nächster läuft
- Wichtige Metriken:
Englischer Begriff | Beschreibung | Formel |
---|---|---|
Throughput | Anzahl abgeschlossener Prozesse pro Zeiteinheit | \(Throughput=\frac{Gesamtzeit}{Anzahl der abgeschlossenen Prozesse}\) |
Waiting Time | Zeit, die ein Prozess in der Ready-Queue verbringt | \(Waiting Time=Turnaround Time−Burst Time\) |
Response Time | Zeit von der Ankunft bis zum ersten CPU-Zugriff | \(Response Time=Startzeit−Ankunftszeit\) |
Fairness | Gleichmäßige Verteilung der CPU-Zeit auf Prozesse | Keine feste Formel, wird durch Scheduling-Strategien bestimmt |
Turnaround Time (TAT) | Zeit von Ankunft → Abschluss eines Prozesses | \(Turnaround Time=Completion Time−Arrival Time\) |
🔑 2️⃣ Wichtige Konzepte¶
- Prozess-Queues: Das OS verwaltet Prozesse mit Ready-Queues und Blocked-Queues.
- Wichtige CPU-Scheduling-Strategien:
- First-Come, First-Served (FCFS): Prozesse werden in der Reihenfolge ausgeführt, in der sie ankommen.
- Shortest Job Next (SJN): Der kürzeste Prozess wird zuerst ausgeführt.
- Round Robin (RR): Jeder Prozess bekommt eine feste Zeit auf der CPU (Zeitscheibenverfahren).
- Priority Scheduling: Prozesse mit hoher Priorität laufen zuerst.
⚙️ 3️⃣ Mechanismen und Strategien¶
- Preemptive vs. Non-Preemptive Scheduling:
- Preemptive: Das OS kann einen laufenden Prozess unterbrechen und einen anderen starten.
- Non-Preemptive: Ein Prozess läuft, bis er von selbst fertig ist.
- CPU-Burst vs. I/O-Burst: Prozesse wechseln zwischen CPU-Auslastung und I/O-Wartezeit.
📈 4️⃣ Beispiel¶
Round-Robin mit Zeitscheiben:
Wenn die Zeitscheibe 100 ms beträgt, wird ein Prozess nach 100 ms unterbrochen und der nächste darf laufen.
🎯 5️⃣ Fazit¶
- Scheduling-Algorithmen beeinflussen Systemleistung und Reaktionszeit.
- Kein Algorithmus ist perfekt – das OS wählt je nach Zielsetzung (z. B. Fairness, Latenz, Durchsatz) den besten.