Modul 7: Betriebssysteme. Informatik I Modul 6: Betriebssysteme. Definition Betriebssystem. Semantische Lücke. Geschichte von Betriebssystemen (1)

Ähnliche Dokumente
Informatik I Modul 6: Betriebssysteme

Modul 9: Betriebssysteme. Informatik I. Modul 9: Betriebssysteme. Semantische Lücke. Definition Betriebssystem. Aufgaben eines Betriebssystems

Rechnernutzung in der Physik. Betriebssysteme

Grundlagen der Informatik. Teil VI Betriebssysteme

Fachbericht Thema: Virtuelle Speicherverwaltung

Tutorium Rechnerorganisation

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Speicherverwaltung (Swapping und Paging)

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Echtzeitbetriebssysteme

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr

Freispeicherverwaltung Martin Wahl,

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

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme

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

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

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

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Betriebssysteme. FU Berlin WS 2006/07 Klaus-Peter Löhr. bs-1.1 1

Echtzeit-Multitasking

5 Kernaufgaben eines Betriebssystems (BS)

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

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

Übung zu Einführung in die Informatik # 10

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Betriebssysteme Kap A: Grundlagen

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Modul 7: Betriebs- & Kommunikationssysteme. Informatik I Modul 7: Betriebs- und Kommunikationssysteme. Definition Betriebssystem.

Technische Informatik 1

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

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

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

Betriebssysteme Vorstellung

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

Musterlösung Prüfung WS 01/02

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

Prozesse und Scheduling

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

4.3 Hintergrundspeicher

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

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

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Wie groß ist die Page Table?

XIII. Inhaltsverzeichnis

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

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

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

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Übung zu Grundlagen der Betriebssysteme. 10. Übung

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Betriebssysteme KU - Einführungstutorium

Kapitel 2: Betriebssysteme

7. Speicherverwaltung

Überlegungen beim Entwurf eines Betriebssystems

Linux Paging, Caching und Swapping

Einführung in die technische Informatik

D Einführung Betriebssysteme

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

4. Speicher- und Prozeßverwaltung

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

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

Betriebssysteme (BS)

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

Der Scheduler von Windows Konzepte und Strategien

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

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Geräteverwaltung: Einführung

Grundkurs Betriebssysteme

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

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

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

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Abstrakte Schnittstelle

Übung 4 - Betriebssysteme I

Übung I Echtzeitbetriebssysteme

8. Swapping und Virtueller Speicher

Betriebssysteme 1. Thomas Kolarz. Folie 1

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

30 Jahre Server Von Transaktionssystemen zu Web-Services

Parallele Prozesse. Prozeß wartet

Verbessertes Konzept: Monitore

G Einführung in Betriebssysteme

Monitore. Klicken bearbeiten

Vorlesung Rechnerarchitektur. Einführung

Bibliotheks-basierte Virtualisierung

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

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

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

Zusammenfassung Modul 223

Domänenmodell: Fadenkommunikation und -synchronisation

Transkript:

