3.3.1.2.1 Einstufige Seitentabellen

[gesichtete Version][gesichtete Version]
KKeine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Einstufige Seitentabellen=
 
<p>
<loop_index id="5fa978580b560">Seitentabelle, einstufig</loop_index><loop_index id="5fa978abc6618">einstufige Seitentabelle</loop_index>
<loop_index>Seitentabelle, einstufig|einstufige Seitentabelle</loop_index>
Damit die Hintergründe zu einstufigen Seitentabellen verstanden werden können, sind zunächst einige Umrechnungen nötig. Dies geschieht in der folgenden Aufgabe:
Damit die Hintergründe zu einstufigen Seitentabellen verstanden werden können, sind zunächst einige Umrechnungen nötig. Dies geschicht in der folgenden Aufgabe:
</p>
</p>


Zeile 9: Zeile 8:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Wenn du es umrechnen kannst, dann kannst du es auch verstehen!">
<loop_task title="Wenn du es umrechnen kannst, dann kannst du es auch verstehen!" id="5fa978580b56c">
<p>
<p>
Ein Computersystem arbeitet mit der virtuellen Speicherverwaltung. Es gelten folgende Voraussetzungen:
Ein Computersystem arbeitet mit der virtuellen Speicherverwaltung. Es gelten folgende Voraussetzungen:
* Physikalischer Adressraum:<br />Der (in den Rechner eingebaute) physikalische Speicher habe eine Größe von 512 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|MiB]].
* Physischer Adressraum:<br />Der (in den Rechner eingebaute) physische Speicher habe eine Größe von 512 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|MiB]].
* Virtueller Adressraum:<br />Der (jedem Prozesess zugeordnete) virtuelle Speicher habe eine Größe von 4 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|GiB]].
* Virtueller Adressraum:<br />Der (jedem Prozesess zugeordnete) virtuelle Speicher habe eine Größe von 4 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|GiB]].
* Ein Seitenrahmen (Pageframe) habe eine Größe von 64 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]].
* Ein Seitenrahmen (Pageframe) habe eine Größe von 64 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]].
Zeile 21: Zeile 20:
</p>
</p>
<p>
<p>
* Aus wievielen Seitenrahmen besteht der physikalische Adressraum?<br /><small>Gib die Antwort sowohl als Dezimalzahl, als auch als 2er-Potenz an!</small>
* Aus wievielen Seitenrahmen besteht der physische Adressraum?<br /><small>Gib die Antwort sowohl als Dezimalzahl, als auch als 2er-Potenz an!</small>
</p>
</p>
<p>
<p>
Zeile 42: Zeile 41:
== Adressumrechnung mit einstufiger Seitentabelle ==
== Adressumrechnung mit einstufiger Seitentabelle ==
<p>
<p>
<loop_index>Adressumrechnung mit einstufiger Seitentabelle</loop_index>
<loop_index id="5fa978580b574">Adressumrechnung mit einstufiger Seitentabelle</loop_index>
<loop_media type="video" title="MMU: Adressumrechnung mit einstufiger Seitentabelle (06:32)" description="http://youtu.be/aSSmsETQARw" copyright="CC-BY" index=true show_copyright=true>
<loop_media type="video" title="MMU: Adressumrechnung mit einstufiger Seitentabelle (06:32)" description="http://youtu.be/aSSmsETQARw" copyright="CC-BY" index=true show_copyright=true id="5fa978580b57c">
{{#ev:youtube|aSSmsETQARw|700}}
{{#ev:youtube|aSSmsETQARw|700}}
</loop_media>
</loop_media>
Zeile 50: Zeile 49:
<br />
<br />
<p>
<p>
<loop_index>Länge, virtuelle Adresse|Länge, physikalische Adresse|virtuelle Adresse, Länge|physikalische Adresse, Länge</loop_index>
<loop_index id="5fa978580b583">Länge, virtuelle Adresse</loop_index><loop_index id="5fa9785870313">Länge, physische Adresse</loop_index><loop_index id="5fa9785870323">virtuelle Adresse, Länge</loop_index><loop_index id="5fa978587032f">physische Adresse, Länge</loop_index>
Das im Video erläuterte Beispiel geht davon aus, dass in den betrachteten Rechner ein physikalischer Speicher (RAM) von 512 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|MiB]] eingebaut ist. Jedem Prozess wird vom Betriebssystem ein virtueller Speicher von 4 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|GiB]] zugewiesen. Aus diesen Voraussetzungen ergeben sich die Adresslängen:
Das im Video erläuterte Beispiel geht davon aus, dass in den betrachteten Rechner ein physischer Speicher (RAM) von 512 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|MiB]] eingebaut ist. Jedem Prozess wird vom Betriebssystem ein virtueller Speicher von 4 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|GiB]] zugewiesen. Aus diesen Voraussetzungen ergeben sich die Adresslängen:
* Länge einer virtuelle Adresse: 32 Bit
* Länge einer virtuelle Adresse: 32 Bit
* Länge einer physikalische Adresse: 29 Bit
* Länge einer physische Adresse: 29 Bit
</p>
</p>


