Beschreibung und Verwaltung von Prozesse

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Computersysteme in Überblick
Imperative Programmierung
7.3 Scheduling Zur Erinnerung:
10.2 Wechselseitiger Ausschluss in Hardware
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Software Von Webmaster Mario.
der Universität Oldenburg
der Universität Oldenburg
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Gliederung Motivation / Grundlagen Sortierverfahren
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Kapitel 7 Prozesse und Threads
Neumannrechner.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Windows Universität zu Köln
Einführung Definitionen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Situationen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Access 2000 Datenbanken.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
„Datei speichern unter“
Multitasking im Betriebssystem
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
SOFTWARE.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Excel 97 Einführung - Start -.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Betriebssysteme & BIOS
Wichtige Errungenschaften
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Java Programmierung.
Zustandsübergangsdiagramme (1)
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Vorgeschichte:. Der Prozess X befindet sich in der CPU in Ausführung
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Die Management-Tools von Z&H COACH beinhalten zentrale Hilfsmittel für ein Management-System. Sorgfältig angewendet führen diese Tools Ihr Unternehmen.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
2.3 Implementierung von Prozessen
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Netzwerk - Programmierung
 Präsentation transkript:

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