« »

Prozesszustände

Im Folgenden betrachten wir die Zustände von Prozessen und die Wechsel zwischen ihnen.

a)

Level 1: Wissen

Was versteht man unter einem Prozess bei UNIX-artigen Betriebssystemen?

Lösung

Prozess = Programm in Ausführung

b)

Level 1: Wissen

Beschreiben Sie die verschiedenen Zustände eines Prozesses und wie ein Prozess zwischen diesen Zuständen wechseln kann.

Lösung
  • drei grundlegende Zustände, in denen sich ein Prozess befinden kann:
    • Running: Prozess wird gerade ausgeführt
    • Ready: Prozess wartet darauf, vom Betriebssystem ausgeführt zu werden
    • Blocked: Prozess wartet auf ein Ereignis, z. B. das Lesen von Daten von der Festplatte
  • Zustandsänderungen durch das Betriebssystem:
    • freiwillig (z. B. durch einen blockierenden Systemaufruf wie I/O-Zugriffe)
    • unfreiwillig (z. B. durch einen Timer Interrupt)

c)

Level 2: Verstehen

Warum gibt es klassischerweise keinen Übergang von Blocked zu Running?

Lösung
  • ein Prozess im Zustand Blocked wartet auf ein externes Ereignis
  • wird er nach Eintreffen des Ereignisses direkt in den Zustand Running versetzt, bietet das Raum für Fairness-Verstöße
    • ein Prozess könnte sich mehr Prozessorzeit verschaffen, als ihm zusteht, indem er regelmäßig blockierende Systemaufrufe ausführt
    • sobald die Antwort eintrifft, wird er direkt weiter ausgeführt, obwohl andere Prozesse vielleicht schon länger auf CPU-Zeit warten
  • die Entscheidung über die auszuführenden Prozesse (Übergang zu Running) wird darum dem Scheduler überlassen, der alle Prozesse im Zustand Ready betrachtet

Lernziele

In dieser Aufgabe …

  • rufen sich die Studierenden Grundlagenbegriffe zu Prozesszuständen ins Gedächtnis.