Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
スワップキャッシュはページキャッシュに寄生して実現している。あるページのスワップアウト(ページアウト)した後も、即そのページを解放せずにしばらくスワップキャッシュ上に残しておく。すぐページイン処理が発生した場合は、このスワップキャッシュ上のページをそのままページキャッシュに戻すことにより、処理を高速化できる。
また、スワップインするとき、近くのブロックもまとめてスワップキャッシュに読み込む。これはファイルの先行読みだしと同じ方針である。(近くのブロックに対しても、すぐにスワップイン処理が必要になるはずだとの仮定)
read要求によるスワップイン処理の場合、そのページをスワップキャッシュ内に保持し続ける。スワップデバイスのブロックは、そのページへの書き込みないあいだ維持しつづけられる。そのページへの書き込みが発生した場合、例外が発生しdo_wp_page関数内で破棄さる。書きこみが発生せず、再度スワップアウトされる処理が発生した場合、スワップアウト処理が効率良く動作する。
スワップキャッシュにあるデータの本体は、必ずスワップデバイス上に存在する点にも注意。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:05, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー