logo

Paging im OS (Betriebssystem)

In Betriebssystemen ist Paging ein Speichermechanismus, der zum Abrufen von Prozessen aus dem Sekundärspeicher in den Hauptspeicher in Form von Seiten verwendet wird.

Die Hauptidee hinter dem Paging besteht darin, jeden Prozess in Form von Seiten zu unterteilen. Auch der Hauptspeicher wird in Form von Frames aufgeteilt.

Was ist ein Benutzername?

Eine Seite des Prozesses soll in einem der Frames des Speichers abgelegt werden. Die Seiten können an verschiedenen Stellen im Speicher abgelegt werden, die Priorität liegt jedoch immer darin, die zusammenhängenden Rahmen oder Löcher zu finden.

Seiten des Prozesses werden nur dann in den Hauptspeicher gebracht, wenn sie benötigt werden, andernfalls befinden sie sich im Sekundärspeicher.

Unterschiedliche Betriebssysteme definieren unterschiedliche Rahmengrößen. Die Größen jedes Rahmens müssen gleich sein. Da die Seiten in Paging den Frames zugeordnet werden, muss die Seitengröße mit der Framegröße übereinstimmen.


Betriebssystem-Paging

Beispiel

Nehmen wir an, dass die Hauptspeichergröße 16 KB beträgt und die Framegröße 1 KB beträgt. Daher wird der Hauptspeicher in eine Sammlung von 16 Frames zu je 1 KB aufgeteilt.

Es gibt 4 Prozesse im System, nämlich P1, P2, P3 und P4 mit jeweils 4 KB. Jeder Prozess ist in Seiten von jeweils 1 KB unterteilt, sodass eine Seite in einem Frame gespeichert werden kann.

Zu Beginn sind alle Frames leer, daher werden die Seiten der Prozesse zusammenhängend gespeichert.

Ausnahmebehandlung Java

Frames, Seiten und die Zuordnung zwischen den beiden werden im Bild unten gezeigt.

Algorithmus für BFS

Beispiel für Betriebssystem-Paging

Nehmen wir an, dass P2 und P4 nach einiger Zeit in den Wartezustand versetzt werden. Jetzt werden 8 Frames leer und daher können andere Seiten an dieser leeren Stelle geladen werden. Der Prozess P5 mit einer Größe von 8 KB (8 Seiten) wartet in der Bereitschaftswarteschlange.

Angesichts der Tatsache, dass im Speicher 8 nicht zusammenhängende Frames verfügbar sind, bietet Paging die Flexibilität, den Prozess an verschiedenen Orten zu speichern. Daher können wir die Seiten des Prozesses P5 anstelle von P2 und P4 laden.


Beispiel 2 für Betriebssystem-Paging

Speicherverwaltungseinheit

Der Zweck der Memory Management Unit (MMU) besteht darin, die logische Adresse in die physische Adresse umzuwandeln. Die logische Adresse ist die von der CPU für jede Seite generierte Adresse, während die physische Adresse die tatsächliche Adresse des Frames ist, in dem jede Seite gespeichert wird.

Wenn die CPU über die logische Adresse auf eine Seite zugreifen soll, muss das Betriebssystem die physische Adresse erhalten, um physisch auf diese Seite zugreifen zu können.

Die logische Adresse besteht aus zwei Teilen.

  1. Seitennummer
  2. Versatz

Die Speicherverwaltungseinheit des Betriebssystems muss die Seitenzahl in die Bildnummer umwandeln.

Beispiel

Klasse vs. Objekt in Java

Betrachten wir das obige Bild und nehmen wir an, dass die CPU das 10. Wort der 4. Seite des Prozesses P3 benötigt. Da die Seitennummer 4 des Prozesses P1 bei Frame-Nummer 9 gespeichert wird, wird das 10. Wort des 9. Frames als physikalische Adresse zurückgegeben.