カーネル2.6では、ACPI(Advanced Configuration and Power Interface)に基づく電源管理がデフォルトとなります。ACPIはIntelが提唱するOSPM(OS-directed configuration and Power Management)に準拠した電源管理機構であり、電源状態の管理(電源状態の変化の検出など)をOSで行うことを前堤としています。
ACPI/OSPMに基づく電源管理は、以下の3種のソフトウェアが互いに連携し合って動作します。
●電源管理ポリシー設定ツール
現在、ospmd_guiという電源管理ポリシー設定ツールが開発されています。ospmd_guiを用いることで、Windowsなどと同様な電源管理ポリシーの設定が行えるようになります。具体的には、次のような設定が可能です。
●acpid/ospmd
カーネル内部で保持している現在の電源状態の変化を監視し、変化に応じて指定されたコマンドを実行します。具体的には、ACPI関連の/procファイルシステムを定期的に監視することで電源状態の変化を検出し、指定されたコマンドを実行するようになっています。
●カーネル/デバイスドライバ
カーネルはシステムの電源状態を保持し、/procファイルシステムを通してapcid/ospmdに通知します。電源状態の変化の検出は、電源管理対応デバイスドライバが検出した電源ボタンの押下などのイベントをカーネル内のACPIサブシステムに通知することで行われます。
これらの関係を図3に示します。
例えば、電源ボタン押下に伴うシステムのシャットダウンは、以下のような順序で実行されます(図4)。
ソフトウェアサスペンドとは、システムのサスペンド/レジュームをソフトウェアによって実現する機能です。
ソフトウェアサスペンドは、実行時のメモリイメージをディスク(swapパーティション)に退避し、レジューム(再起動)時に復元することで実現されています(図5)。
図5に示すように、ソフトウェアサスペンド機能によるシステムのサスペンド処理は、swsuspまたはshutdownコマンド(-zオプションを指定)を発行することで行われます。
また、システム状態の復元は再起動時にカーネルが行います(注)。
注:サスペンド時に退避したメモリ内容を格納したデバイスを、カーネルの起動オプションで指定する必要があります。
動作時のオーバーヘッドを考慮に入れると、ACPIやAPMの代わりというよりもRAS機能の1つとして利用する(正常動作時の状態を保存しておき、異常発生時に復元するなど)ことが考えられます。
Copyright © ITmedia, Inc. All Rights Reserved.