Thread major + minor faults: sar -B (7 answers)
Opened by bloonix at 2006-06-02 19:34

nepos
 2006-06-03 01:11
#95656 #95656
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Die Pagesize haengt normal vom Prozessor ab. Normal hat eine Page 4 kByte.
Das mit den Page Faults geht sogar noch weiter. Wenn du ein Programm startest, werden zwar die Pages im Speicher reserviert, aber erstmal als ungueltig markiert. Erst wenn das Programm ans Laufen kommt, wird da wirklich was in den Speicher gelesen. Deshalb wirds beim Starten eines Programmes sehr viele Page Faults geben, spaeter sollte es dann normal nicht mehr soviele geben.
Betriebssysteme sind hier oft faul. Deshalb wird nur in den Speicher geladen, was auch wirklich gebraucht wird.
Wenn dich das Thema genauer interessiert, im Skript zu der Betriebssysteme-Vorlesung bei mir an der FH steht dazu mehr: http://www.cs.fhm.edu/~vogt/os/os_index.htm

Major Page Faults scheinen nun solche zu sein, die wirklich einen Plattenzugriff erfordern. Macht ja auch Sinn, denn die sind dann mal richtig teuer.
Minor Page Faults koennten zum Beispiel nach einem Fork auftreten. Der Childprozess erbt die Page Table des Parents mit Copy-on-Write-Bit gesetzt (Das OS ist faul, es tut erst was, wenns unbedingt sein muss ;)). Wenn nun das Child was in ne Seite schreibt, loest das gesetzte Copy-on-Write-Bit aus, dass die Speicherverwaltung diese Seite nun erstmal wirklich kopiert, damit das Child nicht dem Parent ins Gehege kommt. Da das rein im Speicher ablaeuft isses fuer mich nicht so teuer wie ein I/O-Zugriff und das koennte dann wohl ein Minor Page Fault sein.

Ich hoff, ich hab das aus dem Kopf noch halbwegs korrekt rausgebracht ;)

View full thread major + minor faults: sar -B