前回は,プロセスが利用するメモリーをLinuxがどのように管理するかを説明しました。Linuxでは,ページングという仕組みに基づいた仮想記憶機構を利用して,プロセスごとに実際のメモリー空間とは別の仮想メモリー空間を準備します。この仮想メモリー空間は,プロセス・スケジューラによって実行が切り替わるたびに切り替えられます。このような仕組みを採ることで,複数のプロセスで競合を起こさず,できるだけ効率的にメモリーを使えます。 ところで,メモリーを利用するのはプロセスだけではありません。カーネル自身もメモリーを使いますが,その利用方法はプロセスの場合とは異なっています。また,物理メモリー・アドレスと仮想メモリー・アドレスの変換を行うのはプロセッサ(MMU)の仕事ですが,実際にその変換表(ページ・テーブル)を用意するのはカーネルの役割です。空き物理ページのうちどのページを割り当てるのか判断するのもカー
![第5回 カーネル・メモリー管理](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)