Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Ähnliche Dokumente
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Systeme I: Betriebssysteme Wiederholung wichtiger Inhalte der Kapitel 3-7. Maren Bennewitz

Rechnernutzung in der Physik. Betriebssysteme

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

5 Kernaufgaben eines Betriebssystems (BS)

Technische Informatik 1

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Speicherverwaltung (Swapping und Paging)

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

6.Vorlesung Betriebssysteme Hochschule Mannheim

Dämon-Prozesse ( deamon )

Kapitel 2: Betriebssysteme

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Grundlagen Rechnerarchitektur und Betriebssysteme

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Überlegungen beim Entwurf eines Betriebssystems

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Tutorium Rechnerorganisation

Echtzeitbetriebssysteme

Systeme 1. Kapitel 5. Scheduling

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces

Parallele Prozesse. Prozeß wartet

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Übung zu Grundlagen der Betriebssysteme. 7. Übung

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Betriebssysteme Kapitel E : Prozesse

Echtzeit-Multitasking

Vorlesung Rechnerarchitektur. Einführung

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Basisinformationstechnologie I

Threads and Scheduling

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

5. Foliensatz Betriebssysteme und Rechnernetze

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Musterlösung Prüfung WS 01/02

Linux Paging, Caching und Swapping

Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz

Round-Robin Scheduling (RR)

Kapitel 2: Betriebssysteme

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Prozesse und Scheduling

1 Ab welchen Zeitpunkt kann man Thrashing bei einem PC beobachten? 2 Auf was muss man beim gleichzeitigen Datenzugriff mehrerer Prozesse beachten?

Betriebssysteme KU - Einführungstutorium

Technische Informa/k II. Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Projekt für Systemprogrammierung WS 06/07

Betriebssysteme Vorstellung

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Grundlagen der Informatik. Teil VI Betriebssysteme

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

Systemsoftware (SYS)

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Betriebssysteme (BTS)

Betriebssysteme (BTS)

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Grundkurs Betriebssysteme

3.2 Prozessumschaltung

Technische Informa/k II

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Freispeicherverwaltung Martin Wahl,

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Technische Informatik II

Dr. Monika Meiler. Inhalt

Automatisierungstechnik I Mini-Betriebssystem Theorie

Prozesse und Threads. Peter Puschner Institut für Technische Informatik

B.5 Prozessverwaltung B.5. Prozessverwaltung Prof. Dr. Rainer Manthey Informatik II 1

2Binden 3. und Bibliotheken

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Tutorium Rechnerorganisation

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Vorlesung Betriebssysteme I

3 Schnittstelle zum Betriebssystem 3.5 Multitasking. Schichten und Sichten eines Rechnersystems

Zusammenfassung Modul 223

Betriebssysteme Kap A: Grundlagen

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN

, SS2012 Übungsgruppen: Do., Mi.,

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Fachbereich Medienproduktion

Betriebssystem. Arten von Betriebssystemen. Zweiteilung des Betriebssystems. 5. Kapitel Systemsoftware: Prozesse und Prozesswechsel

Transkript:

Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1

Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen Verschiedene Komponenten / Konzepte von Betriebssystemen Dateisysteme Prozesse Nebenläufigkeit und wechselseitiger Ausschluss Deadlocks Scheduling Speicherverwaltung 6

Einführung Aufgabe des Prozessors: Ausführen der Programme im Hauptspeicher Bei der Ausführung eines Programms wird ein Prozess erzeugt Die Befehle des Programms werden durch den Prozessor abgearbeitet 7

Programm in Ausführung Prozess = Instanz eines Programms mit aktuellem Wert vom Programmzähler Registerinhalten Belegung von Variablen Prozessor Steuerwerk Hauptspeicher ALU Register Hauptspeicher Programmzähler PZ BR Befehlsregister Führe aus [s. Kap. 1] 8

Programm in Ausführung Prozess = Instanz eines Programms mit aktuellem Wert vom Programmzähler Registerinhalten Belegung von Variablen Multitasking-Betriebssysteme: Mehrere Prozesse können pseudo-parallel (oder quasiparallel) ausgeführt werden 9

Pseudo-Parallelität Auf Prozessoren mit einem Kern laufen die Prozesse natürlich nicht wirklich parallel Sondern abwechselnd, wobei die Prozessorzuteilung durch das Betriebssystem geregelt ist Im Gegensatz zu echter Hardware- Parallelität bei Mehrkernprozessoren 10

