|
|
仮想記憶について仮想記憶では、物理メモリの空きが足らなくなると、メモリの内容をページという単位でディスクに退避して空きを作り出します。これをページアウトといいます。ページアウトされたメモリが必要になると、ディスクからメモリに読み出して使えるようにします。これをページインといいます。どちらも仮想記憶では普通の動作ですが、慢性的に物理メモリの空きが足りない場合、ページアウトとページインが繰り返し起こり動作速度の低下をまねきます。これをスラッシングといい、あまり好ましくない状態です。MacFace ではこれをメモリが足りない状態として検出します。 ページアウトとページインfree ページの数が別途定める閾値以下になると、カーネルはページアウトの処理を行います。inactive ページをディスクに退避し、free ページを増やします。free ページが余っているということは物理メモリにまだ余裕があるということを示しています。 つまり、ページアウトの発生数が0ならば、物理メモリだけでやり繰りできているということになります。 ページインが発生する状況はふたつあります。ページアウトされてディスクに退避されていたページを物理メモリに戻す時と、起動されたプログラムの実行コードを読み込む時です。Mac を使う以上、後者の状況は必ず起こることなので、ページインが発生するのはごく普通の状況です。 MacOS X ではプログラムのロードにも仮想記憶の仕組みを使います。デマンドローディングといって、ページの割り付けは行いますが、必要になるまで内容を読み込みません。いきなりページアウトされているような感じだと思ってください。ですからプログラムを起動しただけではそれほどメモリを消費しません。とりあえず手持ちのソフトを全部起動してもページアウトが発生しなかったと喜んでいると残念な思いをするかもしれません。 詳しくは ADC のVirtual Memory on Mac OS X(英語)をご覧ください。
|