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

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Wiederholung: Realisierung von Dateien

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

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

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Maren Bennewitz

Softwarelösungen: Versuch 4

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

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

Leichtgewichtsprozesse

5 Kernaufgaben eines Betriebssystems (BS)

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

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

RO-Tutorien 15 und 16

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Maren Bennewitz

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

Teil 3: Konzepte von Betriebssystemen

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Betriebssysteme 1. Thomas Kolarz. Folie 1

Dämon-Prozesse ( deamon )

Lösungsvorschlag zur 10. Übung

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

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

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

2.3 Prozessverwaltung

Klausur zum Kurs Betriebssysteme (1802) am 17. September 2011

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

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

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

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Systeme 1. Kapitel 5. Scheduling

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

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

Dateisystem: Einführung

Dateisystem: Einführung

Systeme I: Betriebssysteme Übungsblatt 3

Rechnernutzung in der Physik. Betriebssysteme

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

Benutzer- und Rechte-Verwaltung Teil 1

Tutorium Rechnerorganisation

Implementierung eines Dateisystems für Java-basierte eingebettete Systeme

Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag.

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

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme

Operating System Kernels

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

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

Einführung FAT - File Allocation Table NTFS - New Technology Filesystem HFS - Hierachical Filesystem ext - Extended Filesystem Zusammenfassung

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

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

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Die Shell - Das Vorspiel

Mehrwegbäume Motivation

Musterlösung Prüfung WS 01/02

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

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Freispeicherverwaltung Martin Wahl,

6.2 FAT32 Dateisystem

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Round-Robin Scheduling (RR)

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

Systeme 1. Kapitel 11. Zusammenfassung

> Übung Betriebssysteme Globalübung 3 Michel Steuwer Wintersemester 2012/13

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

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

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Windows 2000 Scheduler

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

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

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

5. Foliensatz Betriebssysteme und Rechnernetze

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Abschlussklausur. Betriebssysteme. Bewertung: 22. November Name: Vorname: Matrikelnummer:

Zwei Möglichkeiten die TLB zu aktualisieren

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

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

4. Übung - Rechnerarchitektur/Betriebssysteme

Grundlagen der Programmierung

Einführung in Betriebssysteme UNIX AM BEISPIEL LINUX

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

Dateisysteme. Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. c~åüüçåüëåüìäé açêíãìåç

Transkript:

Systeme I: Betriebssysteme Wiederholung wichtiger Inhalte der Kapitel 3-7 Maren Bennewitz Version 12.02.2013 1

Hinweis Diese Folien haben keinen Anspruch auf Vollständigkeit, was den Inhalt der Prüfung angeht Sie dienen nur dem Zweck der (kurzen) Wiederholung wichtiger Inhalte, die Sie gelernt haben sollten Insbesondere kann der Inhalt von Kapitel 8 selbstverständlich auch in der Prüfung abgefragt werden 2

Dateisysteme 3

Dateisysteme Dateisystem = Betriebssystemteil, der sich mit Dateien befasst Externe Sicht: Vom Dateisystem angebotene Funktionalität Interne Sicht: Implementierung von Dateisystemen 4

Dateiattribute Informationen über eine Datei, die das Betriebssystem speichert Beispiele: Entstehungszeitpunkt (Datum, Uhrzeit) Dateigröße Zugriffsrechte 5

Zugriffsrechte Sicht des Benutzers (Bsp. Unix / Linux): $ ls l drwxr-xr-x 6 maren users 238 Oct 18 12:13 systeme-slides drwxr-x - 1 maren users 204 Oct 2 11:10 systeme-uebungen -rw------- 1 maren users 29696 Feb 29 2012 zeitplan.xls Bedeutung der Felder: Typ des Eintrags: Datei, Verzeichnis Rechte: Besitzer, Gruppenbesitzer, alle anderen Anzahl Einträge (Verzeichnis)/Linkzähler (Datei) Besitzer, Gruppenbesitzer Speicherplatzverbrauch Datum der letzten Modifikation Name 6

Sonderrechte Unix (1) SUID (set user ID): Erweitertes Zugriffsrecht für Dateien Unprivilegierte Benutzer erlangen kontrollierten Zugriff auf privilegierte Ressourcen Ausführung mit den Rechten des Besitzers der Datei (anstatt mit den Rechten des ausführenden Benutzers) Optische Notation bei ls: -rwsr-x--- 7

Sonderrechte Unix (2) SGID (set group ID) Ausführung mit den Rechten der Gruppe, der die Datei/das Verzeichnis gehört (anstatt mit den Rechten der Gruppe, die ausführt) Verzeichnisse: Neu angelegte Dateien gehören der Gruppe, der auch das Verzeichnis gehört (anstatt der Gruppe, die eine Datei erzeugt) Optische Notation bei ls: drwxrws--- 8

Implementierung von Dateisystem Festplatten sind eingeteilt in Blöcke, die durchnummeriert sind 0 123 4 5 9

Realisierung von Dateien Drei verschiedene Alternativen zur Realisierung von Dateien: Zusammenhängende Belegung Belegung durch verkettete Listen I-Nodes 10

Verkettete Listen Fragmentierung der Festplatte führt nicht zu Verlust von Speicherplatz Dateien beliebiger Größe können angelegt werden (solange genug Plattenplatz vorhanden) Bei Zugriff auf Dateiblock n sind n-1 Lesezugriffe auf die Platte nötig, um den Block zu lokalisieren 11

FAT-System Datei-Allokationstabelle (FAT=File Allocation Table) Information über Verkettung der Blöcke im Hauptspeicher Bei wahlfreiem Zugriff auf Block n muss nur eine Kette von Verweisen im Hauptspeicher verfolgt werden (nicht auf der Platte) Nachteil: Anzahl der Einträge ist immer gleich der Gesamtzahl der Plattenblöcke z.b. FAT-16: 16 Bit zur Adressierung 12

FAT Beispiel Datei A: Dateiblock 0 Dateiblock 1 Dateiblock 2 Dateiblock 3 Dateiblock 4 Plattenblock 0 Plattenblock 1 Plattenblock 2 Plattenblock 3 Plattenblock 4 Plattenblock 5 Plattenblock 6 Plattenblock 7 Plattenblock 8 Plattenblock 9 Plattenblock 10 Plattenblock 11 Plattenblock 12 Plattenblock 13 Plattenblock 14 Plattenblock 15 10 11 7 3 2 12 14-1 -1 Plattenblock 4 7 2 10 12 Datei B: Dateiblock 0 Dateiblock 1 Dateiblock 2 Dateiblock 3 Plattenblock 6 3 11 14 Beginn Datei A Beginn Datei B 13

Beispiel: FAT-32 28 Bit zur Adressierung: 2 28 verschiedene Zeiger, je 4 Byte groß Größe der FAT: 2 28 * 4 Byte = 2 30 = 1 GB! 14

Fat-System Kleinere Blöcke führen zu weniger verschwendetem Platz pro Datei Je kleiner die Blockgröße, desto mehr Zeiger, desto größer die FAT im Hauptspeicher Maximale Größe des ganzen Dateisystems wird durch Blockgröße begrenzt FAT-16 muss z.b. für eine 2 GByte Partition eine Blockgröße von 32 KByte verwenden Andernfalls kann mit den 2 16 verschiedenen Zeigern nicht die ganze Partition adressiert werden 15

Realisierung von Dateien I-Nodes (1) Zu jeder Datei gehört eine Datenstruktur, der sogenannte I-Node (Index-Knoten, bei NTFS: File Record) I-Node enthält: Metadaten und Adressen von Plattenblöcken I-Node ermöglicht Zugriff auf alle Blöcke der Datei I-Node muss nur dann im Speicher sein, wenn eine Datei offen ist Wenn k Dateien offen und I-Node n Bytes benötigt: k * n Byte an Speicher benötigt 16

Realisierung von Dateien I-Nodes (2) I-Node einer Datei enthält Alle Attribute der Datei m Adressen von Plattenblöcken (UNIX System V: m=10, ext2/3: m=12) Verweise auf Plattenblöcke, die weitere Verweise auf Blöcke enthalten Auf die ersten m Plattenblöcke kann schnell zugegriffen werden Für die folgenden Plattenblöcke sind zusätzliche Zugriffe nötig 17

Realisierung von Dateien I-Nodes (3) Dateiattribute Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 Adresse von Dateiblock 3 Adresse von Dateiblock 4 Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Zeiger auf Block mit weiteren Adressen (zweifach indirekt) Zeiger auf Block mit weiteren Adressen (dreifach indirekt) Einfach indirekter Block Doppelt indirekter Block je 256 Verweise auf Plattenblöcke Dreifach indirekter Block 256 Verweise auf Plattenblöcke je 256 Zeiger auf Dateiblöcke 18

Beispiel: Maximale Dateigröße Blockgröße 1 KByte, Zeigergröße 4 Bytes 10 direkte Zeiger des I-Nodes: 10 KByte Daten lassen sich speichern Einfach indirekter Zeiger verweist auf einen Plattenblock, der maximal 1 KByte/4Byte Zeiger verwalten kann, also 256 Zeiger Indirekt: 1 KByte * 256 = 256 KByte Daten Zweifach indirekter Zeiger: 1 KByte * 256 * 256 = 64 MByte Daten Dreifache indirekter Zeiger: 1 KByte * 256 * 256 * 256 = 16 GByte Daten 19

I-Nodes Im Betriebssystem existiert eine Tabelle mit allen Inodes Die Größe der I-Node-Tabelle wird beim Anlegen des Dateisystems festgelegt Wenn verfügbarer Plattenplatz oder alle I Nodes belegt sind: Dateisystem voll Es muss eine ausreichende Anzahl von I-Nodes eingeplant werden 20

Realisierung von Verzeichnissen (1) Verzeichnisse sind ebenfalls Dateien Sie liefern eine Abbildung von Datei- bzw. Verzeichnisnamen auf I-Node-Nummern Jeder Verzeichniseintrag ist ein Paar aus Name und I-Node-Nummer Über die I-Nodes kommt man dann zu Dateiinhalten 21

Realisierung von Verzeichnissen (2) / tmp etc var usr lib home bin man lib meier mueller schulze games mail news work I-Node von mueller aktuelles Vorgängerverzeichnis... games mail 7 3 45 76 I-Node von home I-Node Nr. 45 I-Node Nr. 76 Zeiger auf die Datenblöcke der Datei news 9 I-Node Nr. 9 work 14 I-Node Nr. 14 22

Implementierung von Hardlinks $ ls l -rw-r----- 1 meier users datei1 $ ln datei1 datei2 $ ls l -rw-r----- 2 meier users datei1 -rw-r----- 2 meier users datei2 datei1 datei2 71 71 I-Node Nr. 71 linkcount = 2 23

Implementierung symbolischer Links $ ls l -rw-r----- 1 meier users datei1 $ ln s datei1 datei2 $ ls l -rw-r----- 1 meier users... datei1 lrwxrwxrwx 1 meier users... datei2 -> datei1 I-Node Nr. 71 datei1 71 datei2 39 I-Node Nr. 39 datei1 Datenblock einer neuen Datei vom Typ LINK, enthält Pfadnamen/Text datei1 24

Prozesse 25

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

Motivation Multitasking Ein Benutzer will mehrere Aufgaben gleichzeitig durchführen Mehrere Benutzer teilen sich einen leistungsfähigen Rechner: Timesharing- Systeme als spezielle Form des Multitasking Wartezeiten auf Ein-/Ausgaben kann durch Abarbeitung anderer Prozesse genutzt werden Ein-Programm-Lösung mit gleicher Funktionalität hätte häufig verworrene Kontrollstruktur 27

Prozesswechsel Nicht-präemptive Betriebssysteme: Prozessen kann nur dann der Prozessor entzogen werden, wenn sie ihn selbst abgeben Präemptive Betriebssysteme: Der aktive Prozess kann unterbrochen werden vom Betriebssystem Mehr Verwaltung, aber bessere Auslastung der CPU bei präemptiven Systemen 28

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

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

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

Prozessmodell mit 5 Zuständen neu Zulassung bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert Ereignis tritt ein Warte auf Ereignis blockiert 32

Swapping (Auslagern) Prozesse werden aus dem Hauptspeicher entfernt Daten von bereiten oder auf ein Ereignis wartenden Prozessen werden komplett auf die Festplatte ausgelagert Motivation: Der Prozessor kann sich trotz Multitasking die meiste Zeit im Leerlauf befinden Platz schaffen für die Aufnahme neuer Prozesse 33

Prozessmodell mit 7 Zuständen Zulassung neu Zulassung auslagern bereit / ausgel. aktivieren auslagern bereit Zuteilung CPU-Entzug aktiv Freigabe terminiert Ereignis tritt ein block. / ausgel. aktivieren auslagern Ereignis tritt ein blockiert Warte auf Ereignis 34

Nebenläufigkeit und wechselseitiger Ausschluss 35

Anforderungen an wechselseitigen Ausschluss Keine zwei Prozesse dürfen gleichzeitig in ihren kritischen Regionen sein Es dürfen keine Annahmen über Geschwindigkeit und Anzahl der CPUs gemacht werden Kein Prozess, der außerhalb seiner kritischen Regionen läuft, darf andere Prozesse blockieren Kein Prozess sollte ewig darauf warten müssen, in seine kritische Region einzutreten 36

Lösungen für wechselseitigen Ausschluss Software-Lösungen: Verantwortlichkeit bei Prozessen, Anwendungsprogramme gezwungen sich zu koordinieren Hardware-Unterstützung: Spezielle Maschinenbefehle, reduzieren Verwaltungsaufwand Ins Betriebssystem integrierte Lösungen 37

Wechselseitiger Ausschluss in Software Wechselseitiger Ausschluss ist in Software schwer zu realisieren Alles was einfacher ist als Petersons Algorithmus ist höchstwahrscheinlich falsch Formale Beweise sind unabdingbar! Software-Lösungen für wechselseitigen Ausschluss benötigen aktives Warten 38

Wechselseitiger Ausschluss in Hardware (1) Neues Konzept: Einführung atomarer Operationen Hardware garantiert atomare Ausführung Testen und Setzen zusammen bilden eine atomare Operation: Befehl TSL (Test and Set Lock) Da TSL ein einziger Befehl ist, kann ein Prozesswechsel nicht zwischen Testen und Setzen erfolgen 39

Wechselseitiger Ausschluss in Hardware (2) Vorteil: Wechselseitiger Ausschluss ist garantiert Nachteil: Aktives Warten wie bei Software- Lösungen 40

Wechselseitiger Ausschluss, ins Betriebssystem integriert Prozesse blockieren statt warten Systemaufrufe statt Verschwendung von Rechenzeit Systemaufruf sleep(id) zum Blockieren von Prozessen (id: eindeutige Bezeichnung für kritische Region) Systemaufruf wakeup(id) nach Verlassen des kritischen Abschnitts: 41

Mutexe (1) Ein Mutex m besteht aus einer binären Lock- Variable lock m und einer Warteschlange queue m Vor Eintritt in die kritische Region wird die Funktion mutex_lock(m) aufgerufen Darin: Überprüfung, ob die kritische Region schon belegt ist Falls ja: Prozess blockiert (sleep) und wird in Warteschlange eingefügt Falls nein: Lock-Variable wird gesetzt und Prozess darf in kritische Region eintreten 42

Mutexe (2) Einfachste Möglichkeit um wechselseitigen Ausschluss mit Systemfunktionen zu garantieren Zwei Zustände: gesperrt / nicht gesperrt Kein aktives Warten, CPU wird abgegeben Der Prozess, der den Mutex gesperrt hat, gibt ihn auch wieder frei 43

Semaphore Wert des Semaphors repräsentiert die Anzahl der Weckrufe, die ausstehen Drei mögliche Situationen für den Wert eines Semaphors: Wert < 0: weitere Weckrufe stehen schon aus, nächster Prozess legt sich auch schlafen Wert 0: keine Weckrufe sind bisher gespeichert, nächster Prozess legt sich schlafen Wert > 0: frei, nächster Prozess darf fortfahren 44

Semaphor: down/up down-operation: Verringere den Wert von count s um 1 Wenn count s <0, blockiere den aufrufenden Prozess (Warteschlange), sonst fahre fort up-operation: Erhöhe den Wert von count s um 1 Wenn count s <=0, wecke einen der blockierten Prozesse auf Bedeutung: Wenn count s <0 vor Erhöhen: Es gibt mindestens einen wartenden Prozess 45

Deadlocks 46

Deadlocks Ressourcen werden nach und nach von den Prozessen angefordert (und nach Benutzung wieder freigegeben) Dabei kann es dazu kommen, dass eine Menge von Prozessen sich in einem Deadlock befindet 47

Voraussetzungen für Ressourcen- Deadlocks Wechselseitiger Ausschluss: Jede Ressource ist entweder verfügbar oder genau einem Prozess zugeordnet 48

Voraussetzungen für Ressourcen- Deadlocks Wechselseitiger Ausschluss Besitzen und Warten: Prozesse, die schon Ressourcen reserviert haben, können noch weitere Ressourcen anfordern 49

Voraussetzungen für Ressourcen- Deadlocks Wechselseitiger Ausschluss Besitzen und Warten Kein Ressourcenentzug: Ressourcen, die einem Prozess bewilligt wurden, können nicht gewaltsam wieder entzogen werden 50

Voraussetzungen für Ressourcen- Deadlocks Wechselseitiger Ausschluss Besitzen und Warten Kein Ressourcenentzug Zyklisches Warten: Es gibt eine zyklische Kette von Prozessen, von denen jeder auf eine Ressource wartet, die dem nächsten Prozess in der Kette gehört 51

Belegungs-Anforderungs-Graph p 1 r 1 r 2 p 2 Zyklen im Belegungs-Anforderungsgraphen repräsentieren Deadlocks! 52

Ressourcendiagramm Diagramm zur Visualisierung der Ressourcenanforderungen über die Zeit Besitzt Zeitachsen für die Prozesse Dient zur Erkennung von potentiellen Deadlocks Ressourcenspur: Eine mögliche Ausführungsreihenfolge der Anweisungen 53