Motivation Multitasking Ein Benutzer will mehrere Aufgaben gleichzeitig durchführen Mehrere Benutzer teilen sich einen leistungsfähigen Rechner (Timesharing) Die Durchführung einer einzigen Aufgabe lässt sich typischerweise in relativ unabhängige Teilaufgaben zerlegen 11

Warum kann Multitasking überhaupt funktionieren? Rechner sind so leistungsfähig, dass die pseudo-parallele Ausführung mehrerer Prozesse schnell genug abläuft Viele Prozesse können den Prozessor ohnehin nicht permanent nutzen Grund: Viel Zeit wird mit dem Warten auf Ein-/Ausgaben verbracht 12

Beispiel Getrennte Ausführung Prozess 1 Prozess 2 Prozess 3 Pseudo-parallele Ausführung 13

Zerlegung in Teilaufgaben Durch Zerlegung möglich: Aufteilung der Rechenzeit unter verschiedenen Teilaufgaben durch das Betriebssystem ( Scheduling ) Wartezeiten auf Ein-/Ausgaben werden automatisch durch andere Prozesse genutzt Ein-Programm-Lösung mit gleicher Funktionalität hätte häufig verworrene Kontrollstruktur ( Spaghetti-Code ) 14

Adressraum Zu jedem Prozess gehört ein Adressraum im Hauptspeicher Liste von Speicherzellen mit Adressen, aus denen bzw. in die der Prozess lesen und schreiben darf Adressraum enthält ausführbares Programm Programmdaten Kellerspeicher ( Stack, für lokale Variablen) 15

Prozessinformationen Individuelle Prozessinformationen von Prozessorregistern: Programmzähler Allgemeine Register Stack pointer (zeigt auf oberstes Element im Kellerspeicher) Prozess ID, Priorität, Zustand, geöffnete Dateien, Startzeit, etc. Diese Informationen sind in einer sog. Prozesstabelle gespeichert ( activation record ) 16

Prozesswechsel (1) Prozesswechsel ( Context Switch ): Wechsel von der Ausführung eines Prozesses zu der Ausführung eines anderen Dispatcher: Teil des Betriebssystems, der Prozesswechsel durchführt Scheduler: Teil des Betriebssystems, der den Prozessen Rechenzeit auf dem Prozessor zuweist 17

Prozesswechsel (2) Nicht-präemptive Betriebssysteme, z.b. MS-DOS Prozessen kann nur dann der Prozessor entzogen werden, wenn sie ihn selbst abgeben wegen Terminierung Warten auf Abschluss einer Ein- /Ausgabeoperation Warten auf Zuteilung einer Ressource 18

Prozesswechsel (3) Präemptive Betriebssysteme, z.b. Unix, Linux, Windows Der aktive Prozess kann vom Betriebssystem unterbrochen werden (z.b. wenn ein neuer Prozess gestartet wurde) Oder auch: Neuzuteilung des Prozessors wird in regelmäßigen Zeitintervallen vom Betriebssystem erzwungen Mehr Verwaltungsaufwand, aber bessere Auslastung der CPU 19

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU Schritt 1: Prozess 1 wird ausgeführt 20

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU Schritt 2: Activation Record von Prozess 1 wird in Prozesstabelle geschrieben 21

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU 22

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU Schritt 3: Activation Record von Prozess 2 wird aus der Prozesstabelle geladen 23

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU 24

PC Register Stack pointer Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Beispiel: Prozesswechsel Hauptspeicher Prozesstabelle CPU Schritt 4: Prozess 2 wird ausgeführt 25

Prozesszustände Modell mit 5 Zuständen: Neu: Prozess wurde erzeugt, ist aber noch nicht gestartet Bereit: Rechenbereit, aber Prozessor ist diesem Prozess nicht zugeteilt Aktiv: CPU ist dem Prozess zugeteilt Blockiert: Nicht in der Lage weiterzuarbeiten, wartet auf etwas (z.b. E/A) Terminiert 26

Prozesszustände neu Zulassung bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein Warte auf blockiert 27

Warteschlangen von Prozessen, die bereit oder blockiert sind Zulassung Bereit-Warteschlange Zuteilung Prozessor Freigabe CPU-Entzug 1 tritt ein Warteschlange 1 Warten auf 1 n tritt ein Warteschlange n Warten auf n 28

Auslagern von Prozessen Für bessere Auslastung: Der Prozessor kann sich trotz Multitasking die meiste Zeit im Leerlauf befinden Eine Möglichkeit: Hauptspeicher ausbauen, um mehr Prozesse aufzunehmen Besser: Verschieben von Prozessen auf Festplatte, dadurch Schaffen von Freiraum Oder z.b. auch, wenn Prozess mit höherer Priorität bereit ist ausgeführt zu werden, oder bei periodischen Prozessen, wenn der Hauptspeicher belegt ist 29

