システムリソースの空き

Windows 95のデバイスマネージャの「パフォーマンス」欄にある「システムリソース」の数値は何の空きを表しているのでしょうか。


アプリケーションソフトやWindowsシステムそのものは,さまざまな固定したデータを使用します。例えば,文字列(メニューの文字列など),ビットマップ画像,アイコン,フォントなどです。
 これらのデータは個々のアプリケーションが持っている場合もありますし,システムが持っている場合もありますが,Windowsではアプリケーションやシステムが使うデータを格納しておくための特別な仕組みを提供しています。
 アプリケーションソフトは,自分が使うデータ類を「リソース」という形にまとめ,実行ファイル内に組み込んでいます。Windowsがアプリケーションソフトを実行すると,リソース部分は「リソース領域」という特別なメモリ領域に読み込まれ,アプリケーションソフトは必要に応じてリソースをロードしたり,解放したりできる仕組みになっています。
 Windows 95のメモリはすべてバーチャルメモリ空間で,バーチャルメモリアドレスには必要に応じて物理メモリが割り当てられます。Windows 95では物理メモリ容量に関係なく4GBのバーチャルメモリを実装していますが,リソース領域はその中のあるメモリアドレスにある大きさで予約されています。そのアドレスに物理メモリがマップされるかどうかは,システムの都合で変わります。
「システムリソース」の欄(画面1)の数値はWindows 95の立ち上げ時に確保された,このリソース領域のメモリ容量があと何%空いているのかを示しています。
 このような仕組みには,
@アプリケーションが実行中でも使用していないリソースを解放でき,メモリのむだを省くことができる
Aアプリケーションを複数実行しているときでもリソースは1個で済む
B多言語に対応するソフトを容易に作ることができる(Win32以降,多言語リソースがサポートされた)
Cデータの読み込みが簡単になりプログラムが作りやすい
などのメリットがあります。
 ただし,リソース領域のサイズはWindows起動時に決定されます。そのため,膨大なリソースを使うアプリケーションをいくつも実行した場合や,リソースの解放(リソースが不要になったことをWindowsに知らせること)を怠るアプリケーションを実行すると,リソース領域の空きがなくなり,新規のアプリケーションを起動することができなくなったり,Windowsシステムがハングアップに近い状態に陥ることさえあります。アプリケーションを起動後,リソースの空きが極端に少なくなり,そのアプリケーションを終了してもリソースの空き不足が解消できないような場合は,そのアプリケーションのバグの可能性が非常に大きいので,開発元に連絡するといいでしょう。
(米田 聡)


画面1 システムリソースの欄はリソース領域がどの程度空いているかを表す