Prozeßstatus
CIP Index Up Right

Prozeßstatus

Ein Prozeß durchläuft zwischen Initiierung und Tod eine ganze Reihe von verschiedenen Zuständen. Viele Übergänge werden automatisch vom Betriebssystem gesteuert und der Benutzer merkt nichts davon. In einigen Fällen kann der Benutzer jedoch auch selbst eingreifen.

running, ready
Der Prozeß wird gerade vom Prozessor bearbeitet, bzw. steht in der Warteschlange von der Ausführung. Letzteres wird notwendig, wenn man mehrere Prozesse quasi gleichzeitig ausführen möchte, dann werden alle Prozesse im "ready" Status der Reihe nach für eine kurze Zeit ausgeführt und dann vom Betriebssystem wieder unterbrochen und in die ready-Queue eingereiht.

blocked
Der Prozeß wartet auf eine Systemresource, z.B. darauf daß er einen Datenblock erhält, den er von der Platte lesen wollte, daß ein String auf das Terminal ausgegeben ist usw. Der Prozeß läuft erst wieder weiter, wenn der erwartete Zustand eingetreten ist.

Manche Anforderungen sind übrigens von so hoher Priorität, daß der Prozeß nicht einmal durch ein Signal unterbrochen werden kann (z.B. Warten auf einen NFS-Server). Das Signal wird erst empfangen, wenn die erwartete Bedingung eingetreten ist.

suspendiert
Dies ist die Möglichkeit des Benutzers einen Prozeß anzuhalten. Er läuft erst nach Erhalt des Signals CONT weiter. Dazwischen "schläft" er im Kern, d.h. alle Daten bleiben erhalten, und nach Erhalt des CONT-Signals läuft er weiter ohne überhaupt etwas davon zu merken, daß er eine zeitlang angehalten wurde (meistens - manche Prozesse können es doch feststellen, z.B. an der Uhrzeit).

blocked und suspendiert
Selbstverständlich kann der Benutzer auch einen blockierten Prozeß suspendieren. Er läuft dann erst weiter, wenn die Bockierungs-Bedingung aufgehoben ist und er ein Signal CONT erhalten hat.
Wie man Prozesse suspendiert, Signale verschickt usw. soll in den nächsten Abschnitten behandelt werden.