# Speichermanagement mit Seitenfehler I



## osion (2. Apr 2022)

Hallo

Ich habe eine Aufgabe, welche mit Paging funktioniert.

Ich habe Rot die Adressen angeben (stimmt aber so laut Lösung nicht).

*Aufgabe:*


*Lösung die ich im Internet gefunden habe:*


*Was ich nicht verstehe?*
1. Laut Lösung wird der Adressraum von Page 2,3,5 und 7 angegeben. Ich hätte aber folgendes gesagt 0 = 1, 1=2,4=5,6=7
2. Bei b) wird bei 0 die Start Adr. von Page 3 verwendet, aber bei 1023 die End. Adr. von Page 3 (warum einmal Start und einmal Ende?)
2. Was ist die Auswirkung, wenn es 8 virtuellen Seiten und 4 physikalische Seiten hat?


----------



## osion (3. Apr 2022)

Ich habe rausgefunden wie ich es rechnen muss, aber nicht warum.

Ich muss die Adresse nehmen und dann die physikalische Seite ansehen und danach auf diese virtuelle Seite wechseln und dort nochmals die Adresse berechnen.


----------



## mihe7 (3. Apr 2022)

osion hat gesagt.:


> Ich muss die Adresse nehmen und dann die physikalische Seite ansehen und danach auf diese virtuelle Seite wechseln und dort nochmals die Adresse berechnen.


Nein, das ist ganz einfach. Du hast eine Seitengröße von n und möchtest zu einer virtuellen Adresse V die physikalische Adresse A ermitteln.

Mal ganz ausführlich:

Es wird die virtuelle Seite ermittelt: v = V / n (ganzzahlige Division)
Es wird das Offset in der virtuellen Seite ermittelt: o = V % n (% = Restoperator)
In der Tabelle schlägst Du die physikalische Seite a nach. Ist diese nicht im Hauptspeicher -> Fehler, sonst weiter mit 4.
Die physikalische Seite a beginnt an der physikalischen Adresse s = a * n
Für die physikalische Adresse A gilt also A = s + o
Beispiel: virtuelle Adresse V = 4111. 

v = V / n = 4111 / 1024 = 4
o = V % n = 4111 % 1024 = 15
Lt. Tabelle verweist die virtuelle Seite 4 auf die physikalische Seite 2, also kein Fehler sondern a = 2 und weiter.
Die physikalische Seite a = 2 beginnt an der physikalischen Adresse s = 2 * 1024 = 2048.
Die physikalische Adresse der virtuellen Adresse 4111 ist demnach A = 2048 + 15 = 2063.


----------



## osion (3. Apr 2022)

mihe7 hat gesagt.:


> Nein, das ist ganz einfach. Du hast eine Seitengröße von n und möchtest zu einer virtuellen Adresse V die physikalische Adresse A ermitteln.
> 
> Mal ganz ausführlich:
> 
> ...


Danke für die Antwort.

Ich finde es verwirrend. Wenn ich die Virtuelle Seite 0 anschaue und danach die Adresse bei der virtuellen Seite 3 finde.


----------



## mihe7 (3. Apr 2022)

osion hat gesagt.:


> Wenn ich die Virtuelle Seite 0 anschaue und danach die Adresse bei der virtuellen Seite 3 finde.


Nein! Wenn Du in die virtuelle Seite 0 schaust, findest Du den Verweis auf die physikalische Seite 3. Und nachdem jede Seite 1024 groß ist, fängt die physikalische Seite 3 eben bei Adresse 3 x 1024 = 3072 an.


----------



## osion (3. Apr 2022)

mihe7 hat gesagt.:


> Nein! Wenn Du in die virtuelle Seite 0 schaust, findest Du den Verweis auf die physikalische Seite 3. Und nachdem jede Seite 1024 groß ist, fängt die physikalische Seite 3 eben bei Adresse 3 x 1024 = 3072 an.


Danke für die Antwort.


----------

