Verwaltung des Arbeitsspeichers: Fragmente

Ähnliche Dokumente
Zuteilungseinheiten und Verschnitt Vielfaches von Bytes oder Seitenrahmen. Überblick

Zuteilungseinheiten und Verschnitt Vielfaches von Bytes oder Seitenrahmen. Überblick

Verwaltung des Arbeitsspeichers: Fragmente

Teil IX. Adressraum und Arbeitsspeicher. wosch SS 2005 SOS1 IX-1

Speicherverwaltung. Physikalischer Adressraum. Adressen, die ins Leere verweisen... Bus Error. Adressräume ( Kap. 4)

Speicherverwaltung. Physikalischer Adressraum. Bus Error. Adressen, die ins Leere verweisen... Adressräume ( Kap. 4)

Freispeicherverwaltung Martin Wahl,

Leichtgewichtsprozesse

Speicherverwaltung. Adressräume ( Kap. 4) physikalisches logisches virtuelles. Speicher als. Betriebsmittel

Tutorium Rechnerorganisation

Freispeicherverwaltung

Speicherverwaltung (Swapping und Paging)

RO-Tutorien 15 und 16

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

(Cache-Schreibstrategien)

Adressraumkonzepte Betriebssystemsicht. Teil IX. Adressraum und Arbeitsspeicher. Überblick

Virtueller Speicher und Memory Management

Teil IX. Adressraum und Arbeitsspeicher. wosch SS 2005 SOS1 IX-1

Zwei Möglichkeiten die TLB zu aktualisieren

9) Speicherverwaltung

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

U4-1 Aufgabe 3: einfache malloc-implementierung

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Betriebssysteme (BS) Speicherverwaltung. Olaf Spinczyk 1.

Lösung von Übungsblatt 5

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Betriebssysteme (BS) Inhalt. Speicherverwaltung. Olaf Spinczyk 1.

7. Speicherverwaltung

Verdrängung eingelagerter Fragmente

Lösung von Übungsblatt 2

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

5 Kernaufgaben eines Betriebssystems (BS)

Teil IX. Adressraum und Arbeitsspeicher

5.5.5 Der Speicherverwalter

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005

DYNAMISCHE VERWALTUNG VIRTUELLEN SPEICHERS FÜR ECHTZEITSYSTEME

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Lösungsvorschlag für Übung September 2009

2.3 Prozessverwaltung

Grundlagen Algorithmen und Datenstrukturen Kapitel 13

Wunschvorstellung der Entwickler vom Speicher

Fachbericht Thema: Virtuelle Speicherverwaltung

Hauptspeicherverwaltung - Memory Management

Memory Management. Peter Puschner Institut für Technische Informatik

Dynamisches Speichermanagement

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

RO-Tutorien 17 und 18

Hans-Georg Eßer, Hochschule München, Betriebssysteme I, SS Speicherverwaltung 1

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo

Medienpraktikum Medienpsychologie. Seminar für Pädagogik, Universität Ulm Sommersemester Anne Wilzek Doreen Eichler

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012

Lineare Speicherverwaltung

Echtzeitbetriebssysteme

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

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Einführung in die technische Informatik

Betriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Betriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

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

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

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

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

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Definitionen zum Verschnitt

6.Vorlesung Grundlagen der Informatik

Technische Informatik 1 - HS 2017

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

4. Übung - Rechnerarchitektur/Betriebssysteme

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

Speicherverwaltung in C

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

Inhaltsübersicht. Speicherverwaltung Teil I. Motivation. Prinzipielle Arten der Speicherverwaltung

Vorlesung Programmieren

Speicher- Management

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Grundlagen Rechnerarchitektur und Betriebssysteme

Verteilte Echtzeit-Systeme

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

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

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Hausübung 5 (Musterlösung )

Betriebssysteme 1. Thomas Kolarz. Folie 1

5.6 Segmentierter virtueller Speicher

4.3 Hintergrundspeicher

5 Speicherverwaltung. bs-5.1 1

