Windows XPの正体 : 高速化されたスタンバイ状態と休止状態
|
一時的にPCの使用を停止する場合、「スタンバイ状態(サスペンド)」または「休止状態(ハイバネーション)」にすることで、消費電力を大幅に抑えることが可能だ。特にバッテリ駆動のノートPCでは、移動中などにスタンバイ状態にしておくことで、消費電力を抑えつつ、作業の停止・再開を迅速に行えるというメリットがある。また、デスクトップPCでも昼休みなどにスタンバイ状態や休止状態にすることで、大幅に消費電力を抑えることが可能だ。
「スタンバイ状態」「休止状態」ともに省電力規格「ACPI(Advanced Configuration and Power Interface)」のスリープ・ステートで規定されているものであり、それぞれ「S3」「S4」に相当する。ちなみに、ACPIではシステムの電源状況を「S0(フル稼働)」から「S5(ソフトウェアによる電源オフ)」までの6段階で規定している。各状態を簡単に紹介すると、以下の表のようになる。
もう少しスタンバイ状態と休止状態の違いを具体的に説明しておこう。スタンバイ状態とは、グラフィックス機能やハードディスク、そのほかのデバイスの電源をオフにすることで、消費電力を抑えるモードである。ただし、メモリには電力が供給され、実行中のデータがそのまま保持されるため、電源オフ/オンと違って作業を中断した状態からの再開が可能である。また、スタンバイ状態からの復帰も数秒程度と速い。しかし、メモリへの電力供給が行われるため、ノートPCのバッテリ駆動でスタンバイ状態を長時間続けると、バッテリ不足になってしまうこともある。
休止状態とは、ハードディスク上にメモリの内容を退避してから、メモリを含む各デバイスの電源をオフにするモードである。そのためハードディスクには、搭載メモリとほぼ同じ容量の休止状態用のデータ退避領域が確保される。スタンバイ状態とは異なり、完全に電源オフと同様の状態となるため、ノートPCのバッテリ駆動でも休止状態を維持し続けることが可能だ(バッテリの電力は消費されない)。しかし、メモリの内容をハードディスクに退避したり、読み出したりしなければならないため、その分だけ休止状態への移行や復帰に時間がかかってしまう。
どのように私は私のiPod上のすべてを削除するには
このようにデバイス側から見ると、スタンバイ状態、休止状態ともに電源オフとほぼ同様の状態になっていることが分かる。そのため、各状態への移行にはシャットダウンと、復帰にはシステムの起動(電源オン)とほぼ同様のデバイスならびにデバイス・ドライバの終了/初期化作業が必要になる。つまり、この時間の長さが移行/復帰時間に大きく影響を与えることになる(電源オフ/オンとの違いは現在のデバイス・ドライバのステータスを保存/復帰するかどうかである)。また、スタンバイ状態/休止状態の間にデバイスが取り外されたり、付けられたりする可能性があるため、すべてのデバイスに対して起動時と同様のチェックが必要となる。特にレガシー・デバイスのシリアル/パラレル・ポートなどは初期化に時間が� ��かるし、IDEデバイスなども接続されているかどうかをチェックするのにタイムアウトを待つため数秒が必要とされる。こうした時間の積み重ねによって、Windows 2000などではスタンバイ状態からの復帰で数秒、休止状態からの復帰で数十秒程度かかっていた(この時間はシステム構成によっても大きく異なるが)。
そこでWindows XPでは「Fast Resume」「Fast Boot」と呼ぶ、起動やスタンバイ状態への移行、復帰を高速化する仕組みを採用することで、スタンバイ状態からの復帰で5秒、休止状態からの復帰で20秒を目標として開発している。この「Fast Resume」「Fast Boot」とは、終了/初期化作業を並列化するなどして高速化を図るというものだ。
休止状態の場合、メモリの内容をハードディスクに書き込んだり、読み出したりする必要があり、搭載するメモリ容量が多くなるほど(より正確にはメモリ使用量が増えるほど)時間がかかってしまう。その時間を短縮するため、Windows XPではメモリの内容を圧縮して容量を減らしてからハードディスクに保存したり、IDEの高速な転送モードであるUltra DMAモードを利用したりして高速な書き込み/読み出しを実現している(Windows 2000までは互換性を重視して低速なPIOモードが使われており、Ultra DMAモードは利用されていなかった)。もちろん、古いノートPCなどでUltra DMAモードの利用に問題がある場合は、従来と同様PIOモードによる書き込み/読み出しとなる。
では、実際にこうした工夫によってWindows 2000に対して、Windows XPではどの程度の高速化が図られているのか計測してみた。テストに利用したのは、デルコンピュータのオールインワン・ノートPC「Inspiron 2500」である。テストは、何もアプリケーションを起動していない状態(テスト1)と、Microsoft Word 2000およびInternet Explorerを起動しネットワークに接続している状態(テスト2)の2種類で計測した。これは、メモリの使用量がスタンバイや休止状態の移行/復帰速度に与える影響を見るためだ。また、それぞれハードディスクの転送モードをPIOとUltra DMAに設定して計測した。それぞれPIOモード4(最大転送レート16.6Mbytes/s)とUltra DMAモード4(同66.6Mbytes/s)で動作している。
NetBSDはMozillaが起動しません。
移行 | 復帰 | ||
Windows 2000 | Ultra DMA | 7.1 | 3.3 |
Windows 2000 | PIO | 7.3 | 3.4 |
Windows XP | Ultra DMA | 7.4 | 2.9 |
Windows XP | PIO | 7.7 | 3.1 |
テスト1の計測結果(スタンバイ状態) 単位:秒 | |||
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、スタンバイ状態を意味する電源ランプが点滅に変わるまでを計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでを計測した。 |
移行 | 復帰 | ||
Windows 2000 | Ultra DMA | 12.4 | 24.0 |
Windows 2000 | PIO | 12.0 | 24.0 |
Windows XP | Ultra DMA | 10.7 | 16.4 |
Windows XP | PIO | 16.3 | 16.3 |
テスト1の計測結果(休止状態) 単位:秒 | |||
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、電源ランプが消えるまでの時間を計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでの時間を計測した。 |
移行 | 復帰 | ||
Windows 2000 | Ultra DMA | 7.4 | 4.1 |
Windows 2000 | PIO | 8.1 Internet ExplorerのWebプロキシを有効にする方法 | 4.0 |
Windows XP | Ultra DMA | 8.4 | 4.0 |
Windows XP | PIO | 8.8 | 4.3 |
テスト2の計測結果(スタンバイ状態) 単位:秒 | |||
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、スタンバイ状態を意味する電源ランプが点滅に変わるまでを計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでを計測した。 |
移行 | 復帰 | ||
Windows 2000 | Ultra DMA | 16.3 | 26.1 |
Windows 2000 | PIO | 16.2 | 26.1 |
Windows XP | Ultra DMA | 9.3 | 19.5 |
Windows XP | PIO | 17.8 | 20.0 |
テスト2の計測結果(休止状態) 単位:秒 | |||
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、電源ランプが消えるまでの時間を計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでの時間を計測した。 |
このようにWindows XPの休止状態への移行時間は、Windows 2000に比べ16〜75%とケースによって大幅に高速化されていることが分かる。また、Windows 2000ではPIOモードとUltra DMAモードのどちらでも、ほとんど速度に違いがないのに対し、Windows XPでは明らかに休止状態への移行に際してUltra DMAモードが有効に働いている。さらに、テスト1とテスト2を比較すると、Windows 2000では休止状態への移行がテスト1に比べてテスト2が4秒ほど遅くなっているのに対し、Windows XPではPIOモードで1秒ほど遅くなっている程度で済んでいる(Ultra DMAモードではなぜか1秒ほど速い)。一方、スタンバイ状態への移行/復帰ともにWindows 2000とWindows XPの差はわずかだ(Windows XPのスタンバイへの移行が遅いのは、グラフィックスの終了処理が遅いためと思われる)。これは、デバイス・ドライバの初期化にかかる絶対時間が短いため、並列化の効果が分かりにくいこと、テストに用いたノートPCに搭載されているデバイスの数が少なかったことなどが要因として考えられる。また、今回のテストに用いたInspiron 2500はチップセット内蔵のグラフィックス機能を使っているため、画面の再描画が行われない(メモリに画面データが保持されている)ため、全体として高速であることも影響しているだろう。ただ、わずかだが、高速化されていることからも、並列化の効果はあるものと思われる。
なお、デバイス・ドライバの初期化などの状況をより詳しく調べるには、Microsoft提供のBootvis.exeというソフトウェア・ツールを使うとよい(Bootvis.exeの入手先)。以下の画面は、Inspiron 2500でBootvis.exeを実行し、スタンバイ状態と休止状態をトレースしたものだ。このように各デバイス・ドライバの初期化に必要な時間などがビジュアルに表示される(デバイス自体の初期化などの時間はトレースできないため含まれていないことに注意していただきたい)。本来ならば、Windows 2000との比較が行えるとよいのだが、Bootvis.exeはWindows XP専用のツールであり、残念ながらWindows 2000では動作しない。
この画面を見ると、スタンバイ状態/休止状態への移行において、ac97intc.sys(AC'97サウンド)、mouclass.sys(マウス)、kbdclass.sys(キーボード)、cd rom(CD-ROMドライブ)が並行して終了動作していることが分かる。また、スタンバイ状態と休止状態では、初期化されるデバイス・ドライバの数も異なるようだ。このようにBootvis.exeを使うことでも、Windows XPのデバイス・ドライバの初期化が並列に行われていることが確認できる。
TechTargetジャパン
System Insider フォーラム 新着記事
0 comments:
Post a Comment