Windows 2000では、さまざまな構成のシステムに対応するために、複数のHAL(Hardware Abstraction Layer)が用意されている。どのようなシステムに対応できるのか?
対象OS:Windows 2000
Windows 2000ではHAL(Hardware Abstraction Layer)を取り替えることによってさまざまな構成のシステムに柔軟に対応することができるようになっている。これにより、例えば、マルチプロセッサ システムとシングルプロセッサ システムにおいて、それぞれ最適なスケジューリングのためのコードを使い分けるなどしている(マルチプロセッサ向けの複雑な排他制御を含むコードをシングルプロセッサ上で動作させるとオーバーヘッドが大きくなるので、このように2種類のコードを使い分けている)。また同様にして、ACPIシステムと、そうでないシステムで、電力管理のコードを使い分けたりもしている。ハードウェアの構成に依存するような部分をこのHALのレベルで抽象化することにより、OSの移植性を高めたり、システムのタイプごとにコードを最適化したりできるようになるのである。
Windows 2000のインストーラは、インストールの最初の段階で、インストール対象となっているシステムの構成を調べ、どのタイプのHAL(および関連するファイル)をインストールするべきかを判断している(もちろんこれらの情報は、インストールするファイルの選択だけなく、レジストリなどにも反映され、タスク スケジューリングなどにも利用されている)。この際、現在のWindows 2000 RC2では、以下のような種類のシステムタイプが自動的に判別され、それぞれに応じて適切なHALやシステムファイルがインストールされるようになっている。なお、すでにWindows 2000をインストールしているなら、コントロール パネルの[システム]アプレットから起動できるデバイス マネージャにより、現在のシステムがこのうちどの構成でインストールされているかを確認することができる(TIPS「システムが現在使用しているHALを確認する方法」参照)。
システム タイプ | 説明 |
---|---|
ACPI Multiprocessor PC | ACPIとMPSが両方とも利用でき、さらにCPUが2つ以上装着されているシステム |
ACPI Uniprocessor PC | ACPIとMPSが両方とも利用できるが、CPUが1つしかないシステム |
Advanced Configuration and Power Interface (ACPI) PC | ACPIがサポートされているが、非MPSの(1 CPUの)システム |
MPS Multiprocessor PC | 非ACPIシステムで、MPSをサポートしているが、CPUが2つ以上装着されているシステム |
MPS Uniprocessor PC | 非ACPIシステムで、MPSをサポートしているが、CPUが1つしかないシステム |
標準PC | 最も標準的なシステム(ACPIもMPSもサポートされていないシステム。CPUは386や486、Pentium、Pentium II/Pentium IIIおよびそれらの互換品) |
標準PC with C-Step i486 | Cステップのi486を装備した標準PC |
Compaq SystemPro Multiprocessor or 100% Compatible | Compaq社のSystemProもしくはその同等品 |
SGI mp | SGIのマルチプロセッサシステム |
Other | その他(メーカー提供のHALが必要) |
Windows 2000でサポートされているシステム タイプ |
これから分かるように、システムのタイプには、ACPI機能がサポートされているかどうかと、マルチプロセッサ システムかどうか(MPSかそうでないか)の2つに大きく分類される。このうちACPI(Advanced Configuration and Power Interface)は、システムの総合的な省電力管理を行うための技術であり、ノートブックPCなどにおいて、電力消費を抑えたりするなどの目的で使われる。具体的には、ACPIサポートにより、CPUや周辺チップに与える電力をきめ細かく制御したり、パワーダウンやサスペンドなどを行ったりして電力消費を抑えることができるようになる。またACPIは、デスクトップPCにおいても、スリープやサスペンド、自動的な電源切断、外部からの割り込みなどによる自動的なシステムの起動などにも利用される。ACPIの前身の規格としてAPM(Advanced Power Management)という仕様もあるが、Windows 2000では、非ACPI仕様の場合には、(APM BIOSが存在すれば)APMを利用するようになっている(APMはProfessional版でのみ有効)。ただしWindows 2000のAPMで制御できるのは、電源の自動オフや休止状態だけであり、Windows 9xのスタンバイ モードなどは使われていない(デスクトップ マシンの場合)。
MPS(Multi-Processor Specification)は、PC/AT互換互換機アーキテクチャにおいて、マルチプロセッサをサポートするための標準的なハードウェア構成やBIOSサポートなどを定めた規格である。MPS規格では、システムに装着されているCPUの数や種類を調べる方法や、ハードウェア割り込みの取り扱い方法、メモリや拡張バスの種類を調べる方法などを規定しており、PC/AT互換機における対称型マルチプロセッサシステム(SMP)は、ほとんどすべてがこのMPS仕様に基づいて設計されている。そのため、Windows 2000などのOS側では、このMPS BIOSを経由してシステムのマルチプロセッサ構成を調べ、各プロセッサを管理、制御するようになっている。これにより、各システムごとの細かい設計の違いによらずに、汎用的にマルチプロセッサ システムを利用できるようになる。
ACPI対応のシステムであるにもかかわらず、インストーラによって「標準PC」と認識されたり、あるいはマルチプロセッサ システムなのに「MPS Uniprocessor PC」や「標準PC」として認識されたりすることがある。このように自動認識がうまく働かないときには、セットアップ時に手作業でシステム タイプを指定することも可能である。これらの詳細については、TIPS「インストール時に強制的にシステムタイプを指定する方法」を参照されたい。
■更新履歴
【1999/12/08】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.