Seitenleiste

Exceptions

Infodatenbank

Community

Page Fault

Ein Page Fault wird nur bei aktiviertem Paging auftreten. Im Allgemein bedeutet ein Page Fault, dass es einen Speicherzugriff gegeben hat, der durch das aktuelle Page Directory nicht erlaubt ist.

Im CR2 Register befindet sich direkt nach einem Page Fault die lineare Adresse, durch die die Exception hervorgerufen wurde.

Es wird ein Error Code auf den Stack gelegt.

Ursachen

Es kann unterschiedliche Ursachen für einen Page Fault geben. Wodurch die Exception ausgelöst wurde ist im Error Code beschrieben. Die unteren 3 Bits geben darüber Auskunft.

BIT 2 BIT 1 BIT 0 Ursache
0 0 0 Kernel (Supervisor) Prozess hat versucht, von nicht verfügbaren (non-present) Speicher zu lesen
0 0 1 Kernel (Supervisor) Prozess hat einen Protection Fault beim Lesen ausgelöst
0 1 0 Kernel (Supervisor) Prozess hat versucht, auf nicht verfügbaren (non-present) Speicher zu schreiben
0 1 1 Kernel (Supervisor) Prozess hat einen Protection Fault beim Schreiben ausgelöst
1 0 0 User Prozess hat versucht, von nicht verfügbaren (non-present) Speicher zu lesen
1 0 1 User Prozess hat einen Protection Fault beim Lesen ausgelöst
1 1 0 User Prozess hat versucht, auf nicht verfügbaren (non-present) Speicher zu schreiben
1 1 1 User Prozess hat einen Protection Fault beim Schreiben ausgelöst