Wissen Sie, was ein Seitenfehler, ein Page Fault ist? Wenn nicht, lesen Sie diesen Artikel , denn hier finden Sie die Definition, die Arten und so weiter.

Was ist ein Seitenfehler?

Was ist ein Seitenfehler (Englisch: Page Fault)? Manchmal wird er auch PF oder Hard Fault genannt. Wenn ein laufendes Programm versucht, auf eine Speicherseite zuzugreifen, die nicht im physischen Speicher oder RAM gespeichert ist, tritt ein Seitenfehler auf.

Tipp:

Wenn Sie andere Arten von RAM kennenlernen möchten, empfiehlt es sich, die MiniTool Webseite aufzusuchen.

Ein Seitenfehler (Page Fault) ist kein Fehler als solcher, sondern eine übliche und notwendige Bedingung für die Erhöhung der Speichermenge, die Programmen in allen Betriebssystemen zur Verfügung steht, die virtuellen Speicher verwenden, darunter OpenVMS, Microsoft Windows, Unix-ähnliche Systeme (einschließlich macOS, Linux, *BSD, Solaris, AIX und HP-UX) und z/OS.

Programmiertechnisch gesehen, erzeugt ein Seitenfehler eine Ausnahme, die das Betriebssystem darüber informiert, dass es Speicherblöcke oder „Seiten“ aus dem virtuellen Speicher abrufen muss, damit das Programm fortgesetzt werden kann. Sobald die Daten in den physischen Speicher verschoben wurden, kann das Programm normal weiterlaufen. Dieser Vorgang findet im Hintergrund statt und wird vom Benutzer normalerweise nicht bemerkt.

Verwandter Beitrag: 8 effektive Wege für den Fehler PAGE FAULT IN NONPAGED AREA

Arten von Seitenfehlern

Nachdem Sie einige Informationen über den Seitenfehler erhalten haben, können Sie in diesem Teil die drei verschiedenen Arten eines Seitenfehlers kennenlernen.

Kleinerer Seitenfehler

Wenn eine Seite in den Speicher geladen wird, wenn ein Fehler auftritt, aber die Seite in der Speicherverwaltungseinheit nicht als in den Speicher geladen markiert ist, dann wird die Seite als kleiner Seitenfehler oder Soft Page Fault bezeichnet.

Der Page Fault Handler des Betriebssystems muss nur den Eintrag der Seite in der Speicherverwaltungseinheit auf die Seite im Speicher verweisen lassen und anzeigen, dass die Seite in den Speicher geladen wurde; er muss die Seite nicht in den Speicher lesen. Dies kann passieren, wenn der Speicher von verschiedenen Programmen gemeinsam genutzt wird und die Seite in den Speicher anderer Programme gebracht wurde.

Größerer Seitenfehler

Ein Größerer Seitenfehler (Major Page Fault) ist ein Mechanismus, den das Betriebssystem einsetzt, um den verfügbaren Programmspeicher bei Bedarf zu vergrößern. Das Betriebssystem verzögert das Laden bestimmter Teile des Programms von der Festplatte, bis das Programm versucht, sie zu verwenden und einen Seitenfehler erzeugt.

Wenn die Seite beim Auftreten des Fehlers nicht in den Speicher geladen ist, spricht man von einem schweren oder harten Seitenfehler. Der Page Fault Handler des Betriebssystems muss eine freie Stelle finden: eine freie Seite im Speicher oder eine nicht freie Seite im Speicher. In diesem Fall muss das Betriebssystem die Daten auf dieser Seite löschen (falls die Daten seit der letzten Änderung nicht gelöscht wurden) und diese Seite in seiner Prozessseitentabelle als nicht in den Speicher geladen markieren.

Sobald der Speicherplatz verfügbar ist, kann das Betriebssystem die Daten der neuen Seite in den Speicher einlesen, einen Eintrag zu ihrer Position in der Speicherverwaltungseinheit hinzufügen und angeben, dass die Seite geladen wurde. Daher sind schwere Fehler teurer als leichte Fehler und erhöhen die Speicherzugriffslatenz bei unterbrochener Programmausführung.

Ungültiger Seitenfehler

Tritt ein Seitenfehler auf, um auf eine Adresse zu verweisen, die nicht zum virtuellen Adressraum gehört, was bedeutet, dass es keine entsprechende Seite im Speicher gibt, wird dies als ungültiger Seitenfehler bezeichnet. In diesem Fall gibt der Page Fault Handler des Betriebssystems in der Regel einen Segmentierungsfehler an den fehlerhaften Prozess weiter, der angibt, dass der Zugriff ungültig war; dies führt normalerweise Regel dazu, dass der ungültig referenzierte Code abnormal beendet wird.

Ein Null-Zeiger wird oft als Zeiger auf die Adresse 0 im Adressraum dargestellt; viele Betriebssysteme stellen die MMU so ein, dass sie anzeigt, dass die Seite, die die Adresse enthält, sich nicht im Speicher befindet und die Seite nicht im virtuellen Adressraum enthalten ist, so dass beim Versuch, den vom Null-Zeiger referenzierten Speicher zu lesen oder zu schreiben, dieser ungültig ist.

Auswirkungen auf die Leistung

Grundsätzlich verringern Seitenfehler die Leistung Ihres Programms oder Ihres Betriebssystems und können im Falle einer Verschlechterung zu einem Absturz führen. Optimierungen von Programmen und Betriebssystemen, die die Anzahl der Seitenfehler reduzieren, können die Leistung von Programmen und sogar des gesamten Systems verbessern.

Die beiden Hauptschwerpunkte sind die Reduzierung des Gesamtspeicherverbrauchs und die Verbesserung der Speicherlokalisierung. Um Seitenfehler im System zu reduzieren, muss der Programmierer einen geeigneten Seitenersetzungsalgorithmus verwenden, der den aktuellen Anforderungen entspricht und die Seitentrefferrate maximiert.

  • linkedin