Bs-5.41 5.4 Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.

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:
2.3 Register-Transfer-Strukturen
Eine kleine Einführung
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ß,
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Kapitel 8.1 Speicherverwaltung - Paging
Java: Grundlagen der Sprache
OpenMP Präsentation im Rahmen des Seminars
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.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Vorlesung, Wintersemester 2009/10M. Schölzel 1 Optimierungstechniken in modernen Compilern Einführung.
Access 2000 Datenbanken.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
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.
Einführung MySQL mit PHP
Referat zum Thema „DLL“
RS232 Register und ihre Bits
2.3 Register-Transfer-Strukturen
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Kapitel 8.2 Speicherverwaltung: Paging Segmentierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Computerorientierte Physik VORLESUNG
Computerorientierte Physik VORLESUNG
Das Binär-System Alles ist davon abhängig, ob Strom fließt oder nicht!
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.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Systemsoftware und Betriebssysteme
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.
Gruppe 2 MEMORY MANAGEMENT Jakob Dietschy Arnold Huber
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
->Prinzip ->Systeme ->Peer – to – Peer
Central Processing Unit (Zentraleinheit)
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
5 Speicherverwaltung Pufferspeicher (cache)
Synchronisation mit Zeitmarken (1) Zeitmarken-Synchronisation = einfaches, aber ineffizientes Verfahren zur Gewinnung konfliktserialisierbarer Schedules.
Was ist Office 365 ?.
2.3 Implementierung von Prozessen
2 Datenabstraktion Geheimnisprinzip:
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten.
Bs Dateien als Segmente Idee:Datei = persistentes Segment Konsequenzen:  Datei kann in virtuellen Adressraum eingeblendet werden (memory-mapped.
6.2 Repräsentation auf Platten
2.2 Adressraumverwaltung Code und Daten Einfachster Fall: 0 length-1.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Bs Der Speicherverwalter Speicherverwalter (memory manager) = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page.
Max Haustein, Karsten Otto
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
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Vs61 6 Fehlertoleranz. vs62 Zuverlässigkeit (reliability) Sicherheit vor FehlernSicherheit vor Angriffen (safety)(security) WS/SS xySystemsicherheit SS.
Mikrocomputertechnik BLIN_INT-P-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „BLIN_INT-P-Quickie“
Mikrocomputertechnik Timer-0-1-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „TIMER-0-1-Quickie“
RAM (Random Access Memory)
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
RAM (Random Access Memory)
Datentypen: integer, char, string, boolean
Vom HW-Automaten zum Prozessor
 Präsentation transkript:

bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist festgelegt durch die Hardware – den Adressumsetzer. CodeDaten 0 codelength 0 datalength Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment

bs-5.42 Vorteile:  Unterschiedliche Zugriffsrechte – durch MMU überwacht – erhöhen die Programmsicherheit; z.B. Code-Segment:schreibgeschützt (read/execute-only) Daten-Segment:Lese- und Schreibzugriff (read/write).  Adressräume verschiedener Prozesse können in sinnvoller Weise überlappen; z.B. gemeinsames Code-Segment (code sharing).  Segmente können unabhängig voneinander umgelagert werden; z.B. kann beim Auslagern eines Prozesses ein schreibgeschütztes Code-Segment ignoriert werden.

bs-5.43 Standard-Segmentierungen 2 Segmente: Code – feste Länge, normalerweise schreibgeschützt, von mehreren Prozessen gemeinsam benutzbar (shared code) Daten – z.B. automatisch expandiert bei Kellerüberlauf (Beispiel: DEC System 10, 1970) 3 Segmente: Code – s.o. Daten statisch und Halde – Länge explizit änderbar Daten dynamisch – Keller s.o. (Beispiel: Original-Unix, DEC PDP-11, 1971)

bs Segmente: Code – Quellcode Code – Standard-Bibliothek eine Programmiersprache (shared libraries, dynamic link libraries (DLL) ) Daten statisch Daten dynamisch 3 Segmente: Code – s.o. Daten gemeinsam benutzt (shared data) Daten privat

bs-5.45 Elementarer Fall – Code- und Daten-Segment: 4 Register:code base code length data base data length Identifizierung des jeweiligen Registerpaars durch das Steuerwerk: Befehlsadressen vs. Datenadressen Hardware-Voraussetzungen (MMU)

bs-5.46 Allgemeiner Fall – n gleichberechtigte Segmente, n = 2 k, Adressbreite a virtuelle Adresse: k a - k vs = (virtuelle) Segmentnummer vs Distanzadresse (offset)  2 k Segmente mit jeweils maximaler Länge 2 a-k

bs-5.47 Z.B. für k=3:Adressraum eines Prozessorseines Prozesses

bs-5.48 MMU:je Segment 1 Deskriptor-Register für Segmentdeskriptor (segment descriptor), z.B. so: baselength w d w = writable bit: legt fest, ob in das Segment geschrieben werden darf. d = dirty bit: wird auf 0 gesetzt, wenn der Deskriptor in das Register geladen wird; wird auf 1 gesetzt beim ersten Schreibzugriff.

bs-5.49  MMU sieht so aus: base length w d Achtung: evtl. verschiedene Registersätze für verschiedene Prozessor-Modi (5.1.1  )5.1.1

bs Adressumsetzung: (write = Schreibversuch) if desc[vs].base == 0 then address fault end; (non-existent segment) if desc[vs].length <= offset then address fault end; (off limits) if not desc[vs].w and write then access fault end; location = desc[vs].base + offset; desc[vs].d = desc[vs].d or write. (vereinfachende Vorausetzung: base/length in Bytes gemessen)

bs Segmentverwaltung Segmentdeskriptoren, die für die Verwaltung der Segmente benötigt werden, enthalten mehr Information als die Deskriptor- Register: base length d backupBase refcnt c w-Bit fehlt ! (s.u.) backupBase =Auslagerungsadresse (5.3.2  )5.3.2 refcnt = Verweiszähler =Anzahl der Prozesse, die das Segment gemeinsam benutzen c = „coming“-Bit =Einlagerungsvorgang läuft

12 Segmenttabelle (segment table) (Größe max) enthält die Deskriptoren aller Segmente im System: base length d backupBase refcnt c max 0 Tabellenposition leer:

bs Segmentliste (segment map) eines Prozesses im Prozessdeskriptor enthält für jedes Segment des Prozesses:  (reale) Segmentnummer rs ( = Index in Segmenttabelle)  w-Bit

bs Segmentliste (segment map) eines Prozesses im Prozessdeskriptor enthält für jedes Segment des Prozesses:  (reale) Segmentnummer rs ( = Index in Segmenttabelle)  w-Bit als z.B. bei einer MMU mit n=8 Segmenten (5.4.1  )5.4.1 rs w (rs = 0 : Segment existiert nicht) vs

15 vs Distanzadresse x base length w d rs w base lengthd backupBase r c Prozessor mit n=4Arbeitsspeicher Hintergrundspeicher Segmentlisten Segmenttabelle MMU virtuelle Adresse Segmente resident auslagerbar (aktiver Prozess) x

bs Adressraumumschaltung bei Prozesswechsel (5.1.2  )5.1.2  dirty bits aus den Deskriptor-Registern der MMU in die Segmenttabelle retten (or !)  base/length des neuen aktiven Prozesses aus der Segmenttabelle in die Deskriptor-Register laden – nach Maßgabe der Segmentliste  w-Bits in den Deskriptor-Registern setzen – nach Maßgabe der Segmentliste