2017-12-27 5 views
2

PS: Ich weiß wirklich nicht, ob das nicht-Thema ist (ich lese die Frage Hilfe), aber ich sah eine Frage auf der Website des gleichen Themas (aber nicht die gleiche Frage) und es warn 't als Off-Thema geschlossen, also nur unterstellt.(Paging) Hat jede Seite einen Offset?

Wie auch immer, ich lerne und forsche über Paging und ich bin wirklich verwirrt, wie Pages strukturiert sind. Ich habe vergeblich gegoogelt (ich kann einfach schlecht bei Google sein) und jede Zeitung über Paging ist ziemlich verwirrend.

Gibt es einen Offset für den gesamten virtuellen Speicher? Oder bin ich gerade im Wunderland verloren?

Könnte jemand bitte ein praktisches Beispiel dafür geben, wie Paging funktioniert, wenn überhaupt möglich?

+1

Jede Seite ist ein Stück virtuellen Speicher, "Offset" ist nur Vektor für die Indexierung dieser Seite. –

+0

@TonyTannous - SO hat jede Seite einen Offset? – UndercoverCoder

+1

Ja. Sie haben zwei Arrays, jedes hat einen Index. Sie verwenden nicht den gleichen Index für beide ... –

Antwort

1

Virtual Memory ist nur ein großer imaginärer zusammenhängenden Speicherblock. Es ist so, dass Programmierer brauchen nicht wissen oder kümmern sich um die tatsächlichen physikalischen Adressen Spezifikationen. Sie können sich einfach zurücklehnen und sich Sorgen um ihre Programmlogik oder Algorithmen und andere maschinenunabhängige Dinge machen.

Bevor ein Lese- oder Schreib auftritt, werden diese virtuellen Adressen von Memory Management Unit (MMU) zu tatsächlichen physikalischen Adressen umgewandelt. Um genau zu sein ist es durch page table getan, die nichts anderes als ein Teil von MMU ist.

Neben diesem Paging erlaubt nicht zusammenhängende Speicherzuordnung zu haben, so dass wir external fragmentation nicht haben.

Dieses Thema ist sehr einfach, wenn Sie die Grundlagen verstehen. Ich würde Videos von David Black-Schaffer auf youtube empfehlen.

+0

Vielen Dank. Wirklich geholfen, das Thema zu klären :) – UndercoverCoder

Verwandte Themen