4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.

Slides:



Advertisements
Ähnliche Präsentationen
Seitentauschstrategien in Theorie und Praxis für den Zentralspeicher
Advertisements

Computersysteme in Überblick
Vom HW-Automaten zum Prozessor
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Kapitel 5 5 Rechnerorganisation
Kapitel 8 Speicherverwaltung
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory),  ist „beliebig“ groß,
SAP R/3 - Speichermanagement
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Agenda Die Hardwearkomponenten und ihre Funktionen - Mikroprozessor
Zentraleinheit CPU, Motherbord, RAM
Kapitel 8.1 Speicherverwaltung - Paging
Kapitel 8 Speicherverwaltung
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Kapitel 3 5 Rechnerorganisation
W. Oberschelp G. Vossen Kapitel 7.
Rechneraufbau & Rechnerstrukturen, Folie 10.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 10.
Aufbau und Funktionsweise von Prozessoren
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Technische Informatik II Wintersemester 2002/03
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
Raid 0.
Der Simple As Possible Computer
So arbeitet ein PC.
Speicherverwaltung durch Swapping
Aufbau eines Computers
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
INTEL Pentium 4 Prozessor
Lisa Gorkin, Barbara Herzgen, Fabian Küpper, Ailar Tehrani HG13 Köln / Steckkarten / Schnittstellen Hardwareprojekt.
Zuordnung CacheHauptspeicher
Kapitel 8.2 Speicherverwaltung: Paging Segmentierung
VP1 VP2 VP3 PP1.1 PP2.1 PP2.2 PP1.2 PP2.3 PP1.3 MMU VP1 VP2 VP3 PP1 PP4 PP6 MMU-Konfiguration für Prozess P1 Virtual Memory von P1 Physical Memory.
3.4 CPU-Chips und Busse CPU-Chips
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Computerorientierte Physik VORLESUNG
Aufgabe 1 In einem Mikroprozessorsystem mit 32-bit-Datenzugriff auf den Hauptspeicher ist ein Daten-Cache vorhanden. Das Laden des Caches erfolgt in Blöcken.
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Johann Baron von Neumann
Gruppe 2 MEMORY MANAGEMENT Jakob Dietschy Arnold Huber
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Central Processing Unit (Zentraleinheit)
Puffer-Verwalter (1) Aufgabe: Performanzkontrolle bzgl. Hauptspeichernutzung. Puffer-Verwalter versucht, Plattenzugriffe durch Vorhalten von häufig benötigten.
Agenda 1. Agenda 2. Mainboard 3.
Medizinische Statistik und Informationsverarbeitung Quade Institut für Medizinische Biometrie, Informatik und Epidemiologie.
Jakob Dietschy Arnold Huber Karl Philip Schneider Lukas Unterberger Daniel Dötzl Gruppe 2 MEMORY MANAGEMENT.

Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Bs Der Speicherverwalter Speicherverwalter (memory manager) = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page.
Bs Segmentierte Prozesse im virtuellen Speicher Zur Erinnerung:  Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen.
4.4 Speicherarchitektur E/AGeräte E/A-Einheiten Leitwerk Prozessor
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Prof. Dr. T. Kudraß1 Speicherverwaltung: Flash-Laufwerke.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
RAM (Random Access Memory)
RAM (Random Access Memory)
Vom Prozessor zum System
Vom HW-Automaten zum Prozessor
 Präsentation transkript:

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme in Overlays, die auf der Festplatte gespeichert waren und dynamisch ein- und ausgelagert wurden. Problem: Programmierer muss Programme in kleine, modulare Teile aufspalten und das Rein- und Auslagern organisieren. Kap. 4.1

