PR

 画面の表示が固まってしまい、マウスやキーボードの操作を受け付けない。こうなるとデータを保存できず、パソコンの電源を切って再起動するしか手はなくなる。Windows98、Windows MeではOSの機能が完全に停止してしまう「フリーズ」状態に陥ることがよくある。

 原因は主に3つある。メモリーの管理、リソース、デバイスドライバーの構造に起因する不具合だ。

 まず、Windows98、Windows MeではアプリケーションとOSの基本プログラムが使うメモリー領域が厳密に仕切られていない。アプリケーションが誤ってOSの基本プログラムを書き換えてしまうと、OSが正常に動作できなくなってしまうのだ(下図)。

図1 Windows 98やMeではアプリケーションが誤ってOSのメモリー領域にアクセスし、データを書き換えてしまうことがある。こうなるとOS自体が不安定になり、ハングアップが起きる


 次に、リソースとはWindowsの基本プログラムに割り当てられるメモリー容量のこと。ウインドウやアイコンを管理する「User」やグラフィックスを管理する「GDI」というOSの基本プログラムが利用する領域だ。リソースメーターというツールで残量を確認できる(下図)。

図2 リソースはOSの基本プログラムが利用するメモリー領域のこと。Win98/Meではこのリソースがそれぞれ64KBしかない。リソースが少なくなるとフリーズしやすくなる。リソースの残量はリソースメーターで確認できる


 この残り容量が少なくなると、動作が不安定になり、フリーズしやすくなる。Windows 98、Windows Meでは、16ビットアプリケーションのために用意されたリソースがそれぞれ64KBだけしかない。UserなどOS内の一部の基本プログラムは16ビット構造であるため、ユーザーがアプリケーションを複数開くとすぐにリソースを消費してしまう。

 Windows98、Windows Meが使うデバイスドライバーはWindows 3.1との互換性を保持するため、マルチタスクの動作を考慮していない。ドライバーが不具合で停止してしまうとOS側に処理が戻らず、全体が止まってしまう。

 Windows XPは、これらの問題をほぼ解消している。メモリー領域はアプリケーションが使う領域と、OSのシステムが使う領域が厳密に分けられ、誤ったアクセスからOSのメモリー領域を保護する。

 リソースの容量は最大で4GBに増え、デバイスドライバーはマルチタスクに完全対応した。さらに、ドライバーの基本的な制御プログラムをOS側が搭載するようになったので、エラーが発生する可能性が低い。

 XPではアプリケーションが何かの拍子に停止することはあるものの、OS自体はフリーズしづらくなった。例えば、画面のアイコンなどを描画する「explorer.exe」が停止して、アイコンやタスクバーが表示されなくなることがある。この場合、OSは停止せずに状態を監視して、自動的に「explorer.exe」を再起動するのだ。