Paging, logische, physische Adresse und Du

Dr Franke Ghostwriter
da das Paging bei der zweiten und dritten Online Veranstaltung (verstärkt) dran gekommen ist, gehe ich stark davon aus, dass das Thema auch in dieser Form in der Klausur dran kommt. Ich fasse mal die wichtigsten Punkte hier zusammen, dann haben auch die Leute etwas davon, die nicht bei der Online-Veranstaltung teilnehmen können.

Hier ist erst mal das Krikel-Krakel (sorry 🙂 ) von Herrn Coltzau:
37677763.png


Also, so eine Aufgabe könnte wie folgt aussehen:

Ein Paging-System hat einen maximalen logischen Speicher der Größe 16 GByte. Die Seitengröße beträgt 4 KByte und der maximale physische Speicher ist 4 GByte groß. Ein Abschnitt der Seitentabelle eines aktiven Prozesses hat die folgenden Einträge:

65761704.png


An dieser Stelle gibt es keine Seitennummer. Diese braucht man aber auch nicht explizit anzugeben, da diese immer von oben nach unten mit 0 beginnend nummeriert werden. Um es einfacher zu machen, kann man sich diese selbst daneben schreiben:

96845386.png


1.) Erste Frage:
Wie groß ist eine logische Adresse? oder auch
Wie viele Bit hat eine logische Adresse?

Der logische Speicher kann maximal 16 GB groß sein, das heißt:
[tex]16 GB = 16 * 2^{10} * 2^{10} * 2^{10} = 2^4 * 2 ^{30} = 2^{34}[/tex]
Also hat eine Adresse 34 Bit.

2.) Zweite Frage:
Wie groß ist ein Eintrag in der Seitentabelle? oder auch
Wie viele Bit hat ein Eintrag in der Seitentabelle?

Die Größe der Seitentabelle, also die Anzahl der Seitenrahmen, hängt von der Größe des physikalischen Speichers ab. Der physikalische Speicher wird in gleich große Rahmen (Seitenrahmen) aufgeteilt. In unserem Beispiel wird der 4 GB große physikalische Speicher in 4 KB Seitenrahmen aufgeteilt. Die Frage ist also, wie viele 4 KB Seitenrahmen passen in den 4 GB Speicher?

[tex]\frac{4 GB}{4 KB} = \frac{2^2 * 2^{30}}{2^2 * 2^{10}} = 2^{20}[/tex]

Der 4 GB Speicher wird in [tex]2^{20}[/tex] Seitenrahmen a 4 KB aufgeteilt. Der Eintrag in der Seitentabelle hat 20 Bit.

3.) Dritte Frage:
Welche physische Adresse hat die logische Adresse 4097?

Zum Verständnis: Die Seitennummern sind wie oben angegeben durchnummeriert. Da die Seitengröße 4KB, also 4096 Byte beträgt, sind so auch die logischen Adressen durchnummeriert:

28474951.png


Die Adresse 4097 liegt offensichtlich in der Seite mit der Nummer 1, die Seitenrahmennummer der ersten Seite ist 2. Jetzt fehlt aber noch das Offset, innerhalb der Seite wird weiter unterteilt:

Beim Suchen der phyischen oder logischen Adresse wird immer durch die Seitengröße mit Rest geteilt. Die logische Adresse ist 4097, die Seitengröße 4096.

[tex]\frac{4097}{4096} = 1 Rest 1[/tex]

Die 1 vor dem Rest bedeutet, dass die Adresse in der Seite mit der Nummer 1 (wie oben festgestellt) liegt. Die 1 hinter dem Rest ist das Offset. Diese wird für die weitere Adressierung verwendet: Da die Seitenrahmennummer der ersten Seite 2 ist, wird 2 mit der Seitengröße multipliziert und danach noch das Offset addiert.

[tex]2 * 4096 + 1 = 8193[/tex]

Die logische Adresse 4097 wird demnach auf die physische Adresse 8193 abgebildet.

