Anbindung zum Betriebssystem (BS)

Ähnliche Dokumente
Anbindung zum Betriebssystem (BS)

Anbindung zum Betriebssystem (BS)

Einführung in die technische Informatik

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Übung zu Grundlagen der Betriebssysteme. 13. Übung

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

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

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

3 Schnittstelle zum Betriebssystem 3.1 Einleitung

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

Einführung in. Logische Schaltungen

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

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

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

S7-Hantierungsbausteine für R355, R6000 und R2700

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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!.

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

5 Speicherverwaltung. bs-5.1 1

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

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

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

RO-Tutorien 15 und 16

Wie halte ich Ordnung auf meiner Festplatte?

Outlook-Daten komplett sichern

Erstellen von x-y-diagrammen in OpenOffice.calc

Installation OMNIKEY 3121 USB

Grundlagen verteilter Systeme

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

1 Aufgaben zu Wie funktioniert ein Computer?

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

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

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Einleitung. Hauptteil. Wir befinden uns nun im Demoarchiv.

Viele Bilder auf der FA-Homepage

Anleitung über den Umgang mit Schildern

Kapitel 8: Physischer Datenbankentwurf

Objektorientierte Programmierung

Eigene Dokumente, Fotos, Bilder etc. sichern

GFAhnen Datensicherung und Datenaustausch

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Informationsblatt Induktionsbeweis

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

Tutorium Rechnerorganisation

2. Darstellung von Information im Computer

Leichte-Sprache-Bilder

Einfache Varianzanalyse für abhängige

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

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

Die elektronische Rechnung als Fortsetzung der elektronischen Beauftragung so einfach geht es:

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

Hilfedatei der Oden$-Börse Stand Juni 2014

Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt

Stepperfocuser 2.0 mit Bootloader

Dokumentation. estat Version 2.0

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Nutzung von GiS BasePac 8 im Netzwerk

Elektronischer Kontoauszug

AutoTexte und AutoKorrektur unter Outlook verwenden

Lizenzierung von SharePoint Server 2013

> Internet Explorer 7

Primzahlen und RSA-Verschlüsselung

Layoutmodelle. Steffen Schwientek Große Klostergasse Friedberg schwientek@web.de Web :schlaukopp.org

1 Mathematische Grundlagen

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Musterlösungen zur Linearen Algebra II Blatt 5

Workflows verwalten. Tipps & Tricks

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Erstellen der Barcode-Etiketten:

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Professionelle Seminare im Bereich MS-Office

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Erstellen eigener HTML Seiten auf ewon

Zahlen auf einen Blick

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Anzeige von eingescannten Rechnungen

Grundlagen der Informatik

Einführung in die Programmierung

1. Einleitung Was ist die App Listini Was benötigen Sie dazu Wie gehen Sie vor

CodeSaver. Vorwort. Seite 1 von 6

Zählen von Objekten einer bestimmten Klasse

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Leitfaden zu VR-Profi cash

GEONET Anleitung für Web-Autoren

Kennen, können, beherrschen lernen was gebraucht wird

Nutzerhandbuch Zentrale Klassenverwaltung

Grundbegriffe der Informatik

Transkript:

5.1 Einleitung Anbindung zum Betriebssystem (BS) Aufgaben BS Schnittstelle zur Hardware Sicherstellung des Betriebs mit Peripherie Dienste erfüllen für Benutzung Rechner durch Verwaltung der Ressourcen Dateiverwaltung (Kopieren, Verwalten,.) Speicherverwaltung (HW-Unterstützung hierfür Thema dieses Kapitels) Prozessverwaltung Prozess: laufendes Programm + Zusatzinformation (CC, PC, Speicher, Register, E/A-Status) 12.7.2010, Folie 1

5.1 Einleitung Schutzmechanismen bereitstellen Z.B. für Mehrbenutzerbetrieb, falls Fehler im Programm durch falsche Zeiger entstehen Und noch viel mehr. (s. Vorlesung Systemprogrammierung) Wichtig für Rechnerarchitektur: Schnittstelle zur Hardware 12.7.2010, Folie 2

5.1 Einleitung Betriebssystem; führt neue Befehle und Merkmale oberhalb der Ebene der Befehlssatz-Architektur ein. Die Betriebssystemebene enthält die Schnittstelle zum Anwendungsprogrammierer. Betriebssystem ist in Software implementiert Applikation Betriebssystem Befehlssatz-Architektur (Mikroprogramme bzw. RISC- Befehle) Hardware 12.7.2010, Folie 3

