Windowsマシンで複数のアプリケーションを起動すると,システム全体の必要メモリー量は簡単に200Mバイトを超えてしまう。それなのに,128Mバイト・メモリーのマシンでも正常に動作するのはなぜだろうか。メモリーとハードディスクを組み合わせた「仮想記憶」は,最大4Gバイトのメモリー空間を作り出す。ただし,システム全体の処理性能を劣化させることもあるので注意が必要だ。

 128Mバイトのメモリーを搭載したWindowsマシン上で,インストールされているソフトを片っ端から起動してみたら,一体どうなるだろうか。恐らく,実行に必要なメモリー・サイズの合計は簡単に200Mバイトを超えるだろう。搭載メモリー容量を大幅に上回ってしまうので,Windowsは「メモリーが不足しているためプログラムを起動できません」というメッセージを表示するだろうか。

 もちろん,そんなことはない。すべてのアプリケーションは正常に起動する。MS-DOSの時代には,搭載メモリー容量より大きなプログラムを動かすことなど絶対にあり得なかったが,Windows OSではそれが可能だ(図1)。では,一体なぜ,搭載メモリー容量を超えるプログラムやデータを処理できるのだろうか?

図1●物理メモリーの容量を超える多数のアプリケーションが起動しても,なぜWindowsはメモリー不足に陥らないのか?
図1●物理メモリーの容量を超える多数のアプリケーションが起動しても,なぜWindowsはメモリー不足に陥らないのか?
[画像のクリックで拡大表示]

 読者の多くはもう察しがついていることと思うが,Windowsは「仮想記憶」(Virtual Memory)と呼ばれる機能を備えている。この機能が物理メモリー容量を超えるプログラムやデータの処理を可能にしているのだ。もし仮想記憶がなかったら,現在の2倍以上の物理メモリーが必要になるかもしれない。

 一方で,仮想記憶が直接/間接的にからんだ性能劣化のトラブルもよく起こる。詳細は後述するが,読者のパソコンがこれらのトラブルの初期症状を示している可能性は大いにあり得る。特に,Windows OSをアップグレードしたことがあるとか,メモリーを増設したことのある読者なら,なおさら可能性が高い。

 今回は,広大なメモリー空間を生み出す「仮想記憶」がどのように機能しているのかを紹介するとともに,意外と知られていない性能劣化の問題について解説する。