2.3 Prozessverwaltung

Ähnliche Dokumente
Kapitel 2: Betriebssysteme

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Kapitel 2: Betriebssysteme

Speicherverwaltung (Swapping und Paging)

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Kapitel 2: Betriebssysteme

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Tutorium Rechnerorganisation

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

Übung zu Einführung in die Informatik # 10

Freispeicherverwaltung Martin Wahl,

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

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Fachbericht Thema: Virtuelle Speicherverwaltung

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Prozesse und Scheduling

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Kapitel 2: Betriebssysteme

Echtzeitbetriebssysteme

4. Übung - Betriebssysteme

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Softwarelösungen: Versuch 4

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

5 Kernaufgaben eines Betriebssystems (BS)

4.3 Hintergrundspeicher

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Einführung in die technische Informatik

Verteilte Echtzeit-Systeme

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

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Domänenmodell: Fadenkommunikation und -synchronisation

Musterlösung Prüfung WS 01/02

8. Swapping und Virtueller Speicher

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

13. Übung mit Musterlösung

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Kapitel 9 Hauptspeicherverwaltung

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Algorithmen II Vorlesung am

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Memory Management. Peter Puschner Institut für Technische Informatik

Informatik II, SS 2014

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

5 Speicherverwaltung. bs-5.1 1

Tutorium Rechnerorganisation

Technische Informa/k II

Übung zu Grundlagen der Betriebssysteme. 10. Übung

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

2. Aufgabenblatt Threads

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Betriebssysteme (BS)

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Lösungsvorschlag zur 6. Übung

Technische Informatik II

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

Parallele Prozesse. Prozeß wartet

Rechnernutzung in der Physik. Betriebssysteme

Anzeigen des Ereignisprotokolls (Windows) Anzeigen aller Fehler im Anwendungsprotokoll (Windows)

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Informatik I WS 07/08 Tutorium 24

5.5.5 Der Speicherverwalter

7. Speicherverwaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

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

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

Betriebssysteme 1. Thomas Kolarz. Folie 1

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

6.Vorlesung Grundlagen der Informatik

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Betriebssysteme und Systemsoftware

Lösungsvorschlag zur 5. Übung

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

Definitionen zum Verschnitt

Speicher- Management

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Kapitel 2: Betriebssysteme

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Praktikum Informatik 2: Betriebssysteme und Rechnernetze

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Linux Paging, Caching und Swapping

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Grundlagen der Betriebssysteme

Speicherstrukturen. Aufgabe 1-1: Fragen zu FAT (File Allocation Table) Aufgabe 1-2: Datensätze variabler Länge. Kind.java:

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

Nebenläufige Programmierung

Betriebssysteme 1. Thomas Kolarz. Folie 1

Wenn alle Referenzbits gleich 1, wird nach FIFO entschieden

Grundlagen der Informatik III Wintersemester 2010/2011

GI Vektoren

Verbessertes Konzept: Monitore

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Transkript:

Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären Semaphor bzw. ein Int-Wert bei einem Zählsemaphor) Eine Liste von blockierten Prozessen (als FIFO-Warteschlange) Eine FIFO (First-In-First-Out) Warteschlange ermöglicht Ein Objekt (hier: Prozess) an das Ende der Liste anzufügen Das erste Objekt aus der Liste zu entnehmen Damit kann immer nur das Objekt entnommen werden, das am längsten in der Liste wartet Schematisch Zugriff auf den Semaphor s Wert: s.value s.value: 1 s.queue: Process i, Process j, Zugriff auf die Warteschlange: s.queue 31 Variable s: binarysemaphore; Binäres Semaphor Initialisierung Wait Signal algorithmus init input s: binarysemaphore, initialvalue: {0,1} s.value = initialvalue; algorithmus wait input s: binarysemaphore if s.value = 1 then s.value := 0; else blockiere Prozess und plaziere ihn in s.queue; algorithmus signal input s: binarysemaphore if s.queue ist leer then s.value := 1; else entnehme einen Prozess aus s.queue; 32

