Grundlagen der Prozessverwaltung in Betriebssystemen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 25,7 KB

Grundlagen der Prozessverwaltung

Was ist ein Prozess?

Ein Prozess ist ein laufendes Programm. Alle oder ein Teil des Programms muss sich im internen Speicher des Computers befinden.

Prozesszustände

  • Bereit: Wenn ein Prozess im Status "Bereit" ist, fehlt ihm lediglich die Zuteilung des Prozessors, um ausgeführt zu werden.
  • Fertiggestellt: Ein Prozess erreicht den Status "Fertiggestellt" immer aus dem Zustand der Ausführung.
  • Bereit-Ausgesetzt: Dieser Zustand existiert, um mehr Prozesse in den internen Speicher aufnehmen zu können, damit der Prozessor mehr Zeit beschäftigt verbringen kann. Dies steigert die Systemproduktivität, da eine größere Anzahl von Prozessen über die Zeit laufen kann.
  • Unterschied zwischen Bereit-Ausgesetzt und Blockiert-Ausgesetzt: Im Zustand "Bereit-Ausgesetzt" kann der Prozess ausgeführt werden, während er im Zustand "Blockiert-Ausgesetzt" nicht ausgeführt werden kann.

Gründe für die Beendigung eines Prozesses

Mindestens 4 Gründe für die Beendigung eines Prozesses sind:

  • Verletzung der Speichergrenzen
  • Rechenfehler
  • Timeout überschritten
  • Zeitlimit überschritten

Prozesskontrollblock (BCP)

Der Prozesskontrollblock (BCP) enthält die Informationen, die das Betriebssystem zur Verwaltung eines Prozesses benötigt.

Spezifische UNIX-Prozesszustände

In der UNIX-Prozesskarte gibt es folgende spezifische Zustände:

  • Ausführung im Benutzermodus
  • Ausführung im Kernel-Modus
  • Bereit zur Ausführung und im Speicher
  • Schlafend und im Speicher
  • Bereit zur Ausführung und ausgelagert
  • Ausgelagert
  • Erstellt
  • Zombie

Gründe für die Erstellung eines Prozesses

Zwei Gründe für die Erstellung eines Prozesses sind:

  • Neue Batch-Jobs
  • Interaktive Verbindungen

Das Bild eines Prozesses

Das Bild eines Prozesses sammelt Informationen über das Benutzerprogramm und die Daten, die der Benutzer verarbeiten muss. Es umfasst den Kontrollblock, das System-Blade für die Programmausführung und die Daten.

Prozess-Scheduler

Typen von Prozess-Schedulern

Es gibt drei Haupttypen von Prozess-Schedulern:

  • Langfristige Scheduler
  • Mittelfristige Scheduler
  • Kurzfristige Scheduler

Warum verwenden wir kurzfristige Scheduler?

Der kurzfristige Scheduler ist der einzige, der die Entscheidung trifft, den Prozessor dem nächsten auszuführenden Prozess zuzuweisen.

Warum nutzen wir langfristige Scheduler?

Langfristige Scheduler sind dafür zuständig, Prozesse in den internen Speicher zu laden und ein Gleichgewicht zwischen CPU-intensiven Prozessen und E/A-intensiven Prozessen zu ermöglichen.

Häufigkeit der Scheduler-Ausführung

  • Der kurzfristige Scheduler läuft am häufigsten.
  • Der mittelfristige Scheduler läuft am seltensten.

Kriterien für die Bewertung eines Schedulers

Benutzerkriterien:

  • Durchlaufzeit
  • Antwortzeit
  • Fristen
  • Berechenbarkeit

Systemkriterien:

  • Produktivität
  • Prozessor-Auslastung
  • Fairness
  • Erfüllung von Prioritäten
  • Ausgleich der Ressourcen

Was ist Hunger (Starvation)?

Hunger (Starvation) ist ein Zustand, in dem ein Prozess auf unbestimmte Zeit verzögert wird, weil anderen Prozessen immer der Vorzug gegeben wird.

Der Round-Robin-Algorithmus

