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 Prozess oder Task Ausführung eines einzelnen Programms Kann aufgelistet (traced) werden Eine Trace ist eine Auflistung der Befehle
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
Erzeugung von Prozesse Gründe für die Prozesserzeugung Als Reaktion auf die Einreichung eines Jobs Wenn ein Benutzer versucht, sich anzumelden Ein Prozess kann erzeugt werden, der das Drucken regelt Ein Prozess erzeugt ein anderer Prozess
Prozessterminierung Ein Batchjob gibt einen Stoppbefehl (Halt) ab Der Benutzer meldet sich ab Eine Anwendung wird beendet Fehlerbedingungen können zur Terminierung eines Prozesses führen
Gründe für die Terminierung von Prozessen Normale Beendigung Überschreitung des Zeitlimits Nicht genügend Speicher verfügbar Verletzung von Begrenzungen Schutzfehler z.B. durch den Versuch, eine schreibgeschützte Datei zu überschreiben Arithmetische Fehler Zeitüberschreitung Der Prozess hat länger als einen festgelegten Maximalwert darauf gewartet, dass ein bestimmtes Ereignis eintritt
Gründe für die Terminierung von Prozessen E/A-Fehler Ungültiger Befehl versucht einen nicht existierenden Befehl auszuführen Privilegierter Befehl Falsche Benutzung von Daten Intervention des Bedieners oder des Betriebssystem z.B. wenn eine Verklemmung vorliegt
Gründe für die Terminierung von Prozessen Terminierung eines Elternprozesses, dann kann das Betriebssystem automatisch alle Kindprozesse des betreffenden Elternprozess terminieren. Anforderung durch einen Elternprozess
Prozesse Nicht aktiv (bereit) Blockiert 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 einem suspendierten Zustand
Prozesszustandsübergangsdiagramm mit zwei suspendierten Zuständen
Gründe für die Prozesssuspendierung
Prozesse und Ressource (Ressourcenzuteilung als Momentaufnahme)
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
Speichertabellen Die Zuteilung von Hauptspeicher zu Prozessen Die Zuteilung von Sekundärspeicher zu Prozessen Schutzattribute von gemeinsam genutzten Speicherregionen Information für die Verwaltung des Virtuellen Speichers
E/A-Tabellen Ein E/A-Gerät ist entweder verfügbar oder einem bestimmten Prozess zugeteilt Status der E/A-Operation Die Stelle im Hauptspeicher die als Quelle oder Ziel für die E/A-Übertragung dient
Dateitabellen Existenz von Dateien Ihren Speicherort im Sekundärspeicher deren aktuellen Status andere Attribute Manchmal durch ein Dateiverwaltungssystem unterhalten, in diesem Fall hat das Betriebssystem keine Kenntnisse über die Dateien
Prozesstabellen Wo der Prozess sich befindet Attribute des Prozesses, die für die Verwaltung des Prozesses wichtig sind Prozesskennung Prozesszustand Speicherort
Prozessspeicherort Ein Prozess muss ein oder mehrere Programme enthalten, die ausgeführt werden sollen, und im Zusammenhang damit Datenorten für lokale und globale Variablen Definierte Konstanten Stapel Prozesskontrollblock (PCB) eine Reihe von Prozessattributen Prozessabbild Sammlung der Programme, Daten, Stapel, und Attributen
Prozesskontrollblock Prozessidentifikation Kennungen Numerische Kennungen, die zusammen mit dem Prozesskontrollblock abgespeichert werden beinhalten: Die Kennung des Prozesses Die Kennung des Eltern Prozesses Die Benutzerkennung
Prozesskontrollblock Prozessorstatusinformationen Für den Benutzer sichtbare Register Ein für den Benutzer sichtbares Register ist ein Register, auf das mit Hilfe der Maschin- ensprache, die der Prozessor ausführt, Bezug genommen werden kann. In der Regel gibt es zwischen acht und 32 dieser Register, obwohl einige RISC- lmplementierungen mehr als 100 dieser Register aufweisen können.
Prozesskontrollblock Prozessorstatusinformationen Steuer- und Statusregister Es gibt eine Vielzahl von Prozessorregistern, die für die Steuerung des Prozessorbetriebs eingesetzt werden: Programmzähler: Enthält die Adresse des nächsten abzurufenden Befehls Zustandscodes: Ergebnis der letzten arithmetischen oder logischen Operation (z.B. Vorzeichen, null, Übertrag, gleich, Überlauf) Statusinformationen: Beinhaltet Flags für die Freischaltung/Sperrung von Interrupts, Ausführungsmodus.
Prozesskontrollblock Prozessorstatusinformationen Stapelzeiger Mit jedem Prozess hängen ein oder mehrere LIFO-Systemstapel (Last In First Out) zusammen. Ein Stapel wird für die Speicherung von Parametern und Aufruf- adressen für Prozeduren und Systemaufrufe verwendet. Der Stapelzeiger zeigt auf das oberste Element des Stapels.
Prozesskontrollblock Prozesskontrollinformationen Scheduling und Zustandsinformationen Das Betriebssystem benötigt diese Informationen, um seine Ablaufplanungsfunktion ausüben zu können. Typische Informationselemente beinhalten: • Prozesszustand: Der Prozesszustand bestimmt, inwiefern ein Prozess bereit ist, für die Ausführung eingeplant zu werden (z.B. aktiv, bereit, wartend, gestoppt). • Priorität: Ein oder mehrere Felder können für die Beschreibung der Ablaufplanungspriorität des Prozesses verwendet werden. In einigen Systemen werden mehrere Werte benötigt (z.B. Vorgabewert, aktueller Weit, Maximalwert).
Prozesskontrollblock Prozesskontrollinformationen Scheduling und Zustandsinformationen • Ablaufplanungsrelevante Informationen: Diese Informationen hängen vom verwendeten Scheduling-Verfahren ab, z.B. die Zeitdauer, die der Prozess gewartet hat, und die Zeitdauer, seit der Prozess zuletzt ausgeführt wurde. • Ereignis: Identität des Ereignisses, auf das der Prozess wartet, bevor er wieder aufgenommen werden kann.
Prozesskontrollblock Prozesskontrollinformationen Datenstrukturierung Ein Prozess kann mit einem anderen Prozess in einer Warteschlange, einem Ring oder einer anderen Struktur verbunden sein. So können beispielsweise alle Prozesse, die auf eine bestimmte Prioritätsebene warten, in einer Warteschlange verkettet sein. Ein Prozess kann mit einem anderen Prozess in einer EItern-Kind- Beziehung (Erzeuger-Erzeugnis-Beziehung) stehen. Der Prozesskontrollblock kann Zeiger auf andere Prozesse enthalten, um diese Struktur zu unterstützen.
Prozesskontrollblock Prozesskontrollinformationen Interprozesskommunikation Verschiedene Flags, Signale und Nachrichten können mit der Kommunikation zwischen zwei unabhängigen Prozessen in Zusammenhang stehen. Einige oder sämtliche dieser Informationen können im Prozesskontrollblock enthalten sein. Prozessprivilegien Prozessen werden Privilegien in Form von Speicherplatz, auf den zugegriffen werden kann, und in Form der Befehlsarten zugestanden, die ausgeführt werden können. Darüber hinaus können sich die Privilegien auch auf die Nutzung von Systemhilfsprogrammen und Diensten erstrecken.
Prozesskontrollblock Prozesskontrollinformationen Speicherverwaltung Dieser Bereich beinhaltet Zeiger auf Segment- und/oder Seitentabellen, die den virtuellen Speicher beschreiben, der diesem Prozess zugeteilt wurde. Ressourcenbesitz und Ressourcennutzung Vom Prozess kontrollierte Ressourcen können, beispielsweise in Form von geöffneten Dateien, angezeigt werden. Darüber hinaus kann eine zeitliche Aufzeichnung der Nutzung des Prozessors oder anderer Ressourcen enthalten sein. Diese Informationen werden vom Scheduler benötigt.
Prozesskontrollinformationen Inhalte der Prozessorregister für den Benutzer sichtbare Register Steuer- und Statusregister Stapelzeiger Programmstatuswort (PSW) enthält Zustandcodes Beispiel: das EFLAGS-Register auf Pentium-Rechnern
Pentium II EFLAGS-Register
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.
UNIX Processzustände