Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
I/O要求があるたびに単純に空きメモリをpageキャッシュとして確保する。確保は get_free_page関数で行う。
linuxのページキャッシュハントアルゴリズムは、確保する一方であり、どんどんメモリを消費する。空きメモリがある一定の水準以下になると空きメモリをつくるために、try_to_free_pages関数が呼び出される。ページキャッシュのうち、再利用の可能性が低そうなものから順(lru_cacheに登録されている順)にハッシュから切り離し、単なる空きメモリに戻す。先に説明したtry_to_free_buffers関数もこの関数処理の延長で呼び出している。ページキャッシュ用に確保されたバッファヘッドもこのtry_to_free_buffers関数内で解放され、その後、そのページが解放可能な状態ならinodeとのリンクを切りページを完全に解放する。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:19:00, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー