# Prozesszustände
- Bereit (Ready)
- Laufend (Running)
- Blockiert (Blocked)
- Beendet (Terminated)

## 2-Zustands-Modell
![image.png](image.png)

Prozesse, die untätig werden, werden in einer Warteschlange gespeichert
- Wird nach Priorität / Wartezeit sortiert

![image_1.png](image_1.png)

#### 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
![image_3.png](image_3.png)
- 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

![image_2.png](image_2.png)

## 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

![image_4.png](image_4.png)

## 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

![image_5.png](image_5.png)

## 7-Zustands-Modell
![image_6.png](image_6.png)

## 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#

![image_7.png](image_7.png)