Vortrag von Christoph KREN u. Michael BISCHL am 28.9.07
3.2 Prozessbeschreibung
3.2.2 Prozesskontrollstruktur
3.3 Prozesssteuerung
3.3.1 Prozesserzeugung
3.3.2 Prozesswechsel
3.3.3 Ausführung des Betriebssystems
3.4 Prozessverwaltung in UNIX SVR4
3.4.1 Prozesszustände
3.4.2 Prozessbeschreibung
3.4.3 Prozesssteuerung
3.2 Prozessbeschreibung
3.2.2 Prozesskontrollstruktur
3.2.2 Prozesskontrollstruktur
Das Betriebssystem muss erstens wissen wo sich der Prozess befindet und zweitens die Attribute des Prozesses, die für die Verwaltung des Prozesses wichtig sind.(z.B. Prozesskennung, Prozesszustand, Speicherort).
ProzessspeicherortDer Speicherort eines Prozessabbildes hängt vom verwendeten Speicherverwaltungsverfahren ab.
Im einfachstem Fall wird das Prozessabbild in Form eines zusammenhängenden, fortlaufendem Speicherblocks unterhalten.
DIESER BLOCK wird im Sekundärspeicher, z.B. eine Festplatte, vorgehalten. Damit das Betriebssystem den Prozess verwalten kann, muss ein kleiner Teil des Prozessabbildes in den Hauptspeicher geladen werden. Das Betriebssystem MUSS also wissen, wo sich diese Prozesse befinden.
Dies weiß das Betriebssystem mithilfe der Prozesstabelle.
Prozesstabelle: In ihr sind die Speicherortinformationen für JEDEN Prozess enthalten. Welche mit einem ZEIGER auf den jeweiligen Prozess im Haupt-/ Sekundärspeicher zeigt.
Prozessattribute
Ein komplexes Betriebssystem benötigt zahlreiche Informationen über jeden einzelnen Prozess.
Diese Informationen liegen in Form von Kontrollblocks vor.
Der Prozesskontrollblock
Elemente eines Prozesskontrollblocks
-Prozessidentifikationen
-Prozessorstatusinformationen
-Prozesskontrollinformationen
Prozessidentifikation KENNUNG
Numerische Kennung, die zusammen mit
dem Prozesskontrollblock
abgespeichert werden beinhalten:
- die Kennung des Prozesses
- die Kennung des Prozesses, der diesen
Prozess erzeugt hat
- die Benutzerkennung
Prozessorstatusinformation 1)Für den Benutzer sichtbare Register
Sind Register, auf das mit Hilfe von Maschinensprache, die der Prozessor ausführt, Bezug genommen werden kann.
2)Steuer- und Statusregister
- Programmzähler - Zustandcodes - Statusinformationen
3)Stapelzeiger
Ein Stapel wird für die Speicherung von Parametern und Aufrufadressen für Prozeduren und Systemaufrufe verwendet. Der Stapelzeiger zeigt auf das oberste Element des Stapels.
Prozesskontrollinformationen 1)Scheduling und Zustandsinformationen
- Prozesszustand
- Priorität
- Ablaufplanungsrelevante Informationen
- Ergebnis
2)Datenstrukturierung
3)Interprozesskommunikation
4)Prozessprivilegien
5)Speicherverwaltung
6)Ressourcenbesitz und Ressourcennutzung
RegisterbitsID = Identifikations-Flag RF = Richtungs-Flag
VIF = Virtuelles Interrupt-Flag IF = Interrupt-Freischaltungs-Flag
AP = Anordnungsprüfung TF = Trap-Flag
EAPE = E/ A-Privilegienebene NF = Null-Flag
ÜLF = Überlauf-Flag PF = Paritäts-Flag
VT = Verschachteltes task-Flag VM = Virtueller 8086er Modus
Steuerungsbits: ID, RF, EAPE
Betriebsmodusbits: VT, VM, VIF
Zustandcodes: ÜLF, PF, NF
3.3 Prozesssteuerung -Ausführungsmodi
3.3.1 Prozesserzeugung
3.3.2 Prozesswechsel
3.3.3 Ausführung des Betriebssystems
AusführungsmodiDie meisten Prozessoren unterstützen min. zwei Ausführungsmodi. Bestimmte Befehle können nur im privilegierteren Modus ausgeführt werden. Darunter fällt das Lesen oder Verändern eines Steuerregisters wie z.B. des Programmstatusworts, primitive E/A-Befehle und Befehle, die die Speicherverwaltung betreffen. Darüber hinaus kann auf bestimmte Speicherbereiche nur im privilegierteren Modus zugegriffen werden. Der weniger privilegierte Modus wird häufig als Benutzermodus bezeichnet, da in der Regel Benutzerprogrsmme in diesem Modus ausgeführt werden. Der privilegiertere Modus wird als Systemmodus, Steuermodus oder Kernel-Modus bezeichnet. Die letzte Benennung bezieht sich auf den Kernel des Betriebssystems, also den Teil des Betriebssystems, der die wichtigen Systemfunktionen enthält.
Der Grund für die Verwendung zweier Modi sollte klar sein. Das Betriebssystem und wichtige Betriebssystemtabellen wie Prozesskontrollblöcke müssen vor dem Eingriff durch Benutzerprogramme geschützt werden. Im Kernel-Modus hat die Software die vollständige Kontrolle über den Prozessor und alle seine Befehle, Register und den Speicher. Für Benutzerprogramme ist dieser Grad an Kontrolle nicht notwendig und aus Sicherheitsgründen auch nicht erwünscht.
3.3.1 Prozesserzeugung
1. Zuweisung einer eindeutigen Prozesskennung zum neuen Prozess
2. Zuteilung von Speicherplatz für den Prozess
3. Initialisierung des Prozesskontrollblocks
4. Integration in dynamische Datenstrukturen
5. Erzeugung oder Erweiterung anderer Datenstrukturen
3.3.2 Prozesswechsel
A) Wann ein Prozesswechsel erfolgen soll? -Zeitinterrupt -E/A-Interrupt -Speicherfehler
B) Moduswechsel -Prozessor speichert Kontext -Prozessor setzt den Programmzähler auf Startadresse -Prozessor schaltet von Benutzermodus auf Kernelmodus
C) Änderung des Prozesszustands -Schritte für Prozessorwechsel
3.3.3 Ausführung des Betriebssystems
•Kernel ohne Prozesse
•Ausführung innerhalb von Benutzerprozessen
•Prozessbasiertes Betriebssystem
3.4 Prozessverwaltung in UNIX
3.4.1 Prozesszustände
3.4.2 Prozessbeschreibung
3.4.3 Prozesssteuerung
3.4.1 Prozesszustände
In UNIX gibt es zwei aktive Zustände, um anzuzeigen, ob ein Prozess im Benutzermodus oder im Kernelmodus ausgeführt wird.
Es wird zwischen den beiden Zuständen BEREIT und VERDRÄNGT im Speicher unterschieden. Es handelt sich im wesentlichen um die gleichen Zustände, was durch die gestrichelte Linie, durch die Sie verbunden sind, angezeigt wird. Die Unterscheidung soll die Art und Weise betonen, in der der verdrängte Zustand eingenommen wird.
3.4.2 Prozessbeschreibung
Benutzerebenenkontext
Prozesstext Ausführbare Maschinenbefehle des Programms
ProzessdatenDaten, auf die durch ein Programm dieses Prozessses zugegriffen werden kann
BenutzerstapelEnthält Argumente, lokale Variablen und Zeiger für Funktionen, die im Benutzermodus ausgeführt werden
Gemeinsam genutzter Speicher
Speicher, der gemeinsam mit anderen Prozessen genutzt wird. Wird für die Interprozesskommunikation verwendet
3.4.2 Prozessbeschreibung
Registerkontext
Programmzähler
Adresse des als Nächstes auszuführenden Befehls.Kann sich im Kernel- oder Benutzerspeicherraum des Prozesses befinden
Prozessorstatusregister
Enthält den Hardwarestatus zum Zeitpunkt der Verdrängung.Inhalte und Format sind abhängig von der Hardware.
StapelzeigerZeigt abhängig vom Betriebsmodus zum Zeitpunkt der Verdrängung auf das obere Ende des Kernel- oder Benutzerstapels.
Register für allgemeine Zwecke Abhängig von der Hardware
3.4.2 Prozessbeschreibung
Systemebenenkontext
Prozesstabelleneintrag
Legt den Status eines Prozesses fest. Das Betriebssystem kann jederzeit auf diese Informationen zugreifen.
Benutzerbereich
Prozesskontrollinformationen, auf die nur im Kontext des Prozesses zugegriffen werden muss.
Prozessbereichstabelle
Legt die Zuordnung von virtuellen zu physikalischen Adressen fest. Enthält außerdem ein Ereignisfeld, das den für den Prozess zulässigen Zugriffstyp anzeigt: nur Lesen, Lesen und Schreiben oder Lesen und Ausführen.
Kerne-Stapel
Enthält den Stapelrahmen von Kernel-Prozeduren, wenn der Prozess im Kernel-Modus läuft.
3.4.3 ProzesssteuerungWenn eine Fork-Anforderung ausgegeben wird führt das Betriebssystem folgende Schritte aus:
1)Es teilt dem Prozessor einen Abschnitt in der Prozesstabelle zu
2)Es weist dem Kindprozess eine eindeutige Prozesskennung zu
3)Es erstellt mit Ausnahme des gemeinsam genutzten Speichers eine Kopie des Elternprozessabbilds
4)Es erhöht die Zählerwerte von Dateien
5)Es weißt dem Kindprozess einen bereiten Zustand zu
6)Es übergibt die Kennzahl des Kindprozesses an den Elternprozess und einen 0-Wert an den Kindprozess
FRAGEN1)Welche Elemente des Kontrollblocks gibt es? -Prozessidentifikation -Prozessorstatusinformationen -Prozesskontrollinformationen
2)Welche Mechanismen gibt es für die Unterbrechung der Ausführung eines Prozesses? -Interrupt -Trap -Supervisor-Aufruf
3)Nenne mindestens 3 Registerbits. -Trap-Flag -Überlauf-Flag -Null-Flag -Paritäts-Flag -Richtungs-Flag
FRAGEN4)Was muss ein Betriebssystem alles über einen Prozess wissen? -Lageort des Prozesses -Attribute des Prozesses
5)Wo stehen die Attribute eines Prozesses? Im Prozesskontrollblock.
6)Welche Elemente des Prozesskontrollblocks gibt es? -Prozessindentifikation -Prozessorstatusinformationen -Prozesskontrollinformationen