7. Organisation von Informationen

Transkript:

Überblick 12 Arbeitsspeicher Adressraum Physikalischer Adressraum Logischer Adressraum Virtueller Adressraum Zusammenfassung Arbeitsspeicher Speicherzuteilung Platzierungsstrategie Ladestrategie Ersetzungsstrategie Zusammenfassung wosch SS 2005 SOS1 IX- 25 12 Arbeitsspeicher 12.1 Speicherzuteilung Verwaltung des Arbeitsspeichers: Fragmente Fest abgesteckte oder ausdehn-/zusammenziehbare Gebiete für jedes Programm statisch allen Programmen inkl. dem Betriebssystem sind Arbeitsspeichergebiete maximaler, fester Größe zugewiesen innerhalb der Gebiete ist Speicher dynamisch zuteilbar Gefahr von Leistungsbegrenzung/-verluste, z.b.: Brache eines Gebiets ist in anderen Gebieten nicht nutzbar kleine E/A-Bandbreite mangels Puffer im Gebiet des BS erhöhte Wartezeit von Prozessen wegen zu kleinen Puffern dynamisch das Betriebssystem ermittelt e Arbeitsspeicherfragmente angeforderter Größe und teilt diese den Programmen zu Zusammenspiel Laufzeit- und Betriebssystem (S. V-22) d.h., von malloc(3) und z.b. brk(2) die Zuteilungseinheiten können in beiden Fällen gleich ausgelegt sein wosch SS 2005 SOS1 IX- 26

12 Arbeitsspeicher 12.1 Speicherzuteilung Zuteilungseinheiten und Verschnitt Vielfaches von Bytes oder Seitenrahmen Aufbau und Struktur der jeweils zugeteilten Arbeitsspeicherfragmente unterscheidet sich je nach Adressraumausprägung (S. IX-9) Seitennummerierung Fragment Vielfaches von Seitenrahmen ggf. wird mehr Speicher als benötigt zugeteilt interne Fragmentierung des Seitenrahmens Segmentierung Fragment Vielfaches von Bytes (Segment) ggf. ist ein passendes Stück nicht verfügbar externe Fragmentierung des Arbeitsspeichers Verschnitt (als Folge in/externer Fragementierung) zu optimieren, ist eine der zentralen Aufgaben der Speicherverwaltung anfallender Rest bei der Speicherzuteilung allgemein Abfall im Falle interner Fragmentierung Hohlräume im Falle externer Fragmentierung wosch SS 2005 SOS1 IX- 27 12 Arbeitsspeicher 12.1 Speicherzuteilung Politiken bei der Speicherzuteilung Wohin, wann und welches Opfer... Platzierungsstrategie (engl. placement policy) obligatorisch wohin ist ein Fragment abzulegen? wo der Verschnitt am kleinsten/größten ist egal, weil Verschnitt zweitrangig ist Ladestrategie (engl. fetch policy) optional: dyn. Binden, VM wann ist ein Fragment zu laden? auf Anforderung oder im Voraus Ersetzungsstrategie (engl. replacement policy) optional: VM welches Fragment ist ggf. zu verdrängen? das älteste, am seltensten genutzte das am längsten ungenutzte VM Abk. für engl. virtual memory, d.h. virtueller Speicher wosch SS 2005 SOS1 IX- 28

Freispeicherorganisation Verwaltung der Hohlräume im Arbeitsspeicher Bitkarte (engl. bit map) von Fragmenten fester Größe eignet sich für seitennummerierte Adressräume grobkörnige Vergabe auf Seitenrahmenbasis alle en Fragmente sind gleich gut verkettete Liste (engl. free list) von Fragmenten variabler Größe ist typisch für segmentierte Adressräume feinkörnige Vergabe auf Segmentbasis nicht alle en Fragmente sind gleich gut? Freispeicher erscheint als Hohlräume (auch Löcher genannt) im RAM, die mit Programmtext/-daten auffüllbar sind als Bitkarte/verk. Liste implementierte Löcherliste (engl. hole list) wosch SS 2005 SOS1 IX- 29 Freispeicher(bit)karte Erfassung en Speichers fester Größe Fragmenten des Arbeitsspeichers ist (mind.) ein Zustand zugeordnet, der durch einen Bitwert repräsentiert wird: 0 belegt, 1 Suche, Belegung und Freigabe Operationen zur Bitverarbeitung Anforderungen von K Bytes zu erfüllen bedeutet, M Zuteilungseinheiten in der Bitkarte zu suchen, deren Zustand anzeigt: M = K + sizeof (unit) 1 sizeof (unit) mit unit definiert als char[n], d.h. allgemein ein Bytefeld darstellend N = 1 im Falle segmentierter Adressräume N = sizeof (page) im Falle seitennummerierter Adressräume Abfall M sizeof (unit) K ist nur möglich für sizeof (unit) > 1 wosch SS 2005 SOS1 IX- 30

Freispeicher(bit)karte (Forts.) Umfang hängt ab von der Größe der Zuteilungseinheiten Erfassung er Fragmente beansprucht mehr oder weniger viel Speicher: z.b. ein System mit 1 GB Hauptspeicher und 4 KB Seitengröße die dazu passende Bitkarte hat eine Größe von 32 KB: sizeof (bit map) = 1GB 4KB 8Bits = 2 30 2 12 2 3 = 2 15 Bytes der Bitkartenumfang variiert mit der Seiten(rahmen)größe gleich gr. Speicher ungleich gr. Gemeinkosten (engl. overhead) die MMU unterstützt ggf. eine Abstimmung (engl. tuning) durch einstell- bzw. programmierbare Seiten(rahmen)größen je feinkörniger die Speicherzuteilung, desto größer die Bitkarte wosch SS 2005 SOS1 IX- 31 Freispeicherliste Erfassung en Speichers variabler Größe Löcherliste (engl. hole list) führt Buch über e Speicherbereiche ein Listenelement hält Anfangsadresse und Länge eines Bereichs d.h., es erfasst genau ein es Fragment für die Liste ergeben sich zwei grundsätzliche Repräsentationsformen: 1. Liste und Löcher sind voneinander getrennt die Listenelemente sind Löcherdeskriptoren, sie belegen Betriebsmittel Löcher haben eine beliebige Größe N, N > 0 2. Liste und Löcher sind mitneinander vereint die Listenelemente sind die Löcher, sie belegen keine Betriebsmittel Löcher haben eine Mindestgröße N, N sizeof (list element) strategische Überlegungen bestimmen die Art der Listenverwaltung wosch SS 2005 SOS1 IX- 32

Freispeicherliste (Forts.) Listenelemente als Löcherdeskriptoren Freispeicherliste fore rear next next size 1300 1200 base base next 225 base 00 11 00 11 00 11 belegt die Liste und der Listenkopf liegen im Betriebssystemadressraum fore, rear und next sind logische/virtuelle Adressen size ist die Größe des Lochs, Vielfaches von sizeof (unit) (S. IX-30) base ist die physikalische Adresse des en Fragments Listenmanipulationen laufen innerhalb eines log./virt. Adressraums ab wosch SS 2005 SOS1 IX- 33 Freispeicherliste (Forts.) Listenelemente als Löcher Freispeicherliste fore rear base size next 1300 next 1200 next 225 belegt nur der Listenkopf liegt im Betriebssystemadressraum fore, rear, next und base sind physikalische Adressen size ist die Größe des Lochs, Vielfaches von sizeof (unit) (S. IX-30) Listenmanipulationen müssen ggf. Adressraumgrenzen überschreiten die Listenoperationen laufen im Betriebssystemadressraum ab der Betriebssystemadressraum ist ein logischer/virtueller Adressraum die Liste ist im physikalischen Adressraum Adressraumumschaltung wosch SS 2005 SOS1 IX- 34

