Vortrag von Christoph KREN u. Michael BISCHL am 28.9.07

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

Recommended