Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Ähnliche Dokumente
Tutorium Rechnerorganisation

Echtzeitbetriebssysteme

Kapitel 9 Hauptspeicherverwaltung

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

Wie groß ist die Page Table?

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

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

7. Speicherverwaltung

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Einführung in die technische Informatik

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Rechnergrundlagen SS Vorlesung

Definitionen zum Verschnitt

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

1. Speicher. Typische Nutzung eines Adreßraums. Systemsoftware. Textbereich relativ klein. Sehr großer Abstand zwischen Heap und Stack

Freispeicherverwaltung Martin Wahl,

Technische Informatik 2 Speichersysteme, Teil 3

(Prüfungs-)Aufgaben zum Thema Speicherverwaltung

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

Memory Management. Peter Puschner Institut für Technische Informatik

Linux Paging, Caching und Swapping

ggf. page fault virtuelle Adresse physikalische Adresse Hauptspeicher Seitenrahmen Register Seitentabelle logical address page number frame number

Speicherverwaltung (Swapping und Paging)

5.6 Segmentierter virtueller Speicher

Grundlagen der Rechnerarchitektur

Grundlagen Rechnerarchitektur und Betriebssysteme

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

Fachbericht Thema: Virtuelle Speicherverwaltung

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Anbindung zum Betriebssystem (BS)

, SS2012 Übungsgruppen: Do., Mi.,

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

5 Speicherverwaltung. bs-5.1 1

Bootvorgang des DSM-Systems Systems Plurix

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Technische Informatik 2 Speichersysteme, Teil 2

Technische Informatik 1

Besprechung der Probeklausur Übungsscheine, inoffizielle Evaluation Übungsaufgaben Noch Fragen?

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

5.5.5 Der Speicherverwalter

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Lösungsvorschlag zur 6. Übung

6 Speicherverwaltung


Grundlagen der Informatik III Wintersemester 2010/2011

6.Vorlesung Grundlagen der Informatik

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

5 Kernaufgaben eines Betriebssystems (BS)

Echtzeit-Multitasking

Intel x86 Bootstrapping

Bsys2 Zusammenfassung. Definition Die CPU ist das Gehirn des Computers. Sie holt Befehle aus dem Speicher und führt sie aus.

Teil IX. Adressraum und Arbeitsspeicher

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins

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

Die Mikroprogrammebene eines Rechners

Betriebssysteme Vorstellung

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d Technische Informatik I Übung 3. Technische Informatik I Übung 3

Ein- Ausgabeeinheiten

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme (BS) Inhalt. Speicherverwaltung. Olaf Spinczyk 1.

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

Rechnernutzung in der Physik. Betriebssysteme

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

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

4.3 Hintergrundspeicher

Übung 4 - Betriebssysteme I

Computer-Systeme Teil 15: Virtueller Speicher

Memory Management Units in High-Performance Processors

5.Vorlesung Betriebssysteme Hochschule Mannheim

Übung zu Einführung in die Informatik # 10

Visualiserung des Prinzips von virtuellem Speicher

Adressraumkonzepte Betriebssystemsicht. Teil IX. Adressraum und Arbeitsspeicher. Überblick

Grundlagen von Caching-Mechanismen beim Zusammenspiel von Mikroprozessor und Betriebssystem. Klaus Kusche Dezember 2015

1. Von-Neumann-Architektur (7/66 Punkte)

Hausübung 5 (Musterlösung )

Virtueller Speicher und Cache. VL5 GRT, SS 2004, Kneisel

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

MMU Virtualisierung. ISE Seminar Thomas Schaefer 1

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Speicher. Betriebssysteme (zu Teilen nach Tanenbaum) Hermann Härtig TU Dresden. Tanenbaum MOS

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

Kapitel 8: Physischer Datenbankentwurf

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Speicher- Management

1 Windows 2000/XP (3.1, NT, 95, 98)

8. Swapping und Virtueller Speicher

Betriebssysteme I: Speicherverwaltung (Teil A: Adress-Bindung)

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

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

