コンピュータにおける休止状態(サスペンド・トゥ・ディスク、またはMacintoshコンピュータではセーフ・スリープとも呼ばれる[ 1 ])とは、コンピュータの状態を保持したまま電源を切ることです。休止状態が始まると、コンピュータはランダムアクセスメモリ(RAM)の内容をハードディスクなどの不揮発性ストレージに保存します。コンピュータの電源を入れるとRAMが復元され、コンピュータは休止状態に入る前の状態とまったく同じになります。休止状態は1992年に初めて実装され、テキサス州ヒューストンのCompaq Computer Corporationによって特許が取得されました[ 2 ]。
MicrosoftのWindows 8、Windows 8.1、Windows 10、Windows 11は、シャットダウン時にデフォルトで一種の休止状態(高速スタートアップ)を採用しています。[ 3 ]
休止状態の後、ハードウェアは通常のシャットダウンと同様に電源が切れます。[ 4 ] システムは無期限に完全に電源が切れても、元の状態に戻ることができます。休止状態は、バッテリー電力が限られているノートパソコンで主に使用されています。 [ 4 ] バッテリー残量低下アラームで自動的に実行されるように設定できます。ほとんどのデスクトップも休止状態をサポートしており、主に一般的な省エネ対策として、また取り外し可能なバッテリーを素早く交換できるようにしています。Google と Apple のモバイル ハードウェア ( Android、Chromebook、iOS ) は休止状態をサポートしていません。macOSを使用する Apple ハードウェアでは、休止状態をセーフスリープと呼びます。[ 1 ]
多くのシステムは、低電力スリープモードをサポートしており、このモードではマシンの処理機能が低下し、わずかな電力を使用して RAM の内容を保持し、ウェイクアップをサポートします。瞬時の再開は、休止状態に対するスリープモードの利点の 1 つです。休止状態のシステムは起動して永続ストレージからデータを読み込み、それを RAM に転送する必要がありますが、これには時間がかかり、永続ストレージデバイスの速度に依存します。多くの場合、RAM よりもはるかに低速です。スリープモードのシステムは、CPU とディスプレイの電源を入れるだけでよく、これはほぼ瞬時に行われます。一方、スリープモードのシステムは RAM にデータを保持するために電力を消費するため、休止状態のように無期限に動作し続けることはできません。スリープモードのシステムから電源を切断するとデータが失われますが、休止状態のシステムの電源を切断してもリスクはありません。休止状態のシステムは、電源が復旧すれば再開できます。シャットダウンされたシステムと休止状態のシステムは、電源プラグを抜かない限り、待機電力を消費する可能性があります。[ 6 ]
休止状態は、シャットダウン前に保存されていないデータを保存する手間を省き、実行中のすべてのプログラムを復元し、ドキュメントやブラウザのタブを再度開くという負担を軽減する手段です。休止状態とスリープ状態はどちらも、メモリの断片化と劣化を防ぎます。これらの劣化は、モバイルデバイスが完全な再起動なしで長時間稼働するほど、動作が遅くなる原因となります。そのため、多くの専門家は電子機器を頻繁にシャットダウンまたは再起動することを推奨しています。
市販のハイバネーション機能で最初に実用化されたのは、1992年にCompaq LTE Lite 386で、販売資料にも記載されている通りである。[ 7 ]これは、Intel 386 CPUのスリープおよびプロテクトモードのオペコードのおかげで実現した。ROMに実装され、オペレーティングシステムとは独立して動作し、ドライバは不要だった。LTEはバッテリー残量が少なくなるとそれを検知し、隠しパーティションを利用してデータ損失を防いだ。ディスク書き込みや演算処理の最中でも、数学コプロセッサを使用してシステムを保持および復元した。オプションのソフトウェアGUIまたはカスタマイズされたキーボードショートカットを使用して制御することもできた。DOS、 Windows 3.1 、Banyan Vines、およびNovell Netwareでテストされた。Compaqのハイバネーション機能は、1993年のIBMの特許[ 8 ]にも記載されている。

