システムリソース

このページでは、システムリソースについて解説します。「システムリソースが不足しています」が表示される場合は参考にしてください。 (このページの内容は、予告なしに変更されます。) 問い合わせはこちらまで

●システムリソースとは?

Windows 95、98、Me 環境において。「システムリソースが不足しています」という警告メッセージを見たことのないユーザーは少ないのではないだろうか。メモリーを128MB搭載してるのに、どうして?と悩む場合もあるかもしれない。まず、システムリソースとは何だろうか? 「アスキーデジタル用語辞典」などを参考にしてまとめてみた。

○ハードウェアのリソース

「アスキーデジタル用語辞典」などによると、「拡張バスに接続されるデバイスが使用する資源(リソース)のうち、割り込み要求(IRQ)、ダイレクトメモリアクセスチャネル(DMA)、I/Oポートアドレス、メモリアドレスの4つをシステムリソースという...」ということである。(この4つの解説は省略するが、これらのリソースの割り当ては、「システム」の「デバイスマネージャ」タブの「コンピュータ」で確認できる。)
リソースの割り当ては、Plug and Play に対応しているデバイスであれば、ほぼ自動化される。(EISA、MCA、PCIでは、リソースの管理を自動化できる。) しかし、ISAカードなどの多くは手動で適切に設定してやる必要がある。つまり、Windows 95以降の環境なら、バスとデバイス(カードなど)が、Plug and Play に対応していれば自動的に最適なリソースの設定が行われるはずである。

○Windows のリソース

「システムリソースが不足しています」の原因となるのがこのリソースである。(これは、Windows 2000 では表示されない。Windows Me では残り10%をきったところでメッセージが表示された。) 具体的には、「カーネル(Windowsの中核部分)を構成するUSERモジュール、GDIモジュールが内部的に利用するデータ領域の残り容量。」ということである。
リソースは、アプリケーションを起動し、ウィンドウを開いたり、ファイルを読み込んだり、グラフィックス命令を実行した際に徐々に消費される。この残容量は、リソースメーターでは、USER、GDI のデータ領域のうち、少ないほうの残容量をパーセントで表わすので誤解しないでください。(システムモニタは、「スタート」>「プログラム」>「アクセサリ」>「システムツール」でタスクトレイにミニアイコンが登録されるので、クリックして起動するか、ポインタを上において数字を読む。)
例えば、アプリケーションを起動すると10%、新規のウインドウを一つオープンしすると1%、そこにファイルを読み込むと2%...というようにリソースは消費され、残容量は減少していく。何%消費するかは、アプリケーションの種類によりかなりのバラツキがある。

○Windows のリソースの変遷

初期の Windows では、USER、GDI のそれぞれに、64Kバイトのメモリ領域が割り当てられていた。しかし、この容量では、ユーザーが同時に実行できるアプリケーションは制限される。Windows 3.1 では、多少の改良が加えられ、USER の内部領域を 128Kバイト(2つのセグメント)に拡張し、システムリソースの使用法も改良された。それでも、内部メモリの構造がシステム全体の制限となるという本質は変わらなかった。(インタフェースは、マルチタスクOSのごとく見えても実際はDOSの拡張版であった。)この構造では、ユーザーが物理メモリーをいくら増やしても根本的な解決にはつながらない。

Windows 95 では、この内部領域を 32ビット化し、最大4Gバイトまで使用可能にした。ただし、Windows 3.1との互換性維持のために、先頭の64Kバイトを互換領域とし、互換プログラムについては、この領域から確保するようにしている。このため、制限は緩和されたが、古い時代の16ビットプログラムがこの領域に割り込んでくる、この領域が存在するためWindows のモジュールの32ビット化も遅れる、などの問題が残された。(コンサートで、後列はガラガラなのに最前列をめぐって争うような状態が続いた。)

Windows NT、2000、XP ではリソースの管理方法が異なるため、この問題は発生しない。Windows 98、Me の問題である。
 
このように、システムリソースはウィンドウマネージャ(USER)やグラフィックエンジン(GDI)が内部的に使用するメモリ領域なので、搭載メモリの容量とは関係ない。(搭載メモリを64MBから128MBに増やしてもこの領域が増えるわけではない。ただ、32ビットアプリケーションが使用できる領域が増えるという観点からは好ましい。) この問題は、Windows XP で解決されるはずである。



Windows XP では、残物理メモリ=残リソース と考えてよいだろう。タスクマネージャの「パフォーマンス」タブを開いて、「物理メモリ」の「利用可能」が残リソースとみなしてよい。
 
●システムリソースの空を増やす方法

プログラムを起動したり、ウインドウを開くたびに、リソースは消費されていく。特に、ウインドウをいくつも開くインターネットブラウザ、ワープロ、画像処理などの重いグラフィック関係のアプリケーションは多くのシステムリソースを必要とする。システムリソース自体は、上述のとおり、Windows の仕様によって制限されているので増やすことはできないが、以下のようにして空を増やすことができる。

まず、アプリケーションの不具合のため、特定のアプリケーションを共存させると、著しくシステムリソースが減少するなどの症状がでることがある。アプリケーションを一つしか実行していないのにすぐリソース不足のメッセージが表示される場合など、特に疑わしい。HDDのユーティリティ、システムユーティリティ、ウイルスチェッカー、標準以外のスクリーンセーバー、古いドライバ、そのOSに対応していないアプリケーションやゲームソフトなど、トラブル情報を検索してみよう。(このようなソフトが原因の場合は、「システムモニター」で確認すると、CPUの稼働率も100%になってしまうなどの障害も発生する可能性が高い。)

システムリソースを効率的に使うための原則は次の 2つである。

  1. 製造元の異なるアプリケーションを同時に起動しない
    製造元が同じアプリケーションの場合、そのメーカーが優秀なら、モジュールを共用してリソースの消費を低く抑えるように開発されているはずである。製造元が異なるアプリケーションの場合、モジュールの共用を行なわないため、起動するごとに数 % づつリソースを消費するのが普通である。

  2. 重いアプリケーションを起動したら、他のアプリケーションを起動しない
    本格的なフォトレタッチソフト、レイアウトソフト、ワープロソフトなど、起動に時間のかかる重いアプリケーションは、より多くのリソースを消費する。重いアプリを起動したら、他のアプリケーションは極力実行しないように配慮しよう。

次に、システムリソースの空を増やす具体策を記述する。

○自動起動されるプログラムの停止

Windows はシステム起動する際に、次のような方法でプログラムを自動起動する。なお、2,3,4を変更することは、ビギナーには危険である。(Windows のプログラムの知識が必要である。)

1.「スタートアップ」フォルダに登録されたプログラム
2.Win.ini の load や run で指定されたプログラム
3.Autoexec.bat Config.sys で指定されたプログラム(旧DOSの互換プログラム)
4.レジストリの run や RunService キーに登録されたプログラム

これらの中にはリソースを消費するものがあるので、常駐させる必要のないものは次のようにして起動しないように設定できる。3は DOS互換プログラム用の起動ファイルで、新しい Windows ほど機能が制限されている。(「スタート」>「ファイル名を指定して実行」から「Sysedit」を実行して設定内容を表示・編集できる。)

1.対象のプログラムがタスクトレイに表示されていればまずそれを停止する。
2.「スタート」>「ファイル名を指定して実行」 から 「Msconfig」 を実行する。
3.「スタートアップ」タブで起動させないプログラムのチェックを外す。

なお、登録されているシステムプログラムのうち、チェックを外しても大丈夫で効果があるのは次のようなものである。(他のプログラムは起動のトラブルを招く恐れがあるので注意。)筆者は、Internat のみチェックを外している。

internat(キーボードインジケータ)
SystemTray(システムトレイ)
ScanRegistry(レジストリの自動バックアップ)
LoadPowerProfile(省電力機能)

○デスクトップのアイコンとショートカットの削除

デスクトップのアイコンは数が多いほどシステムリソースを消費するので、頻繁に使用するもの以外は削除してよい。(スタートメニューにないプログラムについては、復活できるように、消去する前にプロパティでプログラムファイルの所在とファイル名を記録しておこう。)

○画面のプロパティの設定変更

意外にリソースを消費するのが壁紙である。警告メッセージが表示されるなら、「コントロールパネル」>「画面」>「背景」タブで壁紙を (なし)に設定しよう。「効果」タブでは全項目のチェックを外す。「設定」タブでは、「色」を「256色」にする。これで、数%の空きができるはずである。

○タスクトレイから常駐アイコンを削除する

タスクトレイ(タスクバーの右端)に表示される常駐プログラムを解除することにより起動時の空き領域を増やすことができる。解除してはいけないアプリケーションもあるので、まず、トレイに何が登録されているのか確認しよう。(どのアプリケーションなのかわからないで使っているユーザーが意外に多い。) ウイルスチェッカーなどは、リソースだけでなく処理速度にも影響を与えている可能性が高い。インターネット接続の際に起動するなど工夫しよう。Quickxxx、Realxxx などのマルチメディア・アプリケーションも、使用頻度が低ければ解除しよう。

通常のアプリケーションは、右クリックで終了する、アプリケーションを起動し設定を解除する、あるいはコントロールパネルに登録してあるものであればそこから解除できる。Windows の機能では、次のようなプログラムがよく表示されている。(手順は、Windows Me の操作に基づく。)

1.スピーカー
「コントロールパネル」>「サウンドとマルチメディア」>音量の「ボリュームコントロールを...」のチェックを外す。
2.タスク
「コントロールパネル」>「タスク」>「詳細設定」>「タスクスケジューラの使用停止」をクリックする。
3.キーボードインジケータ
「コントロールパネル」>「キーボード」>「言語」タブの「タスクバー上に状態を表示」のチェックを外す。

4.PCカード
「コントロールパネル」>「PC カード」>「ソケットの状態」タブの「タスクバー上に...」のチェックを外す。
5.電源
「コントロールパネル」>「電源」>「詳細設定」タブの「アイコンをタスクバーに...」のチェックを外す。
6.時計
「コントロールパネル」>「タスクバーとスタートメニュー」>「全般」タブの「時計を表示」のチェックを外す。

○ハードウェアアクセラレータを無効にする

「システム」の「パフォーマンス」タブの「グラフィックス」ボタンをクリックして、「ハードウェアアクセラレータ」を「なし」にする。

○「F5」キーを押す

アイコンやウインドウの乱れが画面上に残った場合、デスクトップ上の何もないところをクリックし、「F5」キーを何度か押すと、わずかながらリソースを回復できる場合がある。