Swapping (Auslagern) Prozesse werden aus dem Hauptspeicher entfernt Daten von bereiten oder auf ein wartenden Prozessen werden auf die Festplatte ausgelagert Beachte: Swapping verursacht Kosten (Laufzeit) Neue Prozesszustände nötig 30

Neue Zustände für Swapping Unterscheide, ob ein Prozess auf ein wartet oder nicht und ob er ausgelagert wurde oder nicht Dafür sind vier Zustände nötig: Bereit: Im Hauptspeicher, rechenbereit Bereit und ausgelagert: Auf Festplatte, aber rechenbereit Blockiert: Im Hauptspeicher, wartet auf Blockiert und ausgelagert: Auf Festplatte, wartet auf 31

Prozesszustände neu Zulassung bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein Warte auf blockiert 32

Prozesszustände neu Zulassung bereit / ausgel. bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein Warte auf block. / ausgel. blockiert 33

Prozesszustände neu Zulassung bereit / ausgel. aktivieren bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert block. / ausgel. tritt ein blockiert Warte auf Wenn keine bereiten Prozesse im Hauptspeicher oder Prozess mit hoher Priorität 34

Prozesszustände neu Zulassung bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert block. / ausgel. tritt ein blockiert Warte auf Wenn einzige Möglichkeit um genug Hauptspeicher zur Verfügung zu stellen 35

Prozesszustände neu Zulassung bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert block. / ausgel. aktivieren tritt ein blockiert Warte auf Kann Sinn machen für Prozesse mit hoher Priorität 36

Prozesszustände neu Zulassung bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert block. / ausgel. aktivieren auslagern tritt ein blockiert Warte auf Wenn keine bereiten Prozesse vorhanden oder mehr Platz im Hauptspeicher benötigt wird 37

Prozesszustände neu Zulassung bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein block. / ausgel. aktivieren auslagern tritt ein blockiert Warte auf 38

Prozesszustände Zulassung neu Zulassung bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein block. / ausgel. aktivieren auslagern tritt ein blockiert Warte auf Abhängig vom Platz im Hauptspeicher 39

Prozesszustände Zulassung neu Zulassung auslagern bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert tritt ein block. / ausgel. aktivieren auslagern tritt ein blockiert Warte auf Kann passieren, wenn für einen Prozess mit hoher Priorität Platz geschaffen werden muss 40

Hinweise Programme können auch laufen, wenn sich nur ein Teil von ihnen im Hauptspeicher befindet Virtueller Speicher eines Prozesses: Sein Hauptspeicherbereich + Bereiche in einer Auslagerungsdatei auf der Festplatte Virtuelle Adresse: Ein Ort im Speicher Betriebssystem verwaltet Speicher und Zugriff (Paging, Kapitel 8) Scheduling: Zuweisung von CPU-Zeit (Kapitel 7) 41

Interprozesskommunikation Adressräume verschiedener Prozesse sind Getrennt voneinander Geschützt gegen den Zugriff anderer Prozesse Kommunikation durch Shared Memory : Gemeinsam genutzte Arbeitsspeicherbereiche (schreiben, lesen) Betriebssystemfunktionen zum Senden und Empfangen von Nachrichten (Kommunikation über Adressraum des Betriebssystems) 42

Threads (1) Mini-Prozesse ( leichtgewichtige Prozesse ) Threads haben eigenen Befehlszähler, Register, Stack, Zustand Zustände: Aktiv, blockiert, bereit Mehrere Threads können parallel in einem Prozess laufen ( Multithreading ) Prozessorkerne wechseln schnell zwischen Threads hin und her 43

Threads (2) Besitzen gemeinsamen Adressraum Können sich globale Variablen, geöffnete Dateien etc. teilen Kein Schutz voreinander Annahme: Threads kooperieren untereinander und teilen sich Ressourcen Weniger Verwaltungsaufwand im Vergleich zu Prozessen; schnellere Erstellung Beispiel: Textverarbeitung mit Benutzerinteraktion und Backup 44

Zusammenfassung Prozess = Programm in Ausführung Alle zu einem Prozess gehörigen Daten werden im Hauptspeicher verwaltet Prozesse konkurrieren um Rechenzeit Betriebssystem weist den Prozessen Rechenzeit zu und führt Prozesswechsel durch Der Hauptspeicher reicht nur für begrenzte Anzahl von Prozessen Es kann nötig sein, Prozesse aus dem Hauptspeicher temporär auszulagern 45