Paging beschreibt eine Methode zur Verringerung von externer Fragmentierung.

Funktionsweise

Dabei wird der physikalische Speicher in Blöcke fixer Größe, sogenannte Frames aufgeteilt. Der logische Speicher wird in gleichgroße Pages aufgeteilt. Jede Page wird auf einen Frame abgebildet.

Framegrößen

Die Größe von Frames ist typischerweise eine Zweierpotenz zwischen und Bytes.

Fragmentierung

Zwar verringert Paging externe Fragmentierung, doch kommt es wegen der fixen Pagegröße zu interner Fragmentierung.

Das Betriebssystem “führt Buch” über alle freien Frames. Meist ist das eine Liste, wo z.B. steht “Zur Page abc gehört Frame 45 xyz”. Dabei hilft ein page table.

Benötigt ein Programm Speicher, so muss das Betriebssystem genug Frames finden.

Adressschema

Die von der CPU generierten Adressen beinhalten…

  • Seitennummer (p) - Dient als Index für die page table und liefert die Basisadresse
  • Seiten-Offset (d) - Dient zur Auffindung des Speicherinhalts und wird auf die Basisadresse addiert

Prozessspezifischer Zugriffsschutz

An jeden Frame wird ein Flag, das sogenannte valid-invalid Bit angefügt. Diese Bits stehen hinter den Einträgen der Page Tables der Prozesse

  • valid (v) - Zeigt an, dass eine Seite zum logischen Adressraum des Prozesses gehört, dem der Page Table zugeordnet ist
  • invalid (i) - Zeigt an, dass eine Seite nicht zum logischen Adressraum gehört und der Prozess, dem die Page Table mit diesem Eintrag zugeordnet ist, folglich nicht auf die Seite zugreifen darf

Paging Hardware