Rechnerarchitektur und Betriebssysteme (CS201): Virtual Memory



Ähnliche Dokumente
Rechnerarchitektur und Betriebssysteme (CS201): Dateisysteme III, Speicherverwaltung, Microkernel

Rechnerarchitekturen und Betriebssysteme (CS201): Dateisysteme II Virtual Memory

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

5 Speicherverwaltung. bs-5.1 1

Einführung in die technische Informatik

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

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

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

Rechnerarchitektur und Betriebssysteme (CS201): Speicherverwaltung II, dyn. Linking + Loading, Microkernel, Virtualisierung

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Kapitel VI. Speicherverwaltung. Speicherverwaltung

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

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

4D Server v12 64-bit Version BETA VERSION

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Projekte Packen, Kopieren und Versenden

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Rechnerarchitekturen und Betriebssysteme (CS201): Einführungsveranstaltung

Betriebssysteme KU - Bewertung A2 - WS 15/16

Linux Paging, Caching und Swapping

Visio Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Tutorium Rechnerorganisation

8. Swapping und Virtueller Speicher

RO-Tutorien 15 und 16

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

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

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

MMU Virtualisierung. ISE Seminar Thomas Schaefer 1

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

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Kapitel 3 Frames Seite 1

Workshop: Eigenes Image ohne VMware-Programme erstellen

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

2. Darstellung von Information im Computer

Eigene Dokumente, Fotos, Bilder etc. sichern

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Memory Management. Peter Puschner Institut für Technische Informatik

Paravirtualisierung (2)

Kompetitive Analysen von Online-Algorithmen

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

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

Internet Explorer Version 6

1 Vom Problem zum Programm

Lizenzierung von System Center 2012

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

TIMI: Technische Informatik für Medieninformatiker

Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger

Zwei Möglichkeiten die TLB zu aktualisieren

Übung: Verwendung von Java-Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Windows x64. Wieso, Weshalb, Warum? Helge Klein

Erstellen einer digitalen Signatur für Adobe-Formulare

Rechnerarchitekturen und Betriebssysteme (CS201): Shared Libraries, Microkernel, Sandboxing und Virtualisierung

Verwaltung der MSATA-SSD bei HP Envy Ultrabook 4 und Ultrabook 6 mit Intel Smart Response Technologie

Virtueller Speicher und Memory Management

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

Anleitung zur Nutzung des SharePort Utility

Installationshinweise BEFU 2014

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

Grundlagen von Python

ANLEITUNG. Firmware Flash. Seite 1 von 7

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Installationsanleitung

TeamSpeak3 Einrichten

Computeria Solothurn

Computer-Architektur Ein Überblick

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Professionelle Seminare im Bereich MS-Office

Kleines Handbuch zur Fotogalerie der Pixel AG

Prozesse und Logs Linux-Kurs der Unix-AG

Internet online Update (Internet Explorer)

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

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

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

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

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Version 0.3. Installation von MinGW und Eclipse CDT

Handbuch B4000+ Preset Manager

i:mobile Installation und Produkt-Aktivierung

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

OPERATIONEN AUF EINER DATENBANK

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Eigene Seiten erstellen

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Formular»Fragenkatalog BIM-Server«

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

Adressen der BA Leipzig

Was meinen die Leute eigentlich mit: Grexit?

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Architecture

Java: Vererbung. Teil 3: super()

Hilfe zur Dokumentenverwaltung

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Verwendung des IDS Backup Systems unter Windows 2000

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

Transkript:

Rechnerarchitektur und Betriebssysteme (CS2): Virtual Memory 19 November 23 Prof Dr Christian Tschudin Departement Mathematik und Informatik, Universität Basel Wiederholung / Diskussion 1 Was ist ein inode? 2 Was ist ein file descriptor, die Tabelle dazu? 3 Was ist ein sparse file, wie implementiert? 4 Was ist ein file lock? c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 2/33