Wem das noch zu kryptisch ist, der kann auch noch (für das Verständnis) auf der rechten Seiten den Adressraum hinzufügen:

55582845.png


Daran erkennt man, dass eine logische Adresse zwischen 4096 und 8191 auf eine physische Adresse zwischen 8192 und 12287 abgebildet wird. Um die genaue physische Adresse zu erfahren, wird das Offset verwendet.

4.) Vierte Frage:
Welche logische Adresse wird auf die physische Adresse 10020 abgebildet?

Die physische Adresse wird durch die Seitengröße dividiert:

[tex]\frac{10020}{4096} = 2 Rest 1828[/tex]

Die physische Adresse 10020 liegt im Seitenrahmen mit der Nummer 2 und Offset 1828. Da die logische Seite 1 auf Seitenrahmen 2 abgebildet wird, wird 1 mit der Seitengröße multipliziert und das Offset dazu addiert:

[tex]1 * 4096 + 1828 = 5924[/tex]

Die physische Adresse 10020 wird demnach auf die logische Adresse 5924 abgebildet.

5.) Fünfte Frage:
Welche logische Adresse wird auf die physische Adresse 12288 abgebildet?

Die physische Adresse wird durch die Seitengröße dividiert:

[tex]\frac{12288}{4096} = 3 Rest 0[/tex]

Die physische Adresse 12288 liegt im Seitenrahmen mit der Nummer 3 und Offset 0.
Ein Blick in die Seitentabelle der Aufgabenstellung lässt erkennen, dass dieser Eintrag nicht vorhanden ist. Als Antwort:
Seitenrahmennummer 3 wurde noch nicht in die Seitentabelle eingelagert.

Das war's.

Hoffentlich ist es Einigen eine Hilfe 😉

LG,
Mo

P.S.: Wenn jemand einen Fehler sieht, bitte Bescheid sagen, dann kann ich das korrigieren.
 
Noch eine Anmerkung: Eine Seite passt genau in einen Seitenrahmen, d.h:
Seitengröße = Rahmengröße,😉
Wenn man das weiß ist man nicht verwirrt wenn die Angaben in der Fragestellung abweicht.
In der EA war z.B. die Seitengröße gegeben und im Beispiel der Onlineveranstaltung die Rahmengröße.
Lg
Sascha
 
Vielleicht, hat sich auch noch jemand außer mir gefragt, was mit dem logischen Speicherbereich ist, dem kein physischer Speicher zugewiesen ist. Vielleicht wurde die Frage auch zur Onlineveranstaltung gestellt, ich musst aber schon eher gehen. Jedenfalls, hab ich mich gefragt, was passiert, wenn eine logische Adresse aufgerufen wird, der kein physicher Speicher zugeordnet werden kann,weil der ja kleiner ist als der logische. Hab bei Wiki eine Antwort darauf gefunden:

Auch ist es möglich, einem Prozess mehr logischen Speicher zuzuteilen, als physisch vorhanden ist. Beim Zugriff auf die physisch nicht vorhandenen Speicherbereiche löst die CPUautomatisch eine Ausnahme aus, welche vom Betriebssystem abgefangen wird. Das Betriebssystem kann dann zusätzlichen Speicher bereitstellen, in dem es beispielsweise andere Speicherbereiche auf die Festplatte auslagert. Diese Technik wird Virtuelle Speicherverwaltung genannt.
 
Sascha,

genau. Mir ist noch aufgefallen, dass das bei einer Aufgabe so aussehen kann:
12445323.png

Wenn hier versucht wird, die Seite 2 zu adressieren, wird ein Interrupt ausgelöst, da es keine Seitenrahmennummer zur Seite 2 gibt (deswegen der Strich an dieser Stelle in der Tabelle).

Der Interrupt ist übrigens ein Hardware-Interrupt.

LG,
Mo
 
Hi Sascha,

genau. Mir ist noch aufgefallen, dass das bei einer Aufgabe so aussehen kann:
12445323.png

