Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

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

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

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

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

Einführung in die technische Informatik

Vorlesung "Struktur von Mikrorechnern" (CBS)

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Technische Informatik 2 Speichersysteme, Teil 3

Kapitel VI. Speicherverwaltung. Speicherverwaltung

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

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

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

Teil IX. Adressraum und Arbeitsspeicher

Memory Management. Peter Puschner Institut für Technische Informatik

5 Speicherverwaltung. bs-5.1 1

6.6 Persistenter virtueller Speicher

bereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.

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

Kapitel 9 Hauptspeicherverwaltung

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

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

4 Speichern und Adressieren

Klausur zur Mikroprozessortechnik

4.3 Hintergrundspeicher

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

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

OPERATIONEN AUF EINER DATENBANK

Systemvoraussetzungen und Installation

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

Technische Informatik 2 Adressierungsarten

2. Darstellung von Information im Computer

Vordefinierte Elemente (CI)

STORAGE. Martin Schmidt Berufsschule Obernburg

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

6.2 FAT32 Dateisystem

Rechnernutzung in der Physik. Betriebssysteme

Zugriff auf die Modul-EEPROMs

Betriebssysteme Kap A: Grundlagen

Hardware Virtualisierungs Support für PikeOS

Technische Informatik 2 Speichersysteme, Teil 2

Nachholklausur Informatik II

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

Wenn alle Referenzbits gleich 1, wird nach FIFO entschieden

Grundlagen der Rechnerarchitektur

Aufbau und Funktionsweise eines Computers

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King Braunschweiger Linux-Tage Seite 1/16

DIPLOMVERTEIDIGUNGSVORTRAG

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Beschreibung EtherNet/IP Prozessschnittstelle

Lerndokumentation. Arbeitsspeicher. Lerndokumentation Arbeitsspeicher. Ausbildung Vorlehre Informatik. Autor: Ramon Schenk

UEFI. Unified Extensible Firmware Interface UEFI. OSP 2015 UEFI Rene Brothuhn Seite: 1

Memory Management Units in High-Performance Processors

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Alle Speicherplatinen können als Programm- bzw. Arbeitsspeicher

Mimosa NearPoint Mailarchivierung. Dokumentation Mimosa. Stand Dezember 2010

Grundlagen der Rechnerarchitektur. Einführung

UNIX Dateirechte. Michael Hartmann. 7. Oktober Linux User Group Augsburg

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

MMU Virtualisierung. ISE Seminar Thomas Schaefer 1

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

B1 Stapelspeicher (stack)

Benutzerdokumentation Hosted Backup Services Client

Anwendertreffen 20./21. Juni

Die Mikroprogrammebene eines Rechners

5.Vorlesung Betriebssysteme Hochschule Mannheim

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Prozessarchitektur einer Oracle-Instanz

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Instruktionssatz-Architektur

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Prozessor HC680 fiktiv

1 Aufgaben zu Wie funktioniert ein Computer?

IPv6 Vorbereitungen auf die neuen IP-Adressen

Dämon-Prozesse ( deamon )

Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A) MODUL B4 Datenbausteine

Installieren von Betriebssystemen

Migrationsanleitung von 2.0 auf 2.1

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

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

WPA. Windows Process Accounting V3.2

Implementierung von Dateisystemen

-Wir stellen Ihnen aktuelle Prüfungsfragen für die Themengebiete Microsoft, IBM, Oracle, Citrix, Novell, Apple, HP und Cisco zur Verfügung!

Betriebssystemschichten ( )

EINSATZ VON MICROSOFT TERMINAL-SERVICES ODER CITRIX METAFRAME

theguard! ApplicationManager (Version 2.4)

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Projektphasen und Technische Vorbereitung eines NX Refiles mit dem PLMJobManager

Adressen der BA Leipzig

Leistungsanalyse von Rechnersystemen

Bedienungsanleitung DP3 Report

ONLINE-BACKUP. Seminar IT-Administration Olaf Nalik. Philipps-Universität Marburg FB Mathematik & Informatik

