Bs-5.61 5.6 Segmentierte Prozesse im virtuellen Speicher Zur Erinnerung:  Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen.

Slides:



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

Kapitel 8 Speicherverwaltung
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Befehlssatz und Struktur
2.3 Register-Transfer-Strukturen
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.
6.6 Persistenter virtueller Speicher
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory),  ist „beliebig“ groß,
Kapitel 26 BS-Kerne Laufzeitplattform = abstrakte Maschine für den Anwender Komfortabler Zugang Geschützte Adreßräume Traps, privilegierter Zustand Monolithische.
2 Systemdienste Wiederholungsempfehlung: Rechnerorganisation Beachte: Systemaufrufe sind sprachunabhängig. Ihre Beschreibung bezieht sich daher auf das.
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
On a Buzzword: Hierachical Structure David Parnas.
Kapitel 8.1 Speicherverwaltung - Paging
Kapitel 8 Speicherverwaltung
Aufbau und Funktionsweise von Prozessoren
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
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 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Access 2000 Datenbanken.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
Capabilities - Sicherheit realisiert auf Hardware-Ebene am Beispiel von MONADS Teil 2 Vorgelegt von: Wiebke Schröder Vortragsdatum: 07. Juli /21.
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Interrupt Bei dem Transport von Daten zu einem Speichermedium oder zu einer Schnittstelle, muss der PC seine aktuelle Arbeit unterbrechen Man bemüht sich,
Speicherverwaltung durch Swapping
Was ist ein Betriebssystem?
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Ressourcen in einer Multicontainer-Umgebung verwalten
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
INTEL Pentium 4 Prozessor
Das Betriebssystem.
Kapitel 8.2 Speicherverwaltung: Paging Segmentierung
3.4 CPU-Chips und Busse CPU-Chips
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Computerorientierte Physik VORLESUNG Zeit: jeweils Mo Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz 5, A-8010.
Computerorientierte Physik VORLESUNG
Computerorientierte Physik VORLESUNG
Server. Software virtueller Server Hardware Vserver Ein Softwareserver, der gemeinsam mit mehreren anderen Servern auf einem gemeinsamen, meist sehr.
Herzlich Willkommen zu meiner Präsentation
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Johann Baron von Neumann
Gruppe 2 MEMORY MANAGEMENT Jakob Dietschy Arnold Huber
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Der Prozessor Von Stephan Blum.
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
2.3 Implementierung von Prozessen
Jakob Dietschy Arnold Huber Karl Philip Schneider Lukas Unterberger Daniel Dötzl Gruppe 2 MEMORY MANAGEMENT.
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
Bs Dateien als Segmente Idee:Datei = persistentes Segment Konsequenzen:  Datei kann in virtuellen Adressraum eingeblendet werden (memory-mapped.
6.2 Repräsentation auf Platten
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.
6.4.4 Berechtigungen (Capabilities)
LVM - Logical Volume Management unter Linux
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.
Vs61 6 Fehlertoleranz. vs62 Zuverlässigkeit (reliability) Sicherheit vor FehlernSicherheit vor Angriffen (safety)(security) WS/SS xySystemsicherheit SS.
Betriebssysteme Was ist ein BS?
Betriebssysteme: Theorie
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
05-Betriebssysteme1 Was ist ein Betriebssystem? l Programm, das die Verbindung zwischen dem Benutzer, der Software und der Hardware herstellt l Die Installation.
 Präsentation transkript:

bs Segmentierte Prozesse im virtuellen Speicher Zur Erinnerung:  Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen Speichers; Sharing ist problematisch.  Segmentierung erleichtert Sharing, auch mit unterschiedlichen Zugriffsrechten.  Kombination bietet sich an !

bs Grobkörnige Segmentierung Jedes Segment umfasst eine oder mehrere Seiten: Segmentdeskriptor beschreibt nicht Bytefolge im Arbeitsspeicher, sondern Seitenfolge im virtuellen Speicher, d.h. Seitentabelle (!) des Segments Virtuelle Adresse besteht aus Segmentnummer, Seitennummer, Distanzadresse

bs-5.63 base limit frame d c page backup Segmenttabelle Seitentabelle des virtuellen Speichers Rahmentabelle base limit w KontextregisterAssoziativregister Virtuelle Adresse s p o Segmentliste des aktiven Prozesses w Seite (s,p) s p frame w d Auslagerungsbereich Speicher Prozessor/MMU

bs-5.64 ! Unterscheide:  Verwaltung des virtuellen Speichers: Neues Segment mit n Seiten einrichten bedeutet: im virtuellen Speicher n konsekutive Seiten finden d.h. in der Seitentabelle n konsekutive freie Zellen finden (  “externer Verschnitt“ – aber nur virtuelle Adressen!)  Verwaltung des realen Speichers = Verwaltung der Rahmen

bs-5.65 Früher Pionier dieses Ansatzes: MULTICS (MIT 1967) auf Hardware GE 645:  256 K Segmente (!) à 64 Seiten à 1 K (36-Bit-)Worte  Jeder Prozess hat eigene Segmenttabelle, die selbst „gepaged“ ist; statt mehrerer Kontextregister gibt es ein descriptor base register, das auf die Segmenttabelle verweist  Segmentdeskriptor beschreibt Seitentabelle des Segments; Sharing durch gemeinsam benutzte Seitentabelle

bs-5.66  BS-Segmente sind permanent in die Adressräume aller Prozesse eingeblendet (!),  allerdings speziell zugriffsgeschützt: Segmente haben unterschiedliche Schutzstufen (rings of protection) 0,1,2,...,7, zwischen denen Übergriffe nur begrenzt möglich sind. am höchsten geschützt

bs Feinkörnige Segmentierung Segment ist beliebiger Bereich im virtuellen Speicher:... Motivation:  kleine gemeinsame Objekte  feinkörniger Schutz eines Programms vor sich selbst (entbehrlich bei sicheren Programmiersprachen) ! Spezielle Hardware erforderlich ! Pioniere (ohne Paging): Plessey 250 (1975) CAP (Cambridge 1977) 20 K 24 K 28 K 32 K 36 K

bs-5.68 Adressierung über Berechtigungen (capabilities):  Segmentdeskriptor = Basisadresse + Länge (im virt. Sp.)  Segmenttabelle enthält alle Segmentdeskriptoren  Berechtigung = Index in Segmenttabelle + Zugriffssrecht, vor Manipulation geschützt (s.u.), durch Berechtigungsverweis identifiziert  Berechtigungsregister (capability registers) können wie normale Register unter Bezugnahme auf eine Berechtigung mit zugehörigem Segmentdeskriptor geladen werden  Adressierung einer Speicherzelle durch Angabe von Berechtigungsregister + Distanzadresse

bs-5.69 Beachte: ein Berechtigungsregister ähnelt einem Segmentregister, seine Benutzung erfordert aber keinen privilegierten Modus ? Was ist der „Adressraum eines Prozesses“ ? 2 mögliche Antworten:  die über die Berechtigungsregister erreichbaren Segmente  die über die jeweils verfügbaren Berechtigungen erreichbaren Segmente – direkt adressierbar ist jeweils nur der über die Berechtigungsregister erreichbare Ausschnitt

bs Geschützte Ralisierung der Berechtigungen mittels Berechtigungsliste (capability list),  entweder per Prozess, bei den vom BS geführten Daten, Berechtigungen durchnumeriert, Berechtigungsverweis = Nummer  oder per Segment in Schattenregion (shadow region) des Segments (vor der Basisadresse), Berechtigungsverweis = Berechtigungsregister (für Segment) + Nummer

bs base limit frame d c page backup Segmenttabelle Seitentabelle des virtuellen Speichers Rahmentabelle base limit w Berechtigungsregister Assoziativregister Programmadresse b o Berechtigungsliste des aktiven Prozesses w Seite (s,p) page frame w d Auslagerungsbereich Speicher Prozessor/MMU

bs Aktuelle Hardware: Intel IA-32 Terminologie der zweistufigen Adressumsetzung: segmentation unit paging unit logical linear physical address address address Programm- virtuelle reale adresse Adresse Adresse Paging Unit ist abschaltbar  virtuelle = reale Adresse (80286 hatte nur Segmentierung, kein Paging)

bs Segmentierung Aktueller Kontext des Prozessors wird bestimmt durch 6 Segmentregister-Paare (Selektor,Deskriptor): CS für Code-Segment SS für Stack-Segment DS für Daten-Segment ES für sonstige Datensegmente FS für sonstige Datensegmente GS für sonstige Datensegmente

bs Adressenangabe im Maschinenbefehl besteht aus Segmentregister + Distanzadresse, z.B. MOV DS:0,EAX außer: Befehle lokalisieren: stets im Code-Segment; Keller-Befehle ausführen: stets im Stack-Segment; Zeichenketten-Befehle: stets im ES-Segment. Benutzerprogramm (! vgl ) kann Segmentregister beliebig laden, z.B. MOV DS,AX, und damit seinen Adressraum beliebig verschieben - im Rahmen der ihm zur Verfügung stehenden Segmente:

bs als Operand dient ein Segmentselektor: dieser Selektor wird ins Selektorregister geladen; er identifiziert einen Segmentdeskriptor in der LDT (local descriptor table) oder GDT (global descriptor table), und dieser wird ins Deskriptorregister geladen. index GDT oder LDT privilege level (s.u.)

bs Quelle:Intel Architecture Software Developer‘s Manual Vol. 3: System Programming

bs Beachte:  Segmentarten sind weitgehend festgelegt  private und gemeinsame Segmente werden über verschiedene Tabellen verwaltet (LDT versus GDT)  Besonderheit beim Code-Segment: CS kann nicht beliebig geladen werden, sondern wird als Folge eines CALL/RET-Befehls oder einer Unterbrechung geladen (s.u.).

bs-5.618

bs Segmentdeskriptor enthält u.a. baseAdresse des ersten Bytes des Segments, (32 Bits) „lineare Adresse“ (4 GB Adressraum) = reale Adresse bei abgeschaltetem Paging, virtuelle Adresse sonst limitLänge des Segments (20 Bits) in Bytes, falls G = 0, in Seiten à 4 KB, falls G = 1 G(granularity) Einheit der Segmentlänge (1 Bit) DPL(descriptor privilege level) Privilegierungsstufe (2 Bits) für Zugriffsschutz: 0,1,2 oder 3 (niedrigste Stufe)

bs-5.620

bs Zugriffsschutz, insbesondere für globale Segmente: Zugriff auf ein Segment wird untersagt, wenn dessen Privilegierungsstufe höher als diejenige im Selektorregister des aktuellen Code-Segments ist. Beispiel: auf ein Segment der Stufe 3 kann man immer zugreifen. Ausnahme:kontrollierter Übergang in ein höher privilegiertes Code-Segment mit CALL, z.B. für Systemaufruf (s.u.)

bs Idee der Intel-Architekten: Mikrokern Kern Bibliotheken Benutzerprogramme

bs Idee der Intel-Architekten: Mikrokern Kern Bibliotheken Benutzerprogramme Aber Linux...Minix... Kern Bibliotheken und Benutzerprogramme Mikrokern Tasks Systemprozesse, Bibliotheken und Benutzerprogramme

bs Befehl CALL operand (Rücksprung mit RET ) mit operand = Segmentselektor + Distanzadresse erlaubt Wechsel des Code-Segments mit Sprung in dieses neue Code-Segment – sofern dessen Privilegierungsstufe nicht höher ist. mit operand = Selektor eines Call Gate erlaubt Wechsel mit Erhöhung der Privilegierungsstufe: Call Gate Descriptor verweist auf Code-Segment und dortige Einsprungstelle; beim Sprung wird auch das Keller-Segment ausgetauscht (gemäß Information im TSS – Task State Segment)

bs Paging Jeder Prozess hat eigenes Seitenverzeichnis (page directory) für die Umsetzung der virtuellen 32-Bit-Adressen seines 4-GB-Adressraums mittels 4-K-Seiten in reale Adressen Seitenverzeichnis des aktuellen Prozesses ist erreichbar über control register cr3

bs Seitenverzeichnis enthält Deskriptoren für auslagerbare Seitentabellen: Page Directory Seitentabellen Seiten KB Deskriptoren à 4 Bytes cr3 control register

bs Gemeinsame Nutzung von Segmenten erfolgt über gemeinsam genutzte Teiltabellen: Prozess A Prozess B

bs Interpretation der virtuellen Adresse: tablepageoffset Seitendeskriptoren verfügen über die üblichen Daten frame, flags: accessed, dirty, present, Assoziativspeicher beschleunigt Adressumsetzung: Seitendeskriptor wird identifiziert über (table,page)

bs Nutzungsmöglichkeiten sind vielfältig, lassen dem BS-Entwickler viele Freiheiten! Beispiele:  Segmentierung ignorieren  Paging ignorieren (abschaltbar über PG Bit in cr0)  große versus kleine Segmente  Realisierung von Sharing  u.a.

bs Segmentierung ignorieren:

bs Beispiel Linux : 4 Segmente – Code/Daten für Kern/Benutzer – haben unterschiedliche Privilegien für Kern und Benutzer, werden aber alle auf die gleichen virtuellen Adressen 0 – 1 MB abgebildet. (Motivation: System soll ohne große Änderungen auch für RISC-Prozessoren ohne Segmentierung einsetzbar sein)

bs Eine Seitentabelle für jedes Segment: