Seitentabellen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Seitentabellen
Hallo Zusammen,

gestern in der Fragestunde wurde Aufgabe 3 von der Klausur ss2011 gemacht und folgendermaßen gelöst:

Basisregister
|
|
v
Addr P Rechte
0 0 0 - - -
1 4000 1 r - x
2 7000 1 r - x
3 6000 1 r w -
4 37000 0 r w - Adresse auf Swap, kann sein dass die Adresse zu lang ist. Interessiert die MMU aber nicht, weil present = 0.
.
.
.
F 9000 1 r w -
→ phys. Adresse: 7 2 6 0

Was ich nicht verstehe ist wie man hier auf den Index von 2 kommt.
Ich hätte folgendes gedacht:

Eine Seite sind 4kibibit => 2^10 => 10 bits zur addr. für den Versatz => 0x2260 = 0x2 |2|60

Versatz ist die 60  und die zwei bits von |2|  = 0010 => 0x260
aber => der Seitenindex in der Seitentabelle = 001000  und das ist dann 8   - was ja der Adresse im Haupstpeicher entspricht

[quote=[hedgehogs dilemma = 42]]
Eine Seite sind 4kibibit => 2^10 => 10 bits zur addr. für den Versatz => 0x2260 = 0x2 |2|60
[/quote]

Eine Seite sind 4kibibit => 2^12 => 12 bits zur addr. für den Versatz => 0x2260 = 0x2 |260

:wink:


ok, sorry für die blöde Frage ^^


Wie wird das denn berechnet?

Habe gerade die Multiple-Choice-Frage vor mir:

Welche Seitennummer und welcher Versatz gehören bei einer Seitengröße von 1024 Bytes zu folgender logischer Adresse: „0xcafe“?

Antwort: Seitennummer 0x32, Versatz 0x2fe


ja kam in der Vorlesung irgendwo mal dran:

aber das wär eh ne dankbare frage, wenn man nicht zu doof ist (wie ich) die bytes umzurchnen.

Hier zu deinem beispiel:

1024 = 2^10;
=> versatz = fe

  • |a| = 1010 , davon die 10, also 2 => 2fe ist versatz

=> c = 1100 , + die 10 von |a| = 110010 => 11 und 0010 => 32

Daraus folgt 32 und 2fe

1 Like