|
●システムリソースの概要
システムリソースの問題はWindows 95、98(SE)、あるいはMeで起こることなので、
その場合だけについて書きます。 ただし、Windows 3.0、3.1でもシステムリソースの問題は
ありましたが、ここでは省略します。
これらのWindowsを使っていると、たまに、「メモリ不足」のエラーが出ることがあります。
これは、ほとんどの場合、システムリソースというメモリが不足して起こることです。
システムリソースは、アプリケーションを使用する毎に減っていきます。 そして、
システムリソースの残りがなくなると、メモリ不足となるのです。
また、「メモリ不足」のエラーが出なくても、アプリケーションによっては、システムリソースが
不足した時には、立ち上がらないものもあります。あるいは、立ち上がる時には
システムリソースが残っていても、システムリソース不足になった途端に、勝手に
終了してしまうアプリケーションもあります。
といって、メモリを増設しても、この「メモリ不足」は、まったく、解決しません。
これはなぜなのでしょうか。詳しいことは後の方で書きますが、簡単にいうと、
システムリソースは決まった大きさを持っていて、メモリを増設してもその大きさは変わらない
からです。
なお、何のエラーも出ないで、アプリケーションが極端に遅くなったり、止まったようになる
ことがあります。そのようなとき、そのまま1、2分ほど放っておくと動き出すような場合は、
システムリソースの不足が原因ではありません。 その場合、メモリを増設することで、
この現象は起きにくくなります。これは、システムリソース不足ではなくて、メモリそのものが
不足したため、ハードディスクをメモリの代わりに使おうとすることが原因で起きます。
ハードディスクはメモリよりも読み書きが遅いことと、ハードディスクに書き込む内容を
処理するのに時間がかかることが原因です。この、メモリが不足してハードディスクを
使うことを、スワップ(swapping)といいます。
スワップが起こるような状況では、システムリソースも残りわずかになっている場合が
ありますので、メモリを増設しても、同じような使い方をすると、次は「メモリ不足」に
なるかもしれません。
システムリソースの残りの量(%)を知る方法は、いくつかありますが、
1.視覚障害者の場合は、コントロールパネルのシステムで聞くのが一般的でしょう。
その方法は、スタートメニューから「設定」を選び、その中の「コントロールパネル」を
選択し、エンターキーを押します。 次に、タブキーを押した後、下矢印キーで
「システム」を選択し、エンターキーを押します(このとき、下矢印キーだけでは
「システム」が見つからない場合、オルトキーを押しながらアルファベットの
Vキーを押したのち、下矢印キーで「詳細」を選んでエンターキーを押せば、あとは
下矢印キーで「システム」が見つかるようになります)。 次に、タブキーを数回押して
「全般」を選択し、右矢印キーで「パフォーマンス」を選択すると、システムリソースの
残りの%を読み上げてくれます。
2.「マイコンピュータ」を右クリックし、「プロパティ」をクリックし、「パフォーマンス」を
クリックすることで、1.と同じになり、システムリソースの残量を得られます。
3.「エクスプローラ」のヘルプを開き、そのバージョン情報を見ると書いてあります。
●「メモリ不足」を解消するには
根本的な解決は、WindowsをNT、2000あるいはXPに取り替えるしかありません。
でも、手持ちのパソコンのWindowsを、そのままXPなどに取り替えられるとは限りません。
CPUの性能、メモリ搭載量、付いているデバイスの互換性など、ハード上の制約が
あるからです。
というわけなので、今のままのパソコンで「メモリ不足」を少しでも解消する方法を以下に
書きます。
推奨するのは、「メモリ不足」にならないうちに、ときどき「Windowsを再起動する」ことです。
これは、アプリケーションが使ったシステムリソースは、そのアプリケーションを閉じても、
システムリソースの一部を解放しないからです。 つまり、いろいろなアプリケーションを
使ったり閉じたりしていくうちに、次第にシステムリソースの残りの量は減っていきます。
アプリケーションを同時にたくさん開くことは、「メモリ不足」を起こしやすくするので、
使わなくなったアプリケーションは閉じておきましょう。「最小化」するだけでは、「メモリ不足」
解消の足しにはなりません。
それでも、「メモリ不足」が出てしまったら、「再起動」するのが一番です。 まず、使っていない
アプリケーションを閉じたあと、入力中のデータなどは「保存」し、それからスタートメニューの
「Windowsの終了」を選び、「再起動する」にチェックを付けて、エンターキーを押しましょう。
注意:「メモリ不足」が起きたとき、使っていないアプリケーションを閉じただけで、そのまま
使い続けると、ろくなことはありません。めんどうでも「再起動」してから使いましょう。
msconfigのスタートアップ項目のチェックを外せば、Windowsを立ち上げた時の
システムリソースの残りの量を増やすことはできますが、初心者はやらない方が
いいでしょう。サポートの人に頼みましょう。
●システムリソースの実態
少し難しくなりますが、システムリソースの実態を、もう少し詳しく書きます。
Windowsのもっとも根幹をなす働きをする構成要素の中に、UserとGDIがあります。
Userは、キーボード、マウス、タイマなどからのデータや、すべてのウィンドウの管理を
行っています。つまり、人とコンピュータの間で情報の仲立ちをするのがUserの働きです。
GDIはGraphics Device Interfaceの略で、フォント、グラフィックス、プリントの処理を行って
います。つまり、GDIは、文字も含めたグラフィックス処理全体を管理しています。
Windowsでは、こういった類の、管理に必要な情報は、すべてリソースとして管理して
います。Userが管理するリソースはUserリソースで、GDIが管理するリソースはGDIリソースと
いいます。UserもGDIも、リソースにはそれぞれの専用のメモリ領域を使っています。
これらの専用のメモリ領域の内、Pointer Exchange Tableと呼ぶ領域を除いたものを、
ヒープと呼んでいます。このヒープのうち、古い16bitアプリケーションが「専用」に使用する
ヒープを、ローカルヒープと呼び、Userローカルヒープは128KB、GDIローカルヒープは64KBの
大きさです。また、32bitのアプリケーションが「専用」に使用するヒープを32-bitヒープといい、
Userの32-bitヒープは4MB、GDIのそれは2MBとなっています。
ここで「専用」と書いたのは、32-bitヒープは16bitアプリケーションでは使うことが
できないからです。ローカルヒープはたかだか128KBしかありません。 これを使い切って
しまえば、32-bitヒープがいくら空いていても、「メモリ不足」になってしまうのです。
ローカルヒープは、Windows 3.1時代の古い16bitアプリケーションも使えるようにするために
残されたものでしたが、現在でも、まだ16bitのdll(dynamic link library)を使うアプリケーションが
多いため、「メモリ不足」に悩まされるのです。
なお、前の方に書いたシステムリソースの残りの量として示される値(%)は、UserとGDIの
ローカルヒープのうち、少ない方の値が表示されています。 つまり、32-bitヒープには関係の
ない値なのです。
|