<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Seitentabelle</id>
	<title>Seitentabelle - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Seitentabelle"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Seitentabelle&amp;action=history"/>
	<updated>2026-05-31T16:57:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Seitentabelle&amp;diff=279345&amp;oldid=prev</id>
		<title>2A01:AEA0:DD3:70:A053:36AE:225F:4193: /* Einstufige Seitentabelle */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Seitentabelle&amp;diff=279345&amp;oldid=prev"/>
		<updated>2019-06-02T13:51:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Einstufige Seitentabelle&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;Seitentabelle&amp;#039;&amp;#039;&amp;#039; ({{enS|&amp;#039;&amp;#039;page table&amp;#039;&amp;#039;}}) ist die Datenstruktur, die für das Umrechnen von virtuellen zu physischen Adressen verwendet wird. Virtuelle Adressen werden von Prozessen verwendet und sind eine Abstraktion vom physischen Speicher. Der Prozess kann nur auf seinen eigenen virtuellen Speicher schreiben und lesen. Das Umrechnen der virtuellen Adresse eines Prozesses wird heute üblicherweise von der [[Memory Management Unit|MMU]]  übernommen und ist für den Prozess gar nicht einsehbar. Die Seitentabellen beinhalten dabei das Mapping zwischen der virtuellen und der physischen Adresse.&lt;br /&gt;
