Forum: Offtopic 2 Stufige Seitentabelle


von Bert S. (kautschuck)


Angehängte Dateien:

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

von (prx) A. K. (prx)


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.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Tipp: Es wird nicht danach gefragt, wieviele Einträge in Page Tables 
benutzt werden, sondern wieviele Bytes die Page Tables insgesamt 
verbraten.

von Bert S. (kautschuck)


Lesenswert?

Ich blicke da irgendwie nicht richtig durch. Also hat der virtuelle 
Adressraum nun 20 bit (1MiB / 1Byte)? Die Page tables verbrauchen ja 4 
Byte * Seiten?
Die #Seiten finde ich ja aber nur wenn ich die Unterteilung in Offsetbit 
und Indexbit kenne?

Gruss Bert

von Bert S. (kautschuck)


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

von (prx) A. K. (prx)


Lesenswert?

Ob in einer Tabelle alle Einträge genutzt sind oder nicht ändert nichts 
an der Grösse der Tabelle.

von Bert S. (kautschuck)


Lesenswert?

Ich sehe leider immer noch nicht wie man auf die 12*4 Byte kommt. Belegt 
die page table also gleich viel Speicher vor und nach den Zugriffen?

Gruss Bert

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bert Siegfried schrieb:
> Belegt die page table also gleich viel Speicher vor und nach den
> Zugriffen?

Ja.  Irgendwas musst du ja erstmal grundlegend vorhalten, oder wie
willst du eine page table per demand paging dann aus dem Swap laden? ;-)

von (prx) A. K. (prx)


Lesenswert?

Jörg Wunsch schrieb:
> Ja.  Irgendwas musst du ja erstmal grundlegend vorhalten, oder wie
> willst du eine page table per demand paging dann aus dem Swap laden? ;-)

Kein Problem. Die page tables der VAX konnten im virtuellen Adressraum 
liegen, nicht wie sonst üblich im physikalischen.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von (prx) A. K. (prx)


Lesenswert?

Jörg Wunsch schrieb:
> Letztlich war die Vax die erste (zumindest industriell weitläufig
> eingesetzte) Maschine mit VM

Das fand sich schon in Mainframes der 60er, also lange vor der VAX.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Das fand sich schon in Mainframes der 60er, also lange vor der VAX.

Ah OK, das wusste ich noch nicht.  Diese Welt ist mir immer etwas
verborgen geblieben.

von Bert S. (kautschuck)


Angehängte Dateien:

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

: Bearbeitet durch User
von (prx) A. K. (prx)


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.

: Bearbeitet durch User
von Bert S. (kautschuck)


Lesenswert?

Vielen Dank, dann sind also nur die Tabellen Aktiv, die bei meiner 
Zeichnung grüne Einträge enthalten? Also 3*4*4 bytes

Gruss Bert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.