(57)【要約】  オペレーティングシステムの間で遷移する技術は、メインメモリとデータ記憶装置とを有する計算装置を含む。計算装置は、第１のオペレーティングシステムを実行し、オペレーティングシステム切替イベントをモニタリングする。切替イベントは、ソフトウェアコマンド、ハードウェアボタン押下又は他のユーザコマンドであってもよい。切替イベントに応答して、計算装置は、第１のオペレーティングシステムの状態データをリザーブメモリエリアにコピーする。状態データをコピーした後、計算装置は第２のオペレーティングシステムを実行する。第２のオペレーティングシステムの実行中、計算装置は、第１のオペレーティングシステムの状態データをリザーブメモリエリアからデータ記憶装置にコピーする。計算装置は、第２のオペレーティングシステムの実行中にオペレーティングシステム切替イベントをモニタリングし、同様に第１のオペレーティングシステムに実行を切り替える。他の実施例が説明及び請求される。
2017501522.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの間を遷移する計算装置であって、
リザーブメモリエリアを有するメインメモリと、
データ記憶装置と、
前記計算装置が、第１のオペレーティングシステムの実行中に前記第１のオペレーティングシステムから第２のオペレーティングシステムに遷移させるためのオペレーティングシステム切替イベントを受信するための切替イベントモジュールと、
を有し、
前記第１のオペレーティングシステムは、前記オペレーティングシステム切替イベントの受信に応答して、前記第１のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするための第１のリザーブコピーモジュールを有し、
前記第２のオペレーティングシステムは、前記第２のオペレーティングシステムの実行中に前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーするための第１のライトアウトモジュールを有し、
前記切替イベントモジュールは更に、前記状態データを前記リザーブメモリエリアにコピーしたことに応答して、前記第２のオペレーティングシステムを実行する計算装置。
【請求項２】
前記切替イベントモジュールは更に、前記第２のオペレーティングシステムの実行中に第２のオペレーティングシステム切替イベントを受信し、
前記第２のオペレーティングシステムは更に、前記第２のオペレーティングシステム切替イベントの受信に応答して、前記第２のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするための第２のリザーブコピーモジュールを有し、
前記切替イベントモジュールは更に、前記第２のオペレーティングシステムの状態データをコピーしたことに応答して、前記第１のオペレーティングシステムの２回目を実行し、
前記第１のオペレーティングシステムは更に、前記第１のオペレーティングシステムの２回目の実行中に前記第２のオペレーティングシステムの状態データを前記データ記憶装置にコピーするための第２のライトアウトモジュールを有する、請求項１記載の計算装置。
【請求項３】
前記オペレーティングシステム切替イベントの受信は、システムイベントに応答してオペレーティングシステム切替イベントを受信するか、又は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信することを含む、請求項１記載の計算装置。
【請求項４】
前記オペレーティングシステム切替イベントの受信は、ハードウェア切替選択を受信するか、又はソフトウェア切替選択を受信することを含む、請求項３記載の計算装置。
【請求項５】
前記切替イベントモジュールは更に、前記オペレーティングシステム切替イベントの受信に応答して、前記計算装置をハイバネーション電力管理状態に移行させる、請求項１乃至４何れか一項記載の計算装置。
【請求項６】
前記第１のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーすることは、
前記データ記憶装置に対する１つ以上のＩ／Ｏ処理をインターセプトし、
前記１つ以上のＩ／Ｏ処理を前記リザーブメモリエリアにルーティングする、
ことを含む、請求項１乃至４何れか一項記載の計算装置。
【請求項７】
前記１つ以上のＩ／Ｏ処理をインターセプトすることは、前記データ記憶装置により記憶されるハイバネーションファイルに対する１つ以上のＩ／Ｏ処理をインターセプトすることを含む、請求項６記載の計算装置。
【請求項８】
前記１つ以上のＩ／Ｏ処理をインターセプトすることは、前記第１のオペレーティングシステムのフィルタドライバを用いて１つ以上のＩ／Ｏ処理をインターセプトすることを含む、請求項６記載の計算装置。
【請求項９】
前記第２のオペレーティングシステムを実行することは、前記データ記憶装置により記憶されたハイバネーションファイルから前記第２のオペレーティングシステムをロードすることを含む、請求項１乃至４何れか一項記載の計算装置。
【請求項１０】
前記第２のオペレーティングシステムは更に、前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーすることと同時にアプリケーションを実行する、請求項１乃至４何れか一項記載の計算装置。
【請求項１１】
前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーすることは更に、前記計算装置がアイドルであるとき、前記状態データをコピーすることを含む、請求項１乃至４何れか一項記載の計算装置。
【請求項１２】
前記データ記憶装置は、ハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールを含む、請求項１乃至４何れか一項記載の計算装置。
【請求項１３】
前記第１のオペレーティングシステムの実行前に、前記リザーブメモリエリアとして前記メインメモリの一部をリザーブするためのメモリリザベーションモジュールを更に有する、請求項１乃至４何れか一項記載の計算装置。
【請求項１４】
前記メモリの一部をリザーブすることは、前記計算装置のファームウェアを用いて前記メモリの一部をリザーブすることを含む、請求項１３記載の計算装置。
【請求項１５】
オペレーティングシステムの間を遷移する方法であって、
計算装置が、前記計算装置の第１のオペレーティングシステムを実行するステップと、
前記計算装置が、前記第１のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信するステップと、
前記計算装置が、前記オペレーティングシステム切替イベントの受信に応答して、前記計算装置のリザーブメモリエリアに前記第１のオペレーティングシステムの状態データをコピーするステップと、
前記計算装置が、前記状態データを前記リザーブメモリエリアにコピーしたことに応答して、前記計算装置の第２のオペレーティングシステムを実行するステップと、
前記計算装置が、前記第２のオペレーティングシステムを実行したことに応答して、前記第１のオペレーティングシステムの状態データを前記計算装置のデータ記憶装置にコピーするステップと、
を有する方法。
【請求項１６】
前記計算装置が、前記第２のオペレーティングシステムの実行中に第２のオペレーティングシステム切替イベントを受信するステップと、
前記計算装置が、前記第２のオペレーティングシステム切替イベントの受信に応答して、前記第２のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするステップと、
前記計算装置が、前記第２のオペレーティングシステムの状態データをコピーしたことに応答して、前記第１のオペレーティングシステムの２回目を実行するステップと、
前記計算装置が、前記第１のオペレーティングシステムの２回目の実行に応答して、前記第２のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップと、
を更に有する、請求項１５記載の方法。
【請求項１７】
前記オペレーティングシステム切替イベントを受信するステップは、ユーザ選択に応答してオペレーティングシステム切替イベントを受信するステップを含み、
前記オペレーティングシステム切替イベントを受信するステップは、ハードウェア切替選択を受信するステップを含む、請求項１５記載の方法。
【請求項１８】
前記計算装置が、前記オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行するステップを更に有する、請求項１５記載の方法。
【請求項１９】
前記第１のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするステップは、
前記データ記憶装置に対する１つ以上のＩ／Ｏ処理をインターセプトするステップと、
前記１つ以上のＩ／Ｏ処理を前記リザーブメモリエリアにルーティングするステップと、を含む、請求項１５記載の方法。
【請求項２０】
前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは、前記第２のオペレーティングシステムの実行と同時に前記第１のオペレーティングシステムの状態データをコピーするステップを含み、
前記第２のオペレーティングシステムを実行するステップは、前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーするのと同時にアプリケーションを実行するステップを含む、請求項１５記載の方法。
【請求項２１】
前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは、前記第２のオペレーティングシステムの実行と同時に前記第１のオペレーティングシステムの状態データをコピーするステップを含み、
前記第１のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは更に、前記計算装置がアイドルであるとき、前記状態データをコピーするステップを含む、請求項１５記載の方法。
【請求項２２】
前記計算装置が、前記第１のオペレーティングシステムを実行する前に、前記リザーブメモリエリアとして前記計算装置のメモリの一部をリザーブするステップを更に有する、請求項１５記載の方法。
【請求項２３】
計算装置であって、
プロセッサと、
前記プロセッサにより実行されると、請求項１５乃至２２何れか一項記載の方法を前記計算装置に実行させるための複数の命令を記憶するメモリと、
を有する計算装置。
【請求項２４】
請求項１５乃至２２何れか一項記載の方法を計算装置に実行させるためのプログラム。
【請求項２５】
請求項１５乃至２２何れか一項記載の方法を実行するための手段を有する計算装置。
【請求項２６】
請求項２４記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１４年２月６日に出願された“ＤＥＥＰ  ＣＡＣＨＩＮＧ  ＯＦ  ＴＲＡＮＳＩＴＩＯＮＳ  ＩＮ  ＤＵＡＬ  ＯＳ  ＥＮＶＩＲＯＮＭＥＮＴ”という名称の米国仮出願第６１／９３６，６１０及び２０１４年６月２６日に出願された“ＴＥＣＨＮＯＬＯＧＩＥＳ  ＦＯＲ  ＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ  ＴＲＡＮＳＩＴＩＯＮＳ  ＩＮ  ＭＵＬＴＩＰＬＥ−ＯＰＥＲＡＴＩＮＧ−ＳＹＳＴＥＭ  ＥＮＶＩＲＯＮＭＥＮＴＳ”という名称の米国特許出願第１４／３１６，３７０に対する優先権を主張する。
【背景技術】
【０００２】
いくつかの計算装置は、メーカによりインストールされた複数のオペレーティングシステム（ＯＳ）と共に発送される。例えば、計算装置は、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＷｉｎｄｏｗｓＴＭなどの汎用的なオペレーティングシステムと、ＡｎｄｒｏｉｄＴＭなどのモバイル向けオペレーティングシステムとの双方を含むものであってもよい。典型的な計算装置は、デュアルブート又はマルチブートコンフィギュレーションにおいて複数のオペレーティングシステムをサポートしうる。しかしながら、マルチブートコンフィギュレーションにおけるオペレーティングシステム間の切替は長いものであるかもしれず、典型的には、未使用のオペレーティングシステムがシャットダウンして状態を消失することを必要とする。いくつかの計算装置は、あるイベントに基づきアクティブなオペレーティングシステムを失うことなく、オペレーティングシステムの間で“切り替える（ｔｏｇｇｌｉｎｇ）”ことができる（例えば、ハードウェアボタン押下又はソフトウェアコマンドなどのシステムイベント又はユーザにより起動されたイベントなど）。これらの計算装置は、例えば、アクティブなオペレーティングシステムをディスクにハイバネートすることによって（例えば、ＡＣＰＩ“Ｓ４”電力管理状態に入るなどによって）、電力管理機能を用いてオペレーティングシステムを切り替えてもよい。このようなハイバネーションベースのオペレーティングシステムの切替は、典型的には、“Ｓ４トグル”として参照される。
【０００３】
ＡＣＰＩ  “Ｓ３”の電力管理状態は、計算装置が揮発性メモリのコンテンツを維持しながら、低電力状態に入ることを可能にする。多くの最近のプロセッサ、チップセット及びシステム・オン・チップ（ＳｏＣ）は、ＡＣＰＩ  Ｓ３スリープ状態の代わりに、接続スタンバイ電力管理状態に対応している。接続スタンバイ電力管理状態は、これらの計算装置が低電力状態にある間に特定のネットワークタスクを実行することを可能にする。多くの現在の計算装置は、Ｓ３スリープ状態に入ることができない。さらに、計算装置がＳ３モードに配置される場合、接続スタンバイの電力利用の効果は失われうる。
【図面の簡単な説明】
【０００４】
ここに説明されるコンセプトは、添付した図面における限定でなく具体例により示される。説明の簡単化のため、図面に示される要素は必ずしも縮尺通りに示されるとは限らない。適切であると考えられる場合、参照ラベルは対応する又は類似の要素を示すため図面間で繰り返される。
【図１】図１は、オペレーティングシステムの間で遷移する計算装置の少なくとも１つの実施例の簡単化されたブロック図である。
【図２】図２は、各種マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移パフォーマンスを示すプロットである。
【図３】図３は、図１の計算装置の環境の少なくとも１つの実施例の簡単化されたブロック図である。
【図４】図４は、図１及び３の計算装置により実行可能なオペレーティングシステムの間で遷移するための方法の少なくとも１つの実施例の簡単化されたフロー図である。
【発明を実施するための形態】
【０００５】
本開示のコンセプトは各種修正及び代替的形態を受け入れるが、それらの特定の実施例は図面において例示的に示され、ここで詳細に説明される。しかしながら、開示された特定の形態に本開示のコンセプトを限定する意図はなく、反対にその意図は、本開示及び添付した請求項に整合した全ての修正、均等及び代替をカバーすることである。
【０００６】
明細書における“一実施例”、“実施例”、“例示的な実施例”などの参照は、説明される実施例が特定の特徴、構成又は特性を含みうることを示すが、全ての実施例は、当該特定の特徴、構成又は特性を必ず含むものであってもよいし、そうでなくてもよい。さらに、このようなフレーズは必ずしも同一の実施例を参照しているとは限らない。さらに、特定の特徴、構成又は特性が実施例に関して説明されるとき、明示的に説明されているか否かに関わらず、当該特徴、構成又は特性を他の実施例に関して実現することが当業者の知識の範囲内であると主張される。さらに、“少なくとも１つのＡ，Ｂ及びＣ”の形式のリストに含まれるアイテムは、（Ａ），（Ｂ），（Ｃ），（Ａ及びＢ），（Ａ及びＣ），（Ｂ及びＣ）又は（Ａ，Ｂ及びＣ）を意味しうることが理解されるべきである。同様に、“Ａ，Ｂ及びＣの少なくとも１つ”の形式でリストされるアイテムは、（Ａ），（Ｂ），（Ｃ），（Ａ及びＢ），（Ａ及びＣ），（Ｂ及びＣ）又は（Ａ，Ｂ及びＣ）を意味しうる。
【０００７】
開示される実施例は、いくつかのケースではハードウェア、ファームウェア、ソフトウェア又はこれらの何れかの組み合わせにより実現されてもよい。開示される実施例はまた、１つ以上のプロセッサにより読み込まれて実行される、一時的又は非一時的な機械可読（例えば、コンピュータ可読）記憶媒体により担持又は記憶される命令として実現されてもよい。機械可読記憶媒体は、マシーンにより可読な形態で情報を記憶又は送信するための何れかの記憶装置、機構又は他の物理構造として実現されてもよい（例えば、揮発性又は不揮発性メモリ、メディアディスク又は他の媒体装置）。
【０００８】
図面では、いくつかの構造的又は方法の特徴が特定の配置及び／又は順序により示されうる。しかしながら、このような特定の配置及び／又は順序は必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施例では、このような特徴は例示的な図面に示されるのと異なる方式及び／又は順序により配置されてもよい。さらに、特定の図面における構造的又は方法の特徴の包含は、当該特徴が全ての実施例において必要とされることを意味することを意図しておらず、いくつかの実施例では、包含されなくてもよいし、又は他の特徴と組み合わされてもよい。
【０００９】
図１を参照して、複数のオペレーティングシステムの間を遷移する例示的な計算装置１００は、プロセッサ１２０、Ｉ／Ｏサブシステム１２２、メモリ１２４及びデータ記憶装置１３０を有する。使用において、後述されるように、計算装置１００は複数のオペレーティングシステムを実行するよう構成される。オペレーティングシステムの１つの実行中、計算装置１００はオペレーティングシステム切替イベントをモニタリングする。オペレーティングシステム切替イベントは、例えば、ユーザ選択（ソフトウェアメニュー選択、所定のキー押下、ハードウェアボタン押下、又は他の何れかのユーザアクションなど）に応答して生成されてもよい。オペレーティングシステム切替イベントに応答して、計算装置１００は、メモリ１２４のリザーブエリアにアクティブなオペレーティングシステムの状態データをコピーし、その後に他のオペレーティングシステムを起動する。移行のオペレーティングシステムの実行中、計算装置１００は、メモリ１２４のリザーブエリアからデータ記憶装置１３０に状態データをコピーする。メモリ１２４への状態データのコピーは、オペレーティングシステムを切り替える際に必要とされるストレージＩ／Ｏの量を低下させ、特に比較的低速又は低帯域幅のデータ記憶装置１３０を備えた装置などについてパフォーマンスを向上させうる。さらに、メモリ１２４に状態データをコピーすることは、接続スタンバイ電力管理状態に対応するが、ＡＣＰＩ  Ｓ３スリープ状態に対応しない現在の計算装置により実行されてもよい。
【００１０】
図２を参照して、プロット２００は、本開示を用いて実現可能なオペレーティングシステム切替のパフォーマンスゲインを示す。曲線２０２は、Ｓ４トグル（すなわち、Ｓ４  ＡＣＰＩハイバネーション状態に入る）を用いて典型的な計算装置により示される切替パフォーマンスを示す。曲線２０２は、複数の異なるタイプのデータ記憶装置を用いてメインメモリの２ギガバイト（２ＧＢ）についてＳ４トグルを完了させるのに必要とされる時間を示す。典型的なＳ４トグル中に保存及び／又は復元される必要がある平均的なデータ量は、可変であるが、５００メガバイト未満であり得る。Ｓ４トグル時間は、切替に加えて約２秒の切替時間中に生じるオーバヘッド及び平均的なストレージＩ／Ｏ速度を反映しうる。図示されるように、平均的なＳ４トグル時間は、いくつかの実施例では、ソリッドステートディスク（ＳＳＤ）について９秒、ハードディスクドライブ（ＨＤＤ）について１５秒、及びｅＭＭＣ（埋め込みフラッシュメディア）について１８秒であるかもしれない。従って、ｅＭＭＣなどの低速なデータ記憶装置を用いてＳ４トグル処理に必要とされる時間は、ＳＳＤを用いることと比較して実際には２倍になりうる。しかしながら、多数の配置された計算装置は、コストを低減するため低速なデータ記憶装置を有する。実際、ｅＭＭＣは多くの現在のタブレット計算装置において使用される。
【００１１】
曲線２０４は、本開示による計算装置１００により実現可能な切替パフォーマンスを示す。曲線２０４は、アクティブなメインメモリ１２４の２ＧＢのオペレーティングシステムと複数の異なるタイプのデータ記憶装置１３０との間で切り替えるのに必要とされうる時間を示す。Ｓ４トグルと同様に、保存及び／又は復元するのに必要とされる平均的なデータ量は、可変であり得るが、５００メガバイト未満であってもよい。上述されるように、オペレーティングシステム切替時間は、切替に加えて約２秒の切替時間中のオーバヘッド及び平均的なストレージＩ／Ｏ速度を反映しうる。図示されるように、本開示の平均的な切替時間は、ＳＳＤについて７秒、ＨＤＤについて１０秒、及びｅＭＭＣについて８秒となりうる。従って、図２に示されるように、本開示による計算装置１００は、特にｅＭＭＣなどの低速なデータ記憶装置を利用する際、典型的なＳ４トグルと比較してオペレーティングシステム切替パフォーマンスを向上させうる。
【００１２】
図１に戻って、計算装置１００は、オペレーティングシステム間の遷移と、ここに説明される機能を実行可能な何れかのタイプの装置として実現されてもよい。例えば、計算装置１００は、限定することなく、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、モバイル計算装置、ウェアラブル計算装置、コンピュータ、デスクトップコンピュータ、ワークステーション、サーバコンピュータ、分散計算システム、マルチプロセッサシステム、家電装置、スマート機器及び／又はオペレーティングシステム間の遷移に対応する他の何れかの計算装置として実現されてもよい。図１に示されるように、例示的な計算装置１００は、プロセッサ１２０、Ｉ／Ｏサブシステム１２２、メモリ１２４及びデータ記憶装置１３０を有する。もちろん、計算装置１００は、他の実施例では、タブレットコンピュータに一般的に見つけられるもの（例えば、各種入出力装置）など、他の又は更なるコンポーネントを有してもよい。さらに、いくつかの実施例では、例示的なコンポーネントの１つ以上は、他のコンポーネントに搭載されるか、又はその一部を構成してもよい。例えば、メモリ１２４又はその一部は、いくつかの実施例では、プロセッサ１２０に搭載されてもよい。
【００１３】
プロセッサ１２０は、ここに説明される機能を実行可能な何れかのタイプのプロセッサとして実現されてもよい。例えば、プロセッサは、シングル又はマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理／制御回路として実現されてもよい。同様に、メモリ１２４は、ここに説明される機能を実行可能な何れかのタイプの揮発性又は不揮発性メモリ又はデータストレージとして実現されてもよい。メモリ１２４は、アクティブメモリエリア１２６及びリザーブメモリエリア１２８に分割される。動作中、メモリ１２４のアクティブメモリエリア１２６は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなどの計算装置１００の動作中に用いられる各種データ及びソフトウェアを記憶してもよい。リザーブメモリエリア１２８は、計算装置１００により実行されるオペレーティングシステム、アプリケーション又は他のプロセスによる一般的な利用からパーティション、プロテクト、隔離又はリザーブされるメモリ１２４の何れかの部分として実現されてもよい。いくつかの実施例では、アクティブメモリエリア１２６及びリザーブメモリエリア１２８はそれぞれ、メモリ１２４の１／２を有してもよい。例えば、４ギガバイト（４ＧＢ）のメインメモリ１２４による実施例では、アクティブメモリエリア１２６及びリザーブメモリエリア１２８はそれぞれ、２ギガバイト（２ＧＢ）を占有してもよい。他の実施例では、メモリ２１４の何れかの大きさがリザーブされてもよい。例えば、いくつかの実施例では、リザーブメモリエリア１２８は、メモリ１２４の１／２未満を占有してもよい。
【００１４】
メモリ１２４は、計算装置１００のプロセッサ１２０、メモリ１２４及び他のコンポーネントとの入出力処理を実現するための回路及び／又はコンポーネントとして実現されてもよいＩ／Ｏサブシステム１２２を介しプロセッサ１２０に通信結合される。例えば、Ｉ／Ｏサブシステム１２２は、メモリコントローラハブ、入出力コントロールは部、ファームウェア装置、通信リンク（すなわち、ポイント・ツー・ポイントリンク、バスリンク、配線、ケーブル、光ガイド、プリント回路ボードトレースなど）及び／又は入出力処理を実現するための他のコンポーネント及びサブシステムとして実現されるか、あるいは有してもよい。いくつかの実施例では、Ｉ／Ｏサブシステム１２２は、システム・オン・チップ（ＳｏＣ）の一部を構成し、プロセッサ１２０、メモリ１２４及び計算装置１００の他のコンポーネントと共に、単一の集積回路チップ上に搭載されてもよい。
【００１５】
データ記憶装置１３０は、例えば、メモリ装置及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータ記憶装置などの短期又は長期のデータのストレージのために構成される何れかのタイプの装置として実現されてもよい。いくつかの実施例では、データ記憶装置１３０は、ｅＭＭＣなどの埋め込みフラッシュメモリモジュールとして実現されてもよい。データ記憶装置１３０は、計算装置１００が低電力ハイバネーション状態（例えば、ＡＣＰＩ  Ｓ４状態）にある間、デバイス状態を記憶するのに利用されるデータ記憶装置１３０の何れかのファイル、ファイルシステム、ブロック、パーティション又は他のセグメントとして実現されてもよいハイバネーションファイル１３２を有してもよい。例えば、ハイバネーションファイル１３２は、メモリ１２４のコンテンツ、プロセッサ１２０の状態及び／又は他のデバイス状態を記憶してもよい。いくつかの実施例では、デバイス状態は、ハイバネーションファイル１３２のサイズを低減するよう圧縮、重複排除又は処理されてもよい。低電力ハイバネーション状態からアウェイクすると、計算装置１００は、処理を再開するため、ハイバネーションファイル１３２のコンテンツをメインメモリ１２４にコピーしてもよい。
【００１６】
いくつかの実施例では、計算装置１００はまた、１つ以上の周辺装置１３４を有してもよい。周辺装置１３４は、何れかの数の追加的な入出力装置、インタフェース装置及び／又は他の周辺装置を有してもよい。例えば、いくつかの実施例では、周辺装置１３４は、ディスプレイ、タッチ画面、グラフィクス回路、キーボード、マウス、スピーカシステム及び／又は他の入出力装置、インタフェース装置及び／又は周辺装置を含むものであってもよい。特に、いくつかの実施例では、周辺装置１３４は、オペレーティングシステムを切り替えるための専用のハードウェアボタン又は他のコントロールを有してもよい。
【００１７】
図３を参照して、例示的な実施例では、計算装置１００は、処理中に環境３００を確立する。例示的な実施例３００は、メモリリザベーションモジュール３０２、切替イベントモジュール３０４及び複数のオペレーティングシステム３０６を有する。例示的な環境３００は２つのオペレーティングシステム３０６ａ，３０６ｂを有するが、他の実施例では、何れかの数のオペレーティングシステム３０６が含まれてもよい。環境３００の各種モジュール及び／又はコンポーネントは、ハードウェア、ファームウェア、ソフトウェア又はこれらの組み合わせとして実現されてもよい。
【００１８】
メモリリザベーションモジュール３０２は、リザーブメモリエリア１２８としてメモリ１２４の一部をリザーブするよう構成される。リザーブされた後、リザーブメモリエリア１２８は、オペレーティングシステム３０６の何れによっても利用されず、いくつかの実施例では、オペレーティングシステム３０６の何れにも可視的又はアクセス可能でなくてもよい。いくつかの実施例では、メモリリザベーションモジュール３０２は、ＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）フォーラムにより公開されるＵＥＦＩ仕様書に従って実現されるプリブートファームウェア実行環境などの計算装置１００のプリブートファームウェア実行環境によって確立されてもよい。
【００１９】
切替イベントモジュール３０４は、オペレーティングシステム３０６の何れかの実行中にオペレーティングシステム切替イベントを受信するよう構成される。切替イベントモジュール３０４は更に、アクティブなオペレーティングシステムの状態データがリザーブメモリエリア１２８にコピーされた後、他のオペレーティングシステム３０６を実行するよう構成される。例えば、例示的な実施例では、切替イベントモジュール３０４は、オペレーティングシステム３０６ａの状態データがリザーブメモリエリア１２８にコピーされた後、オペレーティングシステム３０６ｂを実行してもよい。いくつかの実施例では、単一の切替イベントモジュール３０４として示されているが、環境３００は、例えば、各オペレーティングシステム３０６について１つの切替イベントモジュール３０４など、複数の補完的な切替イベントモジュール３０４を有してもよい。
【００２０】
各オペレーティングシステム３０６は、計算装置１００の何れかのオペレーティングシステム、バーチャルモニタ、ハイパーバイザ又は他の制御構造として実現されてもよい。例えば、オペレーティングシステム３０６ａは、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＷｉｎｄｏｗｓＴＭとして実現され、オペレーティングシステム３０６ｂは、ＡｎｄｒｏｉｄＴＭとして実現されてもよい。各オペレーティングシステム３０６は、リザーブコピーモジュール３０８及びライトアウトモジュール３１０を有する。リザーブコピーモジュール３０８及びライトアウトモジュール３１０のそれぞれは、ドライバ、プロセス、ロード可能なモジュール又はオペレーティングシステム３０６により実行される他のコンポーネントとして実現されてもよい。
【００２１】
各リザーブコピーモジュール３０８は、関連するオペレーティングシステム３０６の状態データをリザーブメモリエリア１２８にコピーするよう構成される。状態データは、メモリ１２４のアクティブコンテンツ、すなわち、リザーブメモリエリア１２８に含まれないメモリ１２４の一部を有してもよい。各ライトアウトモジュール３１０は、リザーブメモリエリア１２８のコンテンツをデータ記憶装置１２０にコピーするよう構成される。ライトアウトモジュール３１０は、関連するオペレーティングシステム３０６がオペレーティングシステム切替イベントに応答して起動された後、データ記憶装置１２８に書き込む。ライトアウトモジュール３１０は、関連するオペレーティングシステム３０６がユーザアプリケーションを実行している間、データ記憶装置１３０に書き込みしてもよい。
【００２２】
図４を参照して、使用中、計算装置１００は、オペレーティングシステム３０６を切り替える方法４００を実行する。方法４００はブロック４０２において開始され、計算装置１００は、オペレーティングシステム３０６の何れかにより使用されることからリザーブメモリエリア１２８を確保する。計算装置１００は、何れかの技術を利用して、リザーブメモリエリア１２８を用いることからオペレーティングシステム３０６をプロテクト、パーティション、隔離又は禁止してもよい。いくつかの実施例では、計算装置１００のプレブートファームウェア環境は、リザーブメモリエリア１２８をリザーブしてもよい。例えば、プレブートファームウェアは、計算装置１００がメモリ１２４に実際に含まれる大きさより小さいメモリを有していることを示すため、１つ以上のシステムテーブルをオペレーティングシステム３０６にエクスポートしてもよい。この具体例では、リザーブメモリエリア１２８は、システムテーブルにより記載されていないメモリの上位メモリセグメントとして実現されてもよい。
【００２３】
ブロック４０４において、計算装置１００は、オペレーティングシステム３０６ａとして例示的に参照されるオペレーティングシステム３０６の１つを実行する。実行される特定のオペレーティングシステム３０６ａは、初期的なブート処理中のユーザ選択に基づき、計算装置１００のデフォルトポリシーに基づき、又は他の何れか適切な基準に基づき決定されてもよい。オペレーティングシステム３０６ａの実行中、計算装置１００は、ユーザにより指示されるような１つ以上のアプリケーションを実行してもよい。アクティブなオペレーティングシステム３０６ａ、アプリケーション及び関連する何れかの状態データは、アクティブメモリエリア１２６、すなわち、リザーブメモリエリア１２８に含まれないメモリ１２４の部分にある。
【００２４】
ブロック４０６において、計算装置１００は、オペレーティングシステム切替イベントをモニタリングする。オペレーティングシステム切替イベントは、計算装置１００に異なるオペレーティングシステム３０６に実行をスイッチさせる何れかのイベントとして実現されてもよい。いくつかの実施例では、ユーザ選択は、ソフトウェアインタフェースにおけるユーザ選択、所定のキー押下又はキーの組み合わせ、ハードウェアボタン押下又は他のユーザにより生成されたイベントとして実現されてもよい。いくつかの実施例では、オペレーティングシステム切替イベントは、ユーザの介入なしにシステムイベントにより生成されてもよい（例えば、デバイスドライバからのリクエスト、バックグラウンドソフトウェアプロセス又は他の非インタラクティブプロセスに応答して）。ブロック４０８において、計算装置１００は、オペレーティングシステム切替イベントが受信されたか判断する。受信されていない場合、方法４００は、オペレーティングシステム切替イベントのモニタリングを継続するためブロック４０６にループバックする。オペレーティングシステム切替イベントが受信された場合、方法４００はブロック４１０に進捗する。
【００２５】
ブロック４１０において、計算装置１００は、アクティブオペレーティングシステム３０６ａの状態データをアクティブメモリエリア１２６からリザーブメモリエリア１２８にコピーする。いくつかの実施例では、計算装置１００は、アクティブメモリエリア１２６の全てをリザーブメモリエリア１２８にコピーしてもよい（例えば、アクティブメモリエリア１２６及びリザーブメモリエリア１２８のそれぞれがトータルのメモリ１２４の１／２を占有するとき）。さらに又は代わりに、計算装置１００は、例えば、アクティブメモリエリア１２６の状態を規定するアクティブメモリエリア１２６のコンテンツのみなど、アクティブメモリエリア１２６の一部のみをコピーしてもよい。いくつかの実施例では、計算装置１００は、アクティブなオペレーティングシステム３０６ａの状態をリザーブメモリエリア１２８にコピーするのに必要とされるデータ量を圧縮、重複排除又は低減してもよい。計算装置１００は、リザーブメモリエリア１２８のコンテンツを置換してもよいし、又はいくつかの実施例では、アクティブなオペレーティングシステム３０６ａの状態データ量、リザーブメモリエリア１２８における利用可能なスペース又は他のファクタに依存して、リザーブメモリエリア１２８のコンテンツの一部又は全てを保存してもよい。従って、いくつかの実施例では、リザーブメモリエリア１２８は、１つ以上のオペレーティングシステム３０６の状態データを記憶してもよく、これは、切替パフォーマンスを更に向上させる。
【００２６】
いくつかの実施例では、ブロック４１２において、計算装置１００は、ハイバネーションファイル１３２に関する１つ以上のＩ／Ｏ処理をインターセプトしてもよい。これらのＩ／Ｏ処理は、低電力ハイバネーション状態（例えば、ＡＣＰＩ  Ｓ４状態）に入る際、計算装置１００により生成されてもよい。Ｉ／Ｏ処理をインターセプトした後、計算装置１００は、Ｉ／Ｏ処理をハイバネーションファイル１３２でなくリザーブメモリエリア１２８にルーティングしてもよい。例えば、いくつかの実施例では、オペレーティングシステム３０６ａのストレージドライバスタックは、ハイバネーションファイル１３２からのＩ／Ｏ処理をインターセプトし、リザーブメモリエリア１２８にリルーティングするフィルタドライバを有してもよい。さらに又はあるいは、いくつかの実施例では、計算装置１００は、Ｉ／Ｏ処理をインターセプトするためファームウェアドライバを確立してもよい。従って、典型的なハイバネーション電力管理状態と同様に、オペレーティングシステム３０６ａの状態をデータ記憶装置１３０に保存するのでなく、計算装置１００は、オペレーティングシステム３０６ａの状態をリザーブメモリエリア１２８に透過的に記憶してもよい。従って、計算装置１００は、オペレーティングシステム３０６ａに対する何れか特定の修正を必要とすることなく、オペレーティングシステム３０６ａの状態をリザーブメモリエリア１２８に記憶してもよい。
【００２７】
ブロック４１４において、計算装置１００は他のオペレーティングシステム３０６ｂをロードする。上述したように、実行されるオペレーティングシステム３０６ｂは、ユーザ選択に基づき、計算装置１００のデフォルトポリシーに基づき、又は他の何れか適切な基準に基づき決定されてもよい。いくつかの実施例では、ブロック４１６において、計算装置１００は、ハイバネーションファイル１３２から他のオペレーティングシステム３０６ｂをロードしてもよい。例えば、他のオペレーティングシステム３０６ｂが計算装置１００により以前に実行されたことがある場合、他のオペレーティングシステム３０６ｂの状態は、以前のオペレーティングシステム切替イベントに応答して、ハイバネーションファイル１３２に記憶されているかもしれない。ハイバネーションファイル１３２から他のオペレーティングシステム３０６ｂの状態をロードすることは、オペレーティングシステムの切替に遅延を招く可能性がある。しかしながら、多数のデータ記憶装置１３０がデータ書き込み速度と比較してはるかに高速なデータリード速度を有するため、オペレーティングシステムの切替パフォーマンスは許容可能であり続ける。例えば、ｅＭＭＣが埋め込まれたフラッシュメモリモジュールは、典型的には、ライト速度の３倍速いリード速度をサポートしうる。上述されたように、いくつかの実施例では、計算装置１００はまた、リザーブメモリエリア１２８の一部にオペレーティングシステム３０６ｂの状態データを以前に記憶しているかもしれない。利用可能である場合、リザーブメモリエリア１２８から他のオペレーティングシステム３０６ｂをロードすることは、オペレーティングシステム切替の遅延を低下させうる。
【００２８】
他のオペレーティングシステム３０６ｂをロードした後、方法４００の実行はブロック４１８，４２０に同時に進捗する。ブロック４１８において、計算装置１００は他のオペレーティングシステム３０６ｂを実行する。ブロック４０４に関して上述されたように、他のオペレーティングシステム３０６ｂの実行中、計算装置１００はユーザにより指示されるような１つ以上のアプリケーションを実行してもよい。他のオペレーティングシステム３０６ｂは、オペレーティングシステム３０６ａにより以前に占有されたアクティブメモリエリア１２６の全て又は一部を占有してもよい。
【００２９】
ブロック４２０において、計算装置１００は、リザーブメモリエリア１２８のコンテンツをデータ記憶装置１３０に書き込む。いくつかの実施例では、ブロック４２２において、計算装置１００は、リザーブメモリエリア１２８のコンテンツをハイバネーションファイル１３２に書き込んでもよい。計算装置１００は、他のオペレーティングシステム３０６ｂの実行と同時にデータ記憶装置１３０に書き込んでもよい。例えば、計算装置１００は、カーネルドライバ、カーネルスレッド、ユーザプロセス、ユーザスレッド又は他のオペレーティングシステム３０６ｂにより実行される他のプロセスと同時に実行可能な他のエンティティを用いてデータ記憶装置１３０に書き込みしてもよい。いくつかの実施例では、計算装置１００は、バックグラウンドにおいて、又は計算装置１００がアイドルであるとき、データ記憶装置１３０に書き込みしてもよい。例えば、計算装置１００は、他のプロセス又はスレッド（システムアイドルスレッド又は同様のアイドルスレッド以外）の何れもアクティブでないときに限って実行される低優先度プロセス又はスレッドにおいてデータ記憶装置１３０に書き込みしてもよい。従って、データ記憶装置１３０への書き込みは、計算装置１００のユーザに感知不可であってもよい。従って、オペレーティングシステム切替に関連する伝送時間及び他の遅延は、ユーザから隠蔽されてもよい。上述されるように、書き込み遅延の隠蔽は、多数のデータ記憶装置１３０がリード速度と比較して低速なライト速度を提供するため、切替パフォーマンスを大きく向上させうる。いくつかの実施例では、計算装置１００は、リザーブメモリエリア１２８のコンテンツがデータ記憶装置１３０にコピーされている間、更なるオペレーティングシステム切替イベントを不可、マスク又は禁止してもよい。
【００３０】
リザーブメモリエリア１２８のコンテンツのデータ記憶装置１３０へのコピーを完了した後、方法４００はブロック４０４にループバックし、他のオペレーティングシステム３０６ｂが実行し続ける。従って、コピーを完了した後、計算装置１００は、更なるオペレーティングシステム切替イベントをモニタリング及び応答し、ユーザがオペレーティングシステム３０６を切り替えることを可能にする。
【００３１】
具体例
ここに開示される技術の例示的な具体例が以下に提供される。技術の実施例は、後述される具体例の何れか１つ以上及び何れかの組み合わせを含むものであってもよい。
【００３２】
具体例１は、オペレーティングシステムの間を遷移する計算装置であって、リザーブメモリエリアを有するメインメモリと、データ記憶装置と、計算装置が、第１のオペレーティングシステムの実行中に第１のオペレーティングシステムから第２のオペレーティングシステムに遷移させるためのオペレーティングシステム切替イベントを受信するための切替イベントモジュールとを有し、第１のオペレーティングシステムは、オペレーティングシステム切替イベントの受信に応答して、第１のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするための第１のリザーブコピーモジュールを有し、第２のオペレーティングシステムは、第２のオペレーティングシステムの実行中に第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするための第１のライトアウトモジュールを有し、切替イベントモジュールは更に、状態データをリザーブメモリエリアにコピーしたことに応答して、第２のオペレーティングシステムを実行する計算装置を含む。
【００３３】
具体例２は、具体例１の主題を含み、切替イベントモジュールは更に、第２のオペレーティングシステムの実行中に第２のオペレーティングシステム切替イベントを受信し、第２のオペレーティングシステムは更に、第２のオペレーティングシステム切替イベントの受信に応答して、第２のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするための第２のリザーブコピーモジュールを有し、切替イベントモジュールは更に、第２のオペレーティングシステムの状態データをコピーしたことに応答して、第１のオペレーティングシステムの２回目を実行し、第１のオペレーティングシステムは更に、第１のオペレーティングシステムの２回目の実行中に第２のオペレーティングシステムの状態データをデータ記憶装置にコピーするための第２のライトアウトモジュールを有する。
【００３４】
具体例３は、具体例１及び２の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、システムイベントに応答してオペレーティングシステム切替イベントを受信することを含む。
【００３５】
具体例４は、具体例１〜３の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信することを含む。
【００３６】
具体例５は、具体例１〜４の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ハードウェア切替選択を受信することを含む。
【００３７】
具体例６は、具体例１〜５の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ソフトウェア切替選択を受信することを含む。
【００３８】
具体例７は、具体例１〜６の何れかの主題を含み、切替イベントモジュールは更に、オペレーティングシステム切替イベントの受信に応答して、計算装置をハイバネーション電力管理状態に移行させる。
【００３９】
具体例８は、具体例１〜７の何れかの主題を含み、第１のオペレーティングシステムの状態データをリザーブメモリエリアにコピーすることは、データ記憶装置に対する１つ以上のＩ／Ｏ処理をインターセプトし、１つ以上のＩ／Ｏ処理をリザーブメモリエリアにルーティングすることを含む。
【００４０】
具体例９は、具体例１〜８の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトすることは、データ記憶装置により記憶されるハイバネーションファイルに対する１つ以上のＩ／Ｏ処理をインターセプトすることを含む。
【００４１】
具体例１０は、具体例１〜９の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトすることは、第１のオペレーティングシステムのフィルタドライバを用いて１つ以上のＩ／Ｏ処理をインターセプトすることを含む。
【００４２】
具体例１１は、具体例１〜１０の何れかの主題を含み、第２のオペレーティングシステムを実行することは、データ記憶装置により記憶されたハイバネーションファイルから第２のオペレーティングシステムをロードすることを含む。
【００４３】
具体例１２は、具体例１〜１１の何れかの主題を含み、第２のオペレーティングシステムは更に、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーすることと同時にアプリケーションを実行する。
【００４４】
具体例１３は、具体例１〜１２の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーすることは更に、計算装置がアイドルであるとき、状態データをコピーすることを含む。
【００４５】
具体例１４は、具体例１〜１３の何れかの主題を含み、データ記憶装置は、ハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールを含む。
【００４６】
具体例１５は、具体例１〜１４の何れかの主題を含み、第１のオペレーティングシステムの実行前に、リザーブメモリエリアとしてメインメモリの一部をリザーブするためのメモリリザベーションモジュールを更に有する。
【００４７】
具体例１６は、具体例１〜１５の何れかの主題を含み、メモリの一部をリザーブすることは、計算装置のファームウェアを用いてメモリの一部をリザーブすることを含む。
【００４８】
具体例１７は、オペレーティングシステムの間を遷移する方法であって、計算装置が、計算装置の第１のオペレーティングシステムを実行するステップと、計算装置が、第１のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信するステップと、計算装置が、オペレーティングシステム切替イベントの受信に応答して、計算装置のリザーブメモリエリアに第１のオペレーティングシステムの状態データをコピーするステップと、計算装置が、状態データをリザーブメモリエリアにコピーしたことに応答して、計算装置の第２のオペレーティングシステムを実行するステップと、計算装置が、第２のオペレーティングシステムを実行したことに応答して、第１のオペレーティングシステムの状態データを計算装置のデータ記憶装置にコピーするステップとを有する方法を含む。
【００４９】
具体例１８は、具体例１７の主題を含み、計算装置が、第２のオペレーティングシステムの実行中に第２のオペレーティングシステム切替イベントを受信するステップと、計算装置が、第２のオペレーティングシステム切替イベントの受信に応答して、第２のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするステップと、計算装置が、第２のオペレーティングシステムの状態データをコピーしたことに応答して、第１のオペレーティングシステムの２回目を実行するステップと、計算装置が、第１のオペレーティングシステムの２回目の実行に応答して、第２のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップとを更に有する。
【００５０】
具体例１９は、具体例１７及び１８の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、システムイベントに応答してオペレーティングシステム切替イベントを受信するステップを含む。
【００５１】
具体例２０は、具体例１７〜１９の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ユーザ選択に応答してオペレーティングシステム切替イベントを受信するステップを含む。
【００５２】
具体例２１は、具体例１７〜２０の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ハードウェア切替選択を受信するステップを含む。
【００５３】
具体例２２は、具体例１７〜２１の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ソフトウェア切替選択を受信するステップを含む。
【００５４】
具体例２３は、具体例１７〜２２の何れかの主題を含み、計算装置が、オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行するステップを更に有する。
【００５５】
具体例２４は、具体例１７〜２３の何れかの主題を含み、第１のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするステップは、データ記憶装置に対する１つ以上のＩ／Ｏ処理をインターセプトするステップと、１つ以上のＩ／Ｏ処理をリザーブメモリエリアにルーティングするステップとを含む。
【００５６】
具体例２５は、具体例１７〜２４の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトするステップは、データ記憶装置により記憶されるハイバネーションファイルに対する１つ以上のＩ／Ｏ処理をインターセプトするステップを含む。
【００５７】
具体例２６は、具体例１７〜２５の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトするステップは、第１のオペレーティングシステムのフィルタドライバを用いて１つ以上のＩ／Ｏ処理をインターセプトするステップを含む。
【００５８】
具体例２７は、具体例１７〜２６の何れかの主題を含み、第２のオペレーティングシステムを実行するステップは、データ記憶装置により記憶されるハイバネーションファイルから第２のオペレーティングシステムをロードするステップを含む。
【００５９】
具体例２８は、具体例１７〜２７の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは、第２のオペレーティングシステムの実行と同時に第１のオペレーティングシステムの状態データをコピーするステップを含む。
【００６０】
具体例２９は、具体例１７〜２８の何れかの主題を含み、第２のオペレーティングシステムを実行するステップは、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするのと同時にアプリケーションを実行するステップを含む。
【００６１】
具体例３０は、具体例１７〜２９の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは更に、計算装置がアイドルであるとき、状態データをコピーするステップを含む。
【００６２】
具体例３１は、具体例１７〜３０の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは、第１のオペレーティングシステムの状態データを計算装置のハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールにコピーするステップを含む。
【００６３】
具体例３２は、具体例１７〜３１の何れかの主題を含み、計算装置が、第１のオペレーティングシステムを実行する前に、リザーブメモリエリアとして計算装置のメモリの一部をリザーブするステップを更に有する。
【００６４】
具体例３３は、具体例１７〜３２の何れかの主題を含み、計算装置のメモリの一部をリザーブするステップは、計算装置のファームウェアを用いてメモリの一部をリザーブするステップを含む。
【００６５】
具体例３４は、プロセッサと、プロセッサにより実行されると、具体例１７〜３３の何れかの方法を計算装置に実行させるための複数の命令を記憶するメモリとを有する計算装置を含む。
【００６６】
具体例３５は、実行されることに応答して、具体例１７〜３３の何れかの方法を計算装置に実行させるための複数の命令を有する１つ以上の機械可読記憶媒体を含む。
【００６７】
具体例３６は、具体例１７〜３３の何れかの方法を実行するための手段を有する計算装置を含む。
【００６８】
具体例３７は、オペレーティングシステムの間を遷移する計算装置であって、計算装置の第１のオペレーティングシステムを実行する手段と、第１のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信する手段と、オペレーティングシステム切替イベントの受信に応答して、計算装置のリザーブメモリエリアに第１のオペレーティングシステムの状態データをコピーする手段と、状態データをリザーブメモリエリアにコピーしたことに応答して、計算装置の第２のオペレーティングシステムを実行する手段と、第２のオペレーティングシステムを実行したことに応答して、第１のオペレーティングシステムの状態データを計算装置のデータ記憶装置にコピーする手段とを有する計算装置を含む。
【００６９】
具体例３８は、具体例３７の主題を含み、第２のオペレーティングシステムの実行中に第２のオペレーティングシステム切替イベントを受信する手段と、第２のオペレーティングシステム切替イベントの受信に応答して、第２のオペレーティングシステムの状態データをリザーブメモリエリアにコピーする手段と、第２のオペレーティングシステムの状態データをコピーしたことに応答して、第１のオペレーティングシステムの２回目を実行する手段と、第１のオペレーティングシステムの２回目の実行に応答して、第２のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段とを更に有する。
【００７０】
具体例３９は、具体例３７及び３８の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、システムイベントに応答してオペレーティングシステム切替イベントを受信する手段を含む。
【００７１】
具体例４０は、具体例３７〜３９の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信する手段を含む。
【００７２】
具体例４１は、具体例３７〜４０の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ハードウェア切替選択を受信する手段を含む。
【００７３】
具体例４２は、具体例３７〜４１の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ソフトウェア切替選択を受信する手段を含む。
【００７４】
具体例４３は、具体例３７〜４２の何れかの主題を含み、オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行する手段を更に有する。
【００７５】
具体例４４は、具体例３７〜４３の何れかの主題を含み、第１のオペレーティングシステムの状態データをリザーブメモリエリアにコピーする手段は、データ記憶装置に対する１つ以上のＩ／Ｏ処理をインターセプトする手段と、１つ以上のＩ／Ｏ処理をリザーブメモリエリアにルーティングする手段とを含む。
【００７６】
具体例４５は、具体例３７〜４４の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトする手段は、データ記憶装置により記憶されるハイバネーションファイルに対する１つ以上のＩ／Ｏ処理をインターセプトする手段を含む。
【００７７】
具体例４６は、具体例３７〜４５の何れかの主題を含み、１つ以上のＩ／Ｏ処理をインターセプトする手段は、第１のオペレーティングシステムのフィルタドライバを用いて１つ以上のＩ／Ｏ処理をインターセプトする手段を含む。
【００７８】
具体例４７は、具体例３７〜４６の何れかの主題を含み、第２のオペレーティングシステムを実行する手段は、データ記憶装置により記憶されるハイバネーションファイルから第２のオペレーティングシステムをロードする手段を含む。
【００７９】
具体例４８は、具体例３７〜４７の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は、第２のオペレーティングシステムの実行と同時に第１のオペレーティングシステムの状態データをコピーする手段を含む。
【００８０】
具体例４９は、具体例３７〜４８の何れかの主題を含み、第２のオペレーティングシステムを実行する手段は、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーするのと同時にアプリケーションを実行する手段を含む。
【００８１】
具体例５０は、具体例３７〜４９の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は更に、計算装置がアイドルであるとき、状態データをコピーする手段を含む。
【００８２】
具体例５１は、具体例３７〜５０の何れかの主題を含み、第１のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は、第１のオペレーティングシステムの状態データを計算装置のハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールにコピーする手段を含む。
【００８３】
具体例５２は、具体例３７〜５１の何れかの主題を含み、第１のオペレーティングシステムを実行する前に、リザーブメモリエリアとして計算装置のメモリの一部をリザーブする手段を更に有する。
【００８４】
具体例５３は、具体例３７〜５２の何れかの主題を含み、計算装置のメモリの一部をリザーブする手段は、計算装置のファームウェアを用いてメモリの一部をリザーブする手段を含む。
【図１】
2017501522.tif 000003
【図２】
2017501522.tif 000004
【図３】
2017501522.tif 000005
【図４】
2017501522.tif 000006
【国際調査報告】
2017501522.tif 000007
2017501522.tif 000008