Heim  >  Artikel  >  Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

angryTom
angryTomOriginal
2019-07-26 15:44:418379Durchsuche

Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

Empfohlene Tutorials: FAQ

Einführung

Bei der Speicherverwaltung werden durch die kontinuierliche Zuordnungsmethode viele „Fragmente“ gebildet. Obwohl durch die „kompakte“ Methode viele Fragmente in einen nutzbaren großen Raum gespleißt werden können, muss dies der Fall sein Zahlen Sie viel Geld.

Wenn ein Prozess direkt in viele nicht benachbarte Partitionen geladen werden darf, ist keine „Komprimierung“ erforderlich. Basierend auf dieser Idee wurde die diskrete Allokationsmethode entwickelt. Wenn die Grundeinheit der diskreten Zuordnung eine Seite ist, spricht man von einer Paging-Speicherverwaltungsmethode . Im Paging-Speicherverwaltungsmodus wird er als grundlegender Paging-Speicherverwaltungsmodus oder als reiner Paging-Speicherverwaltungsmodus bezeichnet. Er verfügt nicht über diese Funktion zur Unterstützung der Implementierung des virtuellen Speichers. Jeder Job muss in den Speicher geladen werden, bevor er ausgeführt werden kann.

Warum Seitenspeicher benötigt wird

Während des Speicherzuweisungsprozesses kann die kontinuierliche Zuweisungsmethode jedoch dazu neigen, eine große Anzahl von Fragmenten zu erzeugen Es kann „komprimiert“ werden. Organisieren Sie es, aber das erfordert viel Aufwand.

Wenn daher der kontinuierliche logische Speicher auf mehrere physische Speicher verteilt und zugewiesen werden kann, die während der Speicherzuweisung des Prozesses getrennt werden können, werden die großen Fragmente, die ursprünglich verschwendet wurden, verwendet Maximale Größe nicht verfügbarer Fragmente (auf die Größe der Seite, denn wenn die Größe des Fragments die Größe der Seite überschreitet, ist es ausnutzbar) und die Speichernutzung verbessern. Basierend auf dieser Idee wird die diskrete Zuordnungsmethode erstellt. Wenn die Grundeinheit der diskreten Zuordnung eine Seite ist, wird sie als Paging-Speicherverwaltungsmethode bezeichnet. Wenn sie nicht über die Seitenaustauschfunktion verfügt, handelt es sich um eine grundlegende Paging-Speicherverwaltungsmethode .

Grundkonzepte

Seite

Die Paging-Speicherverwaltungsmethode kombiniert die kontinuierlichen logischen Adressen von Der Prozess Der Raum wird in mehrere gleich große Adressabschnitte unterteilt, die als Seiten oder Seiten bezeichnet werden. Und nummerieren Sie sie, z. B. Seite 0, Seite 1. Logischerweise sind die Adressen auf diesen Seiten zusammenhängend, ihre entsprechenden physischen Blockadressen können jedoch diskontinuierlich sein. Die entsprechenden physikalischen Blöcke werden entsprechend auch Block 0, Block 1 usw. genannt. Wenn ein Prozess Speicher zuweist, werden mehrere Seiten des Prozesses jeweils in entsprechende physische Blöcke geladen. Da die letzte Seite oft nicht voll ist, entsteht eine Intra-Page-Fragmentierung, die nicht genutzt werden kann.

Mit der Paging-Speicherverwaltungsmethode The Der Zweck besteht darin, die Speicherfragmentierung stärker zu nutzen. Daher ist die Seitengröße relativ kleiner als die für einen normalen Prozess erforderliche Adressraumgröße. Was ist also die richtige Seitengröße? Wenn die Seite zu klein ist, kann dies zwar die maximale Größe nicht verfügbarer Fragmente im Speicher verringern und die Nutzung des Speicherplatzes verbessern, führt jedoch auch dazu, dass der Prozess zu viele Seiten belegt, wodurch die Seitentabelle zu lang wird und die Effizienz verringert wird Effizienz beim Seitenaustausch. Wenn die Seite zu groß ist, verbessert dies zwar die Effizienz beim Ein- und Auslagern von Seiten, erhöht jedoch auch die Speicherfragmentierung. Daher liegt erfahrungsgemäß die beste Seitengröße bei etwa 512B~8KB.

Seitentabelle

Die Seitentabelle ist ein im Prozess verwalteter Adressraum, in dem die Zuordnungsbeziehung zwischen Seiten und physischen Blöcken gespeichert wird. Bevor wir die Seitentabelle besprechen verstehen. Löschen Sie die Adressstruktur beim Paging.

Für den physischen Adressraum ist der gesamte Speicheradressraum festgelegt. Für einen Prozess ist der zugewiesene logische Speicherplatz ebenfalls fest und kontinuierlich. Der logische Adressraum beginnt bei 0. Angenommen, die logische Adresse eines Bytes in einem Prozess beträgt 1088 B und die Seitengröße beträgt 512 B. Wie bei der Einführung der Seite erwähnt, ist der logische Adressraum zwar in mehrere Seiten unterteilt, die logischen Adressen dieser Seiten sind jedoch immer noch fortlaufend. Dann können wir die Seitennummer P = 2 (beginnend bei 0) kennen, zu der das Byte gehört, und die Seitenadresse d = (1088 - 512 * 2) = 64.

Das heißt, wenn die Seitenlänge bekannt ist, können die Seitennummer, zu der der Adressraum gehört, und die relative Adresse auf der Seite einfach anhand der logischen Adresse ermittelt werden. Anhand dieser beiden Parameter und der Seitentabelle kann die der Adresse entsprechende physikalische Adresse ermittelt werden.

