2 Stufige Seitentabelle

OP #3600702
Lesenswert?

Hallo,
Ich blicke nicht durch wie ich hier vorgehen soll? Also die virtuelle 
Adresse ist ja 24 bit (Gegeben durch die Hex Adressen). Nun umfasst der 
virtuelle Adressraum 1MiB und ist byteadressiert, also braucht es 20 
offset Bit, dann bleiben also noch 4 Bit für die Tabellen Index. Nun 
umfassen ja beide Tabellen 4 Eintrage, also gerade 2 bit für jede Stufe.
Nun sollte also nur der hinterste Teil der Adressen die Indices 
beschreiben, also nur die 0 bei allen Adressen. Dann sollte doch am ende 
in jeder Tabelle nur 1 Eintrag sein? Also eine Belegung von 8 Byte?
Wie kommt man auf 48 Byte?

Gruss Bert
Angehängte Dateien:
#3600771
Lesenswert?

Bert Siegfried schrieb:
> Also die virtuelle
> Adresse ist ja 24 bit (Gegeben durch die Hex Adressen).

Nein. Virtuelle Adresse = Adresse im virtuellen Adressraum. Der Rest ist 
Schreibkonvention, 0200F8 = 200F8 = 0000000000200F8.

> Nun umfasst der virtuelle Adressraum 1MiB

Eben.

> und ist byteadressiert, also braucht es 20
> offset Bit, dann bleiben also noch 4 Bit für die Tabellen Index.

Völlig auf dem Holzweg.
OP #3601312
Lesenswert?

Was genau hat es den mit den Adressen auf sich? Die Tabelle ist ja zu 
Beginn leer, nach einem Zugriff wird doch in jede Tabelle eine 32 Bit 
Adresse geschrieben, sofern dort noch keine Adresse geschrieben war. Wie 
können da durch 3 Zugriffe 12 Adressen eingetragen werden?


Gruss Bert
Moderator Persönliche Seite #3603855
Lesenswert?

A. K. schrieb:
> Die page tables der VAX konnten im virtuellen Adressraum liegen, nicht
> wie sonst üblich im physikalischen.

Und das bekommt man dann auch noch in den Griff, ohne dass es nicht
potenziell beim Ansprechen der page table infolge eines page faults
dann gleich wieder einen page fault gibt? ;-)

Letztlich war die Vax die erste (zumindest industriell weitläufig
eingesetzte) Maschine mit VM, insofern hat man dabei sicher auch ein
paar Lektionen gelernt.
OP #3700798
Lesenswert?

Nochmal zu dieser Aufgabe. Ich habe die Seitentabelle mal gezeichnet. 
Die Äussere hat ja 4 Einträge, diese zeigen je auf eine Innere 
Seitentabelle @ 4 Einträgen. Die grün eingezeichneten Einträge werden 
durch die Adressen aufgerufen (ist ja irrelevant, da es nur auf die 
Grösse der Seitentabelle ankommt). Doch nun frage ich mich trotzdem, wie 
man auf die 48 byte kommt. Die Seitentabelle hat ja nun 20 Einträge @ 4 
Byte, also total 80 Byte?

Gruss Bert
Angehängte Dateien:
#3700814
Lesenswert?

Was in der Aufgabe nicht explizit erwähnt wird: Einträge in page tables 
haben regelmässig neben der Adresse auch ein "valid" Bit. Sekundäre page 
tables werden erst angelegt, wenn sie benötigt werden. Es gibt folglich 
keine leeren sekundären page tables, sondern deren Einträge in der 
primären page table sind "invalid".

Dass es in dieser Aufgabe auch so ist erschliesst sich aus der 
Formulierung der Frage, denn nur so ergibt sie einen Sinn. Das ist 
freilich etwas, was man eigentlich schon mal mitgekriegt haben müsste, 
bevor man sich solchen Aufgaben stellt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren