next up previous contents
Next: Prozess-Kontrolle Up: Einführung Previous: Einführung   Contents


Prozesszustand

Obwohl jeder Prozess eine unabhängige Einheit mit eigenem Programmzähler und eigenen Variablen ist, müssen Prozesse oft miteinander kommunizieren. Betrachten wir den Unix-Aufruf

cat file1 file2 | more5.1

Der Befehl cat verbindet zwei Textdateien miteinander, während more diese verbundenen Dateien auf dem Bildschirm ausgibt. Der Prozess, der durch den Aufruf von more gestartet wird, kann nur arbeiten wenn der cat-Prozess eine Ausgabe liefert. Ein Prozess der auf die Ausgabe eines anderen Prozesses wartet kann nicht arbeiten. Man versetzt ihn deshalb in einen Zustand, den man blockiert nennt. Das bedeutet, dass dieser Prozess im Moment von der Ausführung ausgenommen wird.

Nehmen wir nun an, dass es während der Ausführung mehr nichtblockierte Prozesse gibt, als Prozessoren im Computersystem zur Verfügung stehen, so müssen auch nicht-blockierte Prozesse von der Ausführung ausgenommen werden. Deshalb führt man einen weiteren Zustand ein, in dem sich Prozesse befinden können: rechenbereit. Insgesamt gibt es dann drei unterschiedliche Zustände, in denen sich Prozesse befinden können:

  1. rechnend, der Prozessor ist dem Prozess zugeteilt
  2. rechenbereit, der Prozess ist ausführbar, aber der Prozessor ist einem anderen Prozess zugeteilt
  3. blockiert, der Prozess wartet auf ein Ereignis eines anderen Prozesses.

Figure: Zustandsübergänge
\begin{figure}\begin{center}
\epsfxsize10cm
\epsfbox{uebergaenge}
\index{Zustandsübergänge} \end{center}\end{figure}

Darüberhinaus gibt es noch zwei Zustände neu (Prozess ist eben erstellt wurden) und beendet (Ausführung des Prozesses wurde beendet).

In Abbildung [*] ist dargestellt, welche Übergänge zwischen den drei Zuständen möglich sind. Wenn ein rechnender Prozess eine Eingabe erwartet, die im Moment nicht da ist, so wird er blockiert. Wenn eine solche Eingabe dann erfolgt, wird der Zustand von blockiert in rechenbereit umgewandelt. Das Betriebssystem, besser gesagt der Scheduler (wird in Abschnitt [*] ausführlich behandelt) des Betriebssystems, entscheidet welche Prozesse rechnend bzw. rechenbereit sind.


next up previous contents
Next: Prozess-Kontrolle Up: Einführung Previous: Einführung   Contents
Prof. Dr. Pluemicke 2003-05-10