Frage

Ich lese das „Moderne Betriebssystem“ Buch. Und ich bin über die „Seitengröße“ zu verwechseln.

In dem Buch, der Autor sagt,

Die ankommende 16-Bit virtuelle Adresse aufgeteilt in eine 4-Bit-Seitennummer und 12-Bit-Offset. Mit 4 Bits für die Seitennummer, können wir 16 Seiten haben, und mit 12 Bit für den Offset, können wir adressieren alle 4096 Bytes innerhalb eines Seite.

Warum 4096 Bytes? Mit 12 Bit, können wir 4096 Einträge Adresse innerhalb einer Seite, zu korrigieren. Aber, ein Eintrag ist eine Adresse (in diesem Fall Adressengröße = 16 Bits). Also ich denke, wir können 4096 Adresse (Eintrag) * 16 (Bit) = 4096 (Eintritt) * 2 (Byte) = 8 KB, aber warum das Buch sagt, dass wir 4096 angehen können (Bytes)?

Vielen Dank im Voraus! :)

War es hilfreich?

Lösung

Dies wird unter der Annahme, Byte-adressierten Speicher (die fast jede Maschine in dem letzten 30 Jahren Gebrauch gemacht), so dass jede Adresse auf ein Byte bezeichnet, nicht einen Eintrag oder eine Adresse oder einen anderen größeren Wert. Um einen 16-Bit-Wert zu halten, müssen Sie zwei aufeinanderfolgende Adressen (zwei Bytes).

Mehr als 30 Jahre dort vor, gebrauchte Maschinen zu sein, das Wort adressiert waren, die Mutmaßung wie Sie gearbeitet. Aber solche Maschinen hatten eine harte Zeit mit byteorientierte Daten handelt (zB ASCII-Zeichen), und haben so in Ungnade gefallen heraus. Heutzutage Dinge wie Byte-Adressierbarkeit, 8-Bit-Bytes und Zweier-Komplement-Zahlen sind ziemlich einfach angenommen.

Andere Tipps

Die 12 Bits sind eine innerhalb einer Seite versetzt. Der Offset ist in Bytes, keine Adressen. 2 ^ 12 ist 4096.

Was Du Berechnung ist die Seitengröße, das heißt die Größe einer Seite in der Seitentabelle im Speicher. Wie wir 12 Bits für den Offset zu verwenden, wird jeder Rahmen in dem physikalischen Speicher 2 ^ 12 = 4096K. Jede Seite in der Seitentabelle nimmt jedoch 2 ^ 12 Einträge x 2 Byte = 8 K in dem Speicher.

okay, so haben Sie 16-Bit virtuelle Adresse lassen Sie sehen, was es bedeutet, .Es bedeutet, dass Sie 2 ** 16 = 65.536 Bytes.

4-Bit-Seitenzahl, dass Mittel vorgesehen sind es 16 Seiten als 2 ^ 4 = 16 Jetzt You Name der Seiten als Seiten 1, 2 ... Seite 16.

Jetzt sind wir links mit 12bits wollen wir sehen, wie viele Adresse kann 12 Bits repräsentieren 2 ** 12 = 4096 Bytes

65536 Bytes es auch in 16-Seiten erreicht werden könnte, enthält 4096 Bytes durch Dividieren jedes als 4096 * 16 = 65536

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top