Speicherorganisation

Überlegungen beim Entwurf eines Betriebssystems

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

3 Hauptspeicherverwaltung

Transkript:

Betriebssysteme Sommersemester 2017 Betriebssysteme 5. Kapitel Adressumsetzung Dr. Peter Tröger / Prof. M. Werner Professur Betriebssysteme

5.1 Speicher schneller, teurer, kleiner Betriebssysteme Adressumsetzung 5.1 Speicher Register Cache Hauptspeicher langsamer, billiger, größer Massenspeicher (Magnetplatte, Solid State Disk,...) Archiv (Band, CD-ROM,...) Hauptspeicher oberste Schicht, auf die vollständig wahlfrei zugegriffen wird SoSe 2017 P. Tröger / M. Werner 2 / 33 osg.informatik.tu-chemnitz.de

5.1 Speicher Hauptspeicher Ausführung eines Programms: Instruktionen liegen im Hauptspeicher (bzw. Cache) vor CPU lädt diese und führt sie aus (program counter, Assembler) Instruktionen mit absoluter und relativer Adressierung Wie bei vielen Ressourcen wird auch bei Speicher zwischen physischer und logischer Ressource unterschieden Konzept des Adressraums In diesem Zusammenhang gibt es eine Reihe von Problembereichen: Zuordnung logischen zu physischen Adressraum Adressumsetzung Effektive Nutzung von Speicher Virtueller Speicher Speicherverwaltung innerhalb des logischen Adressraums SoSe 2017 P. Tröger / M. Werner 3 / 33 osg.informatik.tu-chemnitz.de

5.2 Adressräume 5.2 Adressräume Hauptspeicher stellt sich über Adressräume dar Adressraum: Zusammenhängende Menge von Adressen Logischer Adressraum: Sichtweise im laufenden Programm Physischer Adressraum: Sichtweise der Hardware, definiert durch Adressbus Jeder Prozess hat kontinuierlichen Adressraum zur Verfügung Im einfachsten Fall entspricht der logische dem physischen Adressraum (MS-DOS, Lader des Betriebssystems, BIOS / UEFI, bare metal - Systeme) Mit Nebenläufigkeit ist Verwaltung mehrerer logischer Adressräume nötig Jeder Prozess hat eigenen isolierten logischen Adressraum Betriebssystem koordiniert die Abbildung auf physische Adressbereiche Gemeinsame Adressbereiche sinnvoll und nötig Teile des logischen Adressraums können ungültig werden Zugriff darauf führt zu Fehler SoSe 2017 P. Tröger / M. Werner 4 / 33 osg.informatik.tu-chemnitz.de

Abbildung Betriebssysteme Adressumsetzung 5.2 Adressräume Problem: Wie werden logische Adressräume auf den physischen abgebildet? Adressraum Prozess 1 Adressraum Prozess 2 Physischer Adressraum Adressraum Prozess 3 Wir diskutieren verschiedene Ansätze SoSe 2017 P. Tröger / M. Werner 5 / 33 osg.informatik.tu-chemnitz.de

5.3 Direkte Adressierung 5.3 Direkte Adressierung Programm-/Datenadresse Physischer Adressraum (Speicher) Direkte Adressierung: In einem ausführbaren Programm, d.h. nach Kompilieren und Binden, werden direkt physische Adressen verwendet (Programmadresse = physische Speicheradresse) Logische Adressräume sind Teilbereiche des physischen Adressraums Adressen werden vom Compiler/Linker festgelegt Adressbindung zur Übersetzungszeit Lage des Programms im Hauptspeicher ist vorgegeben und kann nicht verändert werden SoSe 2017 P. Tröger / M. Werner 6 / 33 osg.informatik.tu-chemnitz.de