Aktuelle Themen der Informatik: Virtualisierung

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

PVFS (Parallel Virtual File System)

Partitionieren und Formatieren

Lokales Storage Teil 1

Transkript:

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Grundlegende Bedeutung von Speicheradressierung: Wie sind die Daten auf Dem Speicher abgelegt? Wie kann ich effizient auf die Daten zugreifen?

Wie sind die Daten auf dem Speicher abgelegt? Linear Segmentiert Gekachelt

Lineare Speicherung Daten werden linear auf dem Speicher abgelegt Bei Löschen oder Änderung der Größe evtl. Neusortierung des gesamten Speichers nötig

Segmentierte Speicherung Daten werden in Segmenten verschiedener Größe auf dem Speicher abgelegt Enormer Verwaltungsaufwand bei zu geringer Segmentgröße Reihenfolge der Segmente nicht zwingend vorgegeben Bei Änderungen muss evtl. nur dem entsprechendem Segment ein neuer Speicherplatz zugeordnet werden Verschwendung von Speicherplatz bei ineffizienter Sortierung der Segmente

Gekachelte Speicherung Speicher wird in festgesetzte gleiche Teile Partitioniert (Kacheln) Daten werden als Seiten mit identischer Größe (4 KB) in den Kacheln auf dem Speicher abgelegt Reihenfolge der Kacheln ist linear Änderung der Daten erfordert keine Umsortierung des Speichers, lediglich die Verwaltungstabellen müssen aktualisiert werden Verschwendung von Speicherplatz und Verwaltungsaufwand abhängig von Größe der Kacheln

Wie kann ich effizient auf die Daten zugreifen? Lineare Adressierung Segmentierung Seitenadressierung (Paging( Paging)

Lineare Adressierung: Eine 32-bit Integer, die die Adresse der Speicherzelle enthält (bis zu 4 GB Speicher ansprechbar) Üblicherweise in hexadezimaler Schreibweise dargestellt Enormer Verwaltungsaufwand Unübersichtlich

Segmentierung: Daten werden über logische Adressen (Segmentselektoren)) verwaltet Werden in speziellen Registern verwaltet Enthalten Adresse des Segmentdeskriptors Enthalten Lage der Daten innerhalb des Segments (Offset( Offset) Identifikation und Adressierung des Segments geschieht mittels eines Segmentdeskriptors Werden in speziellen Tabellen verwaltet Dienen auch der Kontrolle der Zugriffsrechte Speicherzugriff wird von CPU-interner Segmentierungseinheit durchgeführt

Segmentierungseinheit TI-Feld des Segmentselektors gibt an in welcher Tabelle der Deskriptor liegt mit der Basisadresse von GDT/LDT und Index von Segmentselektor wird Lage von Deskriptor innerhalb der Tabelle ermittelt Adresse aus BASE-Feld des Deskriptors wird mit Offset des Selektors addiert um physische Adresse der Daten innerhalb des Segments zu ermitteln + x8 Index GDT / LDT TI lineare Physische Adresse Deskriptor + Offset

Seitenadressierung (Paging( Paging): Daten werden über logische Adressen verwaltet Zugriff auf Seitenadressierungsstrukturen über Register Einträge in Verzeichnissen und Tabellen sind identisch aufgebaut Drei Arten von Seitenadressierung Reguläre Seitenadressierung Erweiterte Seitenadressierung Drei-Stufen Stufen-SeitenadressierungSeitenadressierung

Reguläre Seitenadressierung : Seiten/Kacheln sind 4 KB groß Logische Adresse ist in 3 Felder unterteilt: Verzeichnis (10-Bit) verwaltet die Seitentabellen Tabelle (10-Bit) verwaltet die Seiten Offset (12-Bit) adressiert die Daten innerhalb der Seite Seitenverzeichnis kann somit 1024 x 1024 x 4096 = 2³² Speicherzellen adressieren

Reguläre Seitenadressierung Die Seitenadressierungs-Einheit ermittelt physische Adresse der Daten innerhalb der Kachel cr3 + + Seitenverzeichnis Seitentabelle + Seite 31 22 Verzeichnis 21 12 Tabelle 11 0 Offset

Erweiterte Seitenadressierung : Seiten/Kacheln sind 4 MB groß Größere linear zusammenhängende Datenfelder können mit weniger Verwaltungsaufwand auch zusammenhängend auf Speicher gelegt werden Logische Adresse ist in 2 Felder unterteilt: Verzeichnis (10-Bit) verwaltet die Seiten Offset (22-Bit) adressiert die Daten innerhalb der Seite Seitenverzeichnis kann immer noch 1024 x 2²² = 2³² Speicherzellen adressieren

Erweitere Seitenadressierung cr3 + Seitenverzeichnis + 4 MB Seite 31 22 Verzeichnis 21 0 Offset

Hardwareerweiterungen für effizientere Seitenadressierung Probleme durch schnelle CPU und verhältnismäßig langsamerer Arbeitsspeicher Mögliche Lösungen: Hardware Cache TLB (Translation( Lookaside Buffer)

Hardware Cache Kleiner schneller Speicher zwischen CPU-Registern und Arbeitspeicherzellen Zeilenorientierte Verwaltung von häufig genutzten Daten Globale Aktivierung durch Register in der Seitenadressierungseinheit Trotzdem individuelle Nutzung des Cache für jede Seite durch Deskriptorfunktionen (PCD/PWT PWT-Flags) der Seitenverzeichnisse/-tabellen tabellen möglich

TLB Im Prinzip wie Cache Speichert keine Daten sondern physische Adressen Keine wiederholte Berechnung ein und derselben physischen Adresse nötig Evtl. muss automatische Aktualisierung des TLB durch die Seitenadressierungseinheit durch das System unterbunden werden (z.b. bei Wechsel von Prozessen die auf die gleichen Tabellen zugreifen)

in Linux Segmentierung in Linux Segmentierung nur begrenzt angewendet Überlegenheit von Seitenadressierung Einschränkung der Segmentierung durch große Bandbreite an Architekturen die Linux bedient Alle Prozesse nutzen die gleichen logischen Adressen Gesamtanzahl an Segmenten ist begrenzt Alle Segment-Deskriptoren können in der GDT gespeichert werden LDTs können trotzdem von Prozessen erzeugt werden

in Linux Segmentierung in Linux Einträge des GDT in Linux: Kernel Code Segment Kernel Daten Segment User Code Segment User Daten Segment Ein Prozess-Zustands Zustands-Segment (TSS) je Prozess Ein Standard-LDT LDT-Segment genutzt von allen Prozessen 4 Segment-Deskriptoren für erweiterte Energieverwaltung 4 ungenutzte Einträge des GDT

in Linux Segmentierung in Linux Wichtige Punkte im Deskriptor des Kernel- Code/Daten /Daten-Segments G-Flag des Deskriptors auf 1 gesetzt, für Segmentgröße in Seiten System-Flag auf 1 gesetzt, für Code-/Daten /Daten-Segment DPL-Flag auf 0 gesetzt,für Kernel Modus D/B-Flag auf 1 gesetzt, für 32-Bit Bit-Offset im Segmentselektor Einziger Unterschied bei Type: 0xa für Code-Segment 2 für Daten-Segment 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BASE (24-31) G 0 A V L LIMIT (16-19) S P D P L S = TYPE BASE(16-23) BASE (0-15) LIMIT (0-15) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

in Linux Segmentierung in Linux Wichtige Punkte im Deskriptor des User- Code/Daten-Segment G-Flag des Deskriptors auf 1 gesetzt, für Segmentgröße in Seiten System-Flag auf 1 gesetzt, für Code-/Daten /Daten-Segment DPL-Flag auf 3 gesetzt, für User Modus D/B-Flag auf 1 gesetzt, für 32-Bit Bit-Offset im Segmentselektor Einziger Unterschied bei Type: 0xa für Code-Segment 2 für Daten-Segment 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BASE (24-31) G 0 A V L LIMIT (16-19) S P D P L S = TYPE BASE(16-23) BASE (0-15) LIMIT (0-15) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

in Linux Segmentierung in Linux Wichtige Punkte im Deskriptor des TSS G-Flag des Deskriptors gelöscht, da Größe in Bytes Das Limit-Feld wird auf 0xeb, da TSS 236 Bytes groß DPL-Flag auf 0 gesetzt, da User keinen Zugriff auf TSS haben 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BASE (24-31) G 0 A V L LIMIT (16-19) S P D P L S = TYPE BASE(16-23) BASE (0-15) LIMIT (0-15) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

in Linux Segmentierung in Linux Standard LDT-Segment Beinhaltet lediglich Null-Segment Segment-Deskriptor Falls Prozess richtigen LDT benötigt, wird ein 4096-Byte Byte-Segment erstellt Standard-LDT LDT-Segment-Deskriptor im GDT wird durch neuen spezifizierten Deskriptor ersetzt

in Linux Segmentierung in Linux Weitere Einträge im GDT GDT enthält für jeden existierenden Prozess je einen Segment-Deskriptor für das TSS-Segment Segment und das LDT-Segment des jeweiligen Prozesses GDT kann 4090 dieser Prozesseinträge verwalten Für jeden Prozess existiert ein Prozess-Deskriptor im Kernel-Data Data-Segment,, der sein eigenes TSS und einen Zeiger zu seinem, ebenfalls im KDS enthaltenen LDT-Segment

in Linux Seitenadressierung in Linux Seitenadressierung bevorzugt angewendet Aufgrund der angestrebten Lauffähigkeit von Linux auf verschiedenen Architekturen Nutzung von Drei-Stufen Stufen-SeitenadressierungSeitenadressierung auf 64-Bit Bit- Basis Noch kein Standard Lediglich 43 Bits werden genutzt 13-Bit Bit-Feld Offset Drei 10-Bit Bit-Felder (Globales Seitenverzeichnis, Mittleres Seitenverzeichnis, Seitentabelle) Mehr und größere Seiten adressierbar Verwendung bei Multiprozessverwaltung

in Linux Seitenadressierung in Linux Drei-Stufen Stufen-SeitenadressierungSeitenadressierung Globales Seitenverzeichnis Mittleres Seitenverzeichnis Seitentabelle Seite cr3 + + + + + Globales Verzeichnis Mittleres Verzeichnis Tabelle Offset

in Linux Seitenadressierung in Linux Multiprozessverwaltung Jeder Prozess besitz eigenes Globales Seitenverzeichnis zur Verwaltung prozesseigener Daten und Codes Trennung prozesseigener Adressräume, kein Mischen mit fremden Daten Einfache Ein- und Auslagerung aller wichtigen Elemente eines Prozesses, da in einem Adressblock enthalten Einfache und schnelle Prozessumschaltung möglich ohne Umordnung von geteiltem Speicher

in Linux Seitenadressierung in Linux Multiprozessverwaltung Sichere Verwaltung von verschiedenen Prozessen durch Aufteilung des Adressraumes des Arbeitsspeichers durch Prozess-Seitentabellen User-Bereich Kernel-Bereich Bereich,,begrenztauf1GBdurchLinux Implementierung von Physischer Adresserweiterung (PAE) in die Seitenadressierungseinheit (64 GB adressierbar durch Adresspinerweiterung von 32 auf 36 Pins)

in Linux Seitenadressierung in Linux Kernel Seitentabellen Während Initialisierung des Systems erstellt Analyse der CPU und Setzen entsprechender Startwerte, z.b. Erweiterte Seitenadressierung aktiviert? PAE aktiviert? TLB oder Hardware Cache aktiviert? Dienen als Referenz für weitere Verzeichnisse und Tabellen die von ihnen abgeleitet werden

in Linux Seitenadressierung in Linux Reservierte Seitenkacheln Beginnen ab dem 2. MB des Arbeitsspeichers Enthalten Kernel-Code und Daten Sind unverschachtelt für schnellen Zugriff In der Regel bis zu 2 MB Gesamtgröße