(Haupt-)Speicherverwaltung Idealisiertes Memory Layout für Unix (Bsp Linux) Kernel Virtual Memory Stack Memory-mapped region Memory-mapped region Memory-mapped region Run-time data Uninitialised data Initialised data Program text Memory invisible to user mode code the brk pointer Forbidden region Linux: linearer Adressraum Regionen: code (text) initial var (data) uninit var (bss) Heap Libraries Stack Kernel c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 3/33 Hauptspeicherverwaltung: Problemstellung Physikalischer Speicher begrenzt, oft zu klein Logischer (Speicher-) Adressraum abbilden auf physikalischen Speicher Wann wird einer Speicheradresse die Speicherzelle zugewiesen? Kompilation, Linking Laden des Programms Ausführen des Programmes Virtueller Speicher: Binding erfolgt zur Laufzeit, muss von der Hardware (bei jedem Zugriff) übersetzt werden c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 4/33

Repetition: Swapping Swapping = Disk-Auslagerung eines (ganzen) Prozesses Swapping = Unix: Swap-Partition, Windows: swap-datei operating system 1 swap out process P 1 2 swap in process P 2 user space backing store main memory c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 5/33 Virtueller Speicher Virtueller Speicher = Separierung des logischen Speichers von den physikalischen Speichermöglichkeiten (RAM, Harddisk) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 6/33

Virtueller Speicher (Forts) Prozesse ausführen, die grösser sind als der Hauptspeicher Prozess-Memory-Teile können sich befinden: im physikalischen Hauptspeicher auf Harddisk (swap space) Transfer zwischen Harddisk und Hauptspeicher: Swapping vs (Demand) Paging welches Programm/ Page ist im Haupt-/Sekundärspeicher? wann welches Programm/Page transferieren? c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 7/33 Memory Management: Paging In einem Multiprogrammiersystem: Mehrere Programme gleichzeitig im Speicher, nach Ausführung eines Programms entstehen nichtzusammenhängende Zonen mit freiem Speicher: wie zusammenführen? Physikalischer Speicher in Frames einteilen, logischer Speicher in Pages (Grösse: 05 bis 4 KB) Logischer Page-Bereich abbilden auf physikalische Frames Adressübersetzung c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 8/33

Paging (Forts) Paging = Memory Mgmt für nicht-zusammenhängenden Speicher CPU logical address p d f d physical address physical memory Abbildung von Pages (Speicher- Seiten ) auf Frames (Speicher- Rahmen ): Page Table p f page table Adressübersetzung durch Hardware: memory management unit (MMU) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 9/33 Memory Management: Page Table (Beispiel) frame number page 0 0 page 1 0 1 1 4 1 page 0 page 2 2 3 3 7 2 page 3 page table 3 page 2 logical memory 4 page 1 5 6 7 page 3 physical memory c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 10/33

Memory Management: Page Table Implementierung Page Table selbst benötigt 1 Frame, bleibt im Hauptspeicher Wird von MMU (memory management unit) bei jedem (!) Speicherzugriff ausgelesen Inhalte eines Page Table-Eintrages: Attribute (abgebildet oder nicht, read-only, swapped) Frame-Nummer (oder Block-Nummer falls ausgelagert) Nun zweifacher Speicherzugriff! Cache nötig: TLB (translation look-aside buffer) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 11/33 Valid/Accessed/Dirty Bits Page Table für die Buchhaltung Bisher in der Page Table: Frame-Nummer Zusätzliche Attribute: present-bit (dh im Hauptspeicher, gemapped) sonst: invalid, oder auf Harddisk #define _PAGE_PRESENT 0x0 #define _PAGE_PSE 0x080 #define _PAGE_RW 0x002 #define _PAGE_GLOBAL 0x100 #define _PAGE_USER 0x004 #define _PAGE_UNUSED1 0x200 #define _PAGE_PWT 0x008 #define _PAGE_UNUSED2 0x400 #define _PAGE_PCD 0x0 #define _PAGE_UNUSED3 0x800 #define _PAGE_ACCESSED 0x020 #define _PAGE_FILE 0x040 #define _PAGE_DIRTY 0x040 c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 12/33