Problem Betriebssysteme Adressumsetzung 5.3 Direkte Adressierung Bei Mehrprogrammbetrieb führt die Adressbindung zur Übersetzungszeit zu Konflikten Physischer Adressraum (Speicher) Programm A Programm B Programme können nur dann gemeinsam in Speicher geladen werden, wenn Adressräume disjunkt sind Die Festlegung der endgültigen Adressen hat ohne Kenntnis des Belegungszustands stattgefunden, d.h. zu früh Gute Speicherausnutzung nicht möglich SoSe 2017 P. Tröger / M. Werner 7 / 33 osg.informatik.tu-chemnitz.de

5.4 Verschiebbarer Code 5.4 Verschiebbarer Code Idee: endgültigen Adressen erst beim Laden des Programms festlegen Variante 1: positionsunabhängiger Code (PIC) Assembler-Code benutzt ausschliesslich relative Adressierung (-fpic) Muss vom Compiler unterstützt werden Variante 2: verschiebbarer Code Programme im verschiebbaren (relocatable) Format Logische Adressen werden beim Laden auf physische umgerechnet Umsetzung übernimmt Lader Adressbindung zur Ladezeit : MOV R1, adr : +k k: belegt Lader verschiebbares Programm Speicher SoSe 2017 P. Tröger / M. Werner 8 / 33 osg.informatik.tu-chemnitz.de

5.5 Relative Adressierung 5.5 Relative Adressierung Bei Bindung zur Ladezeit muss der Lader alle Adressen umrechnen Flexiblere Alternative: Adressbindung zur Laufzeit Logische Adressräume beginnen wieder stets bei Adresse 0 Prozessor enthält Basisadressregister (BAR), das beim Laden auf passende Anfangsadresse gesetzt wird Bei jedem Speicherzugriff wird BAR zur Programmadresse addiert Logische Adresse ist relative Adresse Verlangt Unterstützung durch die Hardware Speicher Programm-/Datenadresse r Basisadresse b + b r SoSe 2017 P. Tröger / M. Werner 9 / 33 osg.informatik.tu-chemnitz.de

Idee: Logischer Adressraum wird in kleinere Stücke zerlegt, die unabhängig voneinander dem physischen Speicher zugeordnet werden Stücke können gleich oder unterschiedlich lang sein Abbildung durch Betriebssystem konfiguriert (Strategie) Adressübersetzung on-the-fly durch Komponente der CPU (Mechanismus) Memory Management Unit (MMU) Programmadressraum Speicher MMU SoSe 2017 P. Tröger / M. Werner 10 / 33 osg.informatik.tu-chemnitz.de

Verschnitt Betriebssysteme Adressumsetzung Variante 1: Physischer Adressraum wird in gleich lange Stücke aufgeteilt Speicheranforderung wird auf Vielfaches einer festen Größe aufgerundet Dadurch entsteht Speicherplatz, der als belegt gekennzeichnet ist, aber nicht benutzt wird interner Verschnitt f int (internal fragmentation) Variante 2: Physischer Adressraum wird in unterschiedlich lange Stücke aufgeteilt Speicheranforderung wird exakt bedient Durch die Dynamik des Belegens/Freigebens kann es vorkommen, dass eine Anforderung zwar von der Gesamtmenge des freien Speichers her erfüllbar wäre, durch die Zerstückelung jedoch kein hinreichend großes Stück gefunden werden kann externer Verschnitt f ext (external fragmentation) SoSe 2017 P. Tröger / M. Werner 11 / 33 osg.informatik.tu-chemnitz.de

Verschnitt (Forts.) frei, aber ggf. nicht belegbar (externer Verschnitt) belegt, aber nicht benutzt (interner Verschnitt) belegt und benutzt belegt SoSe 2017 P. Tröger / M. Werner 12 / 33 osg.informatik.tu-chemnitz.de

Externer Verschnitt SoSe 2017 P. Tröger / M. Werner 13 / 33 osg.informatik.tu-chemnitz.de

Paging Stückelung in gleichlange Teile Paging Kein externer, aber interner Verschnitt Teile des logischen Adressraums heißen Seiten (pages) Der physische Adressraum wird in Seitenrahmen (page frames, auch Kacheln) unterteilt Programmadressraum Speicher SoSe 2017 P. Tröger / M. Werner 14 / 33 osg.informatik.tu-chemnitz.de

