www.wikidata.de-de.nina.az
Der Titel dieses Artikels ist mehrdeutig Zur Alarmierung uber Funkmeldeempfanger siehe Funkrufnetz Als Paging vgl engl page Speicherseite bezeichnet man die Methode der Speicherverwaltung per Seitenadressierung durch Betriebssysteme Nur selten wird die deutsche Bezeichnung Kachelverwaltung verwendet 1 Das Paging ermoglicht eine virtuelle Speicherverwaltung Der virtuelle Speicher bezeichnet den vom tatsachlich vorhandenen physischen Arbeitsspeicher unabhangigen Adressraum der einem Prozess vom Betriebssystem zur Verfugung gestellt wird Da meist mehr virtuelle Adressen existieren als im physischen Arbeitsspeicher umsetzbar sind werden einige Speicherbereiche vorubergehend auf die Festplatte ausgelagert Beim Paging wird der virtuelle Adressraum in gleich grosse Stucke unterteilt die man als Seiten engl pages bezeichnet Auch der physische Adressraum ist derart unterteilt Die entsprechenden Einheiten im physischen Speicher nennt man Seitenrahmen oder auch Kacheln engl page frames Die Seiten werden in der sogenannten Seitentabelle engl page table verwaltet die Informationen daruber enthalt wo fur eine virtuelle Seite der entsprechende reale Seitenrahmen im Arbeitsspeicher tatsachlich zu finden ist sowie meistens Zusatzinformationen zum Beispiel zu Gultigkeit Schreibrechten oder ob sowie evtl wohin die Seite ausgelagert wurde Wenn ein Prozess eine virtuelle Adresse anspricht die keiner physischen Arbeitsspeicher Adresse zugeordnet ist wird ein Systemaufruf ausgelost Dieser Aufruf wird Seitenfehler engl page fault genannt Als unmittelbare Folge des Seitenfehlers kommt es zu einer synchronen Prozessunterbrechung Trap Das Betriebssystem pruft dann ob ein zugehoriger Seitenrahmen existiert und gerade ausgelagert ist dann wahlt es einen wenig benutzten Seitenrahmen aus schreibt dessen Inhalt zuruck auf die Festplatte ladt den benotigten Seitenrahmen in den frei gewordenen Arbeitsspeicherbereich andert die Zuordnungstabelle und setzt den unterbrochenen Prozess mit dem fehlgeschlagenen Befehl fort Existiert zu der angeforderten virtuellen Adresse kein ausgelagerter Seitenrahmen so kann das Betriebssystem entweder einen ggf zuvor freigeschaufelten leeren realen Seitenrahmen zuordnen und den Prozess fortsetzen oder den Prozess abbrechen unter dem Hinweis Seitenfehler Aktuell verbreitete Betriebssysteme brechen einen Prozess in diesem Fall ab Inhaltsverzeichnis 1 Funktionsweise 1 1 Virtueller Adressraum 1 2 Seitenauslagerung 1 3 Seitentabellen 1 3 1 Adressabbildung 1 3 2 Aufbau eines Seitentabelleneintrages 1 4 Seitenfehler 1 5 Translation Lookaside Buffer 2 Weitere Eigenschaften 2 1 Seitengrosse 2 2 Seitentabellen fur grosse Speicherbereiche 2 2 1 Mehrstufige Seitentabelle 2 2 2 Invertierte Seitentabelle 2 3 Demand Paging und Prepaging 3 Thrashing und Working Set Modell 4 Seitenersetzungsstrategien 4 1 Not Recently Used Algorithmus NRU 4 2 First In First Out Algorithmus FIFO 4 3 Second Chance Algorithmus und Clock Algorithmus 4 4 Least Recently Used Algorithmus LRU 4 5 Working Set Algorithmus 4 6 WSClock Algorithmus 5 Beispiele 5 1 Einfaches fiktives Beispiel 5 2 Reales Beispiel IA32 Architektur 5 2 1 32 Bit Paging 5 2 1 1 Page Size Extension 5 2 2 Physical Address Extension 5 2 3 64 Bit Modus 5 2 4 5 Level Paging 6 Literatur 7 EinzelnachweiseFunktionsweise BearbeitenVirtueller Adressraum Bearbeiten nbsp Virtueller und physischer Speicher wobei ein Teil des virtuellen Adressraums auf die Festplatte ausgelagert wirdDer physische Adressraum ist durch den tatsachlich verfugbaren Arbeitsspeicher Hauptspeicher gegeben Eine physische Adresse ist eine reale Adresse einer Speicherzelle im Arbeitsspeicher Meistens verwenden Prozesse jedoch nicht mehr physische sondern nur noch virtuelle logische Adressen Das Prinzip der virtuellen Speicherverwaltung ermoglicht es dass alle aktiven Prozesse mehr Speicherplatz belegen durfen als tatsachlich im physischen Adressraum zur Verfugung steht Die virtuellen Adressen bilden den virtuellen Adressraum Diese gehen nun nicht direkt an den Speicherbus sondern an die Memory Management Unit MMU dt Speicherverwaltungseinheit welche die virtuellen Adressen auf die physischen Adressen abbildet 2 Aus der Sicht des Programmierers der mit virtuellen Adressen arbeitet erscheint der Adressraum fast unbegrenzt Er braucht keine Rucksicht darauf zu nehmen ob diese Adressen im real vorhandenen physischen Arbeitsspeicher wirklich existieren Das Betriebssystem lost diese Aufgabe mit der vorubergehenden Auslagerung von Speicherbereichen auf einen Massenspeicher meistens die Festplatte 3 Bei der Speicherverwaltung werden also Daten vom Arbeitsspeicher auf die Festplatte ein und ausgelagert Haufig verfugt ein System uber sehr viel mehr virtuellen als physischen Speicher Konkret legt das installierte RAM fest wie gross der physische Speicher ist wahrend der virtuelle Adressraum von der Architektur des Befehlssatzes abhangt Mit einem 32 Bit Prozessor kann man maximal 2 32 displaystyle 2 32 nbsp Byte also 4 GiB Speicher adressieren mit einem 64 Bit System 2 64 displaystyle 2 64 nbsp Byte 16 EiB auch wenn beispielsweise nur 512 MiB RAM tatsachlich installiert sind 2 Das Konzept der virtuellen Speicherverwaltung ist meist Basis fur Multitasking da so jeder Task einen eigenen Adressraum besitzen kann was die Abschirmung der Tasks voneinander unterstutzt zusatzlich ist die Grosse des Task Adressraums nicht mehr abhangig davon wie viel Arbeitsspeicher andere Tasks belegen 2 Zur Organisation des virtuellen Speichers gibt es einerseits den segmentorientierten Ansatz siehe Segmentierung bei dem der Speicher in Einheiten unterschiedlicher Grossen aufgeteilt ist und andererseits den seitenorientierten Ansatz Paging bei dem alle Speichereinheiten gleich lang sind Seitenauslagerung Bearbeiten nbsp Paging mit Seiten im virtuellen logischen Speicher Seitentabelle und Seitenrahmen im physischen SpeicherBeim Paging wird der virtuelle Adressraum in gleich grosse Stucke unterteilt die man als Seiten engl pages bezeichnet Auch der physische Adressraum ist derart unterteilt Die entsprechenden Einheiten im physischen Speicher nennt man Seitenrahmen oder auch Kacheln engl page frames Seiten und Seitenrahmen sind in der Regel gleich gross beispielsweise 4 KiB 4 Beispiel Die physische Grosse des Arbeitsspeichers sei 64 KiB Ein Programm benotigt insgesamt 200 KiB Speicher Um das grossere Programm trotzdem auf dem kleineren Arbeitsspeicher ausfuhren zu konnen kann man den Adressraum in Seiten Pages aufteilen beispielsweise vier Seiten zu 64 KiB wobei dann die letzte Seite nur teilweise gefullt ist Es befindet sich dann jeweils eine der vier Seiten im physischen Arbeitsspeicher die anderen drei sind auf die Festplatte ausgelagert 3 Der Teil der Festplatte der fur die ausgelagerten Seiten verwendet wird wird Paging Area oder Schattenspeicher genannt Zum Ein und Auslagern der Seiten existieren viele verschiedene Strategien Grundsatzlich wird immer versucht die Seiten im Arbeitsspeicher zu halten die auch in naher Zukunft verwendet werden um moglichst selten ein Paging durchzufuhren 5 Solange die Speicherzugriffe Seiten betreffen die im Arbeitsspeicher liegen arbeitet das System ganz normal Wird aber eine Seite im ausgelagerten Speicher angesprochen muss die angeforderte Seite eingelagert werden und unter Umstanden eine andere Seite ausgelagert werden Ausserdem muss eine Adressabbildung aktiviert werden Das ganze Verfahren heisst Seitenauslagerung oder Paging 3 Seitentabellen Bearbeiten Adressabbildung Bearbeiten Im Multiprogramming Betrieb stellt der Memory Manager jedem Prozess einen eigenen virtuellen Adressraum zur Verfugung d h eine Menge von Adressen die ein Prozess zur Adressierung des Speichers benutzen kann 6 Der virtuelle Adressraum eines Prozesses wird nun beim Paging in Einheiten aufgebrochen die sogenannten Seiten Diese werden in der sogenannten Seitentabelle page table verwaltet die Informationen daruber enthalt wo fur eine Seite die entsprechenden Seitenrahmen im Arbeitsspeicher tatsachlich zu finden sind 7 Mathematisch kann die Tabelle als eine Funktion aufgefasst werden die die virtuelle Seitennummer als Argument nimmt und die Seitenrahmennummer Page Frame Nummer als Ergebnis liefert Dadurch kann eine virtuelle Adresse auf eine physische Adresse abgebildet werden 8 Eine virtuelle Adresse wird in zwei Teile zerlegt Eine virtuelle Seitennummer hoherwertige Bits und einen Offset niederwertige Bits Die virtuelle Seitennummer wird als Index fur den Eintrag in der Seitentabelle benutzt Der Offset stellt den relativen Abstand einer Adresse zu einer Basisadresse dar Er ist also die Distanz die die genaue Byteadresse innerhalb einer Seite angibt Mit Hilfe der virtuellen Seitennummer als Index wird in der Seitentabelle der zugehorige Eintrag ausfindig gemacht Dieser enthalt einen Verweis auf den Seitenrahmen Page Frame Die Seitenrahmennummer wird zur physischen Adresse erganzt und zusammen mit der Distanz Offset erhalt man die physische Adresse Die Grosse des Offsets sollte also so gewahlt werden dass damit jede Adresse innerhalb einer Seite angesprochen werden kann 9 Die folgende Grafik veranschaulicht wie aus einer virtuellen Adresse eine physische Adresse hier Reale Adresse berechnet wird nbsp Die virtuelle Adresse besteht aus zwei Binarzahlen die n bit lange Seitennummer und der m bit lange Offset Der hoherwertige Teil der physischen Adresse hier Basisadresse der realen Seite wird der Seitentabelle entnommen mit der Seitennummer als Index Wird dieser mit dem Offset konkateniert so ergibt sich eine neue Zahl die genau die physische Speicheradresse ist Derartige Berechnungen werden von der Memory Management Unit durchgefuhrt Die Adressen auf der Festplatte an denen die ausgelagerten Seiten liegen werden nicht in der Seitentabelle gespeichert Diese enthalt nur Informationen die die Hardware zur Umrechnung einer virtuellen Adresse in eine physische benotigt Bei der Behandlung von Seitenfehlern wird auf eigene Tabellen im Betriebssystem zuruckgegriffen 10 Aufbau eines Seitentabelleneintrages Bearbeiten Uber die Seitennummer als Index kann ein Eintrag in der Seitentabelle adressiert werden Der genaue Aufbau eines solchen Eintrages ist stark maschinenabhangig Die darin enthaltene Information ist jedoch von Maschine zu Maschine etwa gleich Nach Andrew S Tanenbaum 2009 sieht ein typischer Seitentabelleneintrag folgendermassen aus 8 nbsp Die einzelnen Eintrage haben dabei die folgenden Bedeutungen 11 Seitenrahmennummer Eine physische Adresse im Arbeitsspeicher auf den der Eintrag verweist siehe Abschnitt oben Present Absent Bit Dieses zeigt an ob die Seite momentan im Arbeitsspeicher liegt Bit auf 1 gesetzt oder nicht Bit auf 0 gesetzt Letzteres erzeugt einen Seitenfehler Protection Bits auch Schutzbits Diese regeln den Zugriff auf die Seite Im einfachsten Fall enthalt das Feld nur 1 Bit mit 0 fur Lese und Schreibzugriff und 1 fur Schreibzugriff Eine ausgefeiltere Methode benutzt drei Bits jeweils eines fur das Leserecht eines fur das Schreibrecht und eines fur das Recht die Seite auszufuhren M Bit Modified Bit auch Dirty Bit Das M Bit wird gesetzt wenn ein Programm auf eine Seite schreibt Dies verwendet das Betriebssystem beim Auslagern einer Seite Wenn die Seite verandert wurde muss der Seitenrahmen zuruck auf die Festplatte geschrieben werden wenn nicht kann er einfach uberschrieben werden weil die Kopie der Seite auf der Festplatte noch aktuell ist R Bit Referenced Bit Das R Bit wird bei jedem Zugriff auf die Seite gesetzt egal ob Lese oder Schreibzugriff Es hilft dem Betriebssystem bei der Entscheidung welche Seite bei einem Seitenfehler ausgelagert werden soll Seiten die nicht benutzt wurden sind bessere Kandidaten als solche auf die standig zugegriffen wird Bit zum Abschalten von Caching Mit diesem Bit kann das Caching abgeschaltet werden Dies ist insbesondere fur Seiten relevant die auf Gerateregister statt auf Speicher abgebildet werden Rechner die einen getrennten E A Adressraum haben und keine Memory Mapped Ein Ausgabe benutzen brauchen dieses Bit nicht Seitenfehler Bearbeiten Wenn ein Prozess eine Adresse anspricht die nicht im Arbeitsspeicher geladen ist erzeugt die MMU einen sogenannten Seitenfehler engl page fault dessen Behandlung vom Betriebssystem ubernommen wird Fur einen Seitenfehler gibt es zwei generelle Ursachen Der eigentlich zugehorige Seitenrahmen ist nur vorubergehend nicht im Arbeitsspeicher vorhanden etwa weil er gerade ausgelagert ist oder der Prozess das erste Mal auf diese Seite zugreift Die Seite ist ungultig bzw der Prozess hat auf eine ihm nicht erlaubte virtuelle Adresse zugegriffen Dabei wird eine Segmentation fault oder General protection fault ausgelost 12 Als unmittelbare Folge eines Seitenfehlers kommt es zu einer synchronen Prozessunterbrechung Trap Es wird ein sogenannter Pagefault Interrupt ausgelost Das Betriebssystem springt im Kernelmodus auf eine spezielle Unterbrechungsroutine zur Bearbeitung des Seitenfehlers und versucht unter Beachtung der Seitenersetzungsstrategie und der Vergabestrategie die Seite in einen Seitenrahmen zu laden Anschliessend erhalt der unterbrochene Prozess nach Moglichkeit entweder sofort oder spater wieder den Prozessor siehe dazu Prozesszustande Insbesondere werden die folgenden Schritte durch das Betriebssystem ausgefuhrt 13 Es wird uberpruft ob die Anforderung erlaubt ist Es wird ein freier Seitenrahmen im Arbeitsspeicher gesucht Falls kein freier Seitenrahmen gefunden werden kann muss zuerst durch Auslagerung des Inhalts eines Seitenrahmens auf die Festplatte Platz geschafft werden Es werden die benotigten Informationen auf der Festplatte gesucht und in den gefundenen Seitenrahmen kopiert Der zugehorige Eintrag in der Seitentabelle wird angepasst d h die Adresse der Seite wird eingetragen und das entsprechende Present Absent Bit wird gesetzt Um einen freien Seitenrahmen zu finden kann beispielsweise eine Freelist verwaltet werden Dafur eignet sich ein Bitvektor der fur jeden Seitenrahmen ein Bit enthalt Ist das Bit gesetzt so wird dieser benutzt andernfalls ist er frei und kann belegt werden Sobald ein Seitenrahmen belegt oder freigegeben wird muss naturlich die Freelist entsprechend angepasst werden 14 Translation Lookaside Buffer Bearbeiten nbsp Schematischer Ablauf der Umrechnung einer virtuellen in eine physische Adresse mit Hilfe von MMU und TLBTranslation Lookaside Buffer Adressumsetzpuffer kurz TLB werden eingesetzt um die Ubersetzung der virtuellen in die physischen Adressen zu beschleunigen Wurde ausschliesslich die Seitentabelle im Arbeitsspeicher gehalten wurde die Ausfuhrungsgeschwindigkeit deutlich verringert Beispielsweise ist fur einen 1 Byte Befehl der ein Register in ein anderes kopiert ohne Paging nur ein Speicherzugriff notig um den Befehl aus dem Speicher zu holen Mit Paging ist mindestens ein zusatzlicher Speicherzugriff auf die Seitentabelle erforderlich Wenn also nun zwei Speicherzugriffe pro Befehl erforderlich werden wurde die Leistung der CPU in etwa halbiert Deshalb werden die zuletzt ermittelten n displaystyle n nbsp Werte fur die Adresse der physischen Speicherseite im Translation Lookaside Buffer TLB gecacht wodurch erneute Zugriffe auf Adressen in dieser Seite nicht aufwandig neu ermittelt werden mussen sondern aus dieser Liste entnommen werden konnen Der TLB kann eine begrenzte Menge dieser Referenzen halten und kann dadurch die Ausfuhrung von Speicherzugriffen deutlich beschleunigen Dies wird uber assoziative Ordnungsregister realisiert die parallele Zugriffe erlauben Der TLB ist normalerweise ein Teil der MMU Die Felder des TLB sind normalerweise eins zu eins aus der Seitentabelle entnommen mit Ausnahme der virtuellen Seitennummer die in der Seitentabelle nicht benotigt wird Ein weiteres Feld gibt zudem an ob der Eintrag momentan benutzt wird 15 Die Anzahl der Felder eines TLB hangt von der Rechnerarchitektur ab und liegt haufig zwischen 8 und 256 IA 64 Architekturen verfugen beispielsweise uber 128 Eintrage im TLB Aufgrund der hohen Lokalitat vieler Programme kann bereits bei acht Eintragen eine beachtliche Leistungssteigerung erzielt werden 16 Wenn eine virtuelle Adresse zur Ubersetzung an die MMU geschickt wird uberpruft also diese zuerst ob ein entsprechender Eintrag im TLB vorhanden ist indem sie die virtuelle Seitennummer mit allen Eintragen gleichzeitig parallel vergleicht Wird ein passender Eintrag gefunden kann die Seitennummer aus dem TLB verwendet werden Andernfalls tritt ein TLB Fehler auf Die MMU holt entsprechend den Eintrag aus der Seitentabelle und schreibt ihn zudem in den TLB Weitere Eigenschaften BearbeitenSeitengrosse Bearbeiten Die Grosse der Seitenrahmen page frames hat einen erheblichen Einfluss auf die Speicherausnutzung Fur grosse Seiten erhalt man mehr Treffer pro Seitenaufruf d h es sind weniger Einlagerungen notig Zudem reicht dann eine kleinere Seitentabelle aus Allerdings konnen sich dann auch weniger Seiten gleichzeitig im Arbeitsspeicher befinden und es gibt eine grossere interne Fragmentierung die dadurch entsteht dass einem Prozess insgesamt ein grosserer Speicherbereich zugewiesen ist als er eigentlich benotigt Konkret besteht die interne Fragmentierung aus einem Teil der letzten Seite eines Prozesses Sind die Seitenrahmen dagegen zu klein benotigt man sehr lange Seitentabellen Die optimale Seitengrosse stellt einen Ausgleich zwischen diesen Effekten dar 17 18 Eine standardmassige Seitengrosse wird normalerweise durch die Hardware vorgegeben Die Seitengrosse neigt dazu mit dem Speicher zu wachsen aber nicht linear Wenn sich der Speicher vervierfacht wird die Seitengrosse meistens nicht einmal verdoppelt 19 Der Pentium 4 und alle anderen IA 32 Prozessoren stellen ein Paging mit einer fixen Seitengrosse von 4 KiB zur Verfugung Einige Prozessoren unterstutzen auch mehrere Seitengrossen die man teils gleichzeitig nutzen kann Ab dem Pentium Pro kann die Seitengrosse wahlweise auf 4 KiB oder 2 MiB mit PAE bzw 4 MiB ohne PAE eingestellt werden 20 Bei der AMD64 Architektur werden physische Seitengrossen von 4 KiB 2 MiB 4 MiB und 1 GiB unterstutzt 21 Durch die Nutzung verschiedener Seitengrossen page sizes kann ein Systeme die jeweiligen Vorteile besser nutzen beispielsweise fur Teile des Betriebssystems und den Grafikspeicher grosse Seitengrosse Large Pages verwenden z B 8 MiB 22 Auch wenn die Hardware gewisse Seitengrossen vorgibt kann das Betriebssystem diese beeinflussen Wenn die Hardware beispielsweise fur 4 KiB Seiten entworfen wurde kann das Betriebssystem die Seitenrahmen 0 und 1 2 und 3 4 und 5 usw als 8 KiB Seiten behandeln indem es bei einem Seitenfehler page fault gleich zwei aufeinander folgende Seitenrahmen nachladt 23 Wahrend die kleinere Seitengrosse meist von der Architektur teilweise aber auch dem Betriebssystem vorgegeben ist sehen verschiedene Systeme zusatzlich eine meist definierte grosse Seitengrosse vor Unter BSD Unix heissen diese super pages unter Windows genauer Windows NT large pages und unter Linux huge pages Die folgende Tabelle zeigt Seitengrossen unter Windows in Abhangigkeit von der Prozessorarchitektur 24 25 Prozessorarchitektur Grosse der Small Page Grosse der Large Pagex86 bzw IA 32 4 KiB 4 MiBx64 4 KiB 2 MiBIA 64 8 KiB 16 MiBSeitentabellen fur grosse Speicherbereiche Bearbeiten Da die Anzahl der Eintrage einer einstufigen Seitentabelle von der Grosse des virtuellen Adressraums und der gewahlten Seitengrosse abhangt ergibt sich ein Problem wenn der virtuelle Adressraum zu gross und oder die gewahlte Seitengrosse zu klein wird Bei einem 64 Bit Computer mit einem Adressraum von 2 64 displaystyle 2 64 nbsp Byte und 4 Kibibyte 2 12 B y t e displaystyle 2 12 Byte nbsp grossen Seiten hatte die Seitentabelle 2 52 displaystyle 2 52 nbsp Eintrage Mit beispielsweise 8 Byte pro Eintrag 52 Bit fur die Adressierung 7 Statusbits gemass obigem Beispiel ware die Seitentabelle dann uber 33 Millionen Gibibyte 32 Pebibyte gross im Gegensatz zu einer Grosse von nur 4 Mebibyte bei gleicher Seitengrosse auf einem 32 Bit Computer mit beispielsweise 4 Byte Seitentabelleneintragen 20 Bit fur die Adressierung 7 Statusbits gemass demselben obigen Beispiel Fur virtuelle 64 Bit Adressraume mit Paging sind also andere Losungen notig 26 Deshalb wurden die Konzepte der mehrstufigen Seitentabelle und der invertierten Seitentabelle entwickelt Mehrstufige Seitentabelle Bearbeiten nbsp Schematische Darstellung der mehrstufigen AdressumsetzungDie Adressumsetzung mit Hilfe einer k stufigen Seitentabelle geschieht durch Aufteilung einer virtuellen Adresse in k n hoherwertige Bits als Seitentabellenverweise und m niederwertige Bits als Offset Mit dem k ten Verweis in der virtuellen Adresse wird aus der k ten Seitentabelle die Basisadresse der Seitentabelle der Stufe k 1 ausgelesen Die letzte Stufe enthalt dann den tatsachlichen Verweis auf die reale Basisadresse Die aus der letzten Stufe der Seitentabellen ausgelesene Basisadresse der realen Speicherseite zusammen mit dem unveranderten Offset ergeben die reale Adresse Der Vorteil bei diesem Ansatz gegenuber der einstufigen Seitentabelle ist der dass nicht immer alle Seitentabellen im Speicher gehalten werden mussen Besonders die nicht benotigten Tabellen sollten nicht nutzlos im Speicher gehalten werden Die Seitentabellen selbst konnen also auch ausgelagert werden sie unterliegen ebenfalls dem Paging 27 Fur die IA 32 Prozessoren entschied man sich beispielsweise fur eine zweistufige Seitenverwaltung bei der ein zentrales Seitenverzeichnis page directory auf bis zu 1024 Seitentabellen page tables verweist Die virtuelle Adresse wurde fur die Umsetzung in drei Teile aufgeteilt Die hochstwertigen 10 Bit werden benutzt um eine der max 1024 Eintrage im Seitenverzeichnis auszuwahlen der einen Verweis auf die Seitentabelle enthalt Die Bits 12 21 bilden die Seitennummer in der entsprechenden Tabelle Die niederwertigsten 12 Bit bilden den Offset 28 Bei x64 Windows ist die Seitentabelle sogar vierstufig Es wird eine 48 Bit breite virtuelle Adresse in 4 Indices zu je 9 Bit und einen Offset zu 12 Bit eingeteilt 29 Invertierte Seitentabelle Bearbeiten nbsp Invertierte SeitentabelleBei der Methode der invertierten Seitentabelle wird in der Seitentabelle nicht mehr ein Eintrag pro virtueller Seite angelegt sondern nur noch ein Eintrag fur jeden physischen Seitenrahmen Wenn der virtuelle Adressraum wesentlich grosser als der physische Speicher ist wird dadurch sehr viel Speicherplatz der Tabelle eingespart Jeder Eintrag in der Tabelle speichert das zugehorige Paar Prozessnummer Seitennummer Der Zugriff auf die Seitentabelle erfordert nun jedoch einen Suchvorgang Wenn ein Prozess mit der Prozessnummer n auf die virtuelle Seite p zugreifen will muss die Hardware die gesamte Tabelle nach dem Eintrag n p durchsuchen Dies macht einen Speicherzugriff wesentlich aufwandiger Abhilfe schafft das Vorschalten einer Hashtabelle mit den virtuellen Adressen als Hashwerten Alle Seiten die denselben Hashwert haben werden verkettet Zusatzlich wird der Speicherzugriff durch einen Translation Lookaside Buffer TLB beschleunigt Wenn alle haufig benutzten Seiten in den TLB passen ist die Adressumrechnung gleich schnell wie mit herkommlichen Methoden Bei einem TLB Fehler muss jedoch die invertierte Seitentabelle von der Software durchsucht werden 30 Demand Paging und Prepaging Bearbeiten Beim sogenannten Demand Paging Einlagern bei Bedarf erfolgt eine Einlagerung nur auf Anforderung also wenn die Daten tatsachlich benotigt werden In der reinsten Form des Demand Paging startet ein Prozess mit keiner einzigen Seite im Arbeitsspeicher Sobald die CPU den ersten Befehl laden will gibt es einen Seitenfehler und das Betriebssystem lagert die entsprechende Seite ein Es folgen weitere Seitenfehler bis der Prozess die wichtigsten Seiten zusammengetragen hat und mit relativ wenigen Seitenfehlern laufen kann 31 Beim sogenannten Prepaging konnen dagegen auch Seiten in den Hauptspeicher geholt werden die noch nicht angefordert wurden Es wird dabei die raumliche Lokalitatseigenschaft ausgenutzt Diese besagt dass nach einem Zugriff auf einen Adressbereich mit hoher Wahrscheinlichkeit der nachste Zugriff auf eine Adresse in unmittelbarer Nachbarschaft erfolgt Auch Kombinationen von Demand Paging und Prepaging werden in der Praxis eingesetzt Man kann zum Beispiel beim Holen einer angeforderten Seite gleich die benachbarten Seiten oder sonstige Seiten nach einem bestimmten Algorithmus mit in den Hauptspeicher laden 5 Thrashing und Working Set Modell BearbeitenWenn in einem Rechnersystem zu viele Seitenfehler in zu kurzer Zeit auftreten ist das System uberwiegend mit dem Nachladen und Auslagern von Seiten beschaftigt Die verfugbare Rechenleistung ist deutlich herabgesetzt Dieser Zustand wird als Thrashing engl wortlich Dreschen oder Seitenflattern bezeichnet 32 Thrashing tritt beispielsweise auf wenn zu viele Prozesse im Speicher sind Durch die zusatzliche Belastung mit Prozessen nimmt einerseits die verfugbare Seitenzahl pro Prozess im Arbeitsspeicher ab und andererseits die Zahl der Seitenaustauschaktivitaten zu Prozesse laufen nicht mehr ab ohne nach kurzer Zeit auf nicht vorhandene Seiten zu stossen Es konnen jedoch nur Seiten aus dem Speicher verdrangt werden die kurz danach wieder benotigt werden Ab einer gewissen Grenze wird die zur Verfugung stehende Rechenleistung nahezu vollstandig darauf verwendet Speicherinhalte ein und auszulagern und nach rechenbereiten Prozessen zu suchen 33 Die Menge von Seiten die ein Prozess zu einem bestimmten Zeitpunkt benutzt wird als Arbeitsbereich engl working set bezeichnet 34 Liegt der gesamte Arbeitsbereich eines Prozesses im Arbeitsspeicher lauft er mit sehr wenigen Seitenfehlern ab Das Working Set Modell versucht deshalb die Seitenfehlerrate zu verringern indem sich das Betriebssystem den Arbeitsbereich eines Prozesses merkt wenn es ihn auslagert und dafur sorgt dass er wieder eingelagert wird bevor er erneut ausgefuhrt wird 35 Um Thrashing zu vermeiden sollten die folgenden Punkte beachtet werden Der Arbeitsspeicher sollte ausreichend gross sein um alle Working Sets der gleichzeitig auszufuhrenden Prozesse aufnehmen zu konnen auch in einem Extrem Lastfall mit maximal vielen gleichzeitigen Prozessen Zu jedem gegebenen Zeitpunkt sollte mindestens einer der Prozesse die das System zu verarbeiten hat vom Prozessor bearbeitet werden konnen das heisst sein Arbeitsbereich befindet sich im Arbeitsspeicher In diesem Betriebszustand wartet der Prozessor nicht auf das Nachladen von Seiten sondern arbeitet an einem Prozess wahrend parallel fur andere Prozesse Seiten nachgeladen werden Programme sollten auf ihre Daten moglichst lokal zugreifen und wahlfreie Zugriffe auf standig wechselnde Speicherseiten vermeiden Entscheidend sind dabei folgende Grossen t Die Zeit die der Prozessor braucht um auf eine Speicherstelle zuzugreifen T Die Zeit die benotigt wird um eine Seite nachzuladen s Der Anteil an Seiten der sich im Arbeitsspeicher befindet im Verhaltnis zur Gesamtzahl aller fur die Programmausfuhrung benotigten Seiten 0 lt s 1 p s Die Wahrscheinlichkeit eines Seitenfehlers abhangig von sDamit Thrashing vermieden wird muss p s t T sein Der minimale Anteil w an Seiten der sich im Arbeitsspeicher befinden muss also der Arbeitsbereich wird bestimmt durch die Gleichung p w t T Da Speicherzugriffe meist lokal gehauft auftreten ist die Wahrscheinlichkeit sehr hoch dass der nachste Programmschritt und das nachste benotigte Datenelement sich auf derselben Seite befinden wie der gerade verarbeitete Schritt und das gerade verarbeitete Element Auf der anderen Seite ist das Verhaltnis T t typischerweise sehr gross RAM ist ca 100000 mal so schnell wie Festplattenspeicher Experimentelle Messungen und Berechnungen die bereits in den 1960er Jahren durchgefuhrt wurden ergeben unter diesen Bedingungen fur w einen Wert von nicht wesentlich weniger als 0 5 Das bedeutet dass der Auslagerungsspeicher kaum grosser als der Arbeitsspeicher sein muss In der Praxis wird z B unter UNIX Betriebssystemen fur die meisten Anwendungsfalle eine Grosse des Auslagerungsspeichers vom Zwei bis Dreifachen des Arbeitsspeichers empfohlen abhangig davon ob das jeweilige System den Auslagerungsspeicher zusatzlich zum Arbeitsspeicher oder den Arbeitsspeicher als echte Teilmenge des Auslagerungsspeichers verwaltet 36 Seitenersetzungsstrategien BearbeitenWenn ein Seitenfehler auftritt muss unter Umstanden eine Seite im Arbeitsspeicher verdrangt werden um fur die neue Seite Platz zu schaffen Die Leistung eines Pagingsystems hangt wesentlich davon ab welche Seiten im Arbeitsspeicher man beim Nachladen neuer Seiten verdrangt Wenn man eine viel benutzte Seite verdrangt dann erzeugt man Aufwand fur zusatzliche Nachladevorgange Nach Moglichkeit sollten also Seiten ausgelagert werden die nur selten benutzt werden Das Gebiet der Seitenersetzungsalgorithmen wurde sowohl theoretisch als auch experimentell intensiv erforscht Die Problematik besteht darin dass das Betriebssystem nicht wissen kann wann auf welche Seite das nachste Mal zugegriffen wird 37 Not Recently Used Algorithmus NRU Bearbeiten Siehe auch Not recently used Diese Paging Strategie lagert bevorzugt Seiten aus die innerhalb eines Zeitintervalls nicht benutzt referenziert und nicht modifiziert wurden Dazu werden die Seiten in regelmassigen Abstanden als ungelesen und unverandert markiert Wenn eine Seite ausgelagert werden muss wird gepruft bei welchen Seiten sich diese Markierungen nicht geandert haben Das Betriebssystem fuhrt mit Hilfe der beiden Statusbits Statistiken uber die Benutzung von Seiten Das M Bit wird gesetzt wenn ein Programm auf die Seite schreibt Das R Bit wird sowohl bei Lese als auch bei Schreibzugriff gesetzt Das Betriebssystem setzt nun in regelmassigen Abstanden z B bei jedem Timerinterrupt die R Bits auf 0 Dadurch ist das R Bit nur bei den Seiten gesetzt die in letzter Zeit gebraucht wurden Bei einem Seitenfehler teilt das Betriebssystem die Seiten nach dem Zustand der R und M Bits in vier Kategorien ein die mit entsprechender Prioritat ausgelagert werden R 0 M 0 nicht referenziert nicht modifiziert R 0 M 1 nicht referenziert modifiziert R 1 M 0 referenziert nicht modifiziert R 1 M 1 referenziert modifiziert Die Leistung des NRU Algorithmus ist zwar nicht optimal aber in vielen Fallen ausreichend 38 First In First Out Algorithmus FIFO Bearbeiten Siehe auch First In First Out Bei dieser Methode werden diejenigen Elemente die zuerst gespeichert wurden auch wieder zuerst aus dem Speicher genommen Auf die Seitenersetzung ubertragen bedeutet dies dass jeweils die alteste Seite ersetzt wird Das Betriebssystem fuhrt eine Liste mit allen Seiten im Speicher wobei am Eingang der jungste und am Ende der alteste Eintrag steht Bei einem Seitenfehler wird das Ende abgehangt und eine neue Seite am Eingang angehangt Diese Strategie ist ineffizient da die alteste Seite durchaus eine Seite mit sehr haufigen Zugriffen sein kann 39 Second Chance Algorithmus und Clock Algorithmus Bearbeiten Der Second Chance Algorithmus ist eine Verbesserung des First In First Out Algorithmus Es soll dabei verhindert werden dass die alteste Seite ausgelagert wird obwohl sie haufig benutzt wird Deshalb wird zunachst das R Bit abgefragt Es gibt nun zwei Falle Das R Bit ist nicht gesetzt Die Seite ist sowohl alt als auch unbenutzt Sie wird sofort ersetzt Das R Bit ist gesetzt Das R Bit wird geloscht und die Seite wird an den Listeneingang verschoben Die Suche wird fortgesetzt Der Second Chance Algorithmus ist allerdings ineffizient da er standig Seiten in der Liste verschiebt Eine Verbesserung dazu stellt der Clock Algorithmus dar Die Seiten werden in einer ringformigen Liste gehalten und ein Zeiger zeigt auf die alteste Seite vergleichbar mit einem Uhrzeiger Wenn nun das R Bit 0 ist wird die Seite ausgelagert und die neue Seite an derselben Stelle eingelagert ansonsten wird das R Bit auf 0 gesetzt und der Zeiger ruckt um eine Seite vor 40 Least Recently Used Algorithmus LRU Bearbeiten Siehe auch Least recently used Diese Strategie lagert diejenige Seite aus deren letzte Referenzierung zeitlich am langsten zuruckliegt Man geht also von der Annahme aus dass Seiten die lange nicht genutzt wurden auch in Zukunft nicht verwendet werden und Seiten die in der jungsten Vergangenheit genutzt wurden auch in Zukunft haufig verwendet werden Der LRU Algorithmus ist zwar eine gute Annaherung an den optimalen Algorithmus er ist allerdings nur ziemlich aufwandig zu realisieren Es muss einiger Aufwand betrieben werden um jeweils die am langsten unbenutzte Seite schnell im Zugriff zu haben 41 Eine Moglichkeit besteht darin eine nach der zeitlichen Nutzung sortierte Liste zu fuhren Bei jedem Zugriff wird dabei die aktuell genutzte Seite an den Listeneingang gehangt Das Finden Verschieben und Loschen einer Seite in der Liste sind jedoch sehr aufwandige Operationen Eine weitere Moglichkeit besteht darin LRU mit Spezialhardware zu implementieren Die LRU Hardware fuhrt beispielsweise fur eine Maschine mit n Seitenrahmen eine n n displaystyle n times n nbsp Matrix Anfangs sind alle Eintrage auf 0 gesetzt Wird auf einen Seitenrahmen k zugegriffen setzt die Hardware alle Bits der Zeile k auf 1 und dann alle Bits der Spalte k auf 0 Zu jedem Zeitpunkt ist dadurch die am langsten nicht benutzte Seite diejenige mit dem niedrigsten Binarwert in der entsprechenden Zeile der Matrix 42 Aufgrund des hohen Aufwands werden in der Praxis sogenannte Pseudo LRU Algorithmen vorgezogen die das R und das M Bit benutzen Dazu gehoren auch der Second Chance Algorithmus und der Clock Algorithmus 43 Working Set Algorithmus Bearbeiten Der Working Set Algorithmus basiert auf der Idee dass bei einem Seitenfehler eine Seite ausgelagert wird die nicht mehr zum Arbeitsbereich eines Prozesses gehort Dazu fuhrt die Seitentabelle neben dem R Bit noch zusatzlich einen Eintrag der die ungefahre Zeit des letzten Zugriffs beinhaltet Der Algorithmus funktioniert folgendermassen Die Hardware setzt das R Bit bei Lese und Schreibzugriff In regelmassigen Abstanden periodischer Timerinterrupt werden die R Bits geloscht Bei einem Seitenfehler wird die Seitentabelle nach einer Seite durchsucht die ausgelagert werden soll Ist bei einem Eintrag R 1 R Bit gesetzt wurde die Seite im aktuellen Timerintervall verwendet und gehort offensichtlich zum Arbeitsbereich Sie kommt dann fur die Auslagerung nicht in Frage Die neue virtuelle Zeit wird nun in das Feld fur den Zeitpunkt des letzten Zugriffs eingetragen Ist bei einem Eintrag R 0 R Bit geloscht ist die Seite ein Kandidat fur die Auslagerung Es wird ihr Alter berechnet Laufzeit des Prozesses minus Zeitpunkt des letzten Zugriffs und mit einem Wert t verglichen Ist das Alter grosser als t gehort die Seite nicht mehr zum Arbeitsbereich und kann ausgelagert werden Der Rest der Tabelle wird noch durchlaufen um die Zugriffszeiten auf den neusten Stand zu bringen Der Working Set Algorithmus hat den Nachteil dass bei jedem Seitenfehler die gesamte Seitentabelle durchlaufen werden muss bis ein passender Kandidat gefunden ist 44 WSClock Algorithmus Bearbeiten Der WSClock Algorithmus ist einerseits eine Verbesserung des Clock Algorithmus nutzt andererseits aber auch Informationen uber den Arbeitsbereich 45 Wie beim Clock Algorithmus werden die Seiteneintrage in einer ringformigen Datenstruktur gehalten Jeder Eintrag enthalt ein R Bit ein M Bit und ein Feld fur den Zeitpunkt des letzten Zugriffs vergleichbar zum Working Set Algorithmus Bei einem Seitenfehler wird wie beim Clock Algorithmus zunachst die Seite untersucht auf die der Zeiger zeigt Entscheidend sind die folgenden Falle Das R Bit ist gesetzt Die Seite ist also kein geeigneter Kandidat fur die Auslagerung Das R Bit wird auf 0 gesetzt und der Zeiger ruckt vor Das R Bit ist nicht gesetzt und das Alter ist grosser als t Wenn M 0 ist wurde die Seite nicht modifiziert und sie kann einfach geloscht und ersetzt werden weil die Kopie auf der Festplatte noch aktuell ist Wenn M 1 ist ist die Kopie auf der Festplatte nicht mehr aktuell Die Seite wird vorgemerkt aber noch nicht sofort ausgelagert weil es weiter unten in der Liste vielleicht noch eine saubere Seite gibt die einfach geloscht werden kann Wenn ein Zeiger die gesamte Liste einmal durchlaufen hat gibt es folgende Falle Es wurde mindestens eine Seite vorgemerkt Die erste vorgemerkte Seite auf die der Zeiger trifft wird auf der Festplatte aktualisiert und ausgelagert Es wurde keine Seite vorgemerkt Alle Seiten gehoren also zum Arbeitsbereich Ohne zusatzliche Informationen besteht die einfachste Strategie darin irgendeine Seite auszulagern und durch eine neue zu ersetzen Wegen seiner guten Leistung und einfachen Implementierung ist der WSClock Algorithmus in realen Systemen weit verbreitet 46 Beispiele BearbeitenEinfaches fiktives Beispiel Bearbeiten Die Adresslange in diesem Beispiel sei 16 Bit wobei die oberen 8 Bit die Seitennummer und die unteren 8 Bit der Offset sind Die Adresse eines Bytes ergibt sich also Seitenrahmen 256 Offset Seitentabelle Eintrag Gultig Seitenrahmen0 Nein 1 Ja 0x172 Ja 0x203 Ja 0x084 Nein 5 Ja 0x10Zu ubersetzende Adressen virtuelle Adresse physische Adresse Bemerkung0x083A ungultig da die Seitentabelle nur Eintrage bis Seite 5 enthalt 0x01FF 0x17FF Seite 0x01 befindet sich in Seitenrahmen 0x17 also werden die oberen 8 bit der virtuellen Adresse durch 0x17 ersetzt0x0505 0x1005 Seite 0x05 befindet sich in Seitenrahmen 0x10 also werden die oberen 8 bit der virtuellen Adresse durch 0x10 ersetzt0x043A ungultig da die Seite 0x04 als ungultig markiert wurde Reales Beispiel IA32 Architektur Bearbeiten 32 Bit Paging Bearbeiten nbsp Die meisten Architekturen verwenden ein mehrstufiges Paging um die Seitentabellen kleinzuhalten Die IA32 Architektur verwendete ursprunglich ein zweistufiges Paging Die 32 Bit der linearen Adresse werden hierbei wie folgt aufgeteilt x86 Paging 4KiByte Seiten Bits Zuordnung31 22 Index im Seitenverzeichnis engl page directory kurz PD 21 12 Index in der Seitentabelle engl page table kurz PT 11 0 Offset in der SpeicherseiteDas Seitenverzeichnis und jede Seitentabelle bestehen aus 1024 Eintragen zu je 4 Byte und belegen somit jeweils genau eine Speicherseite Jeder Eintrag hat folgenden Aufbau 32 Bit Eintrag im Seitenverzeichnis Page directory entry Bits 31 12 11 9 8 7 6 5 4 3 2 1 0Inhalt Bit 31 12 der Basisadresse ign G PS D A PCD PWT U S R W PBedeutungenP present Seite ist im RAM vorhanden wenn Bit auf 1 R W read write Schreibzugriffe nur erlaubt wenn Bit auf 1 U S user supervisor Ring 3 Code darf nur auf die Seite zugreifen wenn Bit auf 1 PWT und PCD wird zur Cache Steuerung benutzt A accessed Wird von der CPU automatisch gesetzt sobald auf die Seite zugegriffen wird D dirty Wird von der CPU automatisch gesetzt sobald in die Seite geschrieben wurde PS page size Ist dieses Bit gesetzt verweist dieser Verzeichniseintrag direkt auf eine 4 MiB Seite statt auf eine Seitentabelle siehe Page Size Extension G global Kennzeichnet eine globale SpeicherseitePage Size Extension Bearbeiten Zur Optimierung grosser zusammenhangender Speicherbereiche z B Framebuffer fur Grafikkarten usw und um den Verwaltungsaufwand im Speichermanagement des Betriebssystems zu verringern unterstutzen CPUs ab dem Pentium offiziell dokumentiert ab Pentium Pro ausserdem 4 MiB grosse Seiten Dieses Feature wird Page Size Extension PSE genannt Hierbei markiert ein spezielles Bit im zugehorigen Seitenverzeichnis Eintrag dass die zweite Stufe im Paging fur diesen Adressbereich umgangen werden soll Damit geben die Bits 21 bis 0 der logischen Adresse direkt den Offset in der 4 MiB grossen Speicherseite an Um die Page Size Extension zu aktivieren muss das Betriebssystem das Bit 4 im Steuerregister CR4 setzen 47 Da die 4 MiB Seiten nur auf glatten Adressen beginnen durfen mussen die Bits 12 bis 20 im Seitenverzeichniseintrag stets 0 sein Dies wurde mit der PSE 36 Erweiterung abgeschafft indem diese Bits eine neue Bedeutung bekamen 32 Bit Eintrag im Seitenverzeichnis mit Page Size Extension Bits 31 22 21 20 17 16 13 12 11 9 8 7 6 5 4 3 2 1 0PSE ab Pentium Bit 31 22 der Basisadresse 0 PAT ign G PS D A PCD PWT U S R W PPSE 36 ab Pentium II Xeon Bit 31 22 der Basisadresse 0 Bit 35 32 PAT ign G PS D A PCD PWT U S R W PPSE 36 ab AMD K8 Bit 31 22 der Basisadresse 0 Bit 39 32 PAT ign G PS D A PCD PWT U S R W PDie PSE 36 Erweiterung ermoglichte es ohne grossen Anderungsaufwand am Betriebssystemkern auf mehr als 4 GiB physischen Hauptspeicher zugreifen zu konnen Allerdings ist Hauptspeicher jenseits der 4 GiB Grenze nur uber 4 MiB Seiten ansprechbar PSE 36 wurde nur von Windows NT 4 0 verwendet 32 Bit Verionen von Windows nach NT 4 0 und Linux setzen ausschliesslich auf die neuere Physical Address Extension PAE Wenn PSE gemeinsam mit PAE aktiviert ist sind die Speicherseiten nicht 4 sondern nur 2 MiB gross 48 Physical Address Extension Bearbeiten Hauptartikel Physical Address Extension nbsp Ab dem Pentium Pro ist es moglich bis zu 236 Bytes 64 GiB physischen Speicher zu adressieren Diese Technik wird Physical Address Extension genannt Dafur wird das Paging um eine dritte Stufe erweitert Die obersten beiden Bits der linearen Adresse wahlen nun einen aus 4 Eintragen der so genannten page directory pointer table kurz PDPT aus Die Eintrage in den Tabellen wurden auf 8 Bytes erweitert jede der Tabellen enthalt allerdings nur noch 512 Eintrage so dass die Gesamtgrosse der Tabelle wieder bei 4 KiB liegt 64 Bit Eintrag in Seitentabelle Page table entry Bits 63 62 52 51 32Inhalt NX reserved Bit 51 32 der BasisadresseBits 31 12 11 9 8 7 6 5 4 3 2 1 0Inhalt Bit 31 12 der Basisadresse ign G PAT D A PCD PWT U S R W PAuch mit PAE ist es moglich die letzte Adress ubersetzungs stufe des Pagings zu deaktivieren Die Bits 20 bis 0 der logischen Adresse bilden dann direkt den Offset einer 2 MiB grossen Speicherseite x86 Paging mit PAE Bits Zuordnung4 KiB Page 2 MiB Page31 30 Index in der PDPT29 21 Index im Seitenverzeichnis engl page directory kurz PD 20 12 Index in der Seitentabelle engl page table kurz PT Offset in der Speicherseite11 0 Offset in der Speicherseite64 Bit Modus Bearbeiten nbsp Mit der Einfuhrung des 64 Bit Modus beim AMD Athlon 64 wurde dieses Prinzip noch einmal angewendet Das Paging wurde um eine vierte Stufe erweitert Page Map Level 4 kurz PML4 und die PDPT wurde von 4 auf 512 Eintrage vergrossert so dass sie genauso gross wie die nachfolgenden Seitentabellen ist Neben den bereits im 32 Bit Modus verfugbaren 4 KiB und 2 MiB grossen Seiten sind im 64 Bit Modus auch 1 GiB grosse Seiten moglich Hierbei verweisen die unteren 22 Bits eines Eintrags in der Page Directory Pointer Table direkt auf die Startadresse einer 1 GiB Seite x86 64 Paging Bits Zuordnung4 KiB Page 2 MiB Page 1 GiB Page63 48 Kopie von Bit 47 als Vorzeichenerweiterung47 39 Index in der PML4 table engl page mapping layer 4 38 30 Index in der PDPT29 21 Index im Seitenverzeichnis engl page directory kurz PD 30 Bit Offset20 12 Seitentabelle engl page table kurz PT 21 Bit Offset11 0 12 Bit Offset in der Speicherseite5 Level Paging Bearbeiten Eine nochmalige Erweiterung 49 erfuhr das Konzept durch eine funfte Stufe die den Adressbereich noch einmal um 9 bit und damit auf 128 PiB erweitert Die neue Tabelle wird als PML5 table bezeichnet ist analog zur PML4 aufgebaut und enthalt ebenso 512 Eintrage Um diesen Modus nutzen zu konnen muss die Software zunachst mit einem neuen Flag feststellen ob 5 Level Paging unterstutzt wird oder ob nur 4 Level Paging moglich ist x86 64 Paging Bits Zuordnung4 KiB Page 2 MiB Page 1 GiB Page63 57 Kopie von Bit 56 als Vorzeichenerweiterung56 48 Index in der PML5 table engl page mapping layer 5 47 39 Index in der PML4 table engl page mapping layer 4 38 30 Index in der PDPT29 21 Index im Seitenverzeichnis engl page directory kurz PD 30 Bit Offset20 12 Seitentabelle engl page table kurz PT 21 Bit Offset11 0 12 Bit Offset in der SpeicherseiteLiteratur BearbeitenAlbert Achilles Betriebssysteme Eine kompakte Einfuhrung mit Linux Springer Berlin Heidelberg 2006 Uwe Baumgarten Hans Jurgen Siegert Betriebssysteme Eine Einfuhrung 6 uberarbeitete aktualisierte und erweiterte Auflage Oldenbourg Verlag Munchen Wien 2007 Mario Dal Cin Rechnerarchitektur Grundzuge des Aufbaus und der Organisation von Rechnerhardware Teubner Stuttgart 1996 Roland Hellmann Rechnerarchitektur Einfuhrung in den Aufbau moderner Computer 2 Auflage De Gruyter Berlin Boston 2016 Peter Mandl Grundkurs Betriebssysteme Architekturen Betriebsmittelverwaltung Synchronisation Prozesskommunikation Virtualisierung 4 Auflage Springer Vieweg Wiesbaden 2014 Andrew S Tanenbaum Moderne Betriebssysteme 4 aktualisierte Auflage Pearson Studium Munchen u a 2016 ISBN 978 3 8689 4270 5 Klaus Wust Mikroprozessortechnik Grundlagen Architekturen Schaltungstechnik und Betrieb von Mikroprozessoren und Mikrocontrollern 4 Auflage Vieweg Teubner Wiesbaden 2011 Einzelnachweise Bearbeiten Verwendung Begriff Kachelverwaltung Karlsruher Institut fur Technologie Prufung 1 2 Vorlage Toter Link os itec kit edu Seite nicht mehr abrufbar festgestellt im Mai 2019 Suche in Webarchiven nbsp Info Der Link wurde automatisch als defekt markiert Bitte prufe den Link gemass Anleitung und entferne dann diesen Hinweis abgerufen am 1 September 2014 Uni Ulm Netzwerktreiber Projekt abgerufen am 1 September 2014 RabbitMQ 2 0 0 unterstutzt aktuellen AMQP Standard Artikel bei Heise Developer vom 26 August 2010 a b c Tanenbaum Moderne Betriebssysteme 2009 S 243 a b c Wust Mikroprozessortechnik 2011 S 173 Wust Mikroprozessortechnik 2011 S 174 Tanenbaum Moderne Betriebssysteme 2009 S 243 a b Mandl Grundkurs Betriebssysteme 2014 S 223 Anmerkung Normalerweise hat jeder Prozess seinen eigenen Adressraum der unabhangig von den Adressraumen der anderen Prozessen ist mit Ausnahme von speziellen Umstanden wenn Prozesse ihre Adressraume teilen wollen Mandl Grundkurs Betriebssysteme 2014 S 225 Tanenbaum Moderne Betriebssysteme 2009 S 243 244 a b Tanenbaum Moderne Betriebssysteme 2009 S 246 Achilles Betriebssysteme 2006 S 57 Tanenbaum Moderne Betriebssysteme 2009 S 246 Mandl Grundkurs Betriebssysteme 2014 S 225 Tanenbaum Moderne Betriebssysteme 2009 S 247 Tanenbaum Moderne Betriebssysteme 2009 S 246 247 Michael Wen Finite Programming in C iUniverse New York u a 2005 S 69 Achilles Betriebssysteme 2006 S 59 ferner Mandl Grundkurs Betriebssysteme 2014 S 227 Achilles Betriebssysteme 2006 S 59 Tanenbaum Moderne Betriebssysteme 2009 S 249 Mandl Grundkurs Betriebssysteme 2014 S 226 Mario Dal Cin Rechnerarchitektur Grundzuge des Aufbaus und der Organisation von Rechnerhardware Teubner Stuttgart 1996 S 136 Wolfram Schiffmann Technische Informatik 2 Grundlagen der Computertechnik 5 Auflage Springer Berlin Heidelberg 2005 S 310 Zur Berechnung einer optimalen Ausnutzung des Arbeitsspeichers durch Minimierung des Speicherverschnitts siehe Mario Dal Cin Rechnerarchitektur 1996 S 137 Tanenbaum Moderne Betriebssysteme 2009 S 275 Mandl Grundkurs Betriebssysteme 2014 S 195 AMD AMD64 Technology Kap 5 1 Page Translation Overview S 120 The following physical page sizes are supported 4 Kbytes 2 Mbytes 4 Mbytes and 1 Gbytes Roland Hellmann Rechnerarchitektur Einfuhrung in den Aufbau moderner Computer 2 Auflage de Gruyter Berlin Boston 2016 Tanenbaum Moderne Betriebssysteme S 273 Mandl Grundkurs Betriebssysteme 2014 S 252 mit Verweis auf Tanenbaum Moderne Betriebssysteme 2009 Peter Mandl Grundkurs Betriebssysteme Architekturen Betriebsmittelverwaltung Synchronisation Prozesskommunikation 2 uberarbeitete und aktualisierte Auflage Vieweg Teubner 2010 ISBN 978 3 8348 0809 7 7 3 2 Windows Speicherverwaltung S 245 Tabelle 7 1 Seitengrossen unter Windows in Abhangigkeit der Prozessorarchitektur nach Solomon 2005 eingeschrankte Vorschau in der Google Buchsuche Tanenbaum Moderne Betriebssysteme 2009 S 253 Tanenbaum Moderne Betriebssysteme 2009 S 251 253 Wust Mikroprozessortechnik 2011 S 195 196 Mandl Grundkurs Betriebssysteme 2014 S 251 Tanenbaum Moderne Betriebssysteme S 254 255 Tanenbaum Moderne Betriebssysteme 2009 S 263 Peter J Denning The Working Set Model for Program Behavior In Commun of the ACM 11 1968 S 323 333 Online Achilles Betriebssysteme 2006 S 60 Peter J Denning Working Sets Pasts and Present In IEEE Trans on Software Engineering Vol SE 6 No 1 Januar 1980 S 64 84 Online Peter J Denning Virtual Memory In Computing Surveys Vol 2 Sept 1970 S 153 189 Tanenbaum Moderne Betriebssysteme 2009 S 263 264 Per Brinch Hansen Operating System Principles Prentice Hall Englewood Cliifs NJ 1973 S 185 191 Tanenbaum Moderne Betriebssysteme 2009 S 255 Tanenbaum Moderne Betriebssysteme 2009 S 257 Tanenbaum Moderne Betriebssysteme 2009 S 258 Tanenbaum Moderne Betriebssysteme 2009 S 258 259 Mandl Grundkurs Betriebssysteme 2014 S 241 242 Tanenbaum Moderne Betriebssysteme 2009 S 260 Mandl Grundkurs Betriebssysteme 2014 S 242 Tanenbaum Moderne Betriebssysteme 2009 S 265 266 Richard W Carr John L Hennessy WSClock A Simple and Effective Algorithm for Virtual Memory Management In Proc Eighth Symp on Operating Systems Principles ACM 1981 S 87 95 Online Tanenbaum Moderne Betriebssysteme 2009 S 267 268 support amd com PDF Hans Peter Messmer Klaus Dembowski PC Hardwarebuch Aufbau Funktionsweise Programmierung Ein Handbuch nicht nur fur Profis 7 Auflage Addison Wesley 2003 ISBN 978 3 8273 2014 8 12 3 3 Der 36 Bit Adressbus S 430 eingeschrankte Vorschau in der Google Buchsuche Ist die Erweiterung aktiv arbeitet der PentiumPro wahlweise mit 4 KByte oder 2 MByte Pages ohne Adresserweiterung 4 KByte und 4 MByte Pages 5 Level Paging and 5 Level EPT Intel 2017 abgerufen am 12 Februar 2020 Abgerufen von https de wikipedia org w index php title Paging amp oldid 238778198