Seitenfehler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Seitenfehler (engl. page fault) tritt bei Betriebssystemen mit Virtueller Speicherverwaltung und Paging auf, wenn ein Programm auf einen Speicherbereich zugreift, der sich gerade nicht im Hauptspeicher befindet, sondern beispielsweise auf die Festplatte ausgelagert wurde oder wenn zu der betreffenden Adresse gerade kein Beschreibungseintrag in der MMU verfügbar ist. Als unmittelbare Folge des Seitenfehlers kommt es zu einer synchronen Programmunterbrechung (engl.: trap). Das Betriebssystem sorgt nun dafür, dass der angeforderte Speicherbereich wieder in den Hauptspeicher geladen wird oder der fehlende MMU-Eintrag nachgeladen wird, damit das Programm darauf zugreifen kann. Ein Seitenfehler ist daher kein Fehler im eigentlichen Sinne. Der Anwender spürt von diesem Vorgang nichts, maximal eine Verlangsamung des Programms, das den Seitenfehler verursachte, da das Laden der Seite oder das Bearbeiten des Vorgangs einen kurzen Augenblick benötigt. Andere Programme oder Prozesse sind davon nicht betroffen.

Der page fault ist nicht zu verwechseln mit dem segmentation fault, der eine Schutzverletzung beim Zugriff auf nicht existierende oder geschützte Speicherbereiche ist.

Soft Page Fault[Bearbeiten]

Der Soft Page Fault verhält sich ähnlich wie der Seitenfehler und tritt in folgenden Fällen auf:

  • Der Prozess versucht in der Seite zu schreiben, das Read Only-Bit im PTE der MMU und das Copy-On-Write-Bit in der Speicherverwaltung des Betriebssystems für diese Seite sind gesetzt.
  • Die Seite ist im Speicher, gehört aber nicht dem Working set des Prozesses an, sondern ist z. B. ein Teil der Free page list.
  • Der Prozess fordert eine neue leere Seite.

Siehe auch[Bearbeiten]