Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Platte Prozessverwaltung.

Ähnliche Präsentationen


Präsentation zum Thema: "CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Platte Prozessverwaltung."—  Präsentation transkript:

1 CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Platte Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Vorgeschichte:Der Prozess X befindet sich in der CPU in Ausführung. Er stellt eine Lese-Anfrage an die Platte Der rechnende Prozess X gibt einen Leseauftrag an die Platte (Harddisk) auf. Damit der Prozessor während der Wartezeit nicht unnötig belegt wird, blockiert sich der Prozess selbst und veranlasst einen Prozesswechsel. Ein Prozesswechsel kommt zBsp dadurch zu Stande, dass der Prozess X selbst eine Software-Unterbrechung auslöst. Software-Unterbrechung werden dabei genau gleich behandelt wie I/O-Unterbrechungen – das Thema der folgenden Seiten lesen blockieren

2 Eine Weile später ist die Platte fertig mit Lesen und löst eine I/O- Unterbrechung aus...

3 CPU Prozess A Prog StatuswortProg ZählerStackpointer Stack Prozess A Prozesstabelle Prozess A rechnend Prozess X blockiert Unterbrechungshardware Platte Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Ausgangslage:Der Prozess A befindet sich in der CPU in Ausführung. Eine Platte löst eine Unterbrechung aus

4 CPU Prozess A Prog StatuswortProg ZählerStackpointer Stack Prozess A Prog Stauswort Prog Zähler Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Prozesstabelle Prozess A rechnend Prozess X blockiert Programmzähler und Programmstatuswort des rechnenden Prozesses werden durch die Unterbrechungshardware auf dem Stack gesichert Prozessverwaltung Scheduler Prozesswechsel Unterbrechungshardware 1) Unterbrechungshardware sichert rechnenden Prozess

5 CPU Unterbrechung Plattentreiber Prog StatuswortProg Zähler Stackpointer Stack Prozess A Prozesstabelle Prozess A rechnend Prozess X blockiert Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Unterbrechungshardware Unterbrechungshardware lädt den neuen Programmzähler und das Programmstatuswort aus dem Unterbrechungsvektor des I/O-Gerätes in die entsprechenden Register des Prozessors Prozessverwaltung Scheduler Prozesswechsel 2) Unterbrechungshardware lädt Unterbrechungsroutine der I/O Geräte-Klasse

6 CPU Unterbrechung Plattentreiber Prog StatuswortProg Zähler Stackpointer Stack Prozess A Prozesstabelle Prozess A rechnend Prozess X blockiert Die nun aktive Unterbrechungsroutine ist eine Assembler-Routine, die alle Register des ursprünglichen Prozesses in seinem Prozesstabelleneintrag sichert Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 3a)Unterbrechungsroutine sichert restliche Register des ursprünglichen Prozesses

7 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozesstabelle Prozess A rechenbereit Prozess X blockiert Dabei wird der ursprüngliche Programmzähler und das Programmstatuswort aus dem Stack gelesen und entfernt (pop) Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 3b)Unterbrechungsroutine sichert Programmstatuswort, Programmzähler und Stackpointer des ursprünglichen Prozesses

8 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozess Verwaltung Prozesstabelle Prozess A rechenbereit Prozess X blockiert Die Unterbrechungsroutine belegt das Stack-Register des Prozessors mit dem Stackpointer der Prozessverwaltung Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 4) Unterbrechungsroutine lädt den Stackpointer der Prozessverwaltung

9 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozess Verwaltung Prozesstabelle Prozess A rechenbereit Prozess X rechenbereit Die Unterbrechungsroutine ruft eine C-Prozedur auf, diese bestimmt den blockierten Prozess, der durch die Unterbrechung geweckt werden soll und versetzt ihn in den Zustand rechenbereit C-Routine bestimmt blockierten Prozess calls rechenbereit Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 5) Unterbrechungsroutine ruft eine C-Routine auf

10 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozess Verwaltung Prozesstabelle Prozess A rechenbereit Prozess X rechenbereit C-Routine bestimmt blockierten Prozess calls Prozessverwaltung Scheduler Prozesswechsel calls Den nächsten rechnenden Prozess bestimmen: Prozess X Der Prozess-Scheduler wird von der C-Prozedur aufgerufen und bestimmt den nächsten Prozess, der in den Zustand rechnend versetzt werden soll Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 6) Der Prozess-Scheduler wird aufgerufen

11 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozess Verwaltung Prozesstabelle Prozess A rechenbereit Prozess X rechenbereit C-Routine bestimmt blockierten Prozess Prozessverwaltung Scheduler Prozesswechsel Return Prozess X Die Unterbrechungsroutine erhält die Kontrolle der C-Prozedur zurück Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 7) Die Kontrolle geht wieder zurück zur Unterbrechungsroutine

12 CPU Unterbrechung Plattentreiber Prog StatuswortProg ZählerStackpointer Stack Prozess Verwaltung Prozesstabelle Prozess A rechenbereit Prozess X rechenbereit Prozessverwaltung Scheduler Prozesswechsel calls Prozess X Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Die Unterbrechungsroutine ruft eine Assembler-Routine (Prozesswechsel) auf, diese aktiviert den neuen Prozess (Prozess X). Dabei werden alle Register neu belegt 8a) Der eigentliche Prozesswechsel wird aufgerufen

13 CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers 8b) Der eigentliche Prozesswechsel wird durchgeführt

14 Netz Uhr CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Unterbrechungshardware Prozessverwaltung Scheduler Prozesswechsel Terminaltreibers Unterbrechungsvektoren der I/O Geräteklassen Platte Terminal Unterbrechungsroutine des Plattentreibers Warten auf die nächste Unterbrechung DruckerPlatte Terminal ? Wer löst sie aus... Endzustand: Der Prozess X befindet sich in der CPU in Ausführung


Herunterladen ppt "CPU Prozess X Prog StatuswortProg ZählerStackpointer Stack Prozess X Prozesstabelle Prozess A rechenbereit Prozess X rechnend Platte Prozessverwaltung."

Ähnliche Präsentationen


Google-Anzeigen