5.1 Einleitung Neue Befehle des Betriebssystems Systemaufrufe (system calls) Aktiviert vordefinierten Betriebssystemdienst Z.B. Daten aus einer Datei lesen Kann über Mikroprogramm bzw. Assemblerprogramm implementiert werden Vorsicht! (siehe Bild vorher) Mikroprogramm über Assembler nach wie vor direkt aufrufbar Jedoch erzeugen manche Befehle Exceptions, z.b. wenn versucht wird, Bereiche zu adressieren, die privilegiert sind Speicherverwaltung im Fokus bei RA Konzept virtueller Speicher Speicherverwaltungseinheit Memory Management Unit (MMU) Berechnet aus virtueller Adresse die physikalische Adresse Unterstützt das Betriebssystem bei Sicherheitsmaßnahmen, D.h. Vermeiden von Zugriffen auf bestimmte Speicherbereiche 12.7.2010, Folie 4

5.2 Speicherverwaltung Memory Management Idee des Virtuellen Speichers Frühe Tage der EDV Speicher war knapp NB: hier hat sich im Prinzip nichts geändert (Speicher ist immer knapp) Programme waren zu groß, um komplett im Speicher unterzukommen Idee: Zerlegen in sog. Überlagerungsprogramme (Overlays) Overlays auf Sekundärspeicher (Festplatte) auslagern Programmierer war eigenverantwortlich für die Verwaltung der Overlays Overlays waren explizit abzulegen Overlays waren explizit einzulesen schlecht für Programmierer 12.7.2010, Folie 5

5.2 Speicherverwaltung Memory Management Idee: Programmierer könnte sich zumindest einen großen Speicher vorstellen einen sog. virtuellen Speicher mit virtuellen Adressen Virtuellen (im Prinzip unendlichen) Speicher abbilden in physikalischen (limitierten) Speicher durch Abbildung der einzelnen Adressen virtuelle Adresse physikalische Adresse 12.7.2010, Folie 6

5.2 Speicherverwaltung Memory Management Grundlegendes Konzept Trennung in virtueller Adressraum physikalischer Adressraum (Speicherstellen) Virtuelle Adresse 12288 8192 4096 0 Adressraum Vor Erfindung des virtuellen Speichers nur 1-zu-1 Abbildung 0 0 4095 4095 4K- Hauptspeicher 4095 0 12.7.2010, Folie 7

5.2 Speicherverwaltung Memory Management Virtuellen Speicher partitionieren in Overlays gleicher Größe Nächste Partition ab virtueller Adresse 4096 auf physikalische ab Adresse 0 abbilden Wie realisiert Im Prinzip mit in Hardware realisierten Tabellen. Details, s. später Adressraum Abbildung Virtuelle Adresse 12288 8192 4096 0 4096 0 8191 4095 4K- Hauptspeicher 4095 0 12.7.2010, Folie 8

5.2 Speicherverwaltung Memory Management Virtuelle Speicherverwaltungen (Demand) Paging Segmentierung Nicht nur ein Programm, viele Programme Nachteil: externe Speicherfragmentierung Segmentierung + Paging Vorteile beider Verfahren vereinen 12.7.2010, Folie 9

5.2.1 Paging Annahme: Im physikalischen Arbeitsspeicher steht Programmkode mit virtuellen Adressen zwischen 0 und 4095 Es erfolgt eine Sprung auf die virtuelle Adresse zwischen 8192 und 12287 NB: identische Problematik für Referenzen auf Datenbereiche außerhalb des im physikalischen Speicher gehaltenen Overlays Was tun? Inhalt des entsprechenden Overlays (Seite) im Arbeitsspeicher auf Platte speichern Warum? Programmkode-Abschnitt könnte globale Variablen erhalten, die verändert wurden Overlay (Seite) mit Worten von 8192 bis 12287 suchen Overlay (Seite) in Hauptspeicher laden Adresszuordnungen 8192 12287 auf 0 4095 ändern Programmausführung fortsetzen 12.7.2010, Folie 10

5.2.1 Paging Das Ein-/Auslagern von diesen Seiten soll automatisch geschehen (nicht durch Programmierer) Diesen Vorgang bezeichnen wir nun als Paging Folgende Notation im Folgenden (s. nächste Folie) 12.7.2010, Folie 11