Zuteilungsverfahren Löcher der Größe nach sortieren best-fit verwaltet Löcher nach aufsteigenden Größen Ziel ist es, den Verschnitt zu minimieren d.h., das kleinste passende Loch zu suchen erzeugt kl. Löcher am Anfang, erhält gr. Löcher am Ende hinterlässt eher kleine Löcher, bei steigendem Suchaufwand worst-fit verwaltet Löcher nach absteigenden Größen Ziel ist es, den Suchaufwand zu minimieren ist das erste Loch zu klein, sind es alle anderen auch zerstört gr. Löcher am Anfang, erzeugt kl. Löcher am Ende hinterlässt eher große Löcher, bei konstantem Suchaufwand Ist die angeforderte Größe kleiner als das gefundene Loch, fällt Verschnitt an, der als verbleibendes Loch in die Liste neu einsortiert werden muss: d.h., die Freispeicherliste ist ggf. zweimal zu durchlaufen wosch SS 2005 SOS1 IX- 35 Zuteilungsverfahren (Forts.) Löcher der Größe (2er-Potenz) nach sortieren buddy (Kamerad, Kumpel) verwaltet Löcher nach aufsteigenden Größen das kleinste passende Loch buddy i der Größe 2 i suchen i ist Index in eine Tabelle von Adressen auf Löcher der Größe 2 i buddy i entsteht durch (sukzessive) Splittung von buddy j,j > i : 2 n = 2 2 n 1 zwei gleichgroße Blöcke, die Buddy des jeweils anderen sind der ggf. anfallende Verschnitt kann beträchtlich sein schlimmstenfalls 2 i 1 bei 2 i + 1 angeforderten Einheiten ein Kompromiss zwischen best-fit und worst-fit vergleichsweise geringer Such- und Aufsplittungsaufwand passt gut zum Laufzeitsystem, das in 2er-Potenzen anfordert Jeder Rest ist als Summe er Buddies darstellbar, wie auch jede Dezimalzahl als Summe von 2er-Potenzen. wosch SS 2005 SOS1 IX- 36

Zuteilungsverfahren (Forts.) Sukzessive Aufsplittung bei Buddy 0 Anforderung von 3 Bytes 15 split split 7 8 1. Block 2 4 teilen: 3 < 2 4 /2 2. Block 2 3 teilen: 3 < 2 3 /2 3. Block 2 2 vergeben: 3 2 2 /2 Verschnitt von 2 2 3 = 1 Byte get 3 4 Verschnitt Ob der Verschnitt als interne Fragmentierung zu verbuchen ist, hängt von der MMU ab. Verschmelzung bei Speichergabe wird zum Kinderspiel... zwei e Blöcke können verschmolzen werden, wenn sie Buddies sind die Adressen von buddies unterscheiden sich nur in einer Bitposition zwei Blöcke der Größe 2 i sind genau dann Buddies, wenn sich ihre Adressen in Bitposition i unterscheiden wosch SS 2005 SOS1 IX- 37 Zuteilungsverfahren (Forts.) Löcher der Adresse nach sortieren first-fit verwaltet Löcher nach aufsteigenden Adressen Ziel ist es, den Verwaltungsaufwand zu minimieren invariante Adressen sind das Sortierkriterium die Liste ist bei anfallendem Rest nicht umzusortieren erzeugt kl. Löcher vorne, erhält gr. Löcher am Ende hinterlässt eher kl. Löcher, bei steigendem Suchaufwand next-fit reihum (engl. round-robin) Variante von first-fit Ziel ist es, den Suchaufwand zu minimieren Suche beginnt immer beim zuletzt zugeteiltem Loch nähert sich einer Verteilung von gleichgroßen Löchern als Folge nimmt der Suchaufwand ab Ist die angeforderte Größe kleiner als das gefundene Loch, fällt Verschnitt an, der jedoch nicht als Restloch in die Liste einsortiert werden muss: d.h., die Freispeicherliste ist nur einmal zu durchlaufen wosch SS 2005 SOS1 IX- 38

