アドレス変換
 カーネル空間のレイアウト
 実ページの管理
 動的メモリ割当て
 プロセスの仮想記憶の実現
 ページの回収処理

 アドレス変換
 ・プロセスは、仮想アドレス空間の上で動作
プロセス空間(仮想記憶)
 ・仮想アドレス空間の実現は、HWのアドレス変換機構で実現
 ・仮想アドレス空間の大きさは、32ビットCPU、0~4GB-1
 ・物理メモリ(実メモリ)は一定の大きさで区切られる。
一区切り = 実ページ(ページフレーム)
一区切りは、仮想記憶機構を利用した場合、CPUがサポートするメモリ管理の最小単位
仮想アドレス空間も同じ大きさに区切って管理
一区切り = 仮想ページ
ページの大きさはCPUのアーキテクチャによって異なる。
 ・仮想アドレスから実アドレスの変換
ページ変換テーブル(TBL:Transfer Look aside Buffer)を使用してHWが自動的に行う。
TBLへのエントリーの追加はHWが行う。
TBLのエントリーの削除は、カーネルが指示する。
TBLはプロセス毎に存在

 カーネル空間のレイアウト
 ・IA-32 プロセッサ(Pentium 4)
ストレートマップ領域
カーネル仮想領域
HIGHMEMアクセス領域
固定マップ領域

 実ページの管理
 ・空きページの管理
 ・ページ獲得処理
 ・Buddyシステム管理方式
隣り合った空き領域同士を結合し、より大きな空き領域を作り出そうとする。

 動的メモリ割当て
 ・Slabアロケータメモリ管理方式
ページより小さいメモリ領域を効率よく管理
 ・2.6の、mempool追加
空きメモリが少ない状態でも最低限のメモリを確保するため、事前に一定量を予約

 プロセスの仮想記憶の実現
 ・物理的に分散したページを集めて、連続した仮想空間を割り付ける。
 ・実メモリの断片化への考慮が不要
 ・プロセスには透過的で、動作していることを意識する必要はない。
 ・多重仮想空間
各プロセスへ独立したアドレス空間を割り当て
テキスト、データ、ヒープ、DLL
 ・スワップ機構
参照頻度の低い領域へ割付けられた実メモリをシステムへ返却
他の利用頻度の高い領域用に再割当する。
 ・デマンドページング
参照が発生した領域に対して、ページ単位で実メモリを割当てる。
 ・コピーオンライト
fork()時のプロセス空間の複製処理を高速化するため、
実際の書込み発生まで、親子のプロセス間でページを共有
 ・ファイルマップ

 ページの回収処理