Systeme 1. Kapitel 11. Zusammenfassung



Ähnliche Dokumente
Softwarelösungen: Versuch 4

Systeme 1. Kapitel 5. Scheduling

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Round-Robin Scheduling (RR)

Paging. Einfaches Paging. Paging mit virtuellem Speicher

OPERATIONEN AUF EINER DATENBANK

Einführung in die technische Informatik

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Rechnernutzung in der Physik. Betriebssysteme

Domänenmodell: Fadenkommunikation und -synchronisation

Systeme 1. Kapitel 10. Virtualisierung

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

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Es kann maximal ein Prozess die Umladestelle benutzen.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

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

Monitore. Klicken bearbeiten

Dämon-Prozesse ( deamon )

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

5 Speicherverwaltung. bs-5.1 1

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Grundlagen verteilter Systeme

Einführung in PHP. (mit Aufgaben)

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

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

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

Übungen zum Fach Betriebssysteme Kapitel 3

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

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

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

Echtzeitscheduling (1)

4D Server v12 64-bit Version BETA VERSION

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Die allerwichtigsten Raid Systeme

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

How to do? Projekte - Zeiterfassung

Übung zu Grundlagen der Betriebssysteme. 13. Übung

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Formular»Fragenkatalog BIM-Server«

Technische Informatik II

Eigene Dokumente, Fotos, Bilder etc. sichern

Kompetitive Analysen von Online-Algorithmen

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

TIMI: Technische Informatik für Medieninformatiker

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

Verwendung des Terminalservers der MUG

Workshop: Eigenes Image ohne VMware-Programme erstellen

Grundlagen der Theoretischen Informatik, SoSe 2008

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

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

CA Übung Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

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

Nutzung von GiS BasePac 8 im Netzwerk

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

Betriebssysteme und Systemsoftware

Wiederholung: Realisierung von Dateien

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Datensicherung. Beschreibung der Datensicherung

Outlook-Daten komplett sichern

Dokumentation IBIS Monitor

Installationshinweise BEFU 2014

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

EasyWk DAS Schwimmwettkampfprogramm

SDD System Design Document

Prozesse und Scheduling

LPT1 Anschluss mit PCMCIA Karte

Tipps und Tricks zu Netop Vision und Vision Pro

SEP 114. Design by Contract

S7-Hantierungsbausteine für R355, R6000 und R2700

Vorkurs C++ Programmierung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme. Vorlesung 4: Memory. Wintersemester 2001/2002. Peter B.

Übung: Verwendung von Java-Threads

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

icloud nicht neu, aber doch irgendwie anders

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Wie lizenziert man die Virtualisierung von Windows Desktop Betriebssystemen?

Transkript:

Systeme 1 Kapitel 11 Zusammenfassung

Aufgaben von Betriebssystemen Grundlegende Funktionen eines Betriebssystems Bereitstellen einer Abstraktionsschicht der Betriebssystemskomponenten für Programmierer in Form von Schnittstellen und Systemaufrufen Verwaltung und Schutz von Systemressourcen Speicher Speicherverwaltung für Haupt- bzw. Arbeitsspeicher Dateisysteme für Massenspeicher Prozessorzeit mittels Scheduling Synchronisationsprimitiven Bereitstellung einer Umgebung zur Ausführung von Anwendungsprogrammen Konzept von Prozessen und Threads

Rechner und Betriebssysteme Prozess 1 Prozess 2 Prozess N... unpriveligierte Befehle Prozessor Bus Systemaufrufe Befehle I/O Controller I/O Controller I/O Controller Prozessverwaltung Prozessscheduler... Befehle Daten Disk Disk Graphik Netzwerk Dateisystem Treiber Speicherverwaltung... Daten Betriebssystem

Aufgaben von Betriebssystemen Grundlegende Funktionen eines Betriebssystems Bereitstellen einer Abstraktionsschicht der Betriebssystemskomponenten für Programmierer in Form von Schnittstellen und Systemaufrufen Bereitstellung einer Umgebung zur Ausführung von Anwendungsprogrammen Konzept von Prozessen und Threads Verwaltung und Schutz von Systemressourcen Speicher Speicherverwaltung für Haupt- bzw. Arbeitsspeicher Dateisysteme für Massenspeicher Prozessorzeit mittels Scheduling Synchronisationsprimitiven