Verschmelzung Vereinigung eines Lochs mit angrenzenden Löchern Verschmelzung von Löchern produziert ein großes Loch, die Maßnahme... beschleunigt die Speicherzuteilung, verringert externe Fragmentierung erfolgt bei Speichergabe oder scheiternder Speichervergabe Löchervereinigung sieht sich mit vier Situationen konfrontiert, je nach dem, welche relative Lage ein Loch im Arbeitsspeicher hat: 1. zw. zwei zugeteilten Bereichen 2. direkt nach einem Loch 3. direkt vor einem Loch 4. zwischen zwei Löchern keine Vereinigung möglich Vereinigung mit Vorgänger Vereinigung mit Nachfolger Kombination von 2. und 3. der Aufwand variiert z.t. sehr stark mit dem Zuteilungsverfahren wosch SS 2005 SOS1 IX- 39 Verschmelzung vs. Zuteilungsverfahren Aufwand ist klein bei buddy, mittel bei first/next-fit, groß bei best/worst-fit buddy anhand eines Bits der Adresse des zu verschmelzenden Lochs lässt sich leicht feststellen, ob sein Buddy bereits als Loch in der Tabelle verzeichnet ist first/next-fit beim Durchlaufen der Freispeicherliste (bei Freigabe) wird jeder Eintrag daraufhin überprüft, ob... Adresse plus Größe eines Eintrags gleich der Adresse des zu verschmelzenden Lochs ist 2. Adresse plus Größe eines zu verschmelzenden Lochs der Adresse eines Eintrags entspricht 3. best/worst-fit ähnlich wie bei first/next-fit, jedoch kann im Gegensatz dazu nicht davon ausgegangen werden, dass bei einem angrenzenden Loch das Vorgänger- bzw. Nachfolgerelement in der Liste das ggf. andere angrenzende Loch sein muss es muss weitergesucht werden... wosch SS 2005 SOS1 IX- 40

Verschmelzung buddy Zwei Blöcke 2 i sind Buddies, wenn sich ihre Adressen in Bitposition i unterscheiden free(0x0f00, 16) buddy table 0 0x0 1 0x0 2 0x0 3 0x0 4 0x0f10 5 0x0 6 0x0 0x0f20 16 = 2 4 buddy table 0 0x0 1 0x0 2 0x0 3 0x0 4 0x0 5 0x0f00 6 0x0 0x0f20 2 5 = 32 0f00 16 = 0000 0000 2 0f10 16 = 00 0000 2 16 10 = 0000 0000 00 0000 2 0f00 16 = 0000 0000 2 0f20 16 = 00 0000 2 32 10 = 0000 0000 00 0000 2 wosch SS 2005 SOS1 IX- 41 Verschmelzung first/next-fit Freizugebender Block ist Nachfolger und/oder Vorgänger 0x00 30 free(0x1e, 20) 100 0x56 das alte 30 Byte große Loch kann um 20 Bytes vergößert werden 0x00 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 50 0000 1111 0000 1111 free(0x32, 36) 100 0x56 1. das alte 50 Byte große Loch kann um 36 Bytes vergößert werden 2. das neue 86 Byte große Loch kann um 100 Bytes vergößert werden free(0x32, 36) 0x00 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 186 0000000 1111111 0000000 1111111 wosch SS 2005 SOS1 IX- 42