Modul 7: Betriebssysteme Informatik I Modul 6: Betriebssysteme Überblick von Betriebssystemen Auftrags- und Speicherverwaltung Einlagerung, Zuweisung, Ersetzung 213 Burkhard Stiller M6 1 213 Burkhard Stiller M6 2 Definition Betriebssystem Semantische Lücke Definition des Begriffs Betriebssystem (Operating System): z.b. nach dem Deutschen Institut für Normung (DIN 443): Applikation und Hardware sind (weit) voneinander entfernt. Semantische Lücke! Ein Betriebssystem umfaßt die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen. Anwendungen Hardware Semantische Lücke Anwendungen Betriebssystem Hardware Ziel eines Betriebssystems ist es, die semantische Lücke zwischen Anwendung (wünscht möglichst hohe Operationen) und Hardware (bietet elementare Operationen) zu verkleinern. Betriebssystem erweitert die Fähigkeiten der Hardware. Betriebsystem verkleinert die semantische Lücke. 213 Burkhard Stiller M6 3 213 Burkhard Stiller M6 4 Geschichte von Betriebssystemen (1) Geschichte von Betriebssystemen (2) 1. Generation (194 195): Röhren und Steckbretter Erste Rechner hatten überhaupt kein Betriebssystem Programme wurden in Maschinensprache geschrieben Nicht selten wurden Kabel umgesteckt Programmiersprachen waren unbekannt 2. Generation (195 196): Transistoren und Stapelsysteme (batch systems) Mit Einführung der Lochkarte 195 war es möglich, Programme auf Lochkarten zu schreiben und einzulesen Erfindung des Transistors (leistungsfähigere Rechner) Unterscheidung zwischen Designer, Computer-Architekten,Operator, Programmierer und Wartungspersonal 213 Burkhard Stiller M6 5 3. und 4. Generation (196 1975): Spooling Simultaneous Peripheral Operation On Line Jobs wurden von Lochkarten auf Festplatte (in Warteschlange) geschrieben, sobald diese in Computerraum gebracht wurden. Bei Job-Ende, konnte das Betriebssystem sofort neuen Job von der Festplatte in leeren Speicherbereich laden und starten. Timesharing Einteilen der CPU-Zeit in Zeitscheiben Jeder Anwender hat eigenes Terminal (Bildschirm und Tastatur), das direkt mit Computer verbunden ist Abwechselnd hat jeder Benutzer die CPU für kurze Zeitspanne Kurze Jobs wurden in dieser Zeitscheibe erledigt, zeitaufwendigere Jobs benötigten mehrere Zeitscheiben Nach Ablauf, wurden Jobs aus CPU entfernt und wieder in Warteschlange eingereiht. Bei nächster Zuteilung der CPU wurde Ausführung an Stelle fortgesetzt, an der Unterbrechung stattfand. 213 Burkhard Stiller M6 6

Geschichte von Betriebssystemen (3) Aufgaben eines Betriebssystems (1) 5. Generation (1975 - heute): Computernetze und PCs Wichtige Betriebssysteme MS-DOS als erstes standardisiertes Betriebssystem für Personal Computer (PC) Single-user -Systeme WindowsXX-Systeme als Nachfolger von MS-DOS Multitasking und später auch Multiuser MacOS/iOS als Betriebssystem für Apple -Systeme Multitasking und Multiuser Unix/Linux als Betriebssystem für Großrechner und PCs Multitasking und Multiuser Neben heute allgemein bekannten Betriebssystemen aus dem PC-Bereich, wie z.b. eben Linux und Windows, gibt es vor allem für Embedded und Mobile Systeme viele weitere Betriebssysteme. 213 Burkhard Stiller M6 7 Schnittstelle zwischen Mensch und Hardware Bedienschnittstelle (UI, User Interface) Dialogorientierte Konsole Benutzer gibt über Tastatur Befehle ein und erhält entsprechende Antworten Grafische Benutzeroberfläche Intuitive Erledigung von Aufgaben über Aktivieren von Schaltflächen, Menüs und Symbolen mit der Maus Programmierschnittstelle (API, Application Programming Interface) Programmierer eine leicht verständliche und gut handhabbare Schnittstelle zur eigentlichen Maschine anbieten Komplexität der darunterliegenden Maschine verstecken Ansprechpartner für Programmierer ist nicht mehr Maschine, sondern virtuelle Maschine (Betriebssystem), die wesentlich einfacher zu verstehen bzw. zu programmieren ist 213 Burkhard Stiller M6 8 Aufgaben eines Betriebssystems (2) Aufgaben eines Betriebssystems (3) Betriebsmittelverwaltung (resource management) Verwaltet alle peripheren Betriebsmittel des Rechnersystems, wie z.b. Festplatte Floppy Disk CDROM Drucker,... Auftragsverwaltung (Prozeßverwaltung, tasks) Verwaltet Prozesse und Threads Speicherverwaltung (memory management) Durch immer größer werdende Programme sowie mehrerer quasi gleichzeitig laufender Programme wird zur Verfügung stehender Arbeitsspeicher zu klein Allgemeine Verwaltung Aller Einzelteile eines komplexen Systems (Prozessoren, Arbeitsspeicher, Festplatten, Bildschirme, Drucker,...) Geräteverwaltung und Treiber Die typische Standard-Treiber-Schnittstelle ( Geräte-Treiber ) hat folgende Funktionen: create(), open(), close(), remove() zum Anlegen, Öffnen, Schließen, Entfernen eines Geräts read(), write() zum Lesen/Schreiben vom/zum Gerät ioctl() zur Änderung von internen Geräteparametern. Kommunikation eines Anwendungsprogramms mit dem Gerät erfolgt über definierte I/O-Systemschnittstelle des Betriebssystems und Treiberprogramms 213 Burkhard Stiller M6 9 213 Burkhard Stiller M6 1 Schichtenaufbau von Betriebssystemen Modul 7: Betriebssysteme Überblick von Betriebssystemen Auftrags- und Speicherverwaltung Einlagerung, Zuweisung, Ersetzung 213 Burkhard Stiller M6 11 213 Burkhard Stiller M6 12

Prozeß und Scheduling Prozesse Schlüsselkonzept moderner Betriebssysteme: Prozeßkonzept Anwendungsprogramme werden in Form von Prozessen verwaltet Multitasking: mehrere Prozesse können abwechselnd bearbeitet werden Bessere Ressourcenausnutzung: durch Multiplexing zu erreichen Einfachere Programmierung: durch Aufteilung der Aufgaben zu erreichen Prozeß (Rechenprozeß, Auftrag) ist die Ausführung eines Algorithmus (Ablauf), der durch ein ausführbares Programm beschrieben ist. Ein Prozeß ist ein aktives Programm Auswahl des nächsten zu bearbeitenden Prozesses und Umschaltung erfolgt durch Scheduler (selber ein Dienstprogramm) bzw. Dispatcher-Programm, das zu bestimmten Zeitpunkten oder bei bestimmten Ereignissen gestartet wird Scheduler unterbricht dabei den gerade laufenden Prozeß und Startet u.u. einen anderen Prozeß 213 Burkhard Stiller M6 13 Prozeß kann im Laufe seiner Bearbeitung im wesentlichen folgende unterscheidbaren Zustände (vereinfacht) annehmen: Prozeßzustandsmodell blockiert rechnend bereit ruhend Operationen zu ihrer Kontrolle: Create, exit, join, mutex_init, cond_wait,... Prozeßkoordination: Mutex, semaphore, wait conditions,... Inter Process (IPC) und Inter Object Communications (IOC): Pipes, sockets, RPC, RMI, COM, DCOM, Corba,.NET,... Threads (leichtgewichtige Prozesse): Abläufe im gleichen Adreßraum (Programm- und Datensegment) Separater Registersatz, Programmzähler, Kellerspeicher 213 Burkhard Stiller M6 14 Scheduling-Verfahren für Prozesse (1) Scheduling-Verfahren für Prozesse (2) Für statische Systeme (z.b. kleine Embedded Systeme) mit immer gleichen Aufgaben wird statisches Scheduling ( Zugfahrplan ) eingesetzt Für gößere Systeme mit beliebig start- und anhaltbaren Programmen werden dynamische Schedulingverfahren benötigt. Nächster abzulaufender Prozeß/Thread innerhalb eines Prozesses vom Scheduler nach bestimmten Algorithmus bestimmt. Kooperative Verfahren: Prozeß muß den Prozessor freiwillig abgeben, d.h. direkt oder indirekt selbst Scheduler aufrufen, um anderem Prozeß Ablauf zu erlauben Konkurrierende Verfahren: Scheduler kann dem gerade laufenden Prozeß den Prozessor entziehen, was eine vorzeitige Unterbrechung bewirkt (Preemption). Scheduler muß für anzuhaltenden Prozeß eine Sicherung und für den ausgewählten weiterlaufenden Prozeß die Restaurierung des Prozeß- Kontextes durchführen (siehe Stapelspeicher). 213 Burkhard Stiller M6 15 213 Burkhard Stiller M6 16 Anwendungsfall eines Mutex (1) Anwendungsfall eines Mutex (2) Situation: Zwei Internetbenutzer wollen den letzten Platz in einem Kino reservieren. Anfrage: Anz. Plätze? Anz. Plätze: 1 Reservation: 1 Platz Total: Plätze Kino-DB Anzahl Plätze: 1 Zeitliche Abfolge: 1. Anfrage des 1. Benutzers nach Anzahl verfügbarer Plätze: 1 2. Anfrage des 2. Benutzers nach Anzahl verfügbarer Plätze: 1 3. 1. Benutzer reserviert den letzten Platz. Verfügbare Plätze: 4. 2. Benutzer reserviert den (vermeintlich letzten Platz). Verfügbare Plätze: -1 213 Burkhard Stiller M6 17 Anfrage: Anz. Plätze? Total: -1 Plätze (!!) Anz. Plätze: 1 Reservation: 1 Platz Folgerungen: Ohne erneutes Lesen aus der Datenbank nach Schritt 3 geht der 2. Benutzer fälschlicherweise davon aus, daß noch ein Platz frei ist Bei Schreiboperationen darf immer nur ein Benutzer eine Änderung vornehmen, ansonsten kann es zu Inkonsistenzen in der Datenbank kommen. Lösung: Mutex - Nur der Benutzer, der den Mutex hat, darf eine Veränderung machen. 213 Burkhard Stiller M6 18

