300 likes | 441 Views
Beschreibung und Verwaltung von Prozesse. Kapitel 3. Die wichtigste Anforderungen die ein Betriebssystem erfüllen muss. Kann mehrere Prozesse im Wechsel ausführen, um den Nutzungsgrad des Prozessors zu maximieren, um dabei eine akzeptable Antwortzeit zu erreichen Teilt Prozessen Ressourcen zu
E N D
Beschreibung und Verwaltung von Prozesse Kapitel 3
Die wichtigste Anforderungen die ein Betriebssystem erfüllen muss • Kann mehrere Prozesse im Wechsel ausführen, um den Nutzungsgrad des Prozessors zu maximieren, um dabei eine akzeptable Antwortzeit zu erreichen • Teilt Prozessen Ressourcen zu • Unterstützt Interprozesskommunikation und Erzeugung von Prozessen durch Benutzer
Prozess • Ausführung eines einzelnen Programms • Kann aufgelistet (traced) werden • Eine Trace ist eine Auflistung der Befehle Prozess oder Task
Prozessmodell mit zwei Zuständen • Ein Prozess kann einem von zwei möglichen Zuständen annehmen • Aktiv (Running) • Nicht aktive (Not-running)
Prozesse • Nicht aktiv (bereit) • kann ausgeführt werden • Blockiert • wartet auf E/A • Bei der Verwendung einer einzigen Warteschlange kann der Dispatcher nicht einfach den Prozess auswählen, der am längsten gewartet hat, dieser Prozess ist vielleicht blockiert.
Prozessmodell mit fünf Zuständen • Aktiv (running) • Bereit (ready) • Blockiert (blocked) • Neu (new) • Terminiert (exit)
Suspendierte Prozesse • Ist der Prozessor schneller als die E/A so ist es wahrscheinlich, dass alle Prozesse im Speicher auf eine E/A warten • Verschiebe diese Prozesse auf die Festplatte (Swapping) • Ein blockierter Zustand wird dann ein suspendierter Zustand • Zwei neue Zustände • Blockiert/Suspendiert (Blocked, suspend) • Bereit/Suspendiert (Ready, suspend)
Prozesszustandsübergangsdiagramm mit zwei suspendierten Zuständen
Steuerungsstrukturen des Betriebssystems • Wenn das Betriebssystem Prozesse und Ressourcen verwalten soll, dann benötigt es Informationen über den aktuellen Zustand der einzelnen Prozesse und Ressourcen • Das Betriebssystem erstellt und pflegt Informationstabellen für jede Einheit die es verwaltet
Ausführungsmodi • Benutzermodus • Weniger privilegierter Modus • Benutzerprogramme werden in der Regel in diesem Modus ausgeführt • Systemmodus, Steuermodus, oder Kernel-Modus • Mehr privilegierter Modus • Kernel des Betriebssystems
Prozesserzeugung • Zuweisung einer eindeutigen Prozesskennung • Zuweisung von Speicherplatz für den Prozess • Initialisierung des Prozesskontrollblocks • Integration in dynamische Datenstrukturen • z.B.: in der Liste für den Zustand Bereit einfügen • Erzeugung oder Erweiterung anderer Datenstrukturen • z.B.: eine Abrechnungsdatei unterhalten
Wann ein Prozesswechsel erfolgen soll • Zeit-Interrupt • Der Prozess hat die Dauer der maximal zulässigen Zeitscheibe ausgeführt • E/A-Interrupt • Speicherfehler • Der Prozessor referenziert mit einer Adresse des virtuellen Speicher ein Wort, das sich nicht im Hauptspeicher befindet.
Wann ein Prozesswechsel erfolgen soll • Trap • ein Fehler- oder Ausnahmezustand ist aufgetreten • der gerade aktive Prozess kann in den Zustand „Terminiert“ versetzt werden • Supervisor-Aufruf • wie z.B. das öffnen einer Datei (Benutzermodus ---> Kernel-Modus)
Moduswechsel • Speichern des Prozessorkontexts mit Programmzahler und anderen Registern • Aktualisierung des Prozesskontrollblocks des Prozesses, der sich gerade im Zustand »aktiv« befindet • Verschieben des Prozesskontrollblocks des betroffenen Prozesses in die entsprechende Warteschlange (bereit, blockiert) • Auswahl eines anderen Prozesses für die Ausführung
Moduswechsel • Aktualisierung des Prozesskontrollblocks des ausgewählten Prozesses • Aktualisierung der Speicherverwaltungs-strukturen • Wiederherstellung des Prozessorkontextes wie er zu dem Zeitpunkt bestand, an dem der ausgewählte Prozess zuletzt den Zustand »aktiv« verlassen hat
Ausführung des Betriebssystems Linux Geekos Unix Win2000/XP
Ausführung des Betriebssystems • Kernel ohne Prozesse • Ausführung des Kernels außerhalb der Prozesse • Das Betriebssystem hat einen eigenen Speicherbereich und einen eigenen Systemstapel • Ausführung innerhalb von Benutzerprozessen • Ausführung der Betriebssystemsoftware im Kontext eines Benutzerprozesses. • Der Prozess wird im privilegierten Modus ausgeführt, es findet keinen Prozesswechsel statt, sondern lediglich ein Moduswechsel innerhalb desselben Prozesses
Ausführung des Betriebssystems • Prozessbasiertes Betriebssystem • wichtige Kernel-Funktionen sind in Form von separaten Prozessen realisiert • Nützlich in einer Mehrprozessor- oder Mehrrechnerumgebung
Prozessorverwaltung in UNIX SVR4 • Ausführung der Betriebssystemsoftware im Kontext eines Benutzerprozesses.