Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
v2.4からはフリーページはzoneと呼ばれる複数の領域に分けて管理されるようになった。v2.2までと異なり、カーネル空間にストレートマッピングすることのできない領域の物理メモリまで管理できるようにするために、二つの領域を明確に別のzoneとして分離管理している。カーネル空間にストレートマッピングされていない領域はHighMemと呼ばれ、アクセス前には仮想空間にマップするという処理が必要となる。(伝統的UNIXでは、通常カーネル空間に全ての物理メモリをストレートマッピングするという手法はとっていないため、このような区別は無い)
また、更にDMA可能領域も意識し、別のzoneとして管理しなければならないのは、古いPCのアーキティクチャに縛られているためである。
また、v2.4からは非連続な物理メモリ領域を管理するための汎用的なコードが追加された。(ただし、Intel + PC/ATアーキティクチャのマシンでは物理メモリ領域は一つのみ)
この領域のページ群は下記データ構造で管理される。各ゾーンに属するメモリは連続するページのサイズ毎(ページ×2の巾乗サイズ)に下図のようにフリーリスト管理されている。
(XXX: そのうちHighMem管理も追加したいところ)
主な操作関数群
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:57, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー