240 likes | 393 Views
In diesem Vortrag werden folgende Themen behandelt:. Kapitel 3 Beschreibung und Steuerung von Prozessen 3.1 Prozesszustände 3.1.1 Prozessmodell mit zwei Zuständen 3.1.2 Die Erzeugung u. Terminierung von Prozessen 3.1.3 Prozessmodell mit fünf Zuständen 3.1.4 Suspendierte Prozesse
E N D
In diesem Vortrag werden folgende Themen behandelt: Kapitel 3 Beschreibung und Steuerung von Prozessen 3.1 Prozesszustände 3.1.1 Prozessmodell mit zwei Zuständen 3.1.2 Die Erzeugung u. Terminierung von Prozessen 3.1.3 Prozessmodell mit fünf Zuständen 3.1.4 Suspendierte Prozesse 3.2 Prozessbeschreibung 3.2.1 Steuerungsstrukturen des Betriebssystems
Kapitel 3 Beschreibung und Steuerung von Prozessen • Alle Mehrprogrammbetriebssysteme nehmen das Prozesskonzept zum Ausgangspunkt für ihren Aufbau. • Fast alle Anforderungen, die ein Betriebssystem zu bewältigen hat, lassen sich in Bezug auf Prozesse formulieren. • Ein Betriebssystem muss zwischen mehrere Prozessen wechseln können um den Nutzungsgrad des Prozessors zu optimieren und eine gute Antwortzeit der einzelnen Prozesse zu erhalten.
3.1 Prozesszustände • Der Prozessor führt die im Hauptspeicher stehenden Maschinenbefehle aus. • Aus Effizienzgründen wird oft die Bearbeitung eines Programms zugunsten eines anderen Programms unterbrochen. • Für die Ausführung eines Programms wird ein Prozess (Task) erzeugt. • Der Prozessor arbeitet die Befehle eines Prozesses nach einander ab. • Der aktuelle Befehl, der abgearbeitet wird, ist als Wert im Programmzählerregister erkennbar.
3.1 Prozesszustände • Die Befehle die für einen Prozess ausgeführt werden, werden in einer Auflistung, einem so genannten Trace angeführt. Das Dispatcher-Programm kann einen Wechsel des bearbeiteten Prozesses bewirken Drei Prozesse deren Programme vollständig in den Hauptspeicher geladen sind
3.1 Prozesszustände Hier sieht man die Traces der drei Prozesse. Prozess A und C haben die ersten 12 Befehle bearbeitet. Prozess B hat die ersten 4 Befehle abgearbeitet und man geht davon aus, dass der 4. Befehl eine E/A Aufforderung aufruft.
3.1 Prozesszustände Die ersten 52 Befehlszyklen. Man sieht die miteinander verwobenen Traces. Nach maximal 6 Befehlszyklen wird der Prozess unterbrochen. So wird verhindert, dass ein Prozess die ganze Zeit für sich in Anspruch nimmt. Hier wird mit Prozess A angefangen, danach folgt ein Timeout und das Dispatcher-Programm führt 6 Befehle aus, um festzulegen, welcher Prozess als nächstes bearbeitet wird. Prozess B wird ausgeführt und fordert eine E/A Aktion an, auf die er warten muss.
3.1 Prozesszustände Es folgt wieder ein Timeout und Prozess C wird bearbeitet. Nach einem Timeout folgt dann wieder Prozess A und wieder ein Timeout. Prozess B wartet noch immer auf die E/A Operation - also wird mit Prozess C fortgesetzt.
3.1.1 Prozessmodell mit zwei Zuständen • Die Hauptverantwortung des Betriebssystems ist die Steuerung der Ausführung von Prozessen. • Ein einfaches Modell unterscheidet Prozesse danach, ob sie durch den Prozessor ausgeführt werden oder nicht. • Ein Prozess kann also nur zwei Zustände annehmen. Aktiv oder nicht aktiv.
3.1.1 Prozessmodell mit zwei Zuständen Wenn ein neuer Prozess erzeugt wird, dann wird er in den nicht aktiven Zustand in das System eingefügt und wartet auf eine Gelegenheit zur Ausführung. In regelmäßigen Abständen wird der aktive Prozess unterbrochen und der Dispatcher wählt einen neuen Prozess aus. Der alte Prozess wird nicht aktiv und der neue Prozess auf aktiv gestellt.
3.1.1 Prozessmodell mit zwei Zuständen Prozesse, die in das System eintreten, werden in einer Warteschlange geparkt. Der Dispatcher wählt einen Prozess aus der Warteschlange und er wird bearbeitet. Wenn er unterbrochen wird, dann wird er wieder in die Warteschlange eingereiht. Prozesse, die fertig abgearbeitet sind oder abgebrochen wurden, verlassen das System. In jedem Fall wählt der Dispatcher einen neuen Befehl aus der Warteschlange aus.
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozesserzeugung • Wenn ein neuer Prozess erzeugt wird, dann wird er zu den aktuell verwalteten Prozessen hinzugefügt und es wird ihm ein Adressraum im Hauptspeicher zugewiesen. • Man kann einem Prozess erlauben einen anderen zu generieren, dies hilft zum Beispiel dem Anwendungsprozess um Daten zu empfangen oder sie in Form zu bringen. • Wenn ein Prozess einen anderen Prozess generiert, dann wir Ersterer als „Elternprozess“ und Letzterer als „Kindprozess“ bezeichnet.
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozesserzeugung
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozessterminierung • Ein Computersystem sollte Mittel bereitstellen um einen Prozess zu terminieren. • Ein Batch Job sollte einen Stoppbefehl oder einen Dienstaufruf zur Terminierung enthalten. Bei einem Stoppbefehl, wird ein Interrupt erzeugt um das Betriebssystem auf eine Beendigung eines Prozesses hinzuweisen. • Bei einigen Betriebssystemen kann der Prozess der einen anderen erzeugt hat, den Kindprozess terminieren. Wenn der Elternprozess terminiert wurde, wird auch der Kindprozess terminiert.
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozessterminierung
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozessterminierung
3.1.2 Die Erzeugung und Terminierung von Prozessen Die Prozessterminierung
3.1.3 Prozessmodel mit 5 Zuständen • Aktiv : Aktive prozesse sind jene prozesse die sich gerade im prozessor befinden und ausgeführt werden • Bereit : Prozess der auf seine ausführung wartet • Blockiert : Prozess , der auf ein bestimmtes Ereignis wartet • Neu : Prozess , der gerade erst erzeugt wurde und noch nicht ausgeführt werden kann • Terminiert : Prozess , der beendet oder abgebrochen wurde
Zustandsänderungen • -> Neu : Ein neuer Prozess wird für die Ausführung eines Programms erzeugt • Neu -> Bereit : Sobald das Betriebssystem bereit für einen neuen Prozess ist , ändert es denn zustand eines neuen Prozesses in den zustand „Bereit“ • Bereit -> Aktiv : Sobald der Prozessor bereit für einen neuen prozess ist ändert das Betriebssystem den zustand eines prozesses in „Aktiv“ • Aktiv -> Terminiert : Ein prozess wird in den zustand „terminiert“ versetzt wenn der prozess abgeschlossen ist oder abgebrochen wurde • Aktiv -> Bereit : Wenn ein zustand seine maximale Zeitdauer überschreitet ändert das betriebssystem den zustand eines Prozesses in „Bereit“
Weitere Zustandsänderungen • Blockiert -> Bereit : Sobald das Ereignis , auf das ein blockierter Prozess gewartet hat , eintritt wird sein zustand von „Blockiert“ in „Bereit“ versetzt • Bereit -> Terminiert bzw. Blockiert -> Terminiert: Wenn ein Elternprozess terminiert wird , wird auch der jeweilige Kindprozess terminiert
3.1.4 Suspendierte Prozesse Ältere Betriebssysteme kamen noch mit 3 zuständen aus (Bereit , Aktiv , Blockiert) . Doch mit zunehmender leistung kamen auch einige Probleme .Um weiterhin effizient zu arbeiten wurden neue Zustände hinzugefügt . So auch der zustand „Suspendiert“ . Dieser Zustand wurde entwickelt , da die Prozesse immer größer wurden und Die CPU nicht mehr genug platz für alle Prozesse zur Verfügung stellen konnte . Ein Prozess wird nach der Zustandsänderung in „suspendiert“ auf die festplatte oder andere Speicher ausgelagert (Swapping) um so mehr Platz zu schaffen und die CPU zu entlasten.
Zustandsmöglichkeiten • Bereit : Prozess befindet sich im Hauptspeicher und wartet auf die Ausführung • Blockiert : Prozess befinden sich im Hauptspeicher und wartet auf ein Ereignis • Blockiert/Suspendiert : Prozess befindet sich im Sekundärspeicher und wartet auf ein bestimmtes Ereignis • Bereit/Suspendiert : Prozess befindet sich im Sekundärspeicher und ist bereit , muss aber zur Ausführung vorher in den Hauptspeicher geladen werden
Zustandsänderungen bei suspendierten Prozessen • Blockiert -> Blockiert/Suspendiert : Sobald alle bereiten prozesse terminiert wurden , wird ein blockierter prozess ausgelagert um platz für einen neuen prozess zu machen • Blockiert/Suspendiert -> Bereit/Suspendiert Sobald das ereigniss auf das ein blockiert/suspendierter prozess Gewartet hat eintritt , ändert sich der zustand in Bereit/suspendiert • Bereit/Suspendiert -> Bereit Wenn das Betriebssystem einen Prozess aus dem Sekunderspeicher in den Hauptspeicher lädt ändert sich der zustand des Prozesses von „Bereit/Suspendiert“ in „Bereit“
Fragen F: Wie heißt das Programm, dass für den Wechsel der Prozesse zuständig ist. A: Das Dispatcher- Programm ist für den Wechsel zuständig. F:Zustandsänderungen bei suspendierten Prozessen A: s. Folie S 21. F: Was passiert mit dem Kindprozess, wenn der Elterprozess terminiert wird. A: Der Kindprozess wird ebenfalls terminiert.
Fragen F: Nenne drei Gründe für die Prozessterminierung. A: Normale Beendigung, Zeitüberschreitung, Nicht genügend Speicher zur Verfügung. F: Welche Zustände kann das Prozessmodell mit fünf Zuständen annehmen. A: Es kann die Zustände „AKTIV“, „BEREIT“, „BLOCKIERT“, „NEU“ oder „TERMINIERT“ annehmen. F: Nenne drei Gründe für die Prozesssuspendierung. A: Auslagerung, Interaktive Benutzeranforderung, Timing, Anforderung durch einen Elternprozess.