&lt;br /&gt;
== Einstufige Seitentabelle ==&lt;br /&gt;
[[Datei:EinstufigeSeitentabelle.png|mini|400px|Schematische Darstellung der einstufigen Adressumsetzung]]&lt;br /&gt;
&lt;br /&gt;
Die Adressumsetzung mit Hilfe einer einstufigen Seitentabelle geschieht durch Interpretation der &amp;#039;&amp;#039;n&amp;#039;&amp;#039; höherwertigen Bits einer [[Virtuelle Adresse|virtuellen Adresse]] als Seitennummer der angeforderten [[Speicherseite]] und der Verwendung der &amp;#039;&amp;#039;m&amp;#039;&amp;#039; niederwertigen Bits als [[Speicheradresse#Segmentierte Adressen|Offset]]. Die Seitennummer bestimmt dabei ausgehend von der Basisadresse der Seitentabelle, welche in einem [[Register (Computer)|Register]] der [[Memory Management Unit]] gehalten wird, denjenigen Eintrag in der Seitentabelle, aus dem die Basisadresse der nötigen realen Speicherseite abzulesen ist. Des Weiteren beinhaltet die Seitentabelle auf den höherwertigen Bits Statusinformationen über die Speicherseite, die beispielsweise Auskunft geben, ob sich die Speicherseite im [[Random-Access Memory|RAM]] befindet oder ob sie seit dem letzten Zugriff verändert wurde. Die aus der Seitentabelle ausgelesene Basisadresse der realen Speicherseite zusammen mit dem unveränderten Offset ergeben die reale Adresse.&lt;br /&gt;
&lt;br /&gt;
Da die Anzahl der Einträge einer einstufigen Seitentabelle von der Größe des virtuellen Adressraums und der gewählten Seitengröße abhängt, ergibt sich ein Problem, wenn der virtuelle Adressraum zu groß und/oder die gewählte Seitengröße zu klein wird. Wählt man beispielsweise eine Seitengröße von 4&amp;amp;nbsp;kiB, dann hat die zugehörige Seitentabelle bei einem 16-Bit-Adressraum, also einem virtuellen Speicher von 64&amp;amp;nbsp;kiB, lediglich 16 Einträge. Für einen 32-Bit-Adressraum, also einem virtuellen Speicher von 4&amp;amp;nbsp;GiB Größe, und gleicher Seitengröße benötigt eine zugehörige Seitentabelle bereits über eine Million Einträge, die alle im Speicher gehalten werden müssten.&lt;br /&gt;
Um den Speicherbedarf der Seitentabellen also auch für große Adressräume akzeptabel zu halten, wurden die Konzepte der &amp;#039;&amp;#039;mehrstufigen Seitentabelle&amp;#039;&amp;#039; und der &amp;#039;&amp;#039;invertierten Seitentabelle&amp;#039;&amp;#039; entwickelt.&amp;lt;ref name=&amp;quot;Tanenbaum Moderne Betriebssysteme&amp;quot;&amp;gt;Andrew S. Tanenbaum &amp;#039;&amp;#039;Moderne Betriebssysteme&amp;#039;&amp;#039;. Übersetzt von Uwe Baumgarten. 2., überarbeitete Auflage. Pearson Studium / Prentice Hall, München 2003, ISBN 3-8273-7019-1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mehrstufige Seitentabelle ==&lt;br /&gt;
[[Datei:MehrstufigeSeitentabelle.png|mini|400px|Schematische Darstellung der mehrstufigen Adressumsetzung]]&lt;br /&gt;
&lt;br /&gt;
Die Adressumsetzung mit Hilfe einer &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-stufigen Seitentabelle geschieht durch Aufteilung einer [[Virtuelle Adresse|virtuellen Adresse]] in &amp;#039;&amp;#039;k*n&amp;#039;&amp;#039; höherwertige Bits als Seitentabellenverweise und &amp;#039;&amp;#039;m&amp;#039;&amp;#039; niederwertige Bits als [[Speicheradresse#Segmentierte Adressen|Offset]]. Mit dem &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ten Verweis in der virtuellen Adresse wird aus der &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ten Seitentabelle die Basisadresse der Seitentabelle der Stufe &amp;#039;&amp;#039;k+1&amp;#039;&amp;#039; ausgelesen. Die letzte Stufe enthält dann den tatsächlichen Verweis auf die reale Basisadresse. Die aus der letzten Stufe der Seitentabellen ausgelesene Basisadresse der realen Speicherseite zusammen mit dem unveränderten Offset ergeben die reale Adresse.&lt;br /&gt;
&lt;br /&gt;
Der Vorteil bei diesem Ansatz gegenüber der einstufigen Seitentabelle ist der, dass nicht immer alle Teile der Seitentabelle im Speicher gehalten werden müssen.&amp;lt;ref name=&amp;quot;Tanenbaum Moderne Betriebssysteme&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Invertierte Seitentabelle ==&lt;br /&gt;
[[Datei:Invertierte Seitentabellen de.svg|mini|500px|links|Invertierte Seitentabelle]]&lt;br /&gt;
&lt;br /&gt;
Insbesondere einstufige, aber auch mehrstufige Seitentabellen benötigen sehr viel Speicherplatz, nur um die Seitentabelle im Speicher abzulegen. Mit dem Ansatz der invertierten Seitentabelle beseitigt man dieses Problem. Es wird in der Seitentabelle nicht mehr ein Eintrag pro virtueller Seite angelegt, sondern nur noch je ein Eintrag pro realer Speicherseite. Der Zugriff auf diese Tabelle benötigt nun jedoch einen Suchvorgang, um die virtuelle Adresse in der gesamten Seitentabelle zu finden und die zugehörige reale Adresse auszulesen. Häufig wird das Suchen in der invertierten Seitentabelle durch das Vorschalten einer [[Hashtabelle]] beschleunigt.&lt;br /&gt;
&lt;br /&gt;
Da sich keine Informationen über ausgelagerte Seiten in der invertierten Seitentabelle finden, ist bei einem Seitenfehler der Rückgriff auf eine „normale“ Seitentabelle notwendig.&lt;br /&gt;
&lt;br /&gt;
== Seitenfehler (Page Fault) ==&lt;br /&gt;
Bei jedem Verfahren kann es natürlich passieren, dass die angeforderte virtuelle Adresse sich in einer nicht im [[Arbeitsspeicher]] befindlichen [[Speicherseite]] befindet, sondern erst durch [[Paging]] vom Hintergrundspeicher in den Arbeitsspeicher geladen werden muss (engl.: [[Paging#Demand Paging|Demand Paging]]).&lt;br /&gt;
Die Memory Management Unit signalisiert dies, sobald sie in den Statusbits bei dem sogenannten Valid Bit einer Seitentabelle einen &amp;#039;&amp;#039;Ungültig&amp;#039;&amp;#039; Eintrag (i.&amp;amp;nbsp;d.&amp;amp;nbsp;R. eine 0)  vorfindet, indem sie einen so genannten [[Seitenfehler]] (Page Fault) auslöst.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4620646-2}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Speicherverwaltung]]&lt;br /&gt;
[[Kategorie:Rechnerarchitektur]]&lt;/div&gt;</summary>
		<author><name>2A01:AEA0:DD3:70:A053:36AE:225F:4193</name></author>
	</entry>
</feed>