Anwendungsfall einer Semaphore Implementierung von Mutex und Semaphore Situation: 1 Benutzer wollen auf eine Webseite zugreifen. Es ist jedoch bekannt, dass der Webserver bei über 5 parallelen Zugriffen abstürzt. www.webseite.com Implementierung mittels Tokens Token bezeichnet das Recht, eine bestimmte Aktion ausführen zu dürfen Ein Prozeß, der eine Aktion ausführen will, muß ein Token aus einem Behälter nehmen, und dieses nach Gebrauch wieder in den Behälter zurücklegen. Behälter mit Token (Max. 5 parallele Anfragen) Lösung: Die Semaphore steuert den Zugriff auf die Webseite, indem genau 5 Zugriffsrechte vergeben werden. 213 Burkhard Stiller M6 19 Mutex (Binäre Semaphore, 1 Token) Semaphore (n Token) Ist der Behälter leer, muß der Prozeß warten, bis ein anderer Prozeß ein Token zurück in den Behälter gelegt hat. Fehlerquellen: 1. Der Prozeß legt das Token nicht mehr zurück 2. Der Prozeß stürzt ab, während er das Token noch besitzt 213 Burkhard Stiller M6 2 Kritische Regionen in Java Illustration Deadlock (1) In Java wird das Monitor-Pattern verwendet, um Zugriffe auf Datenstrukturen zu synchronisieren, welche von mehereren Threads verwendet werden. Bsp: public class Container { private final List<Integer> list = new ArrayList<Integer(); public boolean add(integer i){ boolean r = false; synchronized (list) { // list is used as monitor r = list.add(i); } return r; } } Anhand des Kinoreservationssystems wurde gezeigt, daß man (z.b. mittels eines Mutex) sicherstellen muß und daß immer nur ein Prozeß gleichzeitig eine Änderung an einem Datum vornehmen darf. Dies kann jedoch zu Problemen führen, wenn für eine Veränderung mehrere Dateien involviert sind! Beispiel: Gegeben Zwei Bankkonti A und B. Ein 1. Prozeß, der einen Betrag von A abbuchen und auf B gutschreiben möchte Ein 2. Prozeß, der einen Betrag von B abbuchen und auf A gutschreiben möchte 213 Burkhard Stiller M6 21 213 Burkhard Stiller M6 22 Illustration Deadlock (2) Synchronisationsmechanismen (1) Zeitliche Abfolge: 1. Prozeß 1 erwirbt ein Lock auf Konto A 2. Prozeß 2 erwirbt ein Lock auf Konto B 3. Prozeß 1 möchte ein Lock auf Konto B erwerben -> scheitert 4. Prozeß 2 möchte ein Lock auf Konto A erwerben -> scheitert Prozeß 1 Prozeß 1 1 3 2 Konto B 4 Konto A Konsequenz: Deadlock. Jeder Prozeß wartet darauf, daß der andere sein Lock freigibt Lösungsmöglichkeiten: 1. Locks immer in der gleichen Reihenfolge erwerben 2. Die Prozesse nach einer Wartezeit abbrechen und neu starten 213 Burkhard Stiller M6 23 Kritische Abschnitte (Critical Regions) 213 Burkhard Stiller M6 24

Synchronisationsmechanismen (2) Synchronisationsmechanismen (3) Semaphore (Sem) häufig zur Synchronisation von Prozessen/Threads mittels gegenseitigen Ausschlusses (mutual exclusion) eingesetzt Semaphor-Variablen von Dijkstra definiert und als P/V-, DOWN/UP- oder TAKE/GIVE-Operationen modelliert Semaphore sind üblicherweise als boolsche oder ganzzahlige Variable mit einer dazugehörigen Warteschlange (WS) für Tasks modelliert Möchte Task nicht freie Semaphore nehmen, wird sie auf wartend gesetzt und in die Semaphore-WS eingetragen Beim Zurückgeben der Semaphore wird eine in der WS eingetragene Task sofort wieder laufbereit gesetzt Dieses Verfahren stellt sicher, daß Tasks nur dann warten müssen, wenn sie gleichzeitig den gleichen kritischen Abschnitt betreten möchten 213 Burkhard Stiller M6 25 213 Burkhard Stiller M6 26 Grundstruktur virtueller Speicherverwaltung CPU Hauptspeicher Hintergrundspeicher Arbeitsmengen swapping, paging Virtuelle Speicherverwaltung (1) Vorgang bleibt dem Anwender völlig verborgen, d.h. Arbeitsspeicher erscheint dem Anwender wesentlich größer, als er ist. Ein nach diesem Konzept verwalteter Speicher heißt virtueller Speicher. Von modernen Prozessoren wird die Verwaltung dieses virtuellen Speichers hardwaremäßig durch eine MMU (Memory Management Unit) unterstützt. Prozeß 1 Prozeß 2 Programme und Daten Hauptaufgabe dieser virtuellen Speicherverwaltung: Umsetzung virtueller (logischer) Adressen in physikalische Adressen 213 Burkhard Stiller M6 27 213 Burkhard Stiller M6 28 Virtuelle Speicherverwaltung (2) Abbildung virtueller Adressen Benutzer: Kennzeichnet Objekte (Programme, Unterprogramme, Variablen) durch Namen Compiler: Übersetzt diese Namen in virtuelle (logische) Adressen Virtuelle Speicherverwaltung: Wandelt diese Adressen zur Laufzeit je nach gerade gegebener Speicherbelegung in physikalische Adresse (wirklicher Ort des Objekts im Hauptspeicher) um Namensraum des Benutzers Name Compiler Virtueller Adreßraum virtuelle Adresse 213 Burkhard Stiller M6 29 Betriebssystem und MMU Physikalischer Adreßraum physikalische Adresse Address 8191 496 Name: JMP Weiter Compiler/ Assembler Address space Code: JMP -128 Mapping dyn. Adressrechnung ((PC) - 128) 213 Burkhard Stiller M6 3 Logische Adresse: 4583 4K Main memory Virtuelle Speicherverwaltung (MMU) 495 Physikalische Adresse: 23512

Segmentierungs- und Seitenwechselverfahren Seiten im virtuellen und realen Speicher Es existieren zur virtuellen Speicherverwaltung zwei grundlegende Verfahren: Seitenwechsel und Segmentierung Page 15 Virtual addresses 6144-65535 Aufteilung in Seiten (paging) Hierbei wird der logische und der physikalische Adreßraum in "Segmente fester Länge", sogenannte Seiten (pages) unterteilt. Die Seiten sind relativ klein (256 Byte - 4 kbyte) Ein Prozeß wird auf viele dieser Seiten verteilt (keine logischen Zusammenhänge wie bei der Segmentierung) Aufteilung in Segmente (swapping) Hierbei wird der virtuelle Adreßraum in Segmente verschiedener Länge zerlegt. Jedem Prozeß sind ein oder mehrere Segmente z.b. für den Programmcode und die Daten, zugeordnet. Die einzelnen Segmente enthalten logisch zusammenhängende Informationen (Programm- und Datenmodule) und können relativ groß sein. 14 13 12 11 1 9 8 7 6 5 4 3 2 1 57344-61439 53248-57343 49152-53247 4556-49151 496-4555 36864-4959 32768-36863 28672-32767 24576-28671 248-24575 16384-2479 12288-16383 8192-12287 496-8191 - 495 (a) Page frame 7 6 5 4 3 2 1 Bottom 32K of main memory Physical addresses 28672-32767 24576-28671 248-24575 16384-2479 12288-16383 8192-12287 496-8191 - 495 (b) 213 Burkhard Stiller M6 31 213 Burkhard Stiller M6 32 Diskussion Wesentliche Unterschiede Seitenaufteilung Vorteile: Durch kleine Seiten wird wirklich benötigter Teil des Programms eingelagert Geringerer Verwaltungsaufwand als Segmentierung Nachteil: Häufiger Datentransfer Segmentierung Vorteile: Segmentierung spiegelt logische Programmstruktur wieder Durch große Segmente relativ seltener Datentransfer Segmentspezifische Schutzmaßnahmen möglich Nachteile: Wenn Datentransfer, dann jedoch umfangreich. Besteht Programm nur aus einem Code- und Daten-Segment (wird vom Compiler oder Benutzer festgelegt), so muß vollständig eingelagert werden Seiten Segmentierung Programmierertransparenz? Nein Ja Anzahl linearer Adreßräume? 1 Viele Kann die virtuelle Adreßgröße die Speichergröße übertreffen? Ja Ja Können Tabellen variabler Größe behandelt werden? Nein Ja Grund der Erfindung? Emulation Angebot großer mehrfacher Adreßräume Adreßräume Viele der heutigen Prozessoren unterstützen beide Techniken! 213 Burkhard Stiller M6 33 213 Burkhard Stiller M6 34 Modul 7: Betriebssysteme Probleme der virtuellen Speicherverwaltung Beim Austausch von Daten zwischen Arbeits- und Hintergrundspeicher ergeben sich drei Problemkreise: Überblick zu Betriebssystemen Auftrags- und Speicherverwaltung Einlagerung, Zuweisung, Ersetzung 1. Der Einlagerungszeitpunkt Wann werden Segmente oder Seiten in den Arbeitsspeicher eingelagert? 2. Das Zuweisungsproblem An welche Stelle des Arbeitsspeichers werden die Seiten oder Segmente eingelagert? 3. Das Ersetzungsproblem Welche Segmente oder Seiten müssen ausgelagert werden, um Platz für neu benötigte Daten zu schaffen? 213 Burkhard Stiller M6 35 213 Burkhard Stiller M6 36

1. Einlagerungszeitpunkt 2. Zuweisungsproblem (1) Gängiges Verfahren: Einlagerung auf Anforderung (Demand Paging bei Seitenverfahren) Hierbei werden Daten eingelagert, sobald auf sie zugegriffen wird, sie sich aber nicht im Arbeitsspeicher befinden. Der Zugriff auf ein nicht im Arbeitsspeicher vorhandenes Segment oder Seite heißt Segment- oder Seiten-Fehler (segment fault, page fault). Bei Seitenwechselverfahren Dieses Problem ist nicht existent, da alle Seiten gleich groß sind und somit immer passende Lücken nutzbar ist keine externe Fragmentierung. Jedoch: Problem der internen Fragmentierung Diese entsteht bei der Aufteilung eines Programms auf die Seiten. Einheitliche Seitengröße auf der letzten Seite jedes Programm-Moduls entsteht mit hoher Wahrscheinlichkeit ein ungenutzter Leerraum. Bei Segmentierungsverfahren: Hier muß eine ausreichend große Lücke im Arbeitsspeicher gefunden werden. Drei Strategien: first-fit: best-fit : worst-fit: erste passende Lücke wird genommen kleinste passende Lücke wird genommen größte passende Lücke wird genommen 213 Burkhard Stiller M6 37 213 Burkhard Stiller M6 38 2. Zuweisungsproblem (2) Externe Fragmentierung und Kompaktifizierung Problem bei allen drei Verfahren: Der Speicher zerfällt nach einiger Zeit in belegte und unbelegte Speicherbereiche externe Fragmentierung. Arbeitsspeicher Segment A frei Segment B frei Segment C Segment D Die unbelegten Speicherbereiche sind hierbei oft zu klein, um Segmente aufnehmen zu können frei frei Segment 4 (7K) Segment 3 (8K) Segment 1 (8K) Segment Segment 4 (7K) Segment 3 (8K) Segment 7 Segment Segment 5 Segment 3 (8K) Segment 7 Segment Segment 5 Segment 6 Segment 7 Segment 1K Segment 5 Segment 6 Segment 7 Segment (a) (b) (c) (d) (e) 213 Burkhard Stiller M6 39 213 Burkhard Stiller M6 4 3. Ersetzungsproblem Segment- und Seitenfehler Bei Segmentierungsverfahren: Meist wird Anzahl gleichzeitig von einem Prozeß benutzbaren Segmente limitiert: Bei Einlagerung eines neuen Segments wird ein zuvor für diesen Prozeß benutztes Segment ausgelagert Es ist jedoch auch eine der im folgenden für Seitenwechsel-Verfahren beschriebenen Methoden möglich Bei Seitenwechselverfahren: FIFO (first-in-first-out): Sich am längsten im Arbeitsspeicher befindende Seite wird ersetzt LIFO (last-in-first-out): Zuletzt eingelagerte Seite wird ersetzt LRU (least recently used): Seite, auf die am längsten nicht zugegriffen wurde, wird ersetzt LFU (least frequently used): seit ihrer Einlagerung am seltensten benutzte Seite wird ersetzt LRD (least reference density) : Mischung aus LRU und LFU. Seite mit der geringsten Zugriffdichte (Anzahl Zugriffe / Einlagerungszeitraum) wird ersetzt Sowohl bei segmentorientierter wie bei seitenorientierter Speicherverwaltung gilt: Befindet sich eine Seite oder ein Segment nicht im Hauptspeicher, so löst der Prozessor eine Unterbrechung aus, um die Seite oder das Segment durch das Betriebssystem zu laden (Seiten- oder Segmentfehler) Erkennung eines Segmentfehlers: Bit im Segment-Deskriptor zeigt an, ob Segment im Hauptspeicher ist oder nicht Erkennung eines Seitenfehlers: Seitennummer befindet sich nicht in der Seitentabelle (Seitenfehler) Spezielles Kennungsbit im Seitentabellen-Verzeichnis (Seitentabellenfehler) 213 Burkhard Stiller M6 41 213 Burkhard Stiller M6 42

Speicherhierarchie Speicherverwaltung (1) Daten werden nur zwischen aufeinanderfolgenden Ebenen der Speicherhierarchie kopiert. Register L1- Cache L2- Cache μp 213 Burkhard Stiller M6 43 Einzelzugriffe Blockzugriffe Seitenzugriffe Programm, Compiler (1-8 Bytes) Cache-Steuerung (8-128 Bytes) Hauptspeicher Hintergrund- Speicher Betriebsystem 512 Bytes 4KBytes Das Betriebsystem führt über die freien Speicherbereiche Buch und lagert bei nicht ausreichendem Freiplatz im Hauptspeicher diejenigen Speicherinhalte auf den Hintergrundspeicher aus, die gegenüber ihrem Originalen auf dem Hintergrundspeicher verändert worden sind. Die eindeutige Abbildung des großen virtuellen Speichers auf die effektive Hauptspeicherkapazität wird von der Hardware durch Speicherverwaltungseinheiten unterstützt (memory management units, MMU) Die erforderliche Abbildungsinformation stellt das Betriebssystem in Form einer oder mehrerer Übersetzungstabellen zur Verfügung. 213 Burkhard Stiller M6 44 Speicherverwaltung (2) Schutzmechanismen (1) Lokalitätseigenschaften von Programmen und Daten: Programme greifen in einem kleinen Zeitintervall auf einen relative kleinen Teil des Adreßraumes zu. Die Lokalitätseigenschaften gewährleisten eine hohe Wahrscheinlichkeit, daß die Daten, welche die CPU anfordert, im physikalischen Hauptspeicher zu finden sind. Zwei Arten der Lokalität: Zeitliche Lokalität: Falls ein Datum oder ein Befehl referenziert wird, so werden sie bald wieder referenziert. Örtliche Lokalität: Falls ein Datum oder ein Befehl referenziert wird, werden bald Daten oder Befehle mit benachbarten Adressen referenziert. 213 Burkhard Stiller M6 45 Moderne Mikroprozessoren bieten Schutzmechanismen an, um während der Laufzeit von Programmen unerlaubte Speicherzugriffe zu verhindern. Dies geschieht im wesentlichen durch: Trennung der Systemsoftware, z.b. des Betriebsystems Insbesondere des Ein-/Ausgabe-Subsystem (BIOS, basic I/O system), von den Anwendungsprozessen. Trennung der Anwendungsprozessen voneinander Ist dies gewährleistet, könnte ein fehlerhaftes Anwenderprogramm andere, fehlerfreie Programme beeinflussen (Schutzebenen und Zugriffsrechte) 213 Burkhard Stiller M6 46 Schutzmechanismen (2) User programs Possible uses of the levels Shared libraries System calls Kernel 1 2 3 Level 213 Burkhard Stiller M6 47