beschreibung und verwaltung von prozesse kapitel 3
TRANSCRIPT
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, die nicht laufen in einer Warteschlange
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)
Zwei Warteschlangen
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
Gründe für die Prozesssuspendierung
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
Win2000/XP
Unix
Geekos
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.