プログラムを実行する際,コンピュータは,ハード・ディスクなどの2次記憶装置からプログラムを主記憶(メモリー)に読み込み,その後,命令を順次解釈しながら実行していきます。プログラムが利用するデータもまた,メモリーを使って読み書きされるのが一般的です。そのため,現在のコンピュータ・システムにおいて,メモリーは最も重要な資源であると言えるでしょう。 今回は,Linuxカーネルがどのようにコンピュータのメモリーを管理し,プロセス間での競合を防止しているかを解説します。 なお,メモリー管理についてはアーキテクチャに依存する部分が多いため,特に明記しない場合は,最もよく利用されるIA-32(i386以降のx86互換プロセッサのアーキテクチャ)プロセッサを基に解説します。 メモリーの構成とアドレス プロセッサとメモリーはバスと呼ばれる配線で接続されています。バスは大きく分けて「アドレス・バス」と「データ