Der Round-Robin-Algorithmus weist den Prozessor den verschiedenen Prozessen in einer sequenziellen Form zu, sodass jeder Prozess für eine bestimmte Zeit, das sogenannte Quantum, ausgeführt werden kann.

Probleme des Prioritäts-Algorithmus

Ja, der Prioritäts-Algorithmus kann Probleme verursachen, insbesondere kann er zu Hunger (Starvation) führen, d.h. ein Prozess wird möglicherweise nie ausgeführt.

Prozessausführung und -wechsel

Ausführungsmodi von Prozessen

Es gibt zwei Hauptmodi der Prozessausführung:

  • Benutzermodus
  • Systemmodus (Kernel-Modus)

Was ist ein Moduswechsel?

Ein Moduswechsel (Kontextwechsel) ändert den Ausführungsmodus des Prozessors, z.B. von Benutzermodus zu Kernel-Modus.

Was ist ein Prozesswechsel?

Ein Prozesswechsel (Kontextwechsel) bedeutet, dass der Prozessor von der Ausführung eines Prozesses zu einem anderen wechselt.

Unterschied zwischen Unterbrechung und Trap

  • Eine Unterbrechung wird durch ein externes und vom ausgeführten Prozess unabhängiges Ereignis verursacht.
  • Ein Trap ist eine Fehlerbedingung oder Ausnahme, die innerhalb eines Prozesses generiert wird, z.B. ein illegaler Versuch, auf eine Datei zuzugreifen.

Threads

Was ist ein Thread?

Eine neue, leichtere Einheit der Ausführung innerhalb eines Prozesses im Betriebssystem wird als Thread bezeichnet.

Deadlock und Ressourcenverwaltung

Was ist die "tödliche Umarmung" (Deadlock)?

Die "tödliche Umarmung" (Deadlock) ist der Kampf von zwei oder mehr Prozessen um Systemressourcen, sodass die Prozesse nicht fortfahren können, weil sie auf Ressourcen warten, die von anderen Prozessen gehalten werden.

Wie funktioniert ein Wartegraph?

Ein Wartegraph ist ein Diagramm, in dem Prozesse und die Ressourcen, von denen sie abhängen, durch Pfeile dargestellt werden, um festzustellen, ob ein Deadlock vorliegt.

Sicherer Zustand des Systems

Dass sich das System in einem sicheren Zustand befindet, bedeutet, dass es mindestens eine mögliche Reihenfolge gibt, in der alle laufenden Prozesse mit den benötigten Ressourcen versorgt und beendet werden können.

Maßnahmen bei Ressourcenanfragen im sicheren Zustand

Wenn ein System erkennt, dass es sich in einem sicheren Zustand befindet, um eine Ressourcenanfrage zu behandeln, müssen folgende Maßnahmen ergriffen werden:

  • Verfügbar = Verfügbar - Anfrage
  • Zugeordnet = Zugeordnet + Anfrage
  • Benötigt = Benötigt - Anfrage

Warum ist es nicht immer möglich, "Halten und Warten" zu verhindern?

Es ist nicht immer möglich, die Bedingung "Halten und Warten" zu verhindern, da dies die Systemproduktivität erheblich einschränken und die Möglichkeit von "Hunger" für mehrere Prozesse erhöhen würde. "Halten und Warten" kann gelöst werden, aber nicht auf zwei Arten:

  • Jedem Prozess von Anfang an alle benötigten Ressourcen zuzuweisen.
  • Zu verlangen, dass ein Prozess alle zugewiesenen Ressourcen freigibt, bevor er neue anfordert.

Ressourcenverteilungsgraph und Deadlock-Analyse

Gegeben sind die Prozesse P = (P1, P2, P3, P4), Ressourcen R = (R1, R2, R3, R4, R5, R6) und Kanten E = ((P1, R1), (P2, R4), (P2, R5), (P3, R6), (P4, R2), (R1, P2), (R2, P1), (R3, P2), (R4, P4), (R5, P3), (R6, P2)).

Ein Deadlock existiert in den Zyklen P2 - P4 - P1 - P2 und P2 - P3 - P2.

Bild

Bild

Bild

Bild

Verwandte Einträge: