以上から,2.26にあげたメモリ管理の5つの問題に対する答えがわかります.

M1の答えは「RAMの空いているところ」であり,M2の答えは「必要なだけ」であり,M3の答えは「ページ単位で不足する分を割り当てる」,M4の答えは「スワップアウトをすることで必要な空き領域を作る」です.

OSは仮想記憶のシステムアドレス空間に,どのプロセスのどのページが,RAMのどのページに書き込まれたか,それがスワップアウトしたのかどうか,スワップアウトしたのなら,ページファイルのどこにあるのか,など必要な経過をすべて記憶して,RAMに装填した各ページを管理します.

このことは図14では,システムアドレス空間ページ表に描いた小さな□とそこから利用者アドレス空間RAMに向かって出ている点線の矢線で示しました.

OSも,その実行のためにはプロセスを生成する必要があります.それはブートストラッピングが終了する時に行われます.

OSは基本ソフトウェアの中核部分です.1.21で説明したように,ブートストラッピングが終了する時,基本ソフトウェアの最初の指示が実行されるようにするのですから,その時にはOSのプロセスが生成されて,RAMのどこかに必要な何ページ分かが装填されているのです.

OSのプロセスの生成は,仮想記憶の上ではシステムアドレス空間を使って行われます.

しかし,その必要部分は応用ソフトウェアやサービスのプロセスと同様に,RAMにページ単位で装填されます.OSのプロセスの一部はスワップすることができませんが,残りの部分はやはりスワップアウトとスワップインの対象になります.

RAMを使う,使わないはページ単位で決めますので,M5の答えは「RAMの空きページ領域として管理する」となります.

以上のような方法を使ってOSは,仮想記憶上で模擬的にプロセスを進行させながら,その処理中の部分(図14の赤い線)が,RAMのどこに装填されているかのデータに,いちいち変換して実際の処理を進めています.

 このような変換やスワッピング,そして,プロセスの切り替えが,極めて高速に行われているので,私たちはすべての仕事が並行して同時に処理されているような錯覚をしているのです.