Virtueller Speicher und Cache: Gemeinsamkeiten Virtueller Speicher (VS) Ziel: Programmcode, Daten und Laufzeitkeller dürfen zusammen größer sein als der verfügbare Arbeitsspeicher. VS spiegelt einen (fast) beliebig großen Arbeitsspeicher von (fast) dessen Geschwindigkeit vor. Betriebssystem hält die “benötigten” Speicherbereiche im Arbeitsspeicher. Die anderen Bereiche liegen auf der Festplatte. Bei Zugriff auf fehlenden Bereich: Laden und Ersetzen einer Seite (page). Profitiert von Lokalität des Verhaltens. Cache Cache spiegelt einen schnellen Speicher von der Größe des Arbeitsspeichers vor. Cache-Verwaltung hält “benötigte” Speicherblöcke im Cache. Die anderen Blöcke liegen im Arbeitsspeicher. Bei Zugriff auf fehlende Adresse: Laden und Ersetzen eines Speicherblocks. Profitiert von Lokalität des Verhaltens. Kap. 4.1

Virtueller Speicher und Cache: Unterschiede zwei Arten von Adressen: logische (virtuelle) Adressen im Programm physikalische Adressen für Speicherzellen Übersetzung logische  physikalische Adressen bei jedem Zugriff Cache identische Adressen für Speicherzellen in Cache und Arbeitsspeicher, Cache ist “transparent” für den Programmierer Kap. 4.1

Virtueller Speicher: Organisation Virtueller und physischer Adressraum werden aufgeteilt in Blöcke gleicher Größe, im virtuellen Speicher Seiten (pages), im physischen Speicher Rahmen (frames) genannt. Ein Rahmen kann also eine Seite aufnehmen. Eine Seite ist die Einheit der Speicherbelegung und des Austauschs. Typische Seitengrößen: 2 – 16 KB. Kap. 4.1

Adressierung z.B. bei virtuellen 32-Bit-Adressen (d.h. 4-GB virtueller Adressraum) und Seitengröße s = 4096 Bytes: virtuelle Adresse: 20 12 page = (virtuelle) Seitennummer offset = Distanzadresse page offset  je Prozess maximal 220 Seiten à 4096 Bytes Kap. 4.1

Seitentabelle Für jeden aktiven Prozess verwaltet das Betriebssystem eine Seitentabelle. Für jede Seite des Prozesses gibt es einen Tabelleneintrag mit Inhalt: 1 Bit, resident, welches angibt, ob Seite im Hauptspeicher, 1 Bit, dirty, welches angibt, ob Inhalt verändert wurde, falls Seite im Hauptspeicher ist: Rahmennummer falls Seite nicht im Hauptspeicher ist: Plattenspeicheradresse weitere Information über Speicherschutz Kap. 4.1

Seitentabellen Register PTR zeigt auf die Basisadresse der Seitentabelle. p-ter Eintrag enthält Basisadresse, frame, des Rahmens für die Seite p, wenn Seite p im Speicher ist. *(PTR+p) zeigt auf Rahmen mit Basisadresse frame Adress-Übersetzung: address_map(p,d) { pa = *(PTR+p)+d; return pa } Die Seitentabelle für eine Adressraum von 4GByte bei einer Seitengröße von 4KByte hat 220 Einträge? Problem? Lösung? Pro Eintrag 4 Byte, dann 4MByte Kap. 4.1

Übersetzung: virtuelle in physische Adressen Hauptspeicher page offset Seitentabelle frame frame offset Jeder Speicherzugriff braucht eine Indirektion und eine Addition. Aufwendig! Kap. 4.1

Seitenaustausch (Demand paging) Seiten werden geladen, wenn gebraucht Bit resident, in der Seitentabelle gibt an, ob Seite aktuelle geladen ist Seitenfehler passiert bei Zugriff auf nicht geladene Seite address_map(p, w) { if (resident(*(PTR+p))) { pa = *(PTR+p)+w; return pa; } else page_fault; } Wird fehlende Seite geladen, muss evtl. eine Seite verdrängt werden  Ersetzungsstrategie, z.B. LRU. Ist in der verdrängten Seite das dirty Bit gesetzt, muss die Seite zurück geschrieben werden. Kap. 4.1

