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.