他人の空似

2010 年 4 月 11 日

ページフォールト(PageFault)

Filed under: 未分類 — 中の人 @ 6:17 AM

ページフォールトとは、読み書きといったアクセス不能なアドレスへのアクセス時に発生するイベントである。
と言ってもエラーだけではなく、様々なメモリー管理などでも使われる、極々ありふれたイベントである。

たとえば、実メモリーが不足したため一部仮想メモリーに移した場合、そのまま何もしないでおくと
プロセスが仮想メモリーに移された場所にアクセスすると、アクセスできずに落ちてしまう。
そこで、アクセス時のページフォールトを検出し、仮想メモリー上に対比していたデータを実メモリー上に復帰するといった処理を行う。
他にも、メモリー割り当て要求を受けた際も、最初は仮想的に割り当てるだけで、実際にページフォールトイベントが発生するまで実メモリーは割り当てない
といった使われ方もある。

まぁぶっちゃけこんな説明とかどうでもいいので無視して本題。
このページフォールトですが、WindowsXPではプロセスごとに発生回数を見る事が出来ます。
となるれば当然の疑問が一つ。
「ページフォールト回数が4GB限界(0xFFFFFFFF、4294967295)超えたらどうなるの?」

というわけで、適当に200MB確保しては全部に書き込んで即開放を繰り返すアプリを作って放置してみる事に。
今の速度だと9時間後ぐらいに4GB限界超えるみたいです。
普通に考えれば0に戻るだけだろうけど
さて、どうなることやら

Powered by WordPress