Memory Management: mehrstufige Pagetables Bei grossem virtuellen Speicher werden die Page-Tables zu gross: 2 GB mit 4 KB-Pages: 05 M Einträge jeder Prozess braucht seine Tabelle deshalb mehrstufige Page Tables, erlaubt Löcher analog sparse files (siehe nächstes Slide) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 13/33 Memory Management: mehrstufige Pagetables 0 outer-page table 1 500 100 708 929 900 page of page table page table 1 100 500 708 900 929 memory c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 14/33

Memory Management: mehrstufige Pagetables (Forts) Beispiel: 4K Pages, 32-Bit-Architektur (32-Bit-Adressen) Aufteilung Page-Nummer: 20 Bits Page Offset: 12 Bits Page-Nummer in zwei Teile à je 10 Bits: addr (32 bits) = p1 (10 bits) p2 (10 bits) offs (12 bits) p1: Index in äusserer Page Table, p2: Index innerhalb der durch p1 referenzierten Page c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 15/33 Memory Management: Tricks mit Page Tables Shared Pages (shared code, shared memory): nur einmal im physikalischen Speicher vorhanden mehrfach in Adressraum von Prozessen eingeblendet Memory Protection: jeder Prozess hat sein eigener virtueller Speicher Zugriff ausserhalb der allozierten Zonen: Programmabbruch Dynamische Zuteilung: Stack und Heap: brk-limite Swapping: einzelne Seiten auf Harddisk auslagern, Info in Page-Table c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 16/33

Memory Management: Segmente / Pages Segment-Konzept: unterschiedliche Zonen (Code, Daten), deshalb Segmente Adresse = segment-descriptor + Offset CPU führt Buch über mehrere Segment: segment table (physikalischer) Ort des Stack-Segments, Code, OS etc implizite Referenzierung: Stack-Segment, Code-Segment Intel x86-architektur: ab x286: segments ab x386: paged segments Linux: linearer Adressraum (nur 1 Segment) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 17/33 Page Fault Virtueller Speicher grösser als physikalischer Speicher Hardware (MMU) erkennt Zugriff auf nicht gemappte Seiten page fault trap Betriebssystem kann Grund untersuchen: ungültiger Adressbereich (Zone)? Dies kann aufwendig sein (viele Zonen) Sonst demand paging : Seite wird vom Harddisk geholt c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 18/33

Ablauf bei Page Fault c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 19/33 Page Fault-Handling: Schwierigkeiten Restart des Befehls nötig Einfachster Fall: Page fault wegen Operand zuerst Page holen, dann Instruktion ausführen Schwieriger: Page fault wegen Resultat Operation muss nochmals ausgeführt werden Probleme mit Seiteneffekte (zb Y++) Noch grössere Seiteneffekte denkbar: Kopier-Operationen ganzer Speicherbereiche (zb teilweises Kopieren rückgängig machen?) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 20/33

Paged Kernel-Speicher? Können Teile des OS auch ge-paged werden? ja! Für Daten (zb Daten-Puffer) Prinzipiell auch für Code möglich, Performance c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 21/33 Copy-On-Write (COW) Prozess-Start unter UNIX fork(): Erzeugt neben dem Eltern- ein Kind-Prozess Dabei wird nur die Speicher-Map kopiert, nicht der Inhalt: Page Tables beider Prozesse zeigen auf selben Speicher Zusätzlich: das RW-Flag wird weggenommen (dh readonly page) Beim nächsten Page-Fault: dem Kind-Prozess eine eigene Kopie anfertigen beim Eltern-Prozess das RW-Flag wieder setzen c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 22/33

On-Demand Paging Seiten werden nur geladen, wenn sie benötigt werden Prozess starten: Speicher-Map initialisieren Data-Bereich füllen nur erste (Code-) Seite laden Kontrolle an Prozess übergeben Weitere (Code-) Seiten werden bedarfsweise (on demand) geholt c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 23/33 Zitat am Anfang der Veranstaltung vorgestellt The Linux memory manager implements demand paging with a copy-on-write strategy relying on the 386 s paging support A process acquires its page tables from its parent (during a fork()) with the entries marked as read-only or swapped Then, if the process tries to write to that memory space, and the page is a copyon-write page, it is copied, and the page is marked read-write An exec() results in the reading in of a page or so from the executable The process then faults in any other pages it needs Linux Kernel Hacker s Guide 05 c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 24/33

On Demand Paging Seiten-Ersetzung Multi-Programming: Wettstreit um freie Frames Falls mehrere Programme aktiv sind: wer bekommt wieviele Frames? welche Pages werden auf HD ausgelagert? Aktivität und Alter eine Seite: welche Seiten wurden angetastet (ACCESSED Bit)? least recently used (LRU)-Seite bestimmen Verschiedene Algorithmen, um sich LRU anzunähern (volles LRU wäre zu aufwendig) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 25/33 Thrashing Pageing funktioniert wegen der Lokalität ein Prozess arbeitet meistens mit wenigen Seiten diese Seiten verschieben sich langsam Falls ein Prozess zuwenig Seiten im Hauptspeicher hat: hohe page-fault Rate niedrige CPU-Nutzung Trashing: ein Prozess ist mit Paging (in und out) beschäftigt, tangiert auch andere Prozesse (weniger CPU und IO-Bandbreite) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 26/33

Thrashing (Fortsetz) CPU utilization thrashing degree of multiprogramming Dieses Verhalten kann durch simples Programm provoziert werden: definiere grosses Array (> physikalischer Hauptspeicher) randomisierter Zugriff auf einzelne Elemente des Arrays c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 27/33 Compiling, Linking, Loading Compiling: erzeugt Objektcode gewisse Adressen noch festzulegen (externe Funktionen) gewisse Adressen noch anzupassen (Relokation) Linking: erzeugt ein Binary löst noch offene externe Referenzen auf klassisch: static linking Loading: laden des Programms in den Hauptspeicher Memory-Allokation (ev nur wenige Seiten, falls demand paging) Relokation c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 28/33

Shared Libraries, Uebersicht Varianten Vorteile von shared libraries (*so): gleicher (phys) Speicher für mehrere Prozesse, systemweiter Upgrade einfach (1 Datei ändern, kein re-compilieren oder re-linken) Zusätzliche Definitionen nach Compiling, Linking und Loading : Dynamic Loading Dynamic Linking c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 29/33 Optimierung: Dynamic Loading Binaries können sehr gross werden wegen Libraries: verzögertes Laden bessere Speicherausnutzung: nicht benutzte Subroutinen nie laden Implementierung: Aufrufer überprüft zuerst, ob Routine schon geladen falls nein wird der run-time loader aufgerufen run-time loader aktualisiert interne Adress-Tabelle der Aufruf kann gemacht werden Keine OS-Unterstützung nötig: Linker kann dies implementieren c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 30/33

Optimierung: Dynamic Linking Mehrere Programme nutzen gleiche Subroutinen, deshalb nur einmal im Hauptspeicher ablegen: verzögertes Linken OS muss Unterstützung geben (getrennte Adressräume): führt Liste aller Libraries, die geladen sind Zu Link-Time Vorkehrungen treffen: Library-Aufruf geht an eine Ersatz-Routing ( Stub ) Stub muss Subroutine lokalisieren oder zuerst noch laden anschliessend ersetzt sich der Stub ab dann direkter Sprung in die Routine c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 31/33 Dynamic Linking Implementierung Linux: OS muss den Ort der Libraries kennen: ldconfig, und /etc/ldsoconf Siehe auch ldso (dynamic linker/loader) Um den Auflösungsprozess zu analysieren: ldd Windows: DLL (dynamically linked library) c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 32/33

Abschluss Speicherverwaltung: Memory Mapping Weitere Tricks mittels Memory Mapping Shared Memory: schnelle Interprozess-Kommunikation (IPC) kein Umkopieren wie bei Pipes Memory Mapped Files ganze Datei in Speicher abbilden Paging sorgt dafür, dass nur benötigte Blöcke geladen werden c Christian Tschudin CS2 Rechnerarchitektur und Betriebssysteme, 23-11-19, 33/33