# Prozesszustände - Bereit (Ready) - Laufend (Running) - Blockiert (Blocked) - Beendet (Terminated) ## 2-Zustands-Modell  Prozesse, die untätig werden, werden in einer Warteschlange gespeichert - Wird nach Priorität / Wartezeit sortiert  #### Pro - Einfach realisierbar #### Contra - Annahme, dass Prozesse jederzeit zur Ausführung bereit sind - Es gibt blockierte Prozesse - Wartet auf Ein-/Ausgabe - Wartet auf Ergebnis eines anderen Prozesses - Wartet auf Reaktion eines Benutzers ## 3-Zustands-Modell ### Ereignisbezogene Warteschlangen  - Für jedes Ereignis, auf welches ein Prozess wartet, gibt es eine Warteschlange - Tritt das Ereignis ein, werden alle Prozesse der WS in die WS mit den *ready* Prozessen überführt  ## 5-Zustands-Modell Anzahl der ausführbaren Prozesse *limitieren*, um Speicher zu sparen - Zwei weitere Zustände: - **new (new)** - Prozesse, deren PCB das Betriebssystem bereits erzeugt hat, aber noch nicht in der Warteschlange sind - **beendet (exit)** - Abgearbeitete oder abgebrochene Prozesse, deren PCB und Eintrag noch nicht aus der Prozesstabelle entfernt wurden  ## 6-Zustands-Modell Falls nicht genügend physischer Hauptspeicher für alle Prozesse: - **Auslagerungsspeicher (Swap)** - Zustand: **suspendiert (suspended)** - dadurch steht den Prozessen in den Zuständen _rechnend_ und _bereit_ mehr Hauptspeicher zur Verfügung  ## 7-Zustands-Modell  ## Zustands-Modell von Linux - ähnlich wie [7-Zustands-Modell](#7-zustands-modell) - Zustand _rechnend_: - **benutzer rechnend (user running)** - Prozesse im Benutzermodus - **kernel rechnend (kernel running)** - Prozesse im Kernel-Modus - Zustand _beendet (exit)_ = _Zombie_ - ist fertig abgearbeitet - Eintrag in der Prozesstabelle existiert noch bis Elternprozess den Rückgabewert abgefragt hat# 