Seitentabelle Betriebssysteme Adressumsetzung Logische Adressen bestehen nun aus zwei Teilen: Seitennummer (page number) und Relativadresse (offset, displacement) innerhalb der Seite Seitentabelle pro laufenden Programm, ebenfalls im Hauptspeicher Prozessor braucht lediglich physische Basisadresse der Seitentabelle Im Register gespeichert, minimaler Aufwand bei Prozessumschaltung MMU ermittelt aus Seitennummer den passenden Tabelleneintrag Physische Basiadresse der Kachel und Offset werden addiert Tabellenbasisadresse Seitentabelle Speicher + Seite Byte Programm-/Datenadresse K SoSe 2017 P. Tröger / M. Werner 15 / 33 osg.informatik.tu-chemnitz.de

Seitengröße Betriebsmodus des Prozessors bestimmt Größe des logischen Adressraums 32-Bit X86 Intel Prozessor: logische Adressen mit 32 Bit, max. 4GB adressierbar 64-Bit X86_64 Intel Prozessor: logische Adressen mit 48 Bit, max. 256TB adressierbar logische Adressen mit 64 Bit 16EB wären adressierbar Seitengröße ist ein Tradeoff zwischen Verschnitt und Overhead Adressraum Seitengröße Anzahl der Seiten min. Größe einer Seitentabelle 2 32 Adressen 2 12 = 4KB 2 32 /2 12 = 2 20 2 20 32bit = 4MB 2 32 Adressen 2 22 = 4MB 2 32 /2 22 = 2 10 2 10 32bit = 4KB 2 48 Adressen 2 12 = 4KB 2 48 /2 12 = 2 36 256GB 2 48 Adressen 2 22 = 4MB 2 48 /2 22 = 2 26 256MB 2 64 Adressen 2 12 = 4KB 2 64 /2 12 = 2 52 16.7PB 2 64 Adressen 2 22 = 4MB 2 64 /2 22 = 2 42 16TB SoSe 2017 P. Tröger / M. Werner 16 / 33 osg.informatik.tu-chemnitz.de

Seitentabellen für große Speicherbereiche Lösungsansätze: Mehrstufige Seitentabelle Seitenverzeichnis (page directory) zeigt auf untergeordnete Seitentabellen Nicht alle Tabellen immer nötig Auslagerung Seitentabellen lassen sich wiederverwenden Zwei Speicherzugriffe bei TLB miss nötig Invertierte Seitentabelle, (page) frame table Nur im Hauptspeicher vorhandene Seiten enthalten Kleiner als Seitentabelle Geschwindigkeitsproblem Einsatz von Hash-Funktionen SoSe 2017 P. Tröger / M. Werner 17 / 33 osg.informatik.tu-chemnitz.de