初期の休止状態の実装では、前述のようにBIOSが使用されていましたが、現代のオペレーティングシステムは通常、休止状態を自身で処理します。休止状態は、 ACPI仕様ではスリープモードS4として定義されています。[ 9 ]
Windows コンピューターでは、すべてのハードウェアとデバイス ドライバーが ACPI およびプラグアンドプレイに準拠している場合にのみ、休止状態が利用できます。これにより、一部のデスクトップ コンピューターは、停電や軽量または古いUPSに電源が供給されている場合に、SSD にすばやく休止状態に移行できます 。休止状態は、スタート メニューまたはコマンド ラインから呼び出すことができます。 [ 10 ]
Windows 95 は、ハードウェアメーカーが提供するドライバを介して休止状態をサポートし、互換性のあるハードウェアと BIOS が存在する場合に限ります。Windows 95 はAdvanced Power Management (APM) のみをサポートしているため、休止状態は Suspend-to-Disk と呼ばれます。Windows 98以降は ACPI をサポートしています。しかし、ほとんどのハードウェアが ACPI 1.0 に完全に準拠していなかったり、 WDMドライバがなかったりしたため、休止状態はしばしば問題を引き起こしました。また、FAT32 ファイルシステムにも問題があり[ 11 ] 、休止状態は問題が多く、信頼性が低いものでした。
Windows 2000は、ハードウェアメーカーからの特別なドライバを必要とせずに、オペレーティングシステムレベルでの休止状態(OS制御のACPI S4スリープ状態)をサポートした最初のWindowsです。コンピュータが休止状態になると、ブートパーティションのルートにある「 hiberfil.sys 」という隠しシステムファイルを使用してRAMの内容を保存します。Windows 2000では、このファイルサイズはインストールされているRAMの総容量と同じです。
Windows Me は、 Windows 9xファミリーの最後のリリースであり、Windows 2000 と同様に OS 制御の休止状態をサポートし、コンピュータの RAM と同じディスク容量を必要とします。[ 12 ] [ 13 ]
Windows XP では、休止状態のサポートがさらに改善されました。[ 14 ]メモリ ページが改良されたアルゴリズムを使用して圧縮されるため、休止状態と再開がはるかに高速になります。圧縮はディスク書き込みとオーバーラップされ、未使用のメモリ ページが解放され、I/O 中にDMA転送が使用されます。 [ 15 ] hiberfil.sysには、プロセッサの状態などの詳細情報が含まれています。このファイルは、セキュリティ研究者のMatthieu Suiche [ 16 ]がBlack Hat Briefings 2008で文書化し、このファイルを管理して読み取り可能なメモリ ダンプに変換するためのコンピュータ フォレンジックフレームワークも提供しました。[ 17 ]圧縮機能は後に Microsoft によっても文書化されました。[ 18 ]
Windows XP は ( Windows XP 64 ビット版およびWindows XP Professional x64 版を通じて) 4ギガバイトを超えるメモリのサポートを追加しましたが、このオペレーティングシステム、およびWindows Server 2003、Windows Vista、Windows Server 2008では、RAM からディスクにそのような大きなデータプールを保存することに関連するパフォーマンスの問題のため、この量のメモリがインストールされている場合、休止状態をサポートしていません。[ 19 ]これは後にWindows 7およびWindows Server 2008 R2で解決されました。
Windows Vistaでは、ハイブリッドスリープ機能が導入されました。これは、メモリの内容をハードディスクに保存しつつ、電源を切る代わりにスリープモードに入る機能です。電源が切れた場合でも、コンピュータは休止状態から復帰できます。
Windows 7 では、休止状態に圧縮が導入され、デフォルトのサイズが物理メモリ全体の 75% に設定されました。[ 18 ]また、Microsoft は、メモリ使用量がpowercfg.exeその量を超えるまれなワークロードでは、ツールを使用してサイズを増やすことを推奨しています。サイズは 50% から 100% の間で設定できますが、小さくすることは推奨されていません。
Windows 8では、高速スタートアップ機能も導入されています。ユーザーが [シャットダウン]オプションを選択すると、コンピューターは休止状態になりますが、休止状態になる前にすべてのプログラムが閉じられ、ユーザー セッションがログアウトされます。[ 20 ] Microsoft によると、通常の休止状態ではメモリ ページに多くのデータが含まれるため、ディスクへの書き込みに時間がかかります。これに対し、ユーザー セッションが閉じられると、休止状態のデータははるかに小さくなり、ディスクへの書き込みと再開にかかる時間が短くなります。ユーザーは、Shiftキーを押しながら[シャットダウン] をクリックすることで従来の方法でシャットダウンすることもできます[ 21 ]。また、システム設定で高速スタートアップを無効にすることで、従来の方法でコンピューターをシャットダウンすることも可能です。
Microsoft が指摘しているように、Windows 10 はWindows 8 を模倣しています。 [ 3 ] Windows 10 の休止状態アルゴリズムはソリッドステートドライブに最適化されています。この動作はWindows 11にも引き継がれています。
休止状態は、サードパーティ製のPC 電源管理ソフトウェアに頼らずに大規模なコンピュータネットワークで有効にするのが難しいため、ビジネス環境ではあまり活用されていない。[ 22 ]マイクロソフトのこの省略は、膨大なエネルギーの浪費につながったとして批判されている。[ 23 ]
休止状態を無効にして削除することは可能ですhiberfil.sys。[ 24 ]
サードパーティ製のPC電源管理ソフトウェアは、Windowsに搭載されている機能を超える機能を提供します。[ 25 ] [ 26 ] [ 27 ]ほとんどの製品は、 Active Directoryとの統合、ユーザーごとまたはマシンごとの設定、より高度な電源プラン、スケジュールされた電源プラン、睡眠障害対策機能、エンタープライズ電力使用状況レポートを提供します。
Mac では、セーフ スリープと呼ばれる機能により、Mac がスリープ モードに入るたびに揮発性メモリの内容がシステム ハードディスクに保存されます。RAM への電源が失われていない場合、Mac はスリープ モードから瞬時に復帰できます。ただし、AC 電源に接続せずにバッテリーを取り外すなどして電源供給が中断された場合、Mac はセーフ スリープから復帰し、ハード ドライブからメモリの内容を復元します。[ 28 ]セーフ スリープの休止プロセスは通常のスリープ中に実行されるため、Apple メニューには「休止」オプションはありません。
セーフスリープ機能は、2005年10月発売のPowerBook G4(ダブルレイヤーSDカード搭載モデル)以降のMacモデルに追加されました。セーフスリープ機能を利用するには、Mac OS X v10.4以降が必要です。
Appleがセーフスリープのサポートを開始して間もなく、Mac愛好家たちはMac OS X v10.4を実行しているかなり古いMacコンピュータでこの機能を有効にするハックを公開しました。[ 29 ]クラシックMac OSもかつては休止状態をサポートしていましたが、この機能はAppleによって廃止されました。[ 30 ]
Linuxカーネルでは、ハイバネーションはswsuspによって実装されており、これは2.6シリーズに組み込まれています。代替実装としてTuxOnIceがあり、これはカーネルバージョン3.4のパッチとして提供されています。TuxOnIceは、対称型マルチプロセッシングやプリエンプションのサポートなどの利点を提供します。別の代替実装としてuswsuspがあります。これら3つはすべて「suspend-to-disk」と呼ばれています。systemdがデプロイされている場合は、ハイバネーション自体を管理します。
スリープモードと休止状態は組み合わせることができます。RAM の内容が不揮発性ストレージにコピーされ、コンピュータはスリープモードに入ります。このアプローチは、スリープモードと休止状態の利点を組み合わせます。マシンは瞬時に再開でき、開いているファイルや保存されていないファイルを含む状態は停電後も保持されます。ハイブリッドスリープはスリープモードと同じ量の電力を消費しますが、休止状態はコンピュータの電源を切ります。[ 31 ] [ 4 ]