Seitenfehler

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.: synchronous exception (fault)). 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

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.

Microsoft Windows

Der Ressourcenmonitor bezeichnet Seitenfehler als "harte Fehler" (engl. hard faults)[1]

Siehe auch

Einzelnachweise

  1. What is: Hard Faults Per Second, auf appuals.com