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.
klausur-gra-2010-02-15 Aufgabe 8 (Achtung Lösung!)
Die eigentliche Tabelle ist immer nur die Spalte Deskriptor. D.h. implizit indexiert. Zuordnung ist Tag → Inhalt. Offset ist das Byteoffset in der Tabelle.
Dass die Stackseite direkt über dem Heap liegt ist ja egal. Die Seiten müssen ja nicht hintereinander liegen…?
In der Aufgabe war ja eigentlich nur die Seitentabelle gefragt… nur wenn ich das so mach wie hier, brauch ich für die Tabelle schon 90 min… Würde es reichen einfach die Spalte Inhalt mit entsprechenden Auslassungen hinzumalen, ohne Offset usw.? “Beschreiben sie” ist irgendwie etwas vage…
Mhh, hast Du Dir die Folien im Abschnitt 5.3 angeschaut? Da wird das eigentlich ziemlich genau beschrieben.
Die virtuelle 32 Bit-Adresse wird aufgeteilt in 3 Felder,
10 Bit DIR
10 Bit Page
12 Bit Offset
DIR4 ist hier der Offset in dem Seitenverzeichnis. Maskiert man die höherwertigen 20 Bit dieses Eintrags erhält man die Adresse der zu der Adresse gehörenden Pagetabelle. Page4 ist wieder der Offset in der Pagetabelle. Die höherwertigen 20 Bit des Eintrags in der Pagetabelle ergeben die Adresse der Seite. physikalische Adresse = Adresse der Seite + Offset
Als Beispiel mal die Adressen des ROMs. 0x00001000 bis 0x00002fff soll in das ROM gemapped werden.
Die niederwertigen (=letzten) 3 Hex-Stellen bilden das Offset in der Seite (4KB = 2^12 => 12 Bit, eine Hex-stelle entspricht 4 Bit).
Die ersten beiden Stellen und die erste Hälfte der 3ten Stelle geben den Index im Seitenverzeichnis. Die Bits sind bei allen angegebenen Adressen null, also braucht das Seitenverzeichnis nur einen Eintrag der auf die Seitentabelle verweist und das dazuge-or-te present bit. Alle anderen Einträge im Verzeichnis werden nicht benötigt und sind null.
Die zweite Hälfte der 3ten Stelle und die 4te und 5te geben den Index in der Seitentabelle. Der Adressbereich ist genau zwei Seiten Groß, also braucht es dafür zwei Einträge in der Tabelle.
Den Heap und Stack habe ich einfach 64K nach oben verschoben, damit es sich leichter zählt.
Hoffentlich kommen in der Klausur keine 64 Bit Adressen…
Im Tutorium haben wir ja auch die Lösung per Zeichnung gemacht. Fand ich auch bei weitem verständlicher.
Wenn mich nicht alles täuscht wurde ja auch erwähnt, dass wir uns Segmentierung mal anschaun sollten.
Denkt ihr dieser Aufgaben Klassiker wird abgeändert, und wenn wie würde sich des dann vermutlich auf die Zeichnung auswirken?
Oda denkt ihr eher an eine Nebenfrage nach dem Prinzip Addition statt kon… ?!
Boah eine letzte Bitte! Wenn mir doch irgendwer das Bild von dem Seitenverzeichnis+Seitentabelle einscannen oder zeichnen oder sonst wie zeigen koennte! Dieses Gewulst da oben ist nicht zu verstehen und ich brauch nur noch diese eine Aufgabe! Ich weiss es ist spaet und so… Waer echt super, hoffentlich meldet sich noch wer!
DANKE hoffhoff*