Mehrstufige Seitentabelle bei X86 (32 bit) index 31 22 21 12 11 0 Page table Page table Byte within page selector entry selector P^_%[#"+0.%788.+99%:.0"960;-" 10 bits 10 bits 12 bits PFN 0 CR3 31 0 Page table selector physical address Page table entry selector index Byte within page physical page number ( page frame number or PFN ) 1 2 3 4 5 6 7 8 9 10 11 12 Page Directory (one per process, 1024 entries) Page Tables (up to 512 per process, plus up to 512 system-wide) Physical Pages (up to 2^20) 20 SoSe 2017 P. Tröger / M. Werner 18 / 33 osg.informatik.tu-chemnitz.de

Invertierte Seitentabelle Tabelle speichert pro Kachel ein <Prozess-ID, Seitennummer> - Tupel Unabhängig von der Größe des logischen Adressraums Skalierbarkeit Effiziente Suche nach Seitennummer bei Adressumsetzung nötig Aus Seitennummer wird Hash gebildet Separate Abbildung von Hash-Werten auf Tabelleneinträge Tabelleneinträge mit gleichem Hash-Wert verweisen aufeinander Gemeinsame Seiten dann schwierig zu realisieren Anwendung: UltraSPARC, IA64, PowerPC SoSe 2017 P. Tröger / M. Werner 19 / 33 osg.informatik.tu-chemnitz.de

Invertierte Seitentabelle (Forts.) SoSe 2017 P. Tröger / M. Werner 20 / 33 osg.informatik.tu-chemnitz.de

Segmentierung Betriebssysteme Adressumsetzung Stückelung in Teile variabler Länge Segmentierung Kein interner, aber externer Verschnitt Teile des logischen Speicherraums heißen Segmente Programmadressraum Speicher belegt frei frei SoSe 2017 P. Tröger / M. Werner 21 / 33 osg.informatik.tu-chemnitz.de

Segmenttabelle Segmente werden ähnlich wie Seiten (aber diesmal variabler Größe) in einer Tabelle verwaltet Segmente können an beliebigen Adressen beginnen Segmenttabelle muss volle Adresse enthalten Adressen bestehen aus zwei Teilen: Segmentnummer und Relativadresse innerhalb des Segments Relativadresse innerhalb des Segments wird zur Segmentbasisadresse addiert Tabellenbasisadresse Segmenttabelle Speicher + Segment Byte + Programm-/Datenadresse SoSe 2017 P. Tröger / M. Werner 22 / 33 osg.informatik.tu-chemnitz.de

Paging vs. Segmentation Seitenumsetzung 0000 0001 0010 1101 0010 1011 K 11011011 Segmentumsetzung 0000 0001 0010 11010101 0010 1011 + 11100000 Beide Verfahren werden häufig kombiniert Z.T. mehrstufige Verfahren SoSe 2017 P. Tröger / M. Werner 23 / 33 osg.informatik.tu-chemnitz.de

Beschleunigung Segment- und Seitentabellen sind im Hauptspeicher Für Bildung der physischen Adresse muss zunächst Seiten- und/oder Segmentadresseintrag beschafft werden Pro Adresszugriff damit mindestens zwei Hauptspeicherzugriffe erforderlich Idee: Zuletzt benötigte Segment- oder Seiteneinträge werden in einem schnellen Registersatz gespeichert TLB = Translation Lookaside Buffer inhaltsbasierte Adressierung, Suche in einem Schritt Typische Trefferquote des TLB liegt bei über 99% (Lokalitätsprinzip) Umschaltung oder Ändern der Seitentabelle invalidiert den TLB Tagged TLB: Markierung von Einträgen mit Prozess- oder VCPU-ID Komplexes Problem bei SMP-Systemen (TLB shootdown) SoSe 2017 P. Tröger / M. Werner 24 / 33 osg.informatik.tu-chemnitz.de

Zweistufige Adressumsetzung mit TLB Tabellenbasisadresse + Segmenttabelle Seitentabelle + TLB (Assoziativspeicher) Segment Seite Kachel Speicher Segment Seite Byte Programm-/Datenadresse K SoSe 2017 P. Tröger / M. Werner 25 / 33 osg.informatik.tu-chemnitz.de

Translation Lookaside Buffer Cache mit logischen Adressen TLB wird nur bei cache miss konsultiert Optimierung möglich - Parallele Abfrage von Cache und TLB Cache mit physischen Adressen TLB wird zu jeder Adresse befragt TLB miss und cache miss sind gleich schlecht Hauptspeicherzugriff Leistungsoptimierung mit mehrstufigen TLBs, Beispiel Intel Nehalem Level 1 Daten-TLB: 64 Einträge für 4KB-Seiten, 32 Einträge für 2MB/4MB-Seiten Level 1 Instruktions-TLB: 128 Einträge für kleine Seiten, 7 Einträge für große Seiten Level 2 TLB: 512 Einträge Pro Eintrag jeweils ID für den virtuellen Prozessor SoSe 2017 P. Tröger / M. Werner 26 / 33 osg.informatik.tu-chemnitz.de

Schutz und Teilen Stückelung unterstützt das Teilen von physischen Speicherbereichen Gemeinsamer Code: Mehrere Instanzen des gleichen Programms, gemeinsam genutzte Bibliotheken, Betriebssystem-Code Gemeinsame Daten: Kommunikation und Abstimmung zwischen Prozessen Stückelung unterstützt den Schutz von physischen Speicherbereichen Individuelle Rechte als Teil der Seiten- / Segmenttabelle Werden vom Betriebssystem konfiguriert (Seiten lesen, schreiben, ausführen) Überprüft von MMU während der Auflösung, ggf. Trap Ungenutzte physische Bereiche können als ungültig markiert werden Beispiel Never execute (NX) Bit: Seiteninhalt kann nicht als Code ausgeführt werden Schutz gegen Überlaufattacken SoSe 2017 P. Tröger / M. Werner 27 / 33 osg.informatik.tu-chemnitz.de

Schutz und Teilen (Forts.) SoSe 2017 P. Tröger / M. Werner 28 / 33 osg.informatik.tu-chemnitz.de

Adressraum des Betriebssystems Heutzutage üblich: Jede logische (!) Adressraum wird aufgeteilt Seiten mit Code und Daten des Betriebssystems Seiten mit Code und Daten der Anwendung Die Kacheln mit den Betriebssystemdaten werden in alle logischen Adressräume an der gleichen Stelle eingeblendet Logische Adressen bleiben aus Betriebssystemsicht immer gleich Beim Moduswechsel bleibt der TLB (größtenteils) gültig Das Betriebssystem lebt somit in allen logischen Adressräumen Seitentabelle definiert, ob Kachel zum Nutzer- oder Kernmodus gehört Alternative: Eigene Seitentabellen für Nutzer- und Kernmodus Größerer Adressraum für Anwendung, Moduswechsel invalidiert TLB Beispiel: 4G/4G Path für Linux - 30% Leistungsverlust SoSe 2017 P. Tröger / M. Werner 29 / 33 osg.informatik.tu-chemnitz.de

Beispiel: 32 Bit Windows Prozess SoSe 2017 P. Tröger / M. Werner 30 / 33 osg.informatik.tu-chemnitz.de

Copy-On-Write Idee gemeinsam genutzter Seiten für copy-on-write Grundlage für fork() in Unix Aus Nutzersicht: Kopieren eines Speicherbereiches bzw. Adressraums Intern: Seitentabelleneinträge von Eltern und Kind werden als nur lesen markiert Zugriffsfehler bei Änderung durch MMU gemeldet Betriebssystem behandelt Fehler, legt echte Kopie an, wiederholt Aktion Orig. Data Process Address Space Orig. Data Process Address Space Page 1 Page 3 Page 1 Page 3 Page 2 Physical memory Page 2 Copy of page 2 Physical memory Orig. Data Process Address Space Mod d. Data Process Address Space SoSe 2017 P. Tröger / M. Werner 31 / 33 osg.informatik.tu-chemnitz.de

Beispiel: Seitentabelleneintrag bei X86 Res (writable on MP Systems) Res Res Reserved bits Global Res (large page if PDE) are used only when PTE is not valid Dirty Accessed Cache disabled Write through Owner Write (writable on MP Systems) 31 12 0 Page frame number U P Cw Gi L D A Cd Wt O W V valid 29 SoSe 2017 P. Tröger / M. Werner 32 / 33 osg.informatik.tu-chemnitz.de

5.7 Zusammenfassung 5.7 Zusammenfassung Speicher als Ressource Abbildung vom physischen Adressraum (Hardware) in logische Adressräume für die Prozesse Mechanismus zur Umsetzung ist Teil der Hardware (Geschwindigkeit) Konfiguration durch Betriebssystem während der Ausführung (Strategie) Streuende Adressierung (Segmentierung, Paging) heutzutage Standard Kernel ohne MMU-Nutzung nur noch in kleinen eingebetteten Systemen MMU-Charakteristiken ändern sich mit jeder Prozessorgeneration SoSe 2017 P. Tröger / M. Werner 33 / 33 osg.informatik.tu-chemnitz.de