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
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
Tipp: Es wird nicht danach gefragt, wieviele Einträge in Page Tables benutzt werden, sondern wieviele Bytes die Page Tables insgesamt verbraten.
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
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
Ob in einer Tabelle alle Einträge genutzt sind oder nicht ändert nichts an der Grösse der Tabelle.
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
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? ;-)
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
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.
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.
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.