Ressourcendiagramm: Deadlock Prozess p 2 Res. B I 8 Beide benötigen Res. B Beide Prozesse beendet I 7 I 6 Res. A I 5 Deadlock unvermeidbar! t Beide benötigen Res. A Ressourcenspur Start Res. B I 1 I 2 I 3 I 4 Res. A Prozess p 1 54

Beispiel: Nie Deadlock (2) Prozess p 2 Res. B I 8 Beide benötigen Res. B Beide Prozesse beendet I 7 I 6 Res. A I 5 Beide benötigen Res. A Start I 1 I 2 I 3 I 4 Prozess p 1 Res. B Res. A 55

Verhindern von Deadlocks Bankier-Algorithmus: Ressourcenaufteilung an Prozesse, so dass Deadlocks garantiert verhindert werden können Voraussetzungen: Es ist im Voraus bekannt, welche und wie viele Ressourcen die einzelnen Prozesse (maximal) anfordern werden Diese maximale Anforderung übersteigt für keinen Prozess die zur Verfügung stehenden Ressourcen 56

Bankier-Algorithmus (1) Ein Zustand ist sicher, wenn Es auf jeden Fall eine deadlockfreie Restausführung aller Prozesse gibt Unabhängig davon, in welcher Weise die Prozesse in Zukunft ihre Ressourcenanforderungen und -freigaben durchführen Auch dann wenn gilt Prozesse stellen ihre restlichen Anforderungen jeweils auf einen Schlag Freigaben gibt es erst bei Prozessbeendigung (Worst Case) 57

Bankier-Algorithmus (2) Wenn deadlockfreie Restausführung nicht garantiert werden kann: Zustand ist unsicher Beachte: Ein unsicherer Zustand muss nicht notwendigerweise zu einem Deadlock führen! (Wir betrachten den Worst Case) Bei sicheren Zuständen kann garantiert werden, dass es eine Reihenfolge gibt, s.d. alle Prozesse zu Ende laufen können! 58

Bankier-Algorithmus (3) Probleme bei der praktischen Anwendung: Prozesse können meist nicht im Voraus eine verlässliche Obergrenze für ihre Ressourcenanforderungen geben Anzahl der Prozesse ist nicht fest, sondern ändert sich ständig (z.b. durch Ein- / Ausloggen) 59

Scheduling 60

Kurzfristiges Scheduling Der kurzfristige Scheduler weist die CPU verschiedenen (konkurrierenden) Prozessen zu, um optimale Performance zu erzielen Mehrere verschiedene Optimierungsziele sind denkbar, verschiedene Scheduling- Algorithmen existieren 61

Kriterien für das kurzfristige Scheduling Benutzerorientiert: Minimale Antwortzeit bei interaktivem System Minimale Zeit zwischen Eingang und Abschluss eines Prozesses (Durchlaufzeit) Gute Vorhersagbarkeit (unabhängig von Systemauslastung ähnliche Zeit) Systemorientiert: Maximale CPU-Auslastung (aktive Zeit) Maximale Anzahl von Prozessen, die pro Zeiteinheit abgearbeitet werden (Durchsatz, pro Stunde) 62

Feedback Queues (1) Präemptiv (Zeitintervall), dynamische Prioritäten Wenn ein Prozess die CPU abgeben muss, dann wird er in eine Warteschlange mit der nächst geringeren Priorität eingefügt Dadurch: Verbrauchte CPU-Zeit wird angenähert durch Anzahl erzwungener CPU- Abgaben Abarbeitung der Warteschlangen nach Priorität 63

Feedback Queues (2) Zulassung höchste Priorität Freigabe Freigabe...... Freigabe RQn niedrigste P. 64

Scheduling bei UNIX Es gibt verschiedene Warteschlangen mit unterschiedlichen Prioritäten Ausgeführt wird anfangs der erste Prozess in der nichtleeren Warteschlange mit höchster Priorität Die Prozesse höchster Priorität werden anschließend untereinander nach Round Robin gescheduled (z.b. jede 100ms) Neuberechnung der Prioritäten in regelmäßigen Zeitabständen (z.b. jede Sekunde), Wartezeit geht in die Priorität ein 65

Klausur Datum: 14. März 2013, 9:00 s.t. Bitte UniCard mitbringen Räume: Gebäude 101, Räume 00-026, 00-036 und 00-010/14 Klausureinsicht: 27. März, 13.30-15.30 Uhr in Gebäude 74, Raum 00-009 (Küche) Viel Glück! 66