Nachvollziehen einer Aufgabe im Beriech Paging

istani

Newbie
Registriert
Apr. 2016
Beiträge
2
Hallo, Ich bin gerade am lernen für eine Klausur und habe eine Aufgabe und die dazugehörige Lösung vor mir zu liegen, welche ich aber leider nicht nachvollziehen kann. Ich hoffe einer kann mir da helfen, weil ich mir vorstellen kann das es eigentlich sehr simpler ist.

Gegeben sei ein System, welches 32-Bit-Adressen und streuende Adressierung verwendet. Der Hauptspeicher des Systems hat eine Größe von 64 MB und ist in 16384 Kacheln aufgeteilt. Die Adressierung ist byteweise möglich.
Wie viele Bits des Adressformats müssen für den Offset reserviert werden? Wie viele Kacheln können in diesem Format maximal adressiert werden? Welches ist die theoretisch größte adressierbare Kachelnummer?

Lösung: Das System hat eine Speichergröße von 64 MB und ist in 16384 Kacheln unterteilt. Daraus folgt, dass eine Kachel 64 MB / 16384 = 4096 Byte = 4 kB groß ist. Um innerhalb dieser Kacheln jedes Byte adressieren zu können, benötigt man also 12 Bit. Demzufolge sind von den 32 Bit der Adresse 12 Bit für den Offset vorzusehen und 20 Bit für die Adressierung der Seiten Verfügbar. Mit den 20 Bit für die Seiten könnten bis zu 1048576 Kacheln (0-1048575) adressiert werden (daher weit mehr als das System hat!).

Danke schonmal im Voraus.
 
Es wäre sinnvoll zu erwähnen, was du daran nicht verstehst / was dir unlogisch erscheint.

Du solltest dir folgende Fragen Stellen:
Wie viele Bits sind notwendig, um alle 4096 Bytes einer Kachel adressieren zu können? Sprich mit wie vielen Bits kann die Zahl 4095 (4096-1, da du bei 0 anfängst zu Zählen) zusammengebaut werden?
Das sind dann nunmal 12 Bits (111111111111 b = 4095 dec).

Da deine Adresse 32Bit lang ist, bleiben davon noch 20 Bits übrig um die eigentliche Kachel "anzusteuern". Was ist die größte Zahl die du in 20 Bits packen kannst? Richtig, 11111111111111111111 b = 1048575 dec.
 
Zuletzt bearbeitet:
Und was ist nun unklar?

Eigentlich brauchst Du zur direkten Adressabbildung in einem 64 MByte Adressraum genau 26 Bits, da 2^26 = 64 MByte. Nun läuft die Adressierung hier jedoch in Pages, nämlich 4k Pages (so, wie es in modernen Betriebssystemen eben üblich ist). Bei 4k Pages (Kacheln) brauchst Du insgesamt 16384 davon, um wiederum 64MByte adressieren zu können. Innerhalb einer Page musst Du 4k adressieren. So kommen die 10 Bits zustande: 2^10 = 4096, also 4k.

Alles klar?
 
Zuletzt bearbeitet:
2^10 sind nicht 4096, sondern 1024. 2^12 sind 4096.
 
Zurück
Oben