Variable s: semaphore; Zählsemaphor Initialisierung Wait algorithmus init input s: semaphore, initialvalue: Int s.value = initialvalue; algorithmus wait input s: semaphore s.value := s.value 1; if s.value < 0 then blockiere Prozess und plaziere ihn in s.queue; Signal algorithmus signal input s: semaphore s.value = s.value + 1; if s.value <= 0 // gibt es noch blockierte Prozesse? then entnehme einen Prozess aus s.queue; 33 Programmiertechnische Nutzung von Semaphoren Einsatz: variables s: binarysemaphore; init(s,1) wait(s); < kritischer Bereich >; signal(s); Realisierung eines wechselseitigen Ausschlusses binäres Semaphor Verwaltung einer begrenzter Anzahl von Ressourcen Zählsemaphor 34

Beispiel: Flugbuchung algorithmus Reservierung variables n, anzpl : Nat; s : binarysemaphore Global: init(s,1); while Buchung nicht abgeschlossen do { n = Anzahl der zu buchen Plätze; anzpl = aktuelle Anzahl der freien Plätze; wait(s); if anzpl n then anzpl um n verringern; else STOP mit Auskunft Ausgebucht ; Reservierung bestätigen; signal(s); Frage nach weiterer Buchung; // Nein: Verlassen der Schleife } 35 Deadlocks (siehe Seite 18): Ein Deadlock ist eine dauerhafte Blockierung einer Menge M von Prozessen, die eine Menge S gemeinsamer Systemressourcen nutzen oder miteinander kommunizieren ( M > 1, S > 1) Lösungsstrategien: Vermeidung Erkennung 36

Vermeidung von Deadlocks keine gleichzeitige Beanspruchung mehrerer Betriebsmittel durch einen Prozess get A release A get B release B Das ist aber nicht immer möglich!!! wenn ein Prozess mehrere Betriebsmittel gleichzeitig benötigt, muss er diese auf einmal belegen; die Freigabe kann nach und nach erfolgen get A, B, C release B release A, C Problem: Alle benötigten Betriebsmittel müssen vorab bekannt sein Ggf. werden dadurch zu viele Ressourcen belegt, nur weil die Möglichkeit besteht, dass sie benötigt werden könnten 37 Erkennung von Deadlocks notwige Voraussetzungen für Deadlock (trifft eine nicht zu, kann kein Deadlock entstehen): Mutual Exclusion Es gibt mind. 2 Ressourcen, die nur von einem Prozess gleichzeitig benutzt werden Hold and Wait Ein Prozess muss eine Ressource behalten, währ er auf eine weitere Ressource wartet No Preemption Eine Ressource kann einem Prozess, der sie behält, nicht wieder entzogen werden 38

Sind alle drei Bedingungen erfüllt, muss noch eine vierte Bedingung zutreffen, damit ein Deadlock eintritt: Circular Wait Es existiert eine geschlossene Kette von Prozessen, so dass jeder Prozess mindestens eine Ressource hält, die von einem anderen Prozess der Kette gebraucht wird Was kann dann getan werden? Es muss eine der drei Bedingungen auf der vorigen Folie verletzt werden, z.b. No Preemption: einem Prozess wird eine Ressource, die dieser gerade hält, wieder entzogen 39 Motivation: beim Multiprogramming muss der Hauptspeicher mehreren Prozessen gleichzeitig zur Verfügung gestellt werden Aufgaben der Hauptspeicherverwaltung Zuteilung (allocation) von ausreich Speicher an einen ausführen Prozess Schutz (protection) vor Zugriffen auf Hauptspeicherbereiche, die dem entsprechen Prozess nicht zugewiesen sind einfachster Fall: Uniprogramming frei Prozess A Erst nach dem Ende von Prozess A wird ein neues Programm (Prozess B) in den Hauptspeicher geladen. frei Prozess B Betriebssystem Betriebssystem Hauptspeicher zum Zeitpunkt i Hauptspeicher zum Zeitpunkt i+1 40

Für das Multiprogramming ist eine Unterteilung (Partitionierung) des Speichers für mehrere Prozesse erforderlich Feste Partitionierung in gleich große Partitionen ABER: nicht alle Prozesse gleich groß => unterschiedlich große Partitionen TROTZDEM: große Prozesse müssen zerlegt werden (interne) Fragmentierung: Teile der Partitionen bleiben unbenutzt 8 M (BS) 8 M 8 M (BS) 4M 6M 12M 16M 41 Dynamische Partitionierung in Partitionen variabeler Größe, d.h. für jeden Prozess wird genau der benötigte Speicherplatz zugewiesen (externe Fragmentierung): zwischen den Partitionen können Lücken entstehen Speicherbelegungsstrategien wie z.b. Best Fit, First Fit, Next Fit nötig Defragmentierung durch Verschieben der Speicherbereiche prinzipiell möglich, aber sehr aufwändig (normaler Betriebsablauf muss komplett unterbrochen werden)!!! 42

Nachteile der bisherigen Konzepte Prozess komplett im HS, obwohl oft nur ein kleiner Teil benötigt wird Platz für Programme und Daten ist durch Hauptspeicherkapazität begrenzt zusammenhänge Speicherbelegung für einen Prozess verschärft Fragmentierung Speicherschutz muss vom BS explizit implementiert werden Lösung: virtueller Speicher Prozessen mehr Speicher zuordnen als eigentlich vorhanden nur bestimmte Teile der Programme werden in HS geladen Rest wird auf dem Hintergrundspeicher (HGS) abgelegt Prozesse werden ausgeführt, obwohl nur zum Teil im HS eingelagert physischer Adressraum wird auf einen virtuellen (logischen) Adressraum abgebildet 43 Virtueller Speicher Paging ein Programm wird in Seiten fester Größe (Pages) aufgeteilt der reale HS wird in Seitenrahmen (Frames) fester Größe aufgeteilt jeder Frame kann eine Page aufnehmen Pages können nach Bedarf in freie Frames (im Hauptspeicher) eingelagert werden Programm arbeitet mit virtuellen Speicheradressen (Pages), die bei Adressierung (Holen von Befehlen, Holen und Abspeichern von Operandenwerten, usw.) in eine reale Hauptspeicheradresse umgesetzt werden müssen Diese Zuordnung übernimmt das Betriebssystem und die Memory Management Unit (MMU) mit Hilfe einer Seitentabelle (page table) 44

Prinzip des Paging: um für die momentan arbeiten Prozesse genüg Platz zu haben, werden nicht benötigte Seiten auf den HGS ausgelagert wird eine Seite benötigt, die nicht im Hauptspeicher sondern nur auf dem HGS lagert, so tritt ein Seitenfehler auf die benötigte Seite muss in den Hauptspeicher geladen werden falls der Hauptspeicher schon voll ist, muss eine/mehrere geeignete Seiten ausgelagert werden Abschließ wird die Seitentabelle entsprech aktualisiert Behandlung von Seitenfehlern: Seitenersetzung Behandlung von Seitenfehlern muss effizient sein, sonst wird der Seitenwechsel leicht zum Flaschenhals des gesamten Systems Bei der Auswahl der zu ersetzen Seite(n) sollten immer solche ausgewählt werden, auf die möglichst nicht gleich wieder zugegriffen wird (sonst müssten diese gleich wieder eingelagert werden, auf Kosten von anderen Seiten) 45 Seitenersetzungsstrategien (Auswahl) Optimal (OPT) ersetzt die Seite, die am längsten nicht benötigt wird; leider nicht vorhersehbar und daher nicht realisierbar Random zufällige Auswahl; schnell und einfach zu realisieren, aber keine Rücksicht auf das Seitenreferenzverhalten des Prozesses First In, First Out (FIFO) ersetzt die älteste Seite im Hauptspeicher; einfach zu realisieren, aber Seitenzugriffshäufigkeit wird nicht berücksichtigt Least Recently Used (LRU) ersetzt die Seite, auf die am längsten nicht mehr zugegriffen wurde; berücksichtigt die Beobachtung, dass Seiten, die länger nicht mehr verwet wurden, auch in Zukunft länger nicht benötigt werden (Prinzip der Lokalität) 46