Fragmentierung Abfall eines zugeteilten Bereichs oder Hohlräume im Arbeitsspeicher (lat.) Bruchstückbildung; Zerstückelung des Speichers in immer kleinere, verstreut vorliegende Bruchstücke intern bei seitennummerierten Adressräumen Verschwendung Speicher wird in Einheiten gleicher, fester Größe vergeben eine angeforderte Größe muss kein Seitenvielfaches sein am Seiten(rahmen)ende kann ein Bruchstück entstehen der lokale Verschnitt ist nutzbar, dürfte aber nicht sein extern bei segmentierten Adressräumen Verlust Speicher wird in Einheiten variabler Größe vergeben eine linear zusammenhängende Bytefolge passender Länge anhaltender Betrieb produziert viele kleine Bruchstücke der globale Verschnitt ist ggf. nicht mehr zuteilbar Kompaktifizierung des Arbeitsspeichers schafft ggf. Abhilfe wosch SS 2005 SOS1 IX- 43 Kompaktifzierung Auflösung externer Fragmentierung durch Vereinigung des globalen Verschnitts Segmente von (Bytes oder Seitenrahmen) werden so verschoben, dass am Ende ein einziges großes Loch vorhanden ist alle in der Freispeicherliste erfassten Löcher werden sukzessive verschmolzen, so dass schließlich nur noch ein Loch übrigbleibt durch Umlagerung (engl. swapping) kompletter Segmente bzw. Adressräume wird der Kopiervorgang erleichtert Relokation der verschobenen Segmente/Seiten(rahmen) ist erforderlich das Betriebssystem implementiert logische/virtuelle Adressräume oder der Übersetzer generiert positionsunabhängigen Programmtext je nach Fragmentierungsgrad ein komplexes Optimierungsproblem... wosch SS 2005 SOS1 IX- 44

Kompaktifzierung (Forts.) Loslegen und Aufwand riskieren oder vorher nachdenken und Aufwand einsparen... 0 0 0 0 S 1 S 1 S 1 S 1 300 300 500 S 2 300 S 3 300 700 900 S 2 900 S 3 700 900 S 2 1200 1200 S 3 S 3 1600 1600 S 2 Ausgangspunkt 600 Worte bewegt 400 Worte bewegt 200 Worte bewegt wosch SS 2005 SOS1 IX- 45 12 Arbeitsspeicher 12.3 Ladestrategie Einlagerung von Seiten/Segmenten Spontanität oder vorauseilender Gehorsam Einzelanforderung on demand present bit (S. IX-17) Seiten-/Segmentzugriff führt zum Trap engl. page/segment fault Vorausladen anticipatory Ergebnis der Ausnahmebehandlung ist die Einlagerung der angeforderten Einheit Heuristiken liefern Hinweise über Zugriffsmuster Programmlokalität, Arbeitsmenge (working set) alternativ auch als Vorabruf (engl. prefetch) im Zuge einer Einzelanforderung z.b. zur Vermeidung von Folgefehlern (S. IX-19) ggf. fällt die Verdrängung (Ersetzung) von Seiten/Segmenten an wosch SS 2005 SOS1 IX- 46

12 Arbeitsspeicher 12.3 Ladestrategie Einzelanforderung On-demand paging durch ein in/externes Rufgerät (engl. pager) des Betriebssystems 1. reference call *moin 5. restart absent present 2002 0 Seitendeskriptor 2021 1 block number page frame 2. page fault 4. update Hintergrundspeicher Vordergrundspeicher Platte RAM 3. page in wosch SS 2005 SOS1 IX- 47 12 Arbeitsspeicher 12.3 Ladestrategie Vorausladen im Zuge einer Einzelanforderung Vorbeugung ggf. nachfolgender Seitenfehler call *moin (S. IX-19) 1. den gescheiterten Befehl dekodieren, Adressierungsart feststellen 2. da der Operand die Adresse einer Zeigervariablen (moin) ist, den Adresswert auf Überschreitung einer Seitengrenze prüfen 3. da der Befehl die Rücksprungadresse stapeln wird, die gleiche Überprüfung mit dem Stapelzeiger durchführen 4. in der Seitentabelle die entsprechenden Deskriptoren lokalisieren und prüfen, ob die Seiten anwesend sind jede abwesende Seite (present bit = 0) ist einzulagern 5. da jetzt die Zeigervariable (moin) vorliegt, sie dereferenzieren und ihren Wert auf Überschreitung einer Seitengrenze prüfen hierzu wie bei 4. verfahren 6. den unterbrochenen Prozess den Befehl wiederholen lassen Teilemulation eines Maschinenbefehls durch das Betriebssystem wosch SS 2005 SOS1 IX- 48