Virtuelle Speicherverwaltung

Die Grundlagen der virtuellen Speicherverwaltung mit MMU waren bereits in dem folgenden Video erläutert worden. Es schadet an dieser Stelle nicht, sich die erklärten Inhalte noch einmal in Erinnerung zu rufen.


Grundlagen

Video.png
Video

Mit den Erläuterungen des Videos ergibt sich eine grundlegende Vorstellung davon, was die virtuelle Speicherverwaltung ausmacht. Im Folgenden geht es um einen tieferen Einblick in die Thematik.


Grundgedanken der virtuellen Speicherverwaltung

Mandl 2013 fasst die Grundgedanken der virtuellen Speicherverwaltung treffend in drei Punkten zusammen:

  • Ein Prozess sollte auch dann noch ablaufen können, wenn er nur teilweise im Hauptspeicher ist. Wichtig ist hierbei, dass die Teile des Prozesses (Daten und Code) im physikalischen Speicher sind, die gerade benötigt werden.

  • Der Speicherbedarf eines Prozesses sollte größer als der physikalisch vorhandene Hauptspeicher sein können.

  • Ein Programmierer sollte am besten nur einen kontinuierlichen (linearen) Speicherbereich, beginnend bei Adresse 0 sehen und sich nicht um die Zerstückelung (Fragmentierung) des Hauptspeichers auf mehrere Benutzer kümmern müssen.


Grundbegriffe

Die virtuelle Speicherverwaltung definiert eine Reihe von Grundbegriffen, welche in den folgenden Erläuterungen immer wieder verwendet werden.

Bereits bekannt sind die Fachbegriffe:

Gegebenenfalls sollten die Definitionen noch einmal nachgelesen werden.

Zusätzlich werden weitere Fachbegriffe benötigt, die teilweise bereits in dem obigen Video benutzt wurden.


Definition: Seitenrahmen

Definition

Unter einem Seitenrahmen (englisch: Pageframe, oder kurz: Frame bzw. Rahmen) versteht man einen zusammenhängenden Block von Speicherzellen des physikalischen Speichers.

Typische Größen für einen Seitenrahmen in der Praxis sind 1, 4, 8, 16 oder 64 KiB. Alle Seitenrahmen eines Systems haben stets die gleiche Größe.


Definition: Seite

Definition

Unter einer (virtuellen) Seite (englisch: Page) versteht man einen zusammenhängenden Block von Speicherzellen des virtuellen Speichers. Die Blockgröße einer Seite entspricht immer exakt der Größe eines Seitenrahmens.

Alle Seiten eines Systems haben stets die gleiche Größe.


Aufgabe 1

Aufgabe
Rahmen vs. Seite

Was ist der Unterschied zwischen einem Seitenrahmen und einer Seite?

Anhand des Videos kann nachvollzogen werden, warum die Größe eines Seitenrahmens und einer Seite stets identisch sein muss. Erläutere warum!


Die folgende Aufgabe ist besonders wichtig, um alle weiteren Details der virtuellen Speicherverwaltung verstehen zu können.


Aufgabe 2

Aufgabe
Rechne nach!

Ein Rechnersystem verfügt über 1 GiB physikalischen Speicher. Jedem gestarteten Prozess wird vom Betriebssystem ein virtueller Speicher von 4 GiB zugewiesen. Die Größe eines Seitenrahmens beträgt 64 KiB.

a) Wie viele Seitenrahmen gibt es insgesamt?

b) Wie viele Seiten gibt es insgesamt (pro Prozess)?


Angenommen, ein einzelner Maschinensprachebefehl hat eine Größe von 32 Bit:

c) Wie viele Befehle passen in einen Seitenrahmen?

d) Und wie viele Befehle passen demnach in eine Seite?


Innerhalb eines Seitenrahmens kann jede einzelne Speicherzelle (= 8 Bit) adressiert werden. Demnach beginnt der erste Befehl bei Adresse 0 innerhalb des Rahmens, der zweite Befehl bei Adresse 4, der dritte Befehl bei Adresse 8, usw.

e) Wie viele Adressen existieren pro Seitenrahmen insgesamt?

f) Und wie viele Adressen existieren demnach pro Seite?

g) Wie viele Bit werden benötigt, um diese Adressen angeben zu können?


Merke dir die gerade errechnete Bitanzahl, du wirst sie gleich wieder brauchen!

Oben hattest du bereits die Anzahl der Rahmen und die Anzahl der Seiten berechnet:

h) Wie viele Bit werden benötigt, um die Anzahl der Seitenrahmen damit codieren zu können?

i) Und wie viele Bit benötigt man für die Codierung der Seitenanzahl?


Jetzt kannst du den Schluss ziehen:

j) Aus wie vielen Bit besteht eine physikalische Adresse des betrachteten Rechnersystems?

k) Und aus wie vielen Bit besteht eine virtuelle Adresse?


Das Endergebnis der vorangegangenen Aufgabe zeigt, dass eine physikalische Adresse eine andere Bit-Länge als eine virtuelle Adresse besitzt. Zusammen mit dem Video wird nun klar, dass eine Umrechnung von virtuellen Adressen in physikalische Adressen erfolgen muss.

Genau dies ist die Aufgabe der Memory Management Unit (MMU).



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz 80x15.png