Beschleunigung des Zugriffs Wie kann man den Aufwand für die Indirektion vermeiden? Cache für die zuletzt zugegriffenen Seitentabelleneinträge, Tanslation Lookaside Buffer, TLB voll assoziativ 8 – 64 Einträge Statt Indirektion durch den Speicher und Addition parallele Suche in TLB, Dauer wenige Zyklen. Hitrate typischerweise bei 99% Laden von (page, frame) bei erstem Zugriff, aber Miss Penalty sehr groß, auf PowerPC 755: 12 reads, 1 write, 520 Zyklen Voraussagbarkeit? Kap. 4.1

w = writable bit – für Zugriffsschutz u page frame w d d = dirty bit w = writable bit – für Zugriffsschutz u = used bit: wird bei Verdrängung eines Eintrags durch einen neu benötigten Eintrags in allen Registern gelöscht und bei der Benutzung eines Eintrags in dessen Register gesetzt. Beim nächsten Verdrängen wird dort verdrängt, wo u nicht gesetzt ist, dabei d in Seitentabelle zurück schreiben!) Wenn u überall gesetzt ist, wird irgendwo verdrängt ! Kap. 4.1

Schwankung derSpeicherzugriffszeiten D-Cache Arbeitsspeicher Seiten- tabelle virtuelle Adresse a b TLB Cache arbeitet mit virtuellen Adressen! Kap. 4.1

Schwankung der Speicherzugriffszeiten Seiten- fehlerer Arbeitsspeicher Seiten- tabelle virtuelle Adresse TLB- Miss Seiten- treffer base +a a b TLB- Hit D-Cache a base + TLB Cache- Hit Cache arbeitet mit physischen Adressen! CPU Kap. 4.1

VS-Übergänge und ihre Kosten lade Seite TLB(a) D-Cache(PT<a> PT(a) PT(a) D-Cache(PT<a> TLB(a) Seitenfehler c tlb lade D-Cache lade TLB PT(a) D-Cache(PT<a> TLB(a) Kap. 4.1

VS-Übergänge und ihre Kosten TLB(a) D-Cache(tr<a>) PT(a) TLB(a) D-Cache(tr<a>) PT(a) lade Seite pf schlechtester Fall übersetze addr + load pte in TLB ma Lade Daten aus Speicher (Daten auch in den D-Cache) bester Fall TLB(a) D-Cache(tr<a>) PT(a) TLB(a) D-Cache(tr<a>) PT(a) cm = ma ch Kap. 4.1

Prozessor-Speicher-Schnittstelle Register: Memory Address Register (MAR) Verbunden mit Adress Bus Gibt Adresse für Laden aus oder Speichern in Speicher an Memory Buffer Register (MBR) enthält Inhalt der geladen wurde oder geschrieben werden soll Signale: writeEnable – gesetzt, wenn MBR an M[MAR] geschrieben werden soll, readEnable – gesetzt, wenn M[MAR] in MBR geladen werden soll. Prozessor (CPU) ALU Steuerwerk MAR MDR re we Systembus Haupt- speicher Kap. 4.1

Befehlsholen (Instruction Fetch) Zustand vorher: Adresse des nächsten Befehls ist in PC t1: MAR <- PC; t2: MBR <- M[MAR]; PC <- PC +1; t3: IR <- MBR; (tx = Takt) oder t3: PC <- PC +1; IR <- MBR; Addresse (MAR) platziert auf Adress-Bus Steuereinheit sendet ReadEnable-Signal Resultat aus dem Speicher erscheint auf dem Datenbus Inhalt des Datenbus wird ins MBR kopiert PC um 1 erhöht (parallel zum Speicherladen) Befehl wird aus MBR ins IR gebracht Zustand nachher: MBR ist wieder frei Kap. 4.1