Prozesszustände

Wird ein Prozess innerhalb eines Betriebssystems erzeugt, so bedeutet dies noch nicht, dass er auch sofort auf der CPU ausgeführt wird. Vielmehr werden verschiedene Zustände eines Prozesses unterschieden.

Die einfachste Betrachtungsweise geht von nur drei möglichen Prozesszuständen aus: Bereit, Rechnend und Blockiert. Die folgende Abbildung zeigt zusätzlich die mögliche Übergänge zwischen diesen Zuständen:

Prozesszustaende.jpg


Hinweis

Sowohl Unix/Linux, als auch Windows definieren für ihre Prozesse weitere Zustände, beide unterscheiden sich darin sehr. Dies wird im Rahmen dieses Lernmoduls aber nicht näher betrachtet.


Direkt nach seiner Erzeugung befindet sich jeder Prozess im Zustand Bereit und wartet auf die Zuteilung der CPU. Sobald er die CPU bekommt, wechselt er in den Zustand Rechnend.

Aufgrund der im Kapitel Nur ein Prozessor mit einem Kern erläuterten Voraussetzung kann sich immer nur ein einziger Prozess zur Zeit im Zustand Rechnend befinden.

Einem Prozess im Zustand Rechnend kann das Betriebsmittel CPU auch wieder entzogen werden, er wechselt dann zurück in den Zustand Bereit.

Ein Prozess wechselt vom Zustand Rechnend in den Zustand Blockiert, wenn er einen Befehl ausführt, dessen Ergebnis noch etwas auf sich warten lässt. Beispielsweise sind E/A-Geräte im Vergleich zur CPU nur sehr langsam arbeitende Komponenten. Ein E/A-Befehl zur Kommunikation mit einem E/A-Gerät wird deshalb oftmals einen Prozess "blockieren".

Tritt das gewünschte Ereignis ein, meldet also beispielsweise das zuvor angesprochene E/A-Gerät, dass das Ergebnis des gewünschten Befehls nun verfügbar ist, so wechselt der betreffende Prozess vom Zustand Blockiert in den Zustand Bereit. Hier wartet er wieder auf die Zuteilung der CPU.


Aufgabe 1

Aufgabe
Merke dir den Zustand!

Wo wird festgehalten, in welchem Zustand sich ein Prozess aktuell befindet?
Wie (bzw. wo) verwaltet das Betriebssystem also diese Information?



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz 80x15.png