5.2.1 Paging Automatisches Ein-/Auslagern von Overlays Seitenauslagerung (Paging) Von Festplatte gelesene Programm-(Daten)blöcke, bisher Overlays genannt Seiten (Pages) Adressraum, auf die Programm verweisen kann Virtueller Adressraum (Virtual Address Space) Die real fest verdrahteten Speicheradressen Physikalischer Adressraum (Physical Address Space) Abbildung virtuelle in physikalische Adresse Speicherabbildung (Memory Mapping) realisiert über in Hardware umgesetzte Seitentabelle (Page Table) 12.7.2010, Folie 12

5.2.1 Paging Dieses Konzept wurde 1961 für den ATLAS-Computer erstmalig von Fotheringham, Universität Manchester, eingesetzt: Anfang der 70er Jahre war Konzept des virtuellen Speichers etabliert Wird heute direkt von Mikroprozessoren unterstützt. Die Verwaltung des virtuellen Speichers ist heutzutage gleich im Mikroprozessorsystem integriert Nehalem-Architektur (Core i7 Prozessor) hat den Memory- Controller gleich auf Prozessor-Chip integriert 12.7.2010, Folie 13

5.2 Speicherverwaltung Memory Management Ziel: Abbildung muss für Programmierer völlig transparent geschehen (soll heißen ohne sein aktives Zutun) Illusion eines im Prinzip beliebig großen, linear adressierbaren Hauptspeichers (z.b. von 0 ab aufwärts) Seitenein-/auslagerung geschieht im Hintergrund Hardware-Unterstützung dafür notwendig 12.7.2010, Folie 14

5.2.1 Paging Praktische Implementierung Paging Auch Virtueller Adressraum bekommt in der Regel Obergrenze Virtuelle Adressraum eingeteilt in Seiten gleicher Größe Größen von 512 Byte 4 MB pro Seite Immer 2er Potenz Hauptspeicher kann mehr als nur eine Seite aufnehmen Im Gegensatz zur Situation auf Folie 7 (dort nur eine 4K große Seite) Vorgesehener Platz im Arbeitsspeicher für Aufnahme der Seiten heißt Seitenrahmen (Page frame) 12.7.2010, Folie 15

5.2.1 Paging Beispiel: 64 K virtueller Adressraum (16 Seiten à 4K Seitengröße) 32 K physikalischer Speicherraum (8 Seiten à 4K Seitengröße) Seitennummer Virtuelle Adressen 15 61440-65535 14 57344-61439 13 53248-57343 12 49152-53247 11 45056-49151 10 40960-45055 9 36864-40959 8 32768-36863 7 28672-32767 6 24576-28671 5 20480-24575 4 16384-20479 3 12288-16383 2 8191-12287 1 4096-8191 0 0-4095 über Tabelle Seitennummern abbilden Seitennummer 12.7.2010, Folie 16 Physikalische Adressen 7 28672-32767 6 24576-28671 5 20480-24575 4 16384-20479 3 12288-16383 2 8191-12287 1 4096-8191 0 0-4095

5.2.1 Paging Allgemeines Prinzip der Abbildung über Seitentabellen Über virtuelle Seitennummer in Seitentabelle Eintrag holen Eintrag enthält zugehörige Nummer der physikalischen Seite sofern Seite im Speicher ist Eintrag enthält Verweis, aus dem hervorgeht, wo Seite auf Platte zu finden ist - sofern Seite nicht im Speicher Spalte Valid zeigt an, ob virtuelle Seite im Speicher ist oder nicht 12.7.2010, Folie 17

5.2.1 Paging Bildung der physikalischen Adresse Adresse besteht aus der Seitennummer und dem Offset, der auf die Adresse innerhalb der Seite verweist Der Offset ist bei der physikalischen und der virtuellen Adresse identisch Die Abbildung der virtuellen auf die zugehörige physikalische Seitennummer (Seitenrahmen) erfolgt über die Seitentabelle Beispiel rechts: Virtuelle 32-Bit Adresse 4 G(iga) = 2 32 Physikalische 30-Bit Adresse 1 G(iga) = 2 30 Größe der Seite (12-Bit Offset-Adresse) 4 K(ilo) = 2 12 12.7.2010, Folie 18

5.2.1 Paging Bildung der physikalischen Adresse Nummer der physikalischen Seite (Seitenrahmen) über Seitentabelle ermitteln Diese Nummer konkatenieren mit Offset physikalische Adresse 0 1 2 3 4 6 7 8 9 00... 0100 11..0100 00... 0111 00 0111 11..0100 12.7.2010, Folie 19

5.2.1 Paging Quantitative Größen für vorheriges Beispiel Virtuelle 32 Bit-Adresse in physikalische 30 Bit- Adresse abbilden Einzelne Seiten 4 K groß (= 2 12 ) Wie viele Einträge in Seitentabelle? So viele, wie es virtuelle Seiten gibt = Größe virtueller Speicher/Seitengröße => 2 32 / 2 12 = 2 20 Wie viele Seitenrahmen? Größe physikalischer Speicher/Seitengröße => 2 30 / 2 12 = 2 18 benötige somit 18 Bit Jeder Eintrag in Seitentabelle 18 Bit + 1 Valid Bit breit Folglich Größe Seitentabelle 2 20 x 19 Bit = 19 MBit = 2,375 MByte 0 1 2 3 4 6 7 8 9 00... 0100 11..0100 00... 0111 00 0111 11..0100 12.7.2010, Folie 20

5.2.1 Paging Zusammenfassung der Abbildung virtuelle in physikalische Adresse beim (eindimensionalen) Paging Virtuelle Adresse wird zerlegt in Seitennummer und Offset Seitennummer abbilden auf Nummer Seitenrahmen Realisiert über Seitentabelle Offset zeigt in den Seitenrahmen Physikalische Adresse ist Konkatenation aus Seitenrahmen- Nummer und Offset Valid-Bit Ist Seite im physikalischen Speicher? 12.7.2010, Folie 21

5.2.1 Paging Seitenanforderung (Demand paging) # (Anzahl) Seitenrahmen < # virtuelle Seiten Analoge Situation wie bei Cache (Cacheblock Hauptspeicherblock) Folglich wird es Situationen geben, in denen eine virtuelle Seite nicht in einem Seitenrahmen vorliegt Seitenfehler (Page fault) Tritt Seitenfehler auf BS muss angeforderte Seite auf Platte suchen und lesen Mit anderer im Speicher vorhandener virtuellen Seite austauschen Seitentabelle entsprechend ändern Es existieren verschiedene Strategien für Seitenaustausch (Swapping). Dies ist nicht Thema in GRa, sondern in SP 12.7.2010, Folie 22

5 Ergänzung für Systemprogrammierung 5.2.1 Paging Nachteil Paging: Interne Fragmentierung Wenn Programme und Daten gerade Vielfaches der Seitengröße sind keine Platzverschwendung Wird i.d.r. nicht der Fall sein Folglich: Verschnitt Verschwendete Bytes: Interne Fragmentierung Beispielrechnung: 26000 Bytes benötigt: 4 K Byte Größe Seitenrahmen Rechnung Tafel Besser kleine oder große Seitenrahmen bzgl. interner Fragmentierung? 12.7.2010, Folie 23

5.2.2 Segmentierung Bisher Paging: eindimensionaler virtueller Adressraum Flexibler: mehrere virtuelle Adressräume (genannt Segmente) Motivation warum mehrere Adressräume flexibler Erleichtert Modulbildung Z.B. bei Dynamischen Zuwachs von Daten Beispiel Compilerlauf Speicherbedarf nimmt ständig zu für Symboltabelle (Verwalten von Variablen) Speicher für Aufnahme Quelltext Für Konstantentabelle Für Syntaxbaum Speicherbedarf schrumpft und wächst abwechselnd Für benutzten Stack aufgrund von Prozeduraufrufen des Compilers 12.7.2010, Folie 24

5.2.2 Segmentierung Situation bei eindimensionalen virtuellen Adressraum Einzelnen Segmente wachsen von fester unterer Bodenadresse Evtl. wachsen sie in den Bereich anderer Segmente, hinein s. Segment für Symboltabelle wächst in Segment, das Quelltext aufnimmt Mögliche Lösung: Programmierer gezwungen 1-dimensionalen Adressraum zu verwalten 12.7.2010, Folie 25

5.2.2 Segmentierung Bessere Lösung: mehrere vollkommen unabhängig voneinander vorhandene Adressräume so genannte Segmente 12.7.2010, Folie 26

