マンページからtop
nMaj -- Major Page Fault Count
The number of major page faults that have occurred for a task. A
page fault occurs when a process attempts to read from or write
to a virtual page that is not currently present in its address
space. **A major page fault is when auxiliary storage access is
involved in making that page available.**
nMin -- Minor Page Fault count
The number of minor page faults that have occurred for a task. A
page fault occurs when a process attempts to read from or write
to a virtual page that is not currently present in its address
space. **A minor page fault does not involve auxiliary storage
access in making that page available.**
私が正しい場合、ページフォルト処理は、物理メモリから欠落している必要なデータをスワップから物理メモリに転送する問題です。スワップは、ハードドライブやSSDなどのストレージの一部です。もしそうなら、ページエラーは何を意味するかもしれませんし、意味がないかもしれませんか?ページを使用するには、セカンダリストレージアクセスが必要です。?
ありがとうございます。
答え1
メインページエラーのみのセカンダリストア(つまりスワップであれ他の場所であっても、ディスクから読み込み、例えばバイナリ形式でページングする場合)。
マイナーページエラーは、ディスクから読み取らずに解決できるエラーです。
- メモリ内の他の場所にマッピングされたデータに関連するページエラー(例えばプロセス間メモリ共有可能)
- 新しく割り当てられたメモリのページエラー(すべてゼロのページと書き込み時にコピー割り当てを使用)
- 場合によっては、回収対象として表示されたがまだ回収されていないデータ
(これは完全ではありません)。
答え2
たとえば、データまたはコードがメモリ内にあるがプロセスにマッピングされていない場合、マイナーなページエラーが発生します。
他のプロセスで使用される共有ライブラリを検討してください。あなたのプロセスは同じライブラリをロードしようとするので、ld(私の意見ではlibc / glibcを介して?)はページエラー生成の問題を引き起こします。カーネルは、データがすでにメモリにあることを認識し、それをプロセスにマップします。ディスクからロードする必要はありません...