Wenn hier versucht wird, die Seite 2 zu adressieren, wird ein Interrupt ausgelöst, da es keine Seitenrahmennummer zur Seite 2 gibt (deswegen der Strich an dieser Stelle in der Tabelle).

Der Interrupt ist übrigens ein Hardware-Interrupt.

LG,
Mo

Hi,

welche Ergebnisse hast du bei der dazugehörigen Aufgabe raus?
Will mal schauen, ob ich das jetzt pack
 
Meine Frage, wie geht man das mit den 16KB Seitengröße bei d) und e) genau an? Bei 1024 war mir das in den Übungsaufgaben immer klar
ich weiß nicht genau welche Aufgabe du meinst aber wenn die seitengröße 16 KB ist,​
dann teilst du den logischen Speicher durch 16 KB (= 2^12 = 4096) um die max. länge der seitentabelle zu ermitteln, und physikalisch.Speicher durch 16 KB um die Anzahl der Einträge bzw. länge physikalische Adresse in der Tabelle zu ermitteln.​
😀
 
Ah danke! Ich stand auf den Schlauch! Es ging um die Aufgabe wo die oben gepostete Tabelle dazu gehört! Das war ne Klausuraufgabe, die in der 2ten Online-Veranstaltung durchgenommen wurde. Diese hatte zwar einen Fehler in der Aufgabenstellung, aber ich wollte sie dennoch mal durchgehen 🙂

edit:
Müßten doch 2^14 sein, oder? (also 16384KB). Weil 4096 sind es doch bei 4KB Seitengröße (2^12)
 
ja grad geöffnet:
a) 32GB / 16KB = 32x2^30 /16x2^10=2x2^20=2^21
es gibt also 2^21 mögliche logische Adressen.

b) 4GB / 16KB = 2^32/2^14 = 2^18
es gibt also 2^18 seitenrahmen. es sind also 2^18 der möglichen Adressen
belegt. die adresslänge der physikalischen Adress ist 18 Bit

rest folgt gleich.
 
d) 22001 / 16384 = 1 Rest 5617 -->Rahmen 1 Wort 5617 -->Rahmen 1 nicht in Tabelle --> Fehlzugriff
Nachtrag- Fehlzugriff ist hier das falsche Wort. Wir können die logische Adresse nicht ermitteln, weil der Eintrag in der Tabelle fehlt, wir also nicht wissen welche Seite im Rahmen 1 steckt.
 
ja grad geöffnet:
a) 32GB / 16KB = 32x2^30 /16x2^10=2x2^20=2^21
es gibt also 2^21 mögliche logische Adressen. Adresslänge 21 bit

Hierzu nochmal ne Frage/Anmerkung:
Hast du hier bei a) nicht die maximalen Einträge in der Seitentabelle ausgerechnet? (logischer Speicher / Seitengröße), denn die Bit der logischen Adresse bei einer Wortgröße von 1 Byte ist doch einfach der logische Speicher (32 GB) in 2er Potenz, also 2^35?
Jedenfalls wenn ich hier nach der Einsendearbeit gehe!
 
Hierzu nochmal ne Frage/Anmerkung:
Hast du hier bei a) nicht die maximalen Einträge in der Seitentabelle ausgerechnet? (logischer Speicher / Seitengröße), denn die Bit der logischen Adresse bei einer Wortgröße von 1 Byte ist doch einfach der logische Speicher (32 GB) in 2er Potenz, also 2^35?
Jedenfalls wenn ich hier nach der Einsendearbeit gehe!

Vorsicht!
Wenn es darum geht, Seiten zu adressieren, musst Du wie angegeben die Größe des logischen Speichers durch die Seitengröße teilen und davon den Logarithmus Dualis bilden.
Die maximalen Einträge errechnen sich aus dem physischen Speicher geteilt durch die Seitengröße.

Lg,
Mo
 
Vorsicht!
Wenn es darum geht, Seiten zu adressieren, musst Du wie angegeben die Größe des logischen Speichers durch die Seitengröße teilen und davon den Logarithmus Dualis bilden.
Die maximalen Einträge errechnen sich aus dem physischen Speicher geteilt durch die Seitengröße.

Lg,
Mo

Das ist aber in der EA2, Aufgabe 1 anders, oder bin ich jetzt komplett durcheinander?

Frage:
Wie viele Bit hat eine logische Adresse, wenn jedes Wort 1 Byte lang ist?
Antwort:
Logischer Speicher (16 MB) als Dualzahl, also 2^24

Frage:
Wie viele Einträge hat eine Seitentabelle maximal?
Antwort:
logischer Speicher (16MB) geteilt durch Seitengröße (1024 Byte), also 2^14 Seiten. Es gibt maximal 2^14 Einträge in einer Seitentabelle.

Frage:
Wie viele Bit hat ein Eintrag in der Seitentabelle?
Antwort:
physischer Speicher (2MB) geteilt durch Seitengröße (1024 Byte), also 2^11 Seitenrahmen, Also hat jeder Eintrag in der Seitentabelle mind. 11 Bit.
 
Hey Bonkel, ich hab meinen vorigen Eintrag gelöscht,

denn die Bit der logischen Adresse bei einer Wortgröße von 1 Byte ist doch einfach der logische Speicher (32 GB) in 2er Potenz, also 2^35?
Jedenfalls wenn ich hier nach der Einsendearbeit gehe!

Das ist richtig bezogen auf die Frage in der EA nach der Größe der logischen Adresse.
Wie schon gesagt ist dies Größe aber nicht zu verwechseln mit der Größe der Seiteneinträge.
 
Das ist aber in der EA2, Aufgabe 1 anders, oder bin ich jetzt komplett durcheinander?

Frage:
Wie viele Bit hat eine logische Adresse, wenn jedes Wort 1 Byte lang ist?
Antwort:
Logischer Speicher (16 MB) als Dualzahl, also 2^24

Frage:
Wie viele Einträge hat eine Seitentabelle maximal?
Antwort:
logischer Speicher (16MB) geteilt durch Seitengröße (1024 Byte), also 2^14 Seiten. Es gibt maximal 2^14 Einträge in einer Seitentabelle.

Frage:
Wie viele Bit hat ein Eintrag in der Seitentabelle?
Antwort:
physischer Speicher (2MB) geteilt durch Seitengröße (1024 Byte), also 2^11 Seitenrahmen, Also hat jeder Eintrag in der Seitentabelle mind. 11 Bit.

Hi Bonkel,

dann passt doch alles.
Wenn Du bei der ersten Frage durch "1" teilst, ändert sich nichts am Ergebnis!

LG,
Mo
 
Danke euch beiden erstmal, ich fasse zusammen:

Bit einer logischen Adresse: logischer Speicher / Wortgröße
max. Einträge Seitentabelle: logischer Speicher / Seitengröße
Bit eines Eintrags in Seitentabelle: physischer Speicher / Seitengröße

Physische Adresse von logischer Adresse ermitteln:
(Adresse / Seitengröße) = Seiten (und Ofset), anschließend Seitenrahmen ermitteln
Seitenrahmen * Seitengröße + Ofset

Logische Adresse von physischer Adresse ermitteln:
(Adresse / Seitengröße) = Seitenrahmen (und Ofset), anschließend Seite ermitteln
Seite * Seitengröße + Ofset
 
Bit einer logischen Adresse: logischer Speicher / Wortgröße

Nein da lagst du vorher richtig. Ich hatte da einen Fehler.
Bit einer logischen Adresse ist log2( Größe des logischen Speichers).

Nachtrag: ach da steht ja wortgröße, dass passt freilich.

wenn logischer Speicher 16MB ist, gibt es bei seitengröße von 1024 Byte 2^14 Seiten
von den Bit der logischen Adresse log2(16MB)=24 entfallen 14Bit auf die Seitenauswahl 10Bit auf die Adresse innerhalb der Page.
 
Oben