Die Seitentabelle ist eine Tabelle, die zum Zuordnen von Seiten und physischen Blöcken verwendet wird, wie unten gezeigt:

Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

Durch die Seitentabelle und Seitennummer, wir kennen die physische Blocknummer und wir kennen auch die Startadresse des entsprechenden physischen Blockraums. In Verbindung mit der In-Page-Adresse ist die entsprechende physische Adresse bekannt. Auf diese Weise können wir eine Konvertierung von einer logischen Adresse in eine physische Adresse erreichen.

Adressübersetzung

Die obige Einführung in das Grundkonzept führt kurz in das Prinzip der Adressübersetzung ein. Schauen wir uns den spezifischen Prozess im Detail an.

Wie oben erwähnt, finden wir die Zuordnung von Seitennummer zu physischer Blocknummer, indem wir in der Seitentabelle nachschlagen. Wo ist die Seitentabelle gespeichert und wie findet man sie? ?

Die Seitentabelle kann über eine Reihe von Registern implementiert werden. Da die Zugriffsgeschwindigkeit des Registers schnell ist, kann die Geschwindigkeit der Seitentabellen-Adressübersetzung erhöht werden. Allerdings sind die Registerkosten hoch und die Seitentabelleneinträge in der Seitentabelle können sehr groß sein und Hunderte oder Tausende von Einträgen erreichen. Daher werden Seitentabellen normalerweise im Speicher gespeichert. Im System wird nur ein Seitentabellenregister PTR eingestellt, um die Startadresse und die Länge der Seitentabelle im Speicher zu speichern. Wenn der Prozess nicht ausgeführt wird, werden normalerweise die Startadresse und die Seitentabellenlänge der Seitentabelle auf der Leiterplatte dieses Prozesses gespeichert. Wenn der Scheduler einen Prozess plant, werden diese beiden Daten in das Seitentabellenregister geladen. Daher wird in einer Einzelprozessorumgebung zwar mehrere Prozesse im System ausgeführt, es wird jedoch nur ein Seitentabellenregister benötigt (d. h. wenn mehrere Prozesse gleichzeitig ausgeführt werden, müssen die Seitentabellendaten in mehreren Prozessen gespeichert werden). separat).

Wenn ein Prozess auf Daten in einer bestimmten logischen Adresse zugreifen möchte, teilt der Paging-Adresskonvertierungsmechanismus die effektive Adresse (relative Adresse) automatisch in zwei Teile, die Seitennummer und die interne Adresse, und verwendet dann die Seitenzahl als Index abrufen. Vergleichen Sie vor dem Abruf die Seitennummer mit der Seitentabellenlänge. Wenn die Seitennummer größer oder gleich der Seitentabellenlänge ist, bedeutet dies, dass die Adresse, auf die diesmal zugegriffen wurde, den Adressraum des Prozesses überschritten hat. Dann wird dieser Fehler vom System erkannt und ein Adress-Out-of-Bounds-Interrupt wird generiert. Wenn kein Fehler außerhalb der Grenzen auftritt, addieren Sie die Startadresse der Seitentabelle zum Produkt aus Seitenzahl und Länge des Seitentabelleneintrags, um die Position des Eintrags in der Seitentabelle zu ermitteln, und ermitteln Sie dann die physische Adresse Blocknummer der Seite daraus laden. Gleichzeitig wird die Seitenadresse im effektiven Adressregister an das Blockadressfeld des physischen Adressregisters gesendet. Damit ist die Konvertierung von der logischen Adresse in die physische Adresse abgeschlossen. Die folgende Abbildung zeigt den Adressübersetzungsmechanismus des Paging-Systems

Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

Schnelltabelle

Da die Seitentabelle eher im Speicher gespeichert wird Als Register müssen Sie also jedes Mal, wenn Sie eine Adresse lesen, zweimal auf den Speicher zugreifen. Das erste Mal, wenn Sie auf die Seitentabelle zugreifen, um die physische Blocknummer zu finden, und das zweite Mal, wenn Sie auf die tatsächliche physische Adresse zugreifen, um die Daten abzurufen. Daher wird durch die Übernahme dieses Ansatzes die Verarbeitungsgeschwindigkeit des Computers um fast die Hälfte reduziert.

Um die Effizienz der Adressübersetzung zu verbessern, wird dem Adressübersetzungsmechanismus, der auch als „Assoziativer Speicher“ oder „Fast Table“ bezeichnet wird, ein Satz spezieller Cache-Register mit paralleler Suchfunktion hinzugefügt Speichern Sie die aktuell aufgerufenen Seitentabelleneintragsdaten (ähnlich wie im Cache, speichern Sie zuvor gesuchte Seitentabelleneinträge und verbessern Sie die Konvertierungseffizienz von Seitennummern in physische Blocknummern). Auf diese Weise sieht der Adressübersetzungsprozess wie folgt aus:

Was ist die grundlegende Methode zur Paging-Speicherverwaltung?

Nachdem die CPU die logische Adresse erhalten hat, übergibt der Adressübersetzungsmechanismus die Seitennummer zur Abfrage an die schnelle Tabelle Wenn die entsprechende physische Blocknummer gefunden wird, wird die physische Adresse direkt anhand der Adresse auf der Seite gefunden, um auf die Daten zuzugreifen. Wenn nicht, wird die physische Blocknummer auf normale Weise gesucht und in der Schnelltabelle gespeichert zur gleichen Zeit. Wenn die Schnelltabelle voll ist, entfernt das System automatisch einen Seitentabelleneintrag und ersetzt ihn.

Kurz gesagt, die schnelle Tabelle entspricht dem Cache für Seitentabelleneinträge.

Das obige ist der detaillierte Inhalt vonWas ist die grundlegende Methode zur Paging-Speicherverwaltung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn