Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Ähnliche Dokumente
Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Grundlagen der Rechnerarchitektur

Einführung in die technische Informatik

Technische Informatik 2 Speichersysteme, Teil 3

Memory Management. Peter Puschner Institut für Technische Informatik

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

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur

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

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Grundlagen der Rechnerarchitektur

Übung zu Grundlagen der Betriebssysteme. 13. Übung

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

Technische Informatik 2 Speichersysteme, Teil 2

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

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Hardware Virtualisierungs Support für PikeOS

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

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

DIPLOMVERTEIDIGUNGSVORTRAG

Vorlesung 14 Speichersysteme (2)

Grundlagen der Informatik III

Rechnernutzung in der Physik. Betriebssysteme

N Bit binäre Zahlen (signed)

Rechnerarchitektur und Betriebssysteme (CS201): Virtual Memory

MMU Virtualisierung. ISE Seminar Thomas Schaefer 1

Die Mikroprogrammebene eines Rechners

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert 20. Juni 2007

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Hardware-basierte Virtualisierung

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

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Memory Management Units in High-Performance Processors

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Die Marvel, ein gedrosselter Supercomputer

Kapitel 9 Hauptspeicherverwaltung

Caching Handbuch. Auftraggeber: Version: 01. INM Inter Network Marketing AG Usterstrasse 202 CH-8620 Wetzikon

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Grundlagen verteilter Systeme

Betriebssysteme Teil 6: Hardware-Schicht II

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

B1 Stapelspeicher (stack)

Betriebssystemschichten ( )

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Hardware-basierte Virtualisierung

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS Teil 4/ProtectionI

5 Speicherverwaltung. bs-5.1 1

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

Protected User-Level DMA in SCI Shared Memory Umgebungen

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

5.Vorlesung Betriebssysteme Hochschule Mannheim

Implementing Cooperative Prefetching and Caching in a Globally-Managed Memory System

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

Embedded-Linux-Seminare. Linux als Betriebssystem

Desktop Virtualisierung. marium VDI. die IT-Lösung für Ihren Erfolg

Vorlesung "Struktur von Mikrorechnern" (CBS)

Ein Laufzeitsystem für hochgradig parallele Simulationen

Rechnerstrukturen: VO, WS 2012/13 Teil 2 Kapitel 5 Kapitel 7

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Neues in Hyper-V Version 2

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

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

Kapitel II. Computersysteme (1) Einführung: Hardware und Software. Bauteile eines einfachen PCs

4.3 Hintergrundspeicher

x86 Open Source Virtualisierungstechniken Thomas Glanzmann

Codesigned Virtual Machines

Technische Informatik 1

Rechnerarchitekturen und Betriebssysteme (CS201): Dateisysteme II Virtual Memory

PostgreSQL Hardware und RAM Tuning

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

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

Windows CE. Process Control and Robotics. Fabian Garagnon

Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HS Transactional Memory. Vortrag von Erdin Sinanović

4D Server v12 64-bit Version BETA VERSION

Firebird Database Cache Buffer

Operating System Kernels

Systeme 1. Kapitel 9.2. Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme

Frage 1: Betriebssysteme Gesammelte Prüfungsfragen des Jahres 2013 Stand Jänner 2014

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Zyklus: FETCH, DECODE, FETCH OPERANDS, UPDATE INSTRUCTION POINTER, EXECUTE

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Betriebssysteme KU - Einführungstutorium

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

6 Speicherverwaltung

138 Verteilte Betriebssysteme, Winter 2005 Verteilet Systeme, Universität Ulm, M. Schöttner

kreative OS Betriebssystem Projekt Ubiquitous Computing II (WS 2009)

Computer-Architektur Ein Überblick

OpenCL Implementierung von OpenCV Funktionen

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux

Assembler-Programmierung

Transkript:

Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle Strategie ist Write Back, d.h. nur, wenn die Seite von einer anderen in den Swap Space verdrängt wird, wird diese auch in den Swap Space geschrieben. Auch das ist immer noch gleich so teuer, kommt aber seltener vor. Muss man eine verdrängte Seite eigentlich immer zurückschreiben? Nur, wenn diese verändert wurde. CPU muss bei jedem schreibenden Zugriff auf eine Page in der Page Table ein Dirty Bit setzen. SS 2012 Grundlagen der Rechnerarchitektur Speicher 53

Beobachtung für jeden Speicherzugriff Virtueller Speicher ist aufwendiger als direkter physikalischer Zugriff Erst nachschlagen der Page im Speicher. Dann Zugriff auf den Speicher. Wie kann man das soweit wie möglich beschleunigen? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 54

Der Translation Lookaside Buffer (TLB) Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 55

Protection mittels virtuellem Speicher Virtueller Speicher erlaubt, dass mehrere Prozesse auf denselben physikalischen Speicher zugreifen. Es ist unter Umständen sinnvoll, den Speicherbereich vor Schreibzugriff zu schützen. TLB und Page Table speichern ein extra RW Bit. (1) Wer setzt dieses RW Bit? (2) Wie setzt man dieses Bit? Zu (1): Ein Betriebssystem Prozess. Zu (2): Einfache Maschineninstruktionen? Problem: Jeder kann dann das Bit setzen. Prozess 1 Page Prozess 2 SS 2012 Grundlagen der Rechnerarchitektur Speicher 56

Betriebsmodi einer CPU Häufig zwei unterschiedliche Betriebsmodi: Normaler Betriebsmodus Kernel (oder auch Supervisor) Mode CPU erlaubt die Ausführung bestimmter Maschinen Instruktionen nur im Kernel Mode. Page Tables werden im physikalischen Speicher abgelegt, auf den kein anderer virtueller Adressraum zeigt. Wie erreicht man den Kernel Mode? Es muss verhindert werden, dass jeder die CPU in diesen Modus versetzen kann. Üblicher Weg: System Call. Erinnerung: damit kann man eine Betriebssystemfunktion aufrufen. Mit System Call wird eine Exception ausgelöst und an eine Speicherstelle gesprungen, die nur in Kernel Mode zugreifbar ist. SS 2012 Grundlagen der Rechnerarchitektur Speicher 57

Was passiert bei einem Page Fault noch? Aktueller Prozess kann die Instruktion, die den Page Fault ausgelöst hat, nicht weiter ausführen. Betriebssystem kann einem anderen Prozess die CPU zur Verfügung stellen. Sobald die Page geladen ist, kann dem ursprünglichen Prozess die CPU wieder zur Verfügung gestellt werden. Hierzu muss der ursprüngliche Prozesskontext wieder hergestellt werden; unter anderem natürlich der PC auf die Instruktion gesetzt werden, die den Page Fault verursacht hatte. SS 2012 Grundlagen der Rechnerarchitektur Speicher 58

Randbemerkung: Segmentierung Bisher haben wir feste Blockgrößen betrachtet. Es gibt auch ein Konzept mit variablen Blockgrößen: Segmentierung. Adresse besteht aus Segment Nummer und Segment Offset: Anfang kann auf einen beliebigen Startpunkt im Speicher zeigen. Die physikalische Adresse ergibt sich aus Anfang + Offset. Segmente können beliebig lang sein; benötigt auch Bounds Check. Bildquelle: http://de.wikipedia.org/wiki/segmentierung_(speicherverwaltung) SS 2012 Grundlagen der Rechnerarchitektur Speicher 59

Parallelität und Caches SS 2012 Grundlagen der Rechnerarchitektur Speicher 60

Cache Kohärenz Problem CPU 1 (oder Core 1) CPU 2 (oder Core 2) Cache Cache Speicher Zeitschritt Event Cache Inhalt für CPU A Cache Inhalt für CPU B Speicherinhalt für Adresse X 0 0 1 CPU 1 liest X 0 0 2 CPU 2 liest X 0 0 0 3 CPU 1 speichert 1 nach X 1 0 1 SS 2012 Grundlagen der Rechnerarchitektur Speicher 61

Wann gilt ein Cache als kohärent? 1. Lesen von Speicherstelle X nach schreiben in Speicherstelle X sollte den geschriebenen Wert zurück geben, wenn kein weiterer Prozess auf die Stelle X geschrieben hat. 2. Nachdem ein Prozess in Speicherstelle X geschrieben hat, sollte nach einer gewissen Zeit jeder Prozess den geschriebenen Wert in X vorfinden. 3. Zwei Schreiboperationen von zwei Prozessen in die Speicherstelle X sollte von jedem Prozess in der gleichen Reihenfolge gesehen werden. (Schreiben ist serialisiert) SS 2012 Grundlagen der Rechnerarchitektur Speicher 62

Wie erreicht man Kohärenz? Write Invalidate Protokoll: Wenn ein Prozess in einen Speicherstelle schreibt wird die Speicherstelle in den Caches aller anderen Prozesse invalidiert. Busaktivität Inhalt des Caches von CPU A Inhalt des Caches von CPU B CPU A liest X Cache Miss für X 0 0 CPU B liest X Cache Miss für X 0 0 0 CPU A schreibt 1 nach X Cache Invalidierung für X 1 1 CPU B liest X Cache Miss für X 1 1 1 Prozessoraktivität Speicherinhalt für X Wie wird das Invalidieren technisch erreicht? Snooping: Jeder Cache Controller überwacht den gemeinsamen Bus, ob auf einen eigenen gecachten Inhalt geschrieben wird. 0 SS 2012 Grundlagen der Rechnerarchitektur Speicher 63

Zusammenfassung und Literatur SS 2012 Grundlagen der Rechnerarchitektur Speicher 64

Zusammenfassung Cache Ziel: Speicher so groß wie auf unterstem Level aber annähernd so schnell wie auf höchstem Level. Warum funktionieren Caches überhaupt so gut? Lokalitätsprinzip. Virtueller Speicher ist prinzipiell das selbe wie ein Cache. Auch hier gelten dieselben Cache Prinzipien (z.b. Lokalität) Insgesamt ergibt sich eine Hierarchie von Caches. Caches sind prinzipiell vor der Software unsichtbar. Dennoch ist es sinnvoll diese in der Software zu beachten (z.b. Speicherblöcke in Schleifen Cachegünstig durchlaufen, Prefetching) SS 2012 Grundlagen der Rechnerarchitektur Speicher 65

Literatur [PattersonHennessy2012] David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 5.1 Introduction 5.2 The Basics of Caches 5.3 Measuring and Improving Cache Performance 5.4 Virtual Memory 5.8 Parallelism and Memory Hierarchies: Cache Coherence SS 2012 Grundlagen der Rechnerarchitektur Speicher 66