5.2.2 Segmentierung Vorteil Segmente: Können unabhängig wachsen und schrumpfen Unterstützen Modularisierung bei der Programmierung Jede Prozedur eigenes Segment mit Anfangsadresse 0 Aufruf anderer Prozedur (Segmentnummer, Adresse 0) Nachträgliche Änderungen an Prozedur leichter Immer Einstieg bei Adresse 0 Bei eindimensionalem Adressraum nicht möglich Einbinden von Bibliotheken Nicht jedes Programm braucht Kopie der Bibliothek NB: Ist auch mit Paging machbar wenn mehrere Seiten zu einem virtuellen Segment zusammengefast werden Unterstützen Schutzmechanismen leichter Angabe Segmentlänge Wird Adresszeiger erzeugt, der über Segmentlänge hinauswächst wird eine sog. Exception generiert -> in der Betriebssystem-Software führt evtl. zum Abbruch des Prozesses 12.7.2010, Folie 27

5.2.2 Segmentierung WICHTIG: Segment ist logische Einheit Programmierer kennt diese und muss diese explizit verwenden Auch hier muss Umsetzung in eine physikalische Adresse erfolgen Aus sog. Segmenttabelle über Segmentnummer die zugehörige Anfangsadresse ermitteln NB: Externe Fragmentierung tritt auf! Details: s. Vorl. SP Arbeitsspeicher Segment -nummer Physikalische Segmentanfangs -Adresse Segmentlänge 3 0x5500 0x0400 2 0x4000 0x0200 1 0x3000 0x0600 0 0x0100 0x0200 Segmenttabelle 0x5500 0x4000 0x3000 0x0100 } 0x0400 } 0x0200 } 0x0400 } 0x0200 12.7.2010, Folie 28

5.2.2 Segmentierung Segmenttabelle enthält Segmentdeskriptoren Daher manchmal auch als Deskriptortabelle bezeichnet Über Segmentlänge überprüfbar, ob Zugriffe innerhalb des Segmentes bleiben Adresse bilden aus Addition Segmentanfangsadresse + Offsetadresse Virtuelle Adresse Segment-Nr. Offset-Adresse # Segmenttabelle Anfang Länge < Fehler an BS melden + Physikalische Adresse 12.7.2010, Folie 29

5.2.2 Segmentierung Auch hier Swapping Referenziertes im Speicher nicht vorhandenes Segment wird nachgeladen Falls kein Platz vorhanden: Ein oder mehrere Segmente müssen auf Platte geschrieben werden Im Prinzip wie bei Demand Paging Entscheidender Unterschied Bei Demand Paging: Seitengrößen identisch Hier: Segmentgrößen unterschiedlich 12.7.2010, Folie 30

5.2.3 Segmentierung + Paging Paging hatte durchaus Vorzüge: Berechnung der physikalischen Adresse einfacher, da Seiten immer gleich groß Adressrechnung bei Paging einfacher: Konkatenation aus Seitenanfangsadresse (ermittelt über Seitentabelle) und Offset i.a. sind jedoch die Seitentabellen größer und benötigen mehr Aufwand als die Segmenttabellen, letztere dadurch leichter in schnellen Registern zu halten Jedoch bei Paging: Zugriffe über Cache-Techniken optimierbar (s. später TLB) Keine externe Fragmentierung: (Details s. Vorl. SP) Adressrechnung bei Segmentierung: erfordert Addition Idee: Kombination von Segmentierung und Paging Idee: jedes Segment intern in Seiten aufteilen Alle Verfahren die beim Paging entwickelt wurden nutzbar Neu: für jedes Segment jetzt eigene Seitentabelle Erstmalig angewandt im Betriebssystem MULTICS Adressbildung s. nächste Seite 12.7.2010, Folie 31

5.2.3 Segmentierung + Paging Adressbildung bei Segmentierung mit Paging Quelle: Tannenbaum; Computerarchitektur: 5. Auflage, Kap. 6, S. 458-478 12.7.2010, Folie 32

5.2.4 Vergleich Segmentierung/Paging Vor- und Nachteile ein- und mehrdimensionaler logischer Adressen 12.7.2010, Folie 33