Zeile 60: Zeile 59:
<loop_area type="important">
<loop_area type="important">
<p>
<p>
Basiert das betrachtete Rechnersystem auf anderen (physikalischen und virtuellen) Speichergrößen, so ändern sich auch die Adresslängen!<br />
Basiert das betrachtete Rechnersystem auf anderen (physischen und virtuellen) Speichergrößen, so ändern sich auch die Adresslängen!<br />
<br />
<br />
<small>([[Seitentabellen#Aufgabe_3|Siehe Aufgabe 3 unten.]])</small>
<small>([[Seitentabellen#Aufgabe_3|Siehe Aufgabe 3 unten.]])</small>
Zeile 75: Zeile 74:


<p>
<p>
<loop_figure title="Die im Video gezeigte Seitentabelle" description="" copyright="CC-BY" index=true show_copyright=true>
<loop_figure title="Die im Video gezeigte Seitentabelle" description="" copyright="CC-BY" index=true show_copyright=true id="5fa978580b58b">
[[Datei:Seitentabelle-4gb.jpg|700px]]
[[Datei:Seitentabelle-4gb.jpg|700px]]
</loop_figure>
</loop_figure>
Zeile 83: Zeile 82:
== Seitentabelleneintrag ==
== Seitentabelleneintrag ==
<p>
<p>
<loop_index>Seitentabelleneintrag</loop_index>
<loop_index id="5fa978580b592">Seitentabelleneintrag</loop_index>
Jede Zeile der Seitentabelle nennt man einen sogenannten '''Seitentabelleneintrag'''. Nach dem bisherigen Kenntnisstand besteht ein Seitentabelleneintrag also aus einer Seitenrahmen-Nummer und dem Present-/Absent-Bit.
Jede Zeile der Seitentabelle nennt man einen sogenannten '''Seitentabelleneintrag'''. Nach dem bisherigen Kenntnisstand besteht ein Seitentabelleneintrag also aus einer Seitenrahmen-Nummer und dem Present-/Absent-Bit.
</p>
</p>
Zeile 100: Zeile 99:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Eine Seitentabelle hat es in sich">
<loop_task title="Eine Seitentabelle hat es in sich" id="5fa978580b59a">
<p>
<p>
Betrachte die [http://vfhcab.oncampus.de/mediawiki/images/vfhcab/3/39/Seitentabelle-4gb.jpg Seitentabelle aus der vorangegangenen Abbildung].
Betrachte die [[Einstufige_Seitentabellen#Beispiel_einer_Seitentabelle|Seitentabelle aus der vorangegangenen Abbildung]].
</p>
</p>
<p>
<p>
Zeile 121: Zeile 120:


<br />
<br />
== Aufgabe 3 ==
== Aufgabe 3 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Nur 64 KiB RAM">
<loop_task title="Nur 64 KiB RAM" id="5fa978580b5a1">
<p>
<p>
Ein Rechnersystem besitzt einen physikalischen Speicher (RAM) von 64 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]]. Das Betriebssystem weist jedem Prozess einen virtuellen Speicher von 128 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]] zu.
Ein Rechnersystem besitzt einen physischen Speicher (RAM) von 64 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]]. Das Betriebssystem weist jedem Prozess einen virtuellen Speicher von 128 [[GiB,_MiB,_KiB_im_Vergleich_zu_GB,_MB,_KB|KiB]] zu.
* Welche Länge hat eine physikalische Adresse?
* Welche Länge hat eine physische Adresse?
* Welche Länge hat eine virtuelle Adresse?
* Welche Länge hat eine virtuelle Adresse?
* Wie ist die einstufige Seitentabelle in diesem Fall aufgebaut?
* Wie ist die einstufige Seitentabelle in diesem Fall aufgebaut?
* Wie viele Zeilen besitzt die Seitentabelle?
* Wie viele Zeilen besitzt die Seitentabelle?
* Erkläre an einem Beispiel, wie die Umrechnung einer virtuellen in eine physikalische Adresse funktioniert.
* Erkläre an einem Beispiel, wie die Umrechnung einer virtuellen in eine physische Adresse funktioniert.
* Gehe in deinem Beispiel davon aus, dass das zehnte Byte innerhalb der betreffenden virtuellen Seite adressiert wird.
* Gehe in deinem Beispiel davon aus, dass das zehnte Byte innerhalb der betreffenden virtuellen Seite adressiert wird.
</p>
</p>
Zeile 158: Zeile 158:
<br />
<br />
<p>
<p>
<cite>Mandl+2013</cite> zeigt in Kap. 7.2.1, Abb 7-14, ein Beispiel für eine Adressumsetzung mit Hilfe einer einstufigen Seitentabelle. Die folgende Aufgabe fordert Ähnliches:
<cite id="5fa978580b5a8">Mandl+2013</cite> zeigt in Kap. 7.2.1, Abb 7-14, ein Beispiel für eine Adressumsetzung mit Hilfe einer einstufigen Seitentabelle. Die folgende Aufgabe fordert Ähnliches:
</p>
</p>


Zeile 165: Zeile 165:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Du bist jetzt die MMU">
<loop_task title="Du bist jetzt die MMU" id="5fa978580b5af">
<p>
<p>
Betrachte die [http://vfhcab.oncampus.de/mediawiki/images/vfhcab/3/39/Seitentabelle-4gb.jpg einstufige Seitentabelle oben].
Betrachte die [[Einstufige_Seitentabellen#Beispiel_einer_Seitentabelle|einstufige Seitentabelle oben]].
</p>
</p>
<p>
<p>
Rechne mit Hilfe der Seitentabelle die folgenden virtuellen Adressen in physikalische Adressen um:
Rechne mit Hilfe der Seitentabelle die folgenden virtuellen Adressen in physische Adressen um:
* 0000 0000 0000 0010 1111 0000 0101 0000
* 0000 0000 0000 0010 1111 0000 0101 0000
* 0000 0000 0000 0011 1000 0110 0111 0111
* 0000 0000 0000 0011 1000 0110 0111 0111
Zeile 177: Zeile 177:
<p>
<p>
Hinweis:<br/>
Hinweis:<br/>
Gehe davon aus, dass die [http://vfhcab.oncampus.de/mediawiki/images/vfhcab/3/39/Seitentabelle-4gb.jpg Zeilen in der Seitentabelle] von unten nach oben durchnummeriert sind:
Gehe davon aus, dass die Zeilen in der Seitentabelle '''von unten nach oben''' durchnummeriert sind:
* Die Zeile ganz unten ist die ''Zeile Nr. 0''.
* Die Zeile ganz '''unten''' ist die ''Zeile Nr. 0''.
* Die Zeile ganz oben ist die ''Zeile Nr. 65.535''.
* Die Zeile ganz '''oben''' ist die ''Zeile Nr. 65.535''.
</p>
</p>
</loop_task>
</loop_task>

Aktuelle Version vom 8. Juni 2022, 16:28 Uhr

Damit die Hintergründe zu einstufigen Seitentabellen verstanden werden können, sind zunächst einige Umrechnungen nötig. Dies geschieht in der folgenden Aufgabe:


Aufgabe 1

Aufgabe

Ein Computersystem arbeitet mit der virtuellen Speicherverwaltung. Es gelten folgende Voraussetzungen:

  • Physischer Adressraum:
    Der (in den Rechner eingebaute) physische Speicher habe eine Größe von 512 MiB.
  • Virtueller Adressraum:
    Der (jedem Prozesess zugeordnete) virtuelle Speicher habe eine Größe von 4 GiB.
  • Ein Seitenrahmen (Pageframe) habe eine Größe von 64 KiB.
  • Eine (virtuelle) Seite hat per Definition die gleiche Größe wie ein Seitenrahmen, also auch 64 KiB.

Berechne:

  • Aus wievielen Seitenrahmen besteht der physische Adressraum?
    Gib die Antwort sowohl als Dezimalzahl, als auch als 2er-Potenz an!

  • Aus wievielen Seiten besteht ein virtueller Adressraum?
    Gib die Antwort sowohl als Dezimalzahl, als auch als 2er-Potenz an!

  • Wieviele Byte ergeben 64 KiB umgerechnet?
    Gib die Antwort sowohl als Dezimalzahl, als auch als 2er-Potenz an!


Die bei den Umrechnungen ermittelten Werte werden in dem folgenden Video wieder aufgegriffen. Es erklärt die Hintergründe einer einstufigen Seitentabelle und wie die MMU diese nutzt.


Adressumrechnung mit einstufiger Seitentabelle


Das im Video erläuterte Beispiel geht davon aus, dass in den betrachteten Rechner ein physischer Speicher (RAM) von 512 MiB eingebaut ist. Jedem Prozess wird vom Betriebssystem ein virtueller Speicher von 4 GiB zugewiesen. Aus diesen Voraussetzungen ergeben sich die Adresslängen:

  • Länge einer virtuelle Adresse: 32 Bit
  • Länge einer physische Adresse: 29 Bit


Wichtig

Basiert das betrachtete Rechnersystem auf anderen (physischen und virtuellen) Speichergrößen, so ändern sich auch die Adresslängen!

(Siehe Aufgabe 3 unten.)


Beispiel einer Seitentabelle

In der folgenden Abbildung sieht man die im Video gezeigte Seitentabelle. Sie besitzt insgesamt 65.536 Zeilen.

Seitentabelle-4gb.jpg


Seitentabelleneintrag

Jede Zeile der Seitentabelle nennt man einen sogenannten Seitentabelleneintrag. Nach dem bisherigen Kenntnisstand besteht ein Seitentabelleneintrag also aus einer Seitenrahmen-Nummer und dem Present-/Absent-Bit.


Hinweis

In der Praxis besteht ein Seitentabelleneintrag üblicherweise noch aus einigen weiteren Informationen. Bildlich gesprochen enthält die Seitentabelle also noch weitere Spalten. Wir kommen später darauf zurück.


Aufgabe 2

Aufgabe

Betrachte die Seitentabelle aus der vorangegangenen Abbildung.

  • Warum besitzt die Tabelle genau 65.536 Zeilen?

  • Unter welchen Umständen ist es erlaubt, dass eine Seitenrahmen-Nr. mehrfach in der Tabelle vorkommt? (Siehe 0 0000 0000 0000, es wären aber auch andere doppelte Nummern denkbar.)

  • In der Spalte mit dem Present-/Absent-Bit: Wieviele Einsen könnten in dieser Spalte maximal auftreten? Warum nicht mehr?

  • Wie realistisch ist es in der Praxis, dass in der Spalte mit dem Present-/Absent-Bit tatsächlich einmal die Maximalzahl an Einsen auftritt? Erläutere!


Aufgabe 3

Aufgabe

Ein Rechnersystem besitzt einen physischen Speicher (RAM) von 64 KiB. Das Betriebssystem weist jedem Prozess einen virtuellen Speicher von 128 KiB zu.

  • Welche Länge hat eine physische Adresse?
  • Welche Länge hat eine virtuelle Adresse?
  • Wie ist die einstufige Seitentabelle in diesem Fall aufgebaut?
  • Wie viele Zeilen besitzt die Seitentabelle?
  • Erkläre an einem Beispiel, wie die Umrechnung einer virtuellen in eine physische Adresse funktioniert.
  • Gehe in deinem Beispiel davon aus, dass das zehnte Byte innerhalb der betreffenden virtuellen Seite adressiert wird.

Hinweis:
Wenn du schon ein gewisses Verständnis für dieses Thema entwickelt hast, dann hast du bereits bemerkt, dass innerhalb dieser Aufgabe eine wichtige Vorraussetzung nicht genannt wurde. In dem Video ist sie hingegen genannt!

Denke erst nach, schaue dir das Video nochmals an, und diskutiere in deiner Lerngruppe. Dann brauchst du den folgenden Tipp sicher nicht.


Mandl 2013 zeigt in Kap. 7.2.1, Abb 7-14, ein Beispiel für eine Adressumsetzung mit Hilfe einer einstufigen Seitentabelle. Die folgende Aufgabe fordert Ähnliches:


Aufgabe 4

Aufgabe

Betrachte die einstufige Seitentabelle oben.

Rechne mit Hilfe der Seitentabelle die folgenden virtuellen Adressen in physische Adressen um:

  • 0000 0000 0000 0010 1111 0000 0101 0000
  • 0000 0000 0000 0011 1000 0110 0111 0111
  • 0000 0000 0000 0101 1100 0100 1110 1111

Hinweis:
Gehe davon aus, dass die Zeilen in der Seitentabelle von unten nach oben durchnummeriert sind:

  • Die Zeile ganz unten ist die Zeile Nr. 0.
  • Die Zeile ganz oben ist die Zeile Nr. 65.535.


Wie bereits erwähnt können alternativ zu einstufigen Seitentabellen auch mehrstufige Seitentabellen zum Einsatz kommen.



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png