Prozesse Prozess Programm in Ausführung Zu jedem Prozess gehört ein Adressraum: zugeordneter Arbeitsspeicher mit minimalen und maximalen Adressen Enthält ( Stack ) Ausführbares Programm, Programmdaten und Kellerspeicher Informationen über aktuellen Programmzustand: Inhalt von Prozessorregistern: Programmzähler, allg. CPU-Register, Akkumulator Stack pointer Verwaltungsinformationen zu geöffneten Dateien,... Wenn ein Prozess inaktiv ist, werden diese Informationen in einer Prozesstabelle gespeichert. Wenn ein Prozess aktiviert wird, kann so sein alter Zustand wieder ( Record hergestellt werden (Activation

Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige Prozesse kein gegenseitiger Schutz somit (( Stack ) mit gemeinsamem Adressraum (aber eigener Kellerspeicher teilen geöffnete Dateien und andere Ressourcen => Annahme: Threads kooperieren untereinander weniger Overhead im Vergleich zu (schwergewichtigen) Prozessen

Aufgaben von Betriebssystemen Grundlegende Funktionen eines Betriebssystems Bereitstellen einer Abstraktionsschicht der Betriebssystemskomponenten für Programmierer in Form von Schnittstellen und Systemaufrufen Bereitstellung einer Umgebung zur Ausführung von Anwendungsprogrammen Konzept von Prozessen und Threads Verwaltung und Schutz von Systemressourcen Speicher Dateisysteme für Massenspeicher Speicherverwaltung für Haupt- bzw. Arbeitsspeicher Prozessorzeit mittels Scheduling Synchronisationsprimitiven

Betriebssystem als Ressourcenmanager Aufgaben beim Verwalten von Systemressourcen: Gerechte Zuteilung von gemeinsam genutzten Betriebsmitteln Auflösung von Konflikten bei der Betriebsmittelanforderung Schutz verschiedener Benutzer gegeneinander z.b. Zugriffskontrolle bei Dateien Effiziente Verwaltung von Betriebsmitteln Protokollieren der Ressourcennutzung Abrechnung der Betriebsmittelnutzung Fehlererkennung, Fehlerbehandlung ( Programmfehler ) Hardware (Gerätefehler) und Software Grundsätzliche Zugriffskontrolle zum System

Speicherhierarchie Registers Instr./Operands Upper Level faster Cache Blocks Memory Pages Disk Files Tape Larger Lower Level

Dateisysteme Zum Laden und Speichern von Betriebssystem, Programmen und Daten wird ein Ordnungs- und Zugriffssystem benötigt: 0 123 4 5 Ganze Platte Partitionstabelle Plattenpartition MBR Bootblock Superblock Freispeicherverw. I-Nodes Datenblöcke

Dateisysteme Persistente Dateisysteme Daten werden persistent gesichert Daten sind von Lebensdauer von Programmen unabhängig. Nutzung von externen Medien z.b. Platten, CD-ROM, Bänder Erlaubt die Organisation von großen Datenmengen Daten müssen nicht vollständig in den Arbeitsspeicher geladen werden. Enthalten zusätzliche Metadaten Enstehungs- und Zugriffszeitpunkt von Daten Zugriffsrechte und Zugriffsarten

Dateien Dateien Kleinste logische Einheit eines Dateisystems Aus Sicht des Betriebssystems eine Sequenz von Daten einer gegebenen Länge ( Dateiname ) Zugriff über Namen Spezielle Dateitypen Verzeichnisse erlauben eine hierarchische Organisation von Dateien Gerätedateien ermöglichen eine einfache Abstraktion von Hardware erlauben damit transparent Lesen und Schreiben von E/A-Geräten Symbolische Links Pipes, Sockets

Realisierung von Dateien Abspeicherung von Dateien als zusammenhängende Menge von Plattenblöcken: Nachteile: Fragmentierung Speichere Datei als verkettete Listen von Plattenblöcken Datei A Vorteile: Datei Schnelles sequentielles Lesen B Einfache Implementierung Vorteile: Keine Fragmentierung Sequentielles Lesen Nachteile Wahlfreier Zugriff Dateiblock 0 Datei C Dateiblock 1 Datei D Dateiblock 2 Datei E Dateiblock 3 Datei F Datei G Plattenblock 6 3 11 14

Beispiel: FAT FAT: 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 Ende Datei A Ende Datei B

Beispiel: FAT Speichere Datei als verkettete Listen von Plattenblöcken Vorteil: Da FAT im Hauptspeicher abgelegt, muss bei wahlfreiem Zugriff auf Block n nur eine Kette von Verweisen im Hauptspeicher verfolgt werden Nachteil: Größe der FAT im Speicher! Anzahl der Einträge = Gesamtzahl der Plattenblöcke Auch wenn Platte fast komplett unbelegt! Beobachtung: Man braucht Verkettung der Plattenblöcke nur für aktuell bearbeitete Dateien! ( LINUX -> I-Node-Konzept (UNIX,

Beispiel: I-Node Zu jeder Datei gehört eine Datenstruktur ( Index-Node ) => der sog. I-Node 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, dann nur k n Byte insgesamt Bsp.: UNIX System V I-Node einer Datei enthält alle Attribute der Datei m Adressen von Plattenblöcken ( 10 = m (UNIX System V:

Beispiel: I-Node Dateiattribute Adresse von Plattenblock 0 Adresse von Plattenblock 1 Adresse von Plattenblock 2 Adresse von Plattenblock 3 Adresse von Plattenblock 4 Adresse von Plattenblock 5 Adresse von Plattenblock 6 Adresse von Plattenblock 7 Adresse von Plattenblock 8 Adresse von Plattenblock 9 Zeiger auf Block mit weiteren ( indirekt Adressen (einfach Zeiger auf Block mit weiteren ( indirekt Adressen (zweifach Zeiger auf Block mit weiteren ( indirekt Adressen (dreifach Einfach indirekter Block Doppelt indirekter Block Dreifach indirekter Block Adressen von Plattenblöcken

Verwaltung freier Plattenblöcke Datenblöcke im Dateisystem an beliebigen Stellen genutzt Nicht notwendigerweise aufeinander folgend Verwaltung freier Blöcke: Über Freibereichsliste als verkettete Liste: Speichere Nummern von freien Plattenblöcken Benutze zum Speichern der Nummern freie Plattenblöcke, die miteinander verkettet werden Bitmap Bitmap mit 1 Bit für jeden Plattenblock Plattenblock frei entsprechendes Bit = 1

Dateisysteme Objekte zur Datenspeicherung werden meist in Verzeichnisbäumen in Form von Dateieinträgen verwaltet Dateien und Verzeichnisse vom Dateisystem bereitgestellt Der Verzeichnisbaum wird aus mehreren Dateisystemen zusammengebaut Verschiedene Implementierungsvarianten für Dateisysteme ( Laufzeit Unterschiede liegen in Effizienz (Speicher und Geeignete Wahl des Dateisystems bestimmt durch Eigenschaften des physikalischen Speichermediums

Aufgaben von Betriebssystemen Grundlegende Funktionen eines Betriebssystems Bereitstellen einer Abstraktionsschicht der Betriebssystemskomponenten für Programmierer in Form von Schnittstellen und Systemaufrufen Bereitstellung einer Umgebung zur Ausführung von Anwendungsprogrammen Konzept von Prozessen und Threads Verwaltung und Schutz von Systemressourcen Speicher Dateisysteme für Massenspeicher Speicherverwaltung für Haupt- bzw. Arbeitsspeicher Prozessorzeit mittels Scheduling Synchronisationsprimitiven

Speicherverwaltung Grundlegende Anforderungen an Speicherverwaltung: Aufteilung des verfügbaren Hauptspeichers zwischen Betriebssystem verschiedenen Prozessen 5 Anforderungen nach Lister / Eager: 1. Relokation: Übersetzung der Speicherreferenzen im Programmcode in tatsächliche physikalische Speicheradressen durch Prozessorhardware und Betriebssystemsoftware. 2. Schutz Schutz von Prozessen gegen beabsichtigte oder unbeabsichtigte Störungen durch andere Prozesse mittels in Hardware integrierter dynamischer Adressüberprüfung.

( Wiederholung ) Speicherverwaltung 5 Anforderungen nach Lister / Eager (Fortsetzung): 3. Gemeinsame Nutzung Gemeinsame und kontrollierte Nutzung von Speicher durch mehrere Prozesse: z.b. Bibliotheken oder gemeinsam genutzter Speicher zur Kooperation. 4. Logische Organisation Logische Aufteilung von linear organisierten Speicher anhand der speziellen Anforderungen der Programme. 5. Physikalische Organisation Organisation des Datenflusses zwischen den verschiedenen Speicherarten (z.b. zwischen Hauptspeicher und Sekundärspeicher).

Grundlegende Methoden der Speicherverwaltung Partitionierung Aufteilung des Speichers in Bereiche mit festen Grenzen Fester, zusammenhängender Teil des Hauptspeichers für Betriebssystem und pro Prozess ein zusammenhängender Teil des Speichers Verschiedene Varianten: Statische Partitionierung Einteilung des Speichers in feste Anzahl von Partitionen Dynamische Partitionierung Einteilung in Partitionen variabler Länge Buddy-Verfahren Kombination von statischen und dynamischen Verfahren Vorteil: geringe Komplexität Nachteil: Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. -> Paging

Grundlegende Methoden der Speicherverwaltung Einfaches Paging Nachteil: Im Gegensatz zu Partitionierung werden Prozessen nicht notwendigerweise zusammenhängenden Speicherbereichen zugeordnet. Hauptspeicher aufgeteilt in viele gleichgroße Seitenrahmen. Speicher eines Prozesses aufgeteilt in Seiten derselben Größe. Zuordnung von Seiten zu Seitenrahmen beim Laden von Prozessen Logische Adressen der Form Seitennummer, Offset Pro Prozess eine Seitentabelle Seitentabelle übersetzt Seitennummern in Nummern von Seitenrahmen im physikalischen Speicher Bei Auslagerung in den Hintergrundspeicher immer nur für vollständigen Prozess möglich. => Paging mit virtuellem Speicher

Grundlegende Methoden der Speicherverwaltung Paging mit virtuellem Speicher Wenn man im Zusammenhang mit Auslagern sowieso mit Hintergrundspeicher arbeitet, dann hat man auch die Möglichkeit, nur Teile der Daten von Prozessen ein- bzw. auszulagern. Das Programm kann momentan weiter ausgeführt werden, wenn die aktuell benötigten Informationen (Code und Daten) im Speicher sind. Wird auf Informationen zugegriffen, die ausgelagert (auf der Festplatte) sind, so müssen diese nachgeladen werden. Hauptspeicher + Hintergrundspeicher = virtueller Speicher => erlaubt logische Adressen über vollen Adressraum (32 bzw. 64 Bit), da Seiten zu jeder Zeit in den Hintergrundspeicher ausgelagert werden können.

Grundlegende Methoden der Speicherverwaltung Paging mit virtuellem Speicher Wie bei einfachem Paging: Trennung der logischen Adressen in Seitennummer und Offset, z.b.: Logische Adresse: 0 0 0 1 0 1 1 1 0 0 1 1 1 0 22-Bit-Seitennummer 10-Bit-Offset Seitentabelleneintrag: P M Weitere Bits Seitenrahmennummer P (Present Bit), M (Modify Bit), weitere Bits für Schutzrechte etc. Umsetzung der Adresse mit Hardwareunterstützung (MMU).

Adressumsetzung Virtuelle Adresse Reale Adresse Seitennr. Offset Register + Seitennummer Seitentabelle Rahmennr. Rahmennr. Offset Offset Seitentabellenzeiger Seitenrahmen Programm Paging-Verfahren Hauptspeicher

Segmentierung Im Gegensatz zu Partitionierung werden Prozessen nicht notwendigerweise zusammenhängende Speicherbereiche zugeordnet. Speicher eines Prozesses aufgeteilt in Segmente, deren Größe im Gegensatz zu den Seiten beim Paging verschieden sein kann. Keine interne Fragmentierung, aber externe Fragmentierung (wie bei dynamischer Partitionierung. Segmentierung ist für Programmierer / Compiler sichtbar. Aufteilung in Codesegmente, Datensegmente Logische Adresse besteht aus Segmentadresse und Offset. Berechnung der realen Adresse durch Addition von Basisadresse des Segments Offset Segmenttabelle enthält pro Segment ( Speicher Basisadresse des Segments (Startadresse im Segmentlänge

Segmentierung Bsp.: logische Adresse mit 16 Bit 4-Bit-Segmentnummer 12-Bit-Offset 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 2 001011101110 0000010000000000 011110011110 0010010000100000 000110010100 0011010100000000 Länge Basis + Prozesssegmenttabelle 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 16-Bit physikalische Adresse

Segmentierung und Paging kombiniert Vorteile Paging: Für den Nutzer tranparent Feste Seitengrößen => anspruchsvolle, leistungsfähige Speicherverwaltungsalgorithmen Vorteile Segmentierung: Anpassung an dynamischen Speicherbedarf von Prozessen Gemeinsame Nutzung und Schutz auf Grundlage natürlicher Organisationseinheiten => Kombination beider Verfahren: Prozesse aufgeteilt in Segmente, pro Prozess eine Segmenttabelle Segmente aufgeteilt in Seiten, pro Segment eine Seitentabelle Aufbau einer Adresse: Für den Programmierer besteht Adresse aus Segmentnummer und Offset Segmentierung. Offset Segmentierung wird beim Paging interpretiert als (Seitennummer, Offset Paging ).

Segmentierung und Paging kombiniert Virtuelle Adresse Seitenrahmen Seitennr. + Segmenttabelle Reale Adresse Rahmennr. Offset Seitentabelle + Segmentnr Offset Register Segmenttabellenzeiger Programm Segmentierung Paging Hauptspeicher

Ressourcen Verteilung Speicherzuteilungsstrategie: Wo im Speicher wird ein Prozessteil abgelegt? Nur wichtig bei Segmentierung / Partitionierung, nicht bei Paging z.b. Best-Fit, Next-Fit, First-Fit Lokale Verdrängungsstrategie Welche Seite soll ausgelagert werden, wenn alle Seitenrahmen belegt sind? LRU (Least Recently Used) ( Out FIFO (First In First Clock-Algorithmus Working-Set Globale Verdrängungsstrategie Wie werden Seiten zwischen Prozessen verteilt? Page Fault Frequency (PFF) Algorithmus für Algorithmen der Keller-Klasse.

Aufgaben von Betriebssystemen Grundlegende Funktionen eines Betriebssystems Bereitstellen einer Abstraktionsschicht der Betriebssystemskomponenten für Programmierer in Form von Schnittstellen und Systemaufrufen Bereitstellung einer Umgebung zur Ausführung von Anwendungsprogrammen Konzept von Prozessen und Threads Verwaltung und Schutz von Systemressourcen Speicher Dateisysteme für Massenspeicher Speicherverwaltung für Haupt- bzw. Arbeitsspeicher Prozessorzeit mittels Scheduling Synchronisationsprimitiven

Multitasking Prozessoren 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. Viel Zeit wird mit Warten auf Ein-/Ausgaben verbracht: z.b. Lesen von Festplatten ist um ein Vielfaches langsamer als die Ausführungsgeschwindigkeit des Prozessors. getrennte Ausführung: Pseudo-Parallele Ausführung: Programm 1 Programm 2 Programm 3

Optimierungsziele Mehrere verschiedene Optimierungsziele denkbar => Verschiedene Scheduling-Algorithmen Optimierungsziele Alle Systeme ( CPU Fairness ( jeder Prozess erhält die Effizienz Stapelverarbeitungssysteme ( Zeiteinheit Maximiere mittleren Durchsatz (Anzahl Jobs pro ( Prozessbeendigung Minimiere mittlere Durchlaufzeit (Zeit von Prozessstart bis Maximiere CPU-Auslastung Bemerkung: Maximierung des mittleren Durchsatzes und Minimierung der mittleren Durchlaufzeit sind nicht dasselbe! Interaktive Systeme Minimiere Antwortzeit Echtzeit-Systeme Einhalten von Deadlines

Schedulingalgorithmen: Charakteristika Prozessauswahl: Bestimmt nächsten Prozess für CPU-Zuteilung Basierend auf Ressourcenbenutzung, Prioritäten, Insbesondere: ( CPU w (Wartezeit auf ( CPU-Zeit e (bisher verbrauchte ( CPU-Zeit s (insgesamt benötigte Zeitpunkt der Auswahlentscheidung: Nicht-präemptives Scheduling: CPU kann einem Prozess nur entzogen werden, wenn er beendet ist, oder auf Ein-/Ausgaben wartet Präemptives Scheduling: Aktueller Prozess kann unterbrochen werden durch sog. Interrupts

( präemptiv Schedulingalgorithmen (nicht First Come First Served Wenn ein Prozess beendet ist oder blockiert, kommt der Prozess an die Reihe, der schon am längsten wartet. Shortest Job First / Shortest Remaining Time Prozess mit kürzester geschätzter Laufzeit erhält CPU als erstes. => Minimiert durchschnittliche Durchlaufzeit. ( HRRN ) Highest Response Ration Next Basiert auf der geschätzten Laufzeit eines Prozesses und der bisher angesammelten Wartezeit. Daraus wird eine response ratio berechnet. Der Prozess mit der höchsten response ratio rr erhält die CPU als erster.

( präemptiv ) Schedulingalgorithmen Round Robin Scheduler wird nach Ablauf fester Zeitintervalle immer wieder (periodisch) aktiviert ( Zeitscheiben, Quanten ). Laufender Prozess wird dann in eine Warteschlange wartender Prozesse eingefügt. Der am längsten wartende Prozess wird aktiviert. Feedback Muss ein Prozess die CPU abgeben, wird er in eine Warteschlange niederer Priorität eingefügt. Da die Zeitintervalle eine feste Größe haben, modellieren Warteschlangen verschiedener Prioritäten verbrauchte CPU-Zeit. Garantiertes Scheduling Prozessen erhalten Garantien, die eingehalten werden. Lotterie Scheduling CPU-Zeit wird in regelmäßigen Abständen verlost.

Nebenläufigkeit Nebenläufigkeit = potentieller Parallelismus Nebenläufige Prozesses können parallel auf mehreren Prozessoren ausgeführt werden. Sie können aber auch pseudo-parallel auf einem Prozessor ausgeführt werden. Grundlegende Fragestellungen: Zugriff auf gemeinsame Ressourcen? Koordination, Kommunikation Bei Zugriff auf gemeinsame Ressourcen muss häufig wechselseitiger Ausschluss garantiert werden! Zum Beispiel geteilter Speicher bei Threads

Nebenläufigkeit Grundlegende Fragen bei Nebenläufigkeit Betriebssystem muss Ressourcen der aktiven Prozesse verwalten. OS muss wechselseitigen Ausschluss bei gemeinsamen Ressourcen garantieren können. Die Korrektheit des Ergebnisses muss unabhängig von der relativen Ausführungsgeschwindigkeit der einzelnen Prozesse sein. 3 Kontrollprobleme Wechselseitiger Ausschluss, d.h. jeweils nur ein Prozess im kritischen Abschnitt (= der Teil des Programms, der auf gemeinsame, exklusive ( zugreift Ressourcen ( Prozesse Verhindere Deadlocks (Blockierung aller Verhindere Livelocks (obwohl ein Prozess nicht blockiert ist, geht sein (. voran Ablauf nie

Anforderungen an wechselseitigen Ausschluss 1. Höchstens ein Prozess im kritischen Abschnitt. 2. Jeder Prozess hält sich nur endliche Zeit im kritischen Abschnitt auf. 3. Wenn ein Prozess in den kritischen Abschnitt will, so muss er nur endliche Zeit darauf warten. 4. Wenn kein Prozess im kritischen Abschnitt ist, so wird ein interessierter Prozess ohne Verzögerung akzeptiert. 5. Alles funktioniert unabhängig von der relativen Ausführungsgeschwindigkeit der Prozesse.

Wechselseitiger Ausschluss in Software Peterson's Algorithmus für wechselseitigen Ausschluss (1981). Nicht-alternierender Zugriff auf den kritischen Abschnitt Wechselseitiger Ausschluss garantiert Kein Deadlock Nachteil: Software-Lösungen für wechselseitigen Ausschluss benötigen aktives Warten. Effizientere Lösungen sind möglich durch Hardware-Unterstützung Ins Betriebssystem integrierte Lösungen

Wechselseitiger Ausschluss in Hardware Einführung atomarer Operationen. Hardware garantiert atomare Ausführung. Testen und Setzen zusammen bilden eine atomare Operation: Vorteil: Nachteil: Definiere neuen Befehl TSL: Test and Set Lock Da TSL ein einziger Befehl ist, kann ein Prozesswechsel nicht ( Befehl zwischen Testen und Setzen erfolgen (nicht mitten im Nicht-alternierender Zugriff auf den kritischen Abschnitt Wechselseitiger Ausschluss garantiert Kein Deadlock Aktives Warten genau wie bei Softwarelösung!

Wechselseitiger Ausschluss im Betriebssystem Um aktives Warten zu verhindern, muss wechselseitiger Ausschluss ins Betriebssystem integriert werden! Statt aktiv zu warten, blockieren Prozesse => Scheduling ( sleep(lock Neuer Systemaufruf Nach Verlassen des kritischen Abschnitts weckt der verlassende Prozess einen anderen Prozess auf, der auf Erlaubnis wartet, den kritischen ( ist Abschnitt zu betreten (sofern ein solcher Prozess vorhanden ( wakeup(lock Neuer Systemaufruf Parameter lock wird nur gebraucht, um Aufrufe für den gleichen kritischen Abschnitt einander zuzuordnen. Eine Warteschlange pro kritischen Abschnitt

Mutex Mutex = Mutual Exclusion Vor dem Eintritt in einen kritischen Abschnitt wird die Funktion mutex_lock(lock) aufgerufen ( mutex_lock(lock function { ( false solange (testset(lock) = { sleep(lock); } return; } testset(lock) führt atomare TSL-Operation aus; liefert true gdw. Lockvariable vorher 0 war.

Mutex Nach Verlassen des kritischen Abschnitts wird mutex_unlock(lock) aufgerufen ( mutex_unlock(lock function { unset(lock); // lock wird freigegeben wakeup(lock); return; } Es muss eine Warteschlange für Prozesse geben, die auf lock warten. Nach wakeup(lock) wird der erste Prozess in der Queue bereit (aber nicht (! Scheduler-Algorithmus notwendigerweise aktiv -> Die Variable lock heißt Mutexvariable bzw. kurz Mutex.

Semaphor (( 1965 ) Entwickelt zur Synchronisation von Prozessen (Dijkstra Konzept: Integer-Variable mit drei Operationen: Initialisierung mit nicht-negativen Wert Entspricht der maximalen Belegung der geschützten Ressource down() Operation Belegt Ressource Verringere Wert um 1 Wenn Wert < 0, blockiere Prozess -> Warteschlange up() Operation Gibt Ressource wieder frei Erhöhe Wert um 1 Wenn Wert <= 0 wecke einen der blockierten Prozesse auf Wichtig: up() und down() müssen atomare Operationen sein.

Deadlocks Definition: Eine Menge von Prozessen befindet sich in einem Deadlock- Zustand, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann. Folgende Voraussetzungen müssen erfüllt sein, damit ein Deadlock auftreten kann: Wechselseitiger Ausschluss: Jede Ressource ist entweder verfügbar oder genau einem Prozess zugeordnet. Hold-and-wait-Bedingung: Prozesse, die schon Ressourcen reserviert haben, können noch weitere Ressourcen anfordern. Ununterbrechbarkeit: Ressourcen, die einem Prozess bewilligt wurden, können nicht gewaltsam wieder entzogen werden. Zyklische Wartebedingung: Es muss eine zyklische Kette von Prozessen geben, von denen jeder auf eine Ressource wartet, die dem nächsten Prozess in der Kette gehört. Leider sind in realen Betriebssystemen diese Bedingungen üblicherweise erfüllt.

Deadlocks: Bankieralgorithmus Bankieralgorithmus von Dijkstra (1965) verhindert Deadlocks im System. Scheduling (Prozessorzuteilung an Prozesse) in einer Weise, dass keine Deadlocks auftreten 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. Nach der 2. Voraussetzung gibt es auf jeden Fall einen Ablauf, bei dem es kein Problem mit fehlenden Ressourcen / Deadlocks gibt: Führe einfach alle Prozesse nacheinander aus. Nach Ablauf eines Prozesses gibt dieser sicherlich alle seine Ressourcen frei. Grundidee des Bankieralgorithmus: Versuche möglichst viel Pseudo-Parallelismus zu erreichen (keine streng sequentielle ( Prozesse Abarbeitung der Riskiere dabei aber an keinem Punkt eine potentielle Deadlock-Situation!

Deadlocks: Bankieralgorithmus Vorgehen: Überführe das System immer nur in sichere Zustände! 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 werden, d.h. insbesondere, wenn die Prozesse ihre restlichen Anforderungen auf einen Schlag stellen und Freigaben erst bei Prozessbeendigung durchführen. Sonst: Zustand ist unsicher. Der Bankieralgorithmus prüft also bei jeder Ressourcenanforderung eines Prozesses p i, ob das System bei Erfüllung der Anforderung in einen unsicheren Zustand kommt. Falls ja: Erfülle Anforderung nicht, stelle Prozess p i zurück und mache mit einem anderen Prozess weiter. Dadurch garantiert der Bankieralgorithmus in jedem Fall eine deadlockfreie Ausführung.

Deadlocks: Zusammenfassung Offene Probleme: Prozesse können meist nicht im Voraus eine verlässliche Obergrenze für ihre Ressourcenanforderungen geben (zumindest nicht exakt genug, so dass das System nicht ( wird durch Überschätzung des Ressourcenbedarfs zu ineffizienter Ausführung gezwungen Garantierte Obergrenzen würden häufig sogar die Anzahl der verfügbaren Ressourcen übersteigen, aber durch ständiges Zuweisen und Freigeben von Ressourcen stellt dies trotzdem kein Problem dar Deadlock-Freiheit kann zwar prinzipiell erreicht werden, häufig jedoch um den Preis starker Effizienz-Verluste Häufig verzichtet man in der Praxis daher auf absolute Garantien für Deadlock-Freiheit.

Aktuelle Forschungsthemen ( Albers Energieeffiziente Algorithmen (Prof. Eine Aufgabe wird so gelöst, dass der Energieverbrauch minimiert wird. Große Bedeutung für Mobiltelefone oder Laptops wegen begrenztem Energievorrat. Die neuen Verfahren basieren zum Beispiel auf ausgefeilten Abschaltmechanismen oder nutzen aus, dass heutige Mikroprozessoren mit verschiedenen Taktfrequenzen arbeiten können. Zum Beispiel: Suche nach einem Schedule, der den Energieverbrauch minimiert und gleichzeitig gute Reaktionszeiten aufweist.

Aktuelle Forschungsthemen ( Scholl Fehlerdiagnose und Verifikation (Prof. Entspricht eine Implementierung ihrer Spezifikation?