5.2.4 Vergleich Segmentierung/Paging Heutzutage: zumeist Paging Wegen des Vorteils, dass sich Programmierer nicht explizit um Segmente kümmern muss Jedoch nicht ein Prozess, sondern mehrere Prozesse Jeder Prozess hat seine eigene Seitentabelle Problem jedoch Aufwand für Seitentabellen Für einen Prozess (s. Bsp. Folie 20) nicht so dramatisch Jedoch für eine Vielzahl von Prozessen 12.7.2010, Folie 34

5.3 Optimierungen bei der Speicherwaltung Zwei Ansatzpunkte zum Optimieren Platz: Aufwand für Speicherung Tabellen reduzieren Z.B. Mehrstufiges Paging Zugriffsgeschwindigkeit auf Tabellen verbessern Mittels so genannter TLBs (Translation Lookaside Buffer) Platzreduzierung: In der Literatur ist eine Reihe von Maßnahmen aufgeführt In Patterson/Hennessy, Computer Organization & Design, S. 500, 4. Auflage, allein 5 Maßnahmen aufgeführt Hier in der Vorlesung wird nur die Technik der Einteilung der Seitentabelle in mehrere Ebenen ( mehrstufiges Paging ) behandelt Zugriffsoptimierung per TLB Im Prinzip Caches für Zugriff auf Seitentabelle 12.7.2010, Folie 35

5.3 Optimierungen bei der Speicherwaltung Platz reduzieren: mehrstufiges Paging Im eindimensionalen Fall (nur eine Seitentabelle) braucht man immer so viele Einträge, wie es virtuelle Seiten geben könnte Dies für mehrere Prozesse bereit zu halten, wäre unakzeptabel viel Aufwand Idee: jeder Prozess erhält ein Verzeichnis, ein sog. Seitenverzeichnis Jeder Eintrag im Seitenverzeichnis verweist auf eine Seitentabelle Der Eintrag kann leer sein, wenn der Prozess den Adressraum nicht braucht Spart Speicher Die Einträge in den Seitentabellen zeigen - wie üblich - auf die Seitenrahmen (physikalischen Seiten) Idee führt somit zur mehrstufigen Seitenverwaltung (mehrstufiges Paging) 12.7.2010, Folie 36

5.3 Optimierungen bei der Speicherwaltung Beispiel x86-architekturen Die ersten 10 Bits verweisen auf das Seitenverzeichnis Die zweiten 10 Bits in die jeweilige Seitentabelle CR3 PDBR: Page Directory Base Register 12.7.2010, Folie 37

5.3 Optimierungen bei der Speicherwaltung Rechenbeispiel: Ein Prozess benötigt den virtuellen Adressbereich 0x00bc0000-0x00bc1fff für sein Codesegment (entspricht bzgl. der Größe genau 2 physikalischen Seiten) Dies erzeugt folgende Aufteilung DIR PAGE OFS 0000 0000 1011 1100 0000 0000 0000 0000 bis 0000 0000 1011 1100 0001 1111 1111 1111 0x002 0x3c0 0x3c1 1. physikalische Seite 2. physikalische Seite 12.7.2010, Folie 38

5.3 Optimierungen bei der Speicherwaltung graphische Darstellung der Zeigerstruktur der Tabellen Seitenverzeichnis 0x000 0x001. 0x002 0xX X.. 0x3ff. Seitentabelle 0x000. 0x3c0 0xZ Z 0xZ Z000 0x3c1 0xY Y.. 0x3ff. 0xZ Zfff 0xY Y000 0xY Yfff Physikalische Seite 1. Physikalische Seite 2... 12.7.2010, Folie 39

5.3 Optimierungen bei der Speicherwaltung Zugriff optimieren: Translation Lookaside Buffer Voll-assoziativer Cache für virtuelle Adressen aus Seitentabelle (im Prozessor realisiert) 12.7.2010, Folie 40

5.3 Optimierungen bei der Speicherwaltung Adressbildung insgesamt Translation Lookaside Buffer, Seitentabelle und Cachezugriff 12.7.2010, Folie 41

5.3 Optimierungen bei der Speicherwaltung Zugriffsablauf TLB und Cache algorithmisch gezeigt NB:Write-Buffer Cache-Strategie Write-through angenommen Dann wird Datum und zugehörige Adresse in Write- Buffer abgelegt 12.7.2010, Folie 42

5.3 Optimierungen bei der Speicherwaltung Mögliche und nicht mögliche Kombinationen Möglich ist natürlich auch die Kombination (TLB: hit; Page Table: hit; Cache: hit) 12.7.2010, Folie 43