----- ◇ 以下 ここから 【想像】と【体験的な判断】での説明。
【想像】の部分
答えは、USBデバイスのドライバの【多段構成】にある〜と想像。
◇まず、【処理が重い/軽い】に関して。
※とりあえず、Windowsのメモリ管理・アプリ管理手法の違いに起因する【重さ】に関しては除外し、
デバイス制御の【処理が重い/軽い】に関して説明。
USBのドライバが【多段構成】になっている理由は 畑違いのデバイスを“デージーチェーン”で接続して制御するためです。
要するに、
データー形式 と デバイス制御方法が 全く異なるので、クッションの役割を果たすドライバが 2段・3段と必要となる訳です。
知人のオフィスで WindowsNT 4.5(?)のサーバーマシンの【レジストリ】を覗いた時も、同じ事を感じました。
この WindowsNTの【レジストリ】には HKEY_LOCAL_MACHINE\Enum が存在しないのです。
※Windows2000では、別の場所に HKEY_LOCAL_MACHINE\Enum に似た部分が別に存在する。
※クッション・・・私が勝手に使う言葉。
データー形式・デバイス制御方法の異なる異種デバイスを1本のドライバで処理する事は無理。
データー形式を変換しながら ドライバからドライバ へと引渡すのですが、
引渡しのためのバッファ領域も必要となるでしょう。
引渡しタイミング制御のフラッグ(旗)を立てたり倒したりする処理も 余分に必要です。
結果的に、1本のドライバで制御できる95・98に比べて 手続きが2倍3倍と必要で、処理が重くなります。
Windows98・95では(USB以外)、PnP検出〜Enum情報で システムデバイス情報を詳細に汲み上げ、
デバイス種別ごとに 各デバイスに適合したドライバで制御するので、処理が軽いのです。
(その代わり、デバイス種別ごとに厳密に適合したドライバが必要。)
ここで、【田中式Win98の 動作の軽さ】・・【システムデバイス情報を詳細に汲み上げ〜】 の2つが
明確に結合します。
※95・98では「ドライバは1本」と述べましたが、
デバイスによっては、
実は ドライバの他に【マネージャー】がOSの中に組み込まれています。
例えば、SCSIカードの場合 95・98では ドライバ1本を組み込めばOKですが、
DOSでは それが組み込まれていないので、マネージャーとドライバが別々に必要となります。
※95・98においても、USBデバイスでは ドライバが【多段構成】なので、
【アクセスの立ち上がり(レスポンス)】が遅いのです。
マウスをスピーディーに操作する人は USBマウスは使いたくないでしょう。
●ここまでの 詳しい解説は こちらを読んで下さい。
田中式処置を試さずに 論じたり 想像してみたい人々へ。
◇さて、Windows98のマザーボード認識情報に関して。
田中式の【処置前 9項目】と【処置後 25項目】ですが、
【処置前 9項目】のうち、マザーボードを制御するために実質的に役に立っている情報は【Capabilities】の1つだけです。
『これ1つで、チップセットの異なる別種のマザーボードを制御できるのか?』〜 と感じます。
(SCSIカードですら Config情報を認識しているのに。)
という事は、
先ほど説明した【デバイス制御のクッション】が、マザーボード用として Win98が 内部に隠している・・(想像)。
そして、
田中式の処置後に Win98が 勝手に25項目を組み込んでくる〜という事は、【制御の仕方】に変化が起きた・・(想像)。
【制御の仕方】に変化が起きた 〜 のであれば、 2つの制御の仕方には【異なる制御方法】が含まれているはず。
そして、
【処置前 9項目】の制御方法の方が メモリーリークを発生しやすい制御が 含まれている・・(想像)。
このように考えると、ツジツマが合います。
そうでも考えないと、
『【Sotec PC】で 処置後 シミュレーションGameで ヘリコプターの飛び方がスムーズになった。』
という報告を理解できません。
※この【メモリーリーク改善】は 田中式処置において “偶然の産物”であり、
こんな事まで計算して 手法を考案できるほど 私は優秀ではありません。
----- ここまで。
|