データ復旧のデータサルベージ 、今日の記事
データ用語集、vol.44の今回は「システムリソース」をご紹介します。
システムリソースとは、Windowsで動作するアプリケーションソフトが共通して利用する、
特殊なメモリ領域。
USERリソースとGDIリソースの2つがあり、
前者はアプリケーション操作で開くダイアログやウインドウなど、
ユーザ操作のための情報を格納し、
後者は画面表示に使うフォントやビットマップ画像、アイコンなど、
グラフィックス表示関係の情報を格納するのに使う。
表示には、両者のうち少ない方の残量を全体のパーセントで表し、
これが0%になるとそれ以上アプリケーションやファイルを開くことはできない。
システムによってはあらかじめ容量が決まっており、いくらメモリを増設しても
リソースの容量は増えないので注意が必要である。
16ビットアプリケーションの使う領域と32ビットアプリケーションの使う領域は異なるが、
前者の方が圧倒的に制限が厳しいため、
残量を考える場合など、ほとんどの場合は前者を指す。
Windows3.1以降で確保されているシステムリソース領域は、
16ビットアプリケーション用が計384KB、32ビットアプリケーション用が計6MB。
システムリソースの不足は、16ビットアプリケーションが
多数起動されることによって発生する。
本体が32ビットで記述されたアプリケーションでも、
アプリケーションが呼び出すライブラリ(DLL)が16ビットベースで記述されていれば、
そのDLLが16ビット用リソースを使用するためにリソース不足を発生させてしまうこともある。
アプリケーションが開放を忘れる(リソースリーク)と、
アプリケーションが終了してもリソースは完全に回復しないため、
アプリケーションの起動が終了を繰り返していると、
しだいに使用可能なシステムリソースは減少していく。
解放されずに残った領域を使用可能にするためには再起動する必要がある。
Windows2000など、WindowsNT系列にもシステムリソースの制限はあるが、
16・32ビットアプリケーションともに計3MBの領域を使用するようになり、
16ビットアプリケーション特有の制限を受けなくなった上に、
レジストリ操作によって領域を拡大することもできることから、
その制限を気にする必要はなくなっている。