(57)【要約】      （修正有）【課題】不揮発性メモリに保存されたシステムコンテキストを用いて、複数のオペレーティングシステムの間で高速スイッチを行う。【解決手段】第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信し、第２のオペレーティングシステムのシステムコンテキストを、第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行する。【選択図】図２
2019050023.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一部がハードウェアにあるロジックを備える装置であって、前記ロジックは、
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第２のオペレーティングシステムのシステムコンテキストを、前記第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行する、装置。
【請求項２】
前記ロジックは、前記第１のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１に記載の装置。
【請求項３】
前記ロジックは、前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信する、請求項１に記載の装置。
【請求項４】
前記ロジックは、前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する、請求項１に記載の装置。
【請求項５】
前記ロジックは、前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存し、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１に記載の装置。
【請求項６】
前記ロジックは、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーし、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行する、
請求項５に記載の装置。
【請求項７】
前記ロジックは、前記第２のオペレーティングシステムからの移行前に、前記第２のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存する、請求項６に記載の装置。
【請求項８】
前記ロジックは、前記第２のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第２のオペレーティングシステムで動作する複数の処理の停止を含む、請求項６に記載の装置。
【請求項９】
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項５に記載の装置。
【請求項１０】
格納された複数の命令を含む１つ又は複数の機械可読記憶媒体であって、前記複数の命令は、実行されたことに応答して、コンピューティングデバイスに、
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第２のオペレーティングシステムのシステムコンテキストを、前記第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行することと、
を実行させる、１つ又は複数の機械可読記憶媒体。
【請求項１１】
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
【請求項１２】
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信させる複数の命令を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
【請求項１３】
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化させ、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する複数の命令を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
【請求項１４】
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存させる複数の命令を含み、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
【請求項１５】
実行された場合に、前記コンピューティングデバイスに、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーすることと、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行することと、
を実行させる複数の命令を含む、請求項１４に記載の１つ又は複数の機械可読記憶媒体。
【請求項１６】
実行された場合に、前記コンピューティングデバイスに、前記第２のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存させる複数の命令を含む、請求項１５に記載の１つ又は複数の機械可読記憶媒体。
【請求項１７】
実行された場合に、前記コンピューティングデバイスに、前記第２のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第２のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１５に記載の１つ又は複数の機械可読記憶媒体。
【請求項１８】
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項１４に記載の１つ又は複数の機械可読記憶媒体。
【請求項１９】
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第２のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、前記位置は、前記第２のオペレーティングシステムに関連付けられる、段階と、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行する段階と、
を備える、方法。
【請求項２０】
前記第１のオペレーティングシステムをスリープ状態にする段階を備え、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１９に記載の方法。
【請求項２１】
前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信する段階を備える、請求項１９に記載の方法。
【請求項２２】
前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する段階を備える、請求項１９に記載の方法。
【請求項２３】
前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存する段階を備え、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１９に記載の方法。
【請求項２４】
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーする段階と、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行する段階と、
を備える、請求項２３に記載の方法。
【請求項２５】
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、２０１４年３月２０日出願の米国特許出願第１４／２２０，８１２号に対する優先権を主張し、その全体は、参照によって本明細書に組み込まれる。
【０００２】
本明細書で説明される複数の実施形態は、概して、オペレーティングシステム間のスイッチ技術に関する。より詳細には、様々な実施形態は、概して、不揮発性メモリに保存されたシステムコンテキストを用いて、複数のオペレーティングシステムの間で高速スイッチを行うことを対象とする。
【背景技術】
【０００３】
多くのコンピューティングシステムは、今日では、システム上で動作可能な１つより多くのオペレーティングシステム（ＯＳ）を有する。しかしながら、コンピューティングシステムは、概して、システム上で、１つのオペレーティングシステムのみを一度にブートする。第２のＯＳが必要な場合に、コンピューティングシステムはパワーダウンされ、システムは新たなオペレーティングシステムにおいてブートアップされる。しかしながら、新たなオペレーティングシステムへのリブートは、典型的には低速である。
【０００４】
さらに、仮想化技術を用いることによって、単一のコンピューティングデバイス上で複数のＯＳを用いて、単一のホストオペレーティングシステムに加えて、複数のゲストオペレーティングシステムを動作させることも可能である。しかしながら、仮想化技術は、概して、各ＯＳが複数のハードウェアデバイスに直接アクセスすることを可能とするものではなく、特に、高速周辺機器への直接アクセスを要求するゲームのようなプログラムの性能を低下させることがある。
【図面の簡単な説明】
【０００５】
【図１】第１のシステムの実施形態を示す。
【図２】オペレーティングシステム間のスイッチのための論理フローを示す。
【図３】オペレーティングシステムを高速ハイバネート状態にする論理フローを示す。
【図４】オペレーティングシステムが高速ハイバネート状態を出るための論理フローを示す。
【図５】オペレーティングシステム間のスイッチのためのブロックフロー図を示す。
【０００６】
【図６】オペレーティングシステムを高速ハイバネート状態にするためのブロックフロー図を示す。
【図７Ａ】オペレーティングシステムが高速ハイバネート状態を出るためのブロックフロー図を示す。
【図７Ｂ】オペレーティングシステムが高速ハイバネート状態を出るためのブロックフロー図を示す。
【図８】論理フロー図の実施形態を示す。
【図９】コンピューティングアーキテクチャの実施形態を示す。
【発明を実施するための形態】
【０００７】
様々な実施形態は、概して、オペレーティングシステムが、２０１３年１１月１３日に公開されたアドバンスド・コンフィグレーション・アンド・パワー・インタフェース（ＡＣＰＩ）仕様書改訂５．０ａに定義されるスタンバイ又はＳ３状態にされた場合に、保存された複数のシステムコンテキストを用いることによって、コンピューティングデバイス上でオペレーティングシステム間のスイッチを行うこと対象とし、同仕様書は、ｈｔｔｐ：／／ａｃｐｉ．ｉｎｆｏ／ｓｐｅｃ．ｈｔｍで公開されている。より詳細には、ロジックを有するコントローラは、その少なくとも一部がハードウェアに実装され、現在動作中のオペレーティングシステムから他のオペレーティングシステムへのスイッチ要求を受信してよい。従来、システムは、現在のオペレーティングシステムを完全にシャットダウンし、次に、新たな又は他のオペレーティングシステムを最初からブートし、全てのファイル及び構成設定をメモリ及び複数のレジスタにロードしていた。しかしながら、この処理は、非合理的に長い時間がかかることがある。
【０００８】
つまり、オペレーティングシステムのシステム又はスタンバイコンテキストは、複数のオペレーティングシステムの間でスイッチするために用いられてよい。スタンバイコンテキストは、複数のレジスタ設定、アプリケーション設定、ファイル設定、オペレーティングシステム状態設定等を含むオペレーティングシステムの様々な構成設定を含んでよい。オペレーティングシステムのスイッチ要求を受信すると、コントローラは、現在のオペレーティングシステムに、スタンバイ状態に入るよう命令し、オペレーティングシステムに、スタンバイコンテキストを揮発性メモリに保存させてよい。しかしながら、揮発性メモリに保存されたスタンバイコンテキストは、メモリへの電力が遮断された場合に消失することがあり、又は、他のオペレーティングシステムによって上書きされることがある。つまり、コントローラは、スタンバイコンテキストを不揮発性メモリにコピーし、さらなる利用のために保存してよい。
【０００９】
新たなオペレーティングシステムにスイッチする場合に、コントローラは、オペレーティングシステムのスタンバイコンテキストを不揮発性メモリにおいて特定してよく、これを揮発性メモリにコピーしてよい。新たなオペレーティングシステムのスタンバイコンテキストは、複数のオペレーティングシステムの間での前のスイッチ中に、又はオペレーティングシステムが動作していた任意の他の時点に、不揮発性メモリに保存されていてよい。一度、スタンバイコンテキストが揮発性メモリに保存されると、コントローラは、揮発性メモリのスタンバイコンテキストを用いて、新たなオペレーティングシステムをスタンバイ又はＳ３状態からウェイクさせてよい。新たなオペレーティングシステムは、ブートし、標準状態で動作してよい。複数のオペレーティングシステムの間でスイッチすべく、不揮発性メモリに保存された複数のスタンバイコンテキストを用いることは、完全なシャットダウン及びブートアップ処理より著しく長い時間を節約する。
【００１０】
オペレーティングシステム間のスイッチに加えて、様々な実施形態は、複数のオペレーティングシステムを有するシステムを高速ハイバネート状態にし、高速ハイバネート状態から出て複数のオペレーティングシステムのいずれか１つに入ることをさらに対象としてよい。これらの実施形態において、コントローラは、システムの電力を節約すべく、システムをスタンバイ又はＳ３状態にする要求を受信してよい。概して、システムがＳ３状態にされた場合に、複数の処理コンポーネント、不揮発性メモリ等のような様々なコンポーネントへの電力が遮断されるが、揮発性メモリのような複数のコンポーネントへの電力は、例えばスタンバイコンテキストを保持すべく、オンのまま維持される。しかしながら、システムがスタンバイ又はＳ３状態に入ることを要求した場合には、さらなる電力節約が、システムをハイバネーション又はＳ４状態にすることによって実現可能である。
【００１１】
つまり、スタンバイコンテキストは、前述されたように、電力があってもなくても、コントローラによって持続的に不揮発性メモリに保存されてよい。システムは、オペレーティングシステムのスタンバイコンテキストを消失するリスクなく、ハイバネーション又はＳ４状態に入ってよい。コントローラは、システムをスタンバイ又はＳ３状態にするための情報を受信してよく、この状態に入るよう動作中のオペレーティングシステムに命令してよい。オペレーティングシステムは、スタンバイコンテキストを揮発性メモリにコピーし、Ｓ３状態に入ってよい。コントローラは、スタンバイコンテキストを不揮発性メモリにコピーし、システムをハイバネーション又はＳ４状態にし、さらなる電力をＳ３状態より節約してよい。
【００１２】
様々な実施形態において、コントローラは、ハイバネーション又はＳ４状態を出るための情報を受信し、システムを標準動作状態にしてよい。コントローラは、どのオペレーティングシステムにシステムをブートするかを決定し、オペレーティングシステムのスタンバイコンテキストを不揮発性メモリから揮発性メモリにコピーし、スタンバイコンテキストを用いて、スタンバイ又はＳ３状態を出るようオペレーティングシステムに命令してよい。ブート先のオペレーティングシステムは、それがハイバネーション状態に入った場合にシステム上で動作していた最後のオペレーティングシステム、又はユーザが選択したオペレーティングシステムであってよい。ユーザは、システムがハイバネーション又はＳ４状態を出ていた場合、又はシステムがＳ４もしくはハイバネーション状態にされていた場合に、オペレーティングシステムを選択していてよい。様々な詳細は、以下の説明によってより明らかとなろう。
【００１３】
本明細書で用いられる複数の表記及び用語への全般的な参照により、以下の詳細な説明は、コンピュータ又は複数のコンピュータのネットワーク上で実行される複数のプログラム手順に関して示されてよい。これらの手順の説明及び表現は、当業者によって、それらの動作の本質を他の当業者に最も効果的に伝達するために用いられる。
【００１４】
手順は、ここで説明され、概して、所望の結果をもたらす首尾一貫した複数の動作のシーケンスと考えられる。これらの動作は、物理量の物理的操作を要求するものである。通常、これらの量は、格納、移行、組み合わせ、比較、及び他の操作が可能な電気、磁気又は光信号の形をとるが、必ずしもこれに限定されない。これは、主に共通利用の理由で、これらの信号をビット、値、要素、記号、文字、用語、数等と称することが好都合な場合があることを明らかにする。しかしながら、これらの及び同様の用語の全ては、適切な物理量に関連付けられるべきものであり、かつ、単にこれらの量に適用される好都合な符号に過ぎないことに留意されたい。
【００１５】
さらに、実行される複数の操作は、多くの場合、追加又は比較のような用語で称され、これは一般に、人間のオペレータによって実行される複数の精神的動作に関連付けられる。人間のオペレータのこのような能力は、本明細書で説明され、１つ又は複数の実施形態の一部を形成するいずれの動作においても、大抵の場合、必要でも望ましいものでもない。むしろ、それらの動作は、機械の動作である。様々な実施形態の動作を実行するために有用な機械は、汎用デジタルコンピュータ又は類似のデバイスを含む。
【００１６】
様々な実施形態は、これらの動作を実行するための装置又はシステムにさらに関する。この装置は、要求された目的のために特別に構築されてよく、又は、そのコンピュータに格納されたコンピュータプログラムによって選択的にアクティベートもしくは再構成される汎用コンピュータを備えてよい。本明細書に示される複数の手順は、本来的には、特定のコンピュータ又は他の装置に関するものではない。様々な汎用機械が本明細書の教示に従って記述されたプログラムと共に利用可能であり、あるいは、より特化された装置を構築し、要求された方法の複数の段階を実行することが好都合であることが明らかにされよう。様々なこれらの機械に要求される構造は、所与の説明から明らかとなろう。
【００１７】
ここで、図面が参照され、同様の参照番号は、全体において、同様の要素を指すために用いられる。以下の説明において、説明目的のために、多数の具体的な詳細が、これらの十分な理解を提供すべく、示される。しかしながら、新規な実施形態は、これらの具体的な詳細がなくとも、実施可能であることは明らかであろう。他の複数の例において、周知の構造及びデバイスは、これらの説明を容易にすべく、ブロック図の形で示される。その意図は、特許請求の範囲に記載された主題に合致する全ての変更、均等物、及び代替物を対象とするものである。
【００１８】
図１は、本明細書で説明される様々な実施形態の実装に適したシステム１００の実施形態を示す。システム１００は、オペレーティングシステム間のスイッチと、高速ハイバネート状態への出入りとを処理及び有効化する様々なコンポーネントを有するコンピューティングデバイス１０５を含む。様々な実施形態において、システム１００は、任意の数のオペレーティングシステムをシステム上に有してよく、これらは、限定されるものではないが、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ、アップル（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）ＯＳ等を含む任意のタイプのオペレーティングシステムであってよい。
【００１９】
図１は、コントローラ１０６を含む基本入出力システム（ＢＩＯＳ）１０４に結合されるプロセッサコンポーネント１０２を含むコンピューティングデバイス１０５を示す。さらに、コンピューティングデバイス１０５は、不揮発性メモリ１１０及び揮発性メモリ１２０をさらに含む。プロセッサコンポーネント１０２、ＢＩＯＳ１０４、不揮発性メモリ１１０及び揮発性メモリ１２０は、相互接続１４３のような１つ又は複数の相互接続を介して通信を行ってよく、これらは、任意のタイプのバス、トレース等であってよい。
【００２０】
図１は特定数のコンポーネントを示すが、様々な実施形態は、本態様に限定されるものではなく、コンピューティングシステム１０５は、任意の数のコンポーネントを含んでよい。さらに、図１は、様々なコンポーネントを、スタンドアロンコンポーネントとして、又は複数の他のコンポーネントの一部として示す。例えば、図１は、コントローラ１０６を含むＢＩＯＳ１０４を示す。
【００２１】
しかしながら、様々な実施形態は、本態様に限定されなくてよく、いくつかの実施形態においては、コントローラ１０６は、スタンドアロンコンポーネントであってよく、又はＢＩＯＳ１０４に含まれなくてよい。図１は、揮発性メモリ１２０をスタンドアロンコンポーネントとしてさらに示す。しかしながら、様々な実施形態において、揮発性メモリ１２０は、プロセッサコンポーネント１０２の一部であってよい。さらに、プロセッサコンポーネント１０２は、それ自体の揮発性メモリコンポーネントを有してよい。様々な実施形態は、これに関して限定されるものではない。
【００２２】
様々な実施形態において、コンピューティングデバイス１０５は、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、一方向ページャ、二方向ページャ、メッセージングデバイス、コンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、マルチプロセッサシステム、プロセッサベースシステム、又はこれらの任意の組み合わせのような任意のタイプのコンピューティングデバイスを含んでよい。複数の実施形態は、これに関して限定されるものではない。
【００２３】
プロセッサコンポーネント１０２は、限定されるものではないが、マイクロプロセッサ、プロセッサ、中央処理装置、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ（ＳｏＣ）デバイス、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は単一のチップもしくは集積回路上の任意の他のタイプのプロセッサもしくは処理回路のような任意のタイプの演算要素の１つ又は複数であってよい。プロセッサコンポーネント１０２は、相互接続１４３を介して、コンピューティングシステムの複数の他の要素に接続され、これらと通信を行ってよい。さらに、プロセッサコンポーネント１０２は、コアの処理に必須ではない情報、複数の命令等を処理するロジックを含むアンコアコンポーネントのような複数の他のコンポーネントを含んでよい。
【００２４】
様々な実施形態において、コンピューティングデバイス１０５は、コンピューティングデバイス１０５のデータ、情報、及び複数の命令を格納するための不揮発性メモリ１１０を含んでよい。不揮発性メモリ１１０は、メモリに電力が供給される場合又は電力が供給されない場合に、データ、情報、複数の命令等を持続的に格納可能な任意のタイプの不揮発性メモリであってよい。不揮発性メモリ１１０は、フラッシュメモリ、ソリッドステートドライブ（ＳＳＤ）、強誘電体ランダムアクセスメモリ（Ｆ−ＲＡＭ）、光ディスク、リードオンリメモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、ＳＯＮＯＳ、プログラム可能メタライゼーションセル、レーストラックメモリ、ナノＲＡＭ、ミリピードメモリ、相変化メモリ（ＰＣＭ）等を含んでよい。
【００２５】
様々な実施形態において、不揮発性メモリ１１０は、複数の領域に分割され、コンピューティングシステム１０５の１つ又は複数のオペレーティングシステムを格納してよい。より詳細には、以下、さらに詳細に説明されるように、不揮発性メモリ１１０は、多数の異なる区画に分割されてよく、複数のオペレーティングシステム空間区画と、コンピューティングデバイス上にインストールされ又はここで有効化される複数のオペレーティングシステムの各々の複数のシステムコンテキストを保存する複数の区画とを含んでよい。コンピューティングシステム１０５は、揮発性メモリ１２０をさらに含んでよく、これは、情報を格納せず、電力がメモリに供給されない任意のタイプのメモリであってよい。揮発性メモリ１２０は、限定されるものではないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、Ｔ−ＲＡＭ、Ｚ−ＲＡＭ等を含んでよい。
【００２６】
揮発性メモリ１２０は、情報を格納してよく、以下、より詳細に説明されるように、オペレーティングシステムは、システムがスタンバイ状態にされた場合に、そのスタンバイコンテキストを揮発性メモリに保存してよい。スタンバイコンテキストは、スタンバイ状態に入った時点で用いられていた複数のオープンドキュメント及びプログラム（アプリケーション）を含んでよい。いくつかのチップセットレジスタの内容は、スタンバイコンテキストの一部として、揮発性メモリにさらに書き込まれてよい。スタンバイコンテキストは、揮発性メモリ１２０への電力が無効化される前に、不揮発性メモリ１１０に書き込まれ、又はこれに保存され、スタンバイコンテキストを持続的に保存してよい。いくつかの実施形態において、スタンバイコンテキストは、複数のオペレーティングシステムの間で迅速に移行するためにさらに用いられてよい。様々な実施形態において、コンピューティングデバイスは、オペレーティングシステム間のスイッチを実行すること、コンピューティングデバイスを高速ハイバネート状態にすること、高速ハイバネート状態から再開することを含むコンピューティングデバイス１０５の様々な態様を制御するためのコントローラ１０６を有するＢＩＯＳ１０４を含んでよい。ＢＩＯＳ１０４は、複数のシステムＢＩＯＳ命令を提供する。より詳細には、ＢＩＯＳソフトウェアは、ファームウェアとしてコンピューティングデバイス１０５に構築されてよく、電源オンにされた場合に、コンピューティングデバイス１０５によって動作させられる第１のソフトウェアである。ＢＩＯＳ１０４は、システムコンポーネントを初期化及び試験し、ブートローダ又はオペレーティングシステムを不揮発性メモリ１１０のようなメモリデバイスからロードしてよい。
【００２７】
図１はコントローラ１０６をＢＩＯＳ１０４の一部として示すが、様々な実施形態は、本態様に限定されなくてよく、コントローラ１０６は、スタンドアロンコンポーネントであってよく、相互接続１４３を介して複数の他のコンポーネントと通信を行ってよい。さらに、コントローラ１０６は、ロジックを含んでよく、ハードウェア、ソフトウェア、又はこれらの組み合わせで実装されてよい。
【００２８】
いくつかの実施形態において、他のオペレーティングシステムにスイッチ又は移行する場合に、コントローラ１０６は、ユーザがコンピューティングデバイス１０５上で動作中の現在のオペレーティングシステムから、コンピューティングデバイス１０５上にインストールされ又はここで動作可能な他のオペレーティングシステムにスイッチしたいということを示す情報を受信してよい。コントローラ１０６は、現在動作中のオペレーティングシステムに、スタンバイ状態に入るよう命令し、情報を送信してよい。スタンバイ状態に入ることによって、オペレーティングシステムは、様々なレジスタに格納された情報と、スタンバイ状態に入った時点で用いられていた複数のオープンドキュメント及びプログラム（アプリケーション）に関する情報とを含むスタンバイコンテキストを保存してよい。現在のオペレーティングシステムの複数の処理のいくつか又は全ては、一度スタンバイコンテキストが揮発性メモリにコピーされると、停止させられてもよい。
【００２９】
コントローラ１０６は、揮発性メモリ１２０に保存されたスタンバイコンテキストを不揮発性メモリ１１０にコピーし、又はコピー及び除去し、持続的な状態で情報を維持してよい。スタンバイコンテキストは、不揮発性メモリ１１０において、スイッチ元のオペレーティングシステムに関連付けられる特定位置に保存されてよい。様々な実施形態において、特定位置は、オペレーティングシステムのコンテキスト区画であってよい。
【００３０】
コントローラ１０６は、次に、揮発性メモリ１２０から情報を除去し、又は他のオペレーティングシステムに情報への上書きを許可してよい。一度オペレーティングシステムのスタンバイコンテキストが不揮発性メモリ１１０に保存されると、コントローラ１０６は、他のオペレーティングシステムにスイッチしてよい。いくつかの実施形態において、コントローラ１０６は、スタンバイコンテキストが他のオペレーティングシステム又はスイッチ先のオペレーティングシステムのために不揮発性メモリ１１０に存在するか否かを決定してよく、スタンバイコンテキストを揮発性メモリ１２０にコピーしてよい。コントローラ１０６は、揮発性メモリ１２０にコピーされたスタンバイコンテキストを用いて、スタンバイ状態を出るよう他のオペレーティングシステムに命令してよい。しかしながら、スイッチ先のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリ１１０に存在しない場合に、コントローラ１０６は、ブートシーケンスを開始し、オペレーティングシステムの新たなインスタンスをロードしてよい。
【００３１】
様々な実施形態において、コントローラ１０６は、複数のオペレーティングシステムとの間で、１つ又は複数のシステム呼び出し、機能呼び出し等として複数のメッセージを送信及び受信することによって、１つ又は複数の相互接続１４３を用いてプロセッサコンポーネント１０２を介してオペレーティングシステムと通信を行ってよい。さらに、コントローラ１０６は、１つ又は複数のレジスタ又は制御ピンを有効化又は無効化し、オペレーティングシステムに、様々なスリープ状態に入る又はこれらから出させてよい。様々な実施形態は、本態様に限定されるものではなく、コントローラ１０６は、複数のオペレーティングシステムと任意の態様で通信を行ってよい。
【００３２】
様々な実施形態において、コントローラ１０６は、不揮発性メモリ１２０に保存された複数のスタンバイコンテキストを用いることによって、ユーザに、任意の数のオペレーティングシステムの間におけるスイッチを有効化させてよい。コントローラ１０６は、スイッチ元の複数のオペレーティングシステムの複数のスタンバイコンテキストを不揮発性メモリ１１０に保存してよく、スイッチ先の複数のオペレーティングシステムの複数のスタンバイコンテキストを揮発性メモリ１２０にロードしてよい。複数のオペレーティングシステムの完全なシャットダウン及びスタートアップシーケンスが要求されないので、著しく長い時間及び処理電力が、スタンバイコンテキストを用いることによって節約可能である。さらに、複数のスタンバイコンテキストは、ユーザ用の構成及び複数の設定を保存するために用いられてよく、これにより、ユーザが元のオペレーティングシステムにスイッチした場合に、これを同じ構成とすることができる。
【００３３】
コントローラ１０６は、保存された複数のスタンバイコンテキストを用いることによって、ユーザに、コンピューティングデバイス１０５を高速ハイバネート状態にさせ、高速ハイバネート状態から１つ又は複数のオペレーティングシステムのいずれか１つで再開することを可能とさせてもよい。より詳細には、コントローラ１０６は、複数のオペレーティングシステムに、スタンバイ状態に入るよう命令し、オペレーティングシステムに、スタンバイコンテキストを揮発性メモリ１２０に保存させてよい。しかしながら、システムは、次に、スタンバイコンテキストを不揮発性メモリ１１０にコピーし、実際にシステムをハイバネーション状態にしてよい。
【００３４】
例えば、コントローラ１０６は、現在動作中のオペレーティングシステムから、ユーザがシステムをスタンバイ状態にしたいという情報を受信してよい。情報は、グラフィカルユーザインタフェースを介してのユーザ選択、コンピューティングデバイスの蓋（不図示）を閉じること、コンピューティングデバイスのボタン（不図示）を押す又は押下すること等に応答して、受信されてよい。現在動作中のオペレーティングシステムは、スタンバイコンテキストを揮発性メモリ１２０に保存してよく、コントローラ１０６は、動作中の複数の処理を有する任意の複数の他のオペレーティングシステムに、それらのスタンバイコンテキストを同様に揮発性メモリ１２０に保存するようさらに命令してよい。コントローラ１０６は、コンピューティングデバイス１０５の複数のオペレーティングシステムの各々の複数のスタンバイコンテキストを、不揮発性メモリ１１０に保存してよい。いくつかの実施形態において、コントローラ１０６は、複数のスタンバイコンテキストを、複数のオペレーティングシステムの各々に関連付けられる複数のコンテキスト区画に保存してよい。
【００３５】
一度全てのスタンバイコンテキストが不揮発性メモリ１１０に保存されると、コントローラ１０６は、１つ又は複数のメッセージを伝達すること、レジスタを設定すること又は１つ又は複数のピンを有効化することによって、コンピューティングデバイス１０５をハイバネーション状態にしてよい。ハイバネーション状態にある場合、コンピューティングシステム１０５は、プロセッサコンポーネント１０２、揮発性メモリ１２０、不揮発性メモリ１１０及びＡＣＰＩ仕様書に定義される任意の他のコンポーネントを含む様々なコンポーネントへの電力をオフにしてよい。コンピューティングデバイス１０５は、トリガイベント発生までハイバネーション状態のままであってよい。
【００３６】
様々な実施形態において、トリガイベントは、蓋を開けること、ボタンを押すこと、ボタンを押下すること、マウスを動かすこと、ネットワークインタフェースを介して受信された通信等であってよい。コントローラ１０６は、トリガイベントが発生したことを示す情報を受信してよく、コンピューティングデバイス１０５上で再開処理を開始してよい。コントローラ１０６は、コンピューティングデバイス１０５上で有効化された複数のオペレーティングシステムのいずれか１つを再開して標準動作状態にしてよい。コントローラ１０６は、コンピューティングデバイス１０５を再開して、デバイス上で動作した最後のオペレーティングシステムにしてよく、又はデバイスが高速ハイバネーション状態にされた場合に受信されたユーザ選択に基づくオペレーティングシステムにしてよい。あるいはコントローラ１０６は、ハイバネーション状態から出た場合に、初期ブート処理中にユーザ選択を受信してよい。より詳細には、ユーザは、コンピューティングデバイス１０５のブート先のオペレーティングシステムを選択するための選択リストを示されてよい。
【００３７】
一度コントローラ１０６がブート先のオペレーティングシステムを決定すると、オペレーティングシステムのスタンバイコンテキストは、不揮発性メモリ１２０から揮発性メモリ１１０にコピーされてよい。スタンバイコンテキストは、不揮発性メモリ１１０のコンテキスト区画に配置されてよく、コンテキスト区画は、ブート先のオペレーティングシステムに関連付けられてよい。コントローラ１０６は、スタンバイコンテキストを用いて、オペレーティングシステムに、コンピューティングデバイス１０５上でのスタンバイ状態を出て、スタンバイコンテキストに保存された同じ構成となるよう命令してよい。いくつかの実施形態において、コンピューティングデバイス１０５のロード先であるオペレーティングシステムのスタンバイ状態は、保存されなくてよく、コントローラ１０６は、オペレーティングシステムの完全なブート処理を開始してよい。いくつかの実施形態において、オペレーティングシステムのスタンバイコンテキストを用いての再開は、オペレーティングシステムの新たなインスタンスをブートするより迅速に行われる。
【００３８】
図２は、オペレーティングシステム間のスイッチの論理フロー２００の例示的な実施形態を示す。論理フロー２００は、例示目的のために、図１のコンピューティングデバイス１０５を参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
【００３９】
ブロック２０２において、コントローラ１０６は、オペレーティングシステム間でスイッチするための情報を受信してよい。より詳細には、情報は、ユーザが第１のオペレーティングシステムから第２のオペレーティングシステムへのスイッチを希望することを示す。前述されたように、第１のオペレーティングシステム及び第２のオペレーティングシステムは、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（登録商標）、アップルＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）ＯＳ（登録商標）、ＵＮＩＸ（登録商標）ＯＳ（登録商標）等を含む任意のタイプのオペレーティングシステムであってよい。情報は、第１のオペレーティングシステムの中で動作しつつ、グラフィカルユーザインタフェースを介してユーザ選択によって生成されてよく、コントローラ１０６によって受信されてよい。いくつかの実施形態において、コンピューティングデバイス１０５は、当該デバイス上で有効化される任意の数のオペレーティングシステムを有してよく、情報は、ユーザがどのオペレーティングシステムへのスイッチを希望するかをさらに示してよい。
【００４０】
様々な実施形態において、コントローラ１０６は、ブロック２０４において、第１のオペレーティングシステムに、ＡＣＰＩ仕様書によって定義されるＳ３状態のようなスタンバイ状態に入るよう命令してよい。第１のオペレーティングシステムは、Ｓ３状態に入る場合に、スタンバイコンテキストを揮発性メモリ１２０に保存してよい。スタンバイコンテキストは、複数のレジスタ設定、アプリケーション設定、ファイル設定、オペレーティングシステム状態設定等を含む第１のオペレーティングシステムの様々な構成設定を含んでよい。
【００４１】
様々な実施形態において、論理フロー２００は、ブロック２０６において、第１のオペレーティングシステムのスタンバイコンテキストを不揮発性メモリ１１０にコピー又は保存することを含んでよい。様々な実施形態において、コントローラ１０６は、第１のオペレーティングシステムのスタンバイコンテキストを揮発性メモリ１２０から不揮発性メモリ１１０にコピーしてよい。より詳細には、コントローラ１０６は、スタンバイコンテキストを第１のオペレーティングシステムに関連付けられる第１のコンテキスト区画にコピーし、スタンバイコンテキストを持続的に保存してよい。いくつかの実施形態において、コントローラ１０６は、一度スタンバイコンテキストが不揮発性メモリ１１０にコピーされると、これを揮発性メモリ１２０から除去してよい。しかしながら、同じ又は他の複数の実施形態において、コントローラ１０６は、スタンバイコンテキストが揮発性メモリ１２０に保存されたままにすることを可能にしてよい。
【００４２】
決定ブロック２０８において、コントローラ１０６は、第２のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリ１１０に存在するか又は存在しないかを決定してよい。第２のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリに存在する場合、コントローラ１０６は、ブロック２１０において、スタンバイコンテキストを不揮発性メモリ１１０から揮発性メモリ１２０にコピーしてよい。様々な実施形態において、スタンバイコンテキストは、第２のオペレーティングシステムに関連付けられる第２のコンテキスト区画から揮発性メモリ１２０にコピーされてよい。
【００４３】
様々な実施形態において、コントローラ１０６は、ブロック２１２において、第２のオペレーティングシステムを開始し、又はこれにスタンバイ状態又はＳ３状態を出るよう命令してよい。第２のオペレーティングシステムは、コントローラ１０６によって揮発性メモリ１２０にロードされる第２のオペレーティングシステムのスタンバイコンテキストを用いてスタンバイ状態を出てよい。いくつかの実施形態において、第２のオペレーティングシステムは、レジスタの有効化又は設定、ピン、システム呼び出し等の設定を行うコントローラ１０６を介して、スタンバイを出るための情報を受信してよい。第２のオペレーティングシステムは、スタンバイ状態を出て、標準動作状態で動作してよい。
【００４４】
決定ブロック２０８において、第２のオペレーティングシステムが不揮発性メモリ１１０に保存されたスタンバイコンテキストを有さない場合に、コントローラ１０６は、ブロック２１４において、第２のオペレーティングシステムの新たなインスタンスを開始してよい。第２のオペレーティングシステムは、同様の任意のオペレーティングシステムをロードし、電力オフ状態からブートしてよい。
【００４５】
論理フロー２００は、数が付された複数のブロックを特定の順序で示すが、様々な実施形態は本態様に限定されるものではなく、論理フロー２００の複数のブロックは、任意の順序で行われてよい。さらに、論理フロー２００は、任意の回数繰り返されてよく、コンピューティングデバイスは、任意の数のオペレーティングシステムの間でスイッチしてよい。
【００４６】
図３は、複数のオペレーティングシステムを高速ハイバネート状態にするための論理フロー３００の例示的な実施形態を示す。論理フロー３００は、例示目的のために、図１のコンピューティングデバイス１０５及び複数のコンポーネントを参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
【００４７】
ブロック３０２において、コントローラ１０６は、コンピューティングデバイス１０５をスタンバイ状態にするための情報を受信してよい。しかしながら、コンピューティングデバイス１０５をスタンバイ状態にする要求を受信したことに応答して、コントローラ１０６は、コンピューティングデバイス１０５を高速ハイバネート状態にし、スタンバイコンテキストを不揮発性メモリ１１０に持続的に保存してよい。さらに、コンピューティングデバイス１０５をスタンバイ状態にするための情報は、ユーザ選択、コンピュータの蓋を閉じたこと、ボタンを押したこと等のようなトリガイベントに基づいて受信されてよい。
【００４８】
様々な実施形態において、コントローラ１０６は、ブロック３０４において、コンピューティングデバイス１０５上で動作中の１つ又は複数の処理を有する全オペレーティングシステムに、スタンバイ状態に入るよう命令し、又はそのための情報を送信してよい。各オペレーティングシステムは、スタンバイ状態に入り、スタンバイコンテキストを揮発性メモリ１２０に保存して、スタンバイ状態を出る場合に用いてよい。前述されたように、各オペレーティングシステムの複数のスタンバイコンテキストは、オペレーティングシステムの構成情報を含んでよい。さらに、コントローラ１０６は、決定ブロック３０６において、コンピューティングデバイス１０６上で動作中の１つ又は複数の処理を有する各オペレーティングシステムがスタンバイ状態にあるか否かを決定してよい。
【００４９】
決定ブロック３０６において、コントローラ１０６が、各オペレーティングシステムがスタンバイ状態にないと決定した場合に、コントローラ１０６は、ブロック３０８において、遅延期間だけ待機し、全オペレーティングシステムがスタンバイ状態にあるか否かを再度チェックしてよい。その期間は、数秒、数ミリ秒、数マイクロ秒、数ナノ秒等の任意の期間であってよい。例えば、コントローラ１０６は、１ミリ秒待機し、全オペレーティングシステムがスタンバイ状態にあるか否かを再度チェックしてよい。様々な実施形態は、この例に限定されるものではなく、遅延期間は、任意の時間長であってよい。この処理は、全オペレーティングシステムがスタンバイ状態になるまで、又は特定数の決定がなされるまで、繰り返されてよい。
【００５０】
決定ブロック３０６において、コントローラ１０６が、各オペレーティングシステムがスタンバイ状態にあると決定した場合に、コントローラ１０６は、ブロック３１０において、各スタンバイコンテキストを揮発性メモリ１２０から、不揮発性メモリ１１０における、複数のオペレーティングシステムの各々の個別のコンテキスト区画にコピーしてよい。例えば、コントローラは、第１のオペレーティングシステムのスタンバイコンテキストを揮発性メモリ１２０から不揮発性メモリ１１０の第１のコンテキスト区画にコピーし、第２のオペレーティングシステムのスタンバイコンテキストを不揮発性メモリ１１０の第２のコンテキスト区画にコピーしてよい。コントローラ１０６は、任意の数のオペレーティングシステムのスタンバイコンテキストをコピーしてよい。
【００５１】
決定ブロック３１２において、コントローラ１０６は、複数のオペレーティングシステムの各々の全てのスタンバイコンテキストが、不揮発性メモリ１１０にコピーされたか否かを決定してよい。複数のスタンバイコンテキストが不揮発性メモリ１１０に完全にコピーされていなかった場合に、コントローラは、ブロック３１４において、遅延期間だけ待機してよい。コントローラ１０６は、全てのスタンバイコンテキストが不揮発性メモリ１１０にコピーされるまで、遅延期間だけ待機すること、多くの回数続けてよい。遅延期間は、任意の期間であってよい。
【００５２】
ブロック３１２において、コントローラ１０６が、全スタンバイコンテキストが不揮発性メモリ１１０にコピーされたと決定した場合に、コントローラ１０６は、ブロック３１６において、ＡＣＰＩ仕様書に定義されるコンピューティングデバイス１０５をハイバネート又はＳ４状態にしてよい。コンピューティングデバイス１０５は、いくつかの実施形態において、トリガイベントがコントローラ１０６又はコンピューティングデバイス１０５に受信されるまで、ハイバネート状態のままであってよい。
【００５３】
図４は、複数のオペレーティングシステムについて、高速ハイバネート状態を出るための論理フロー４００の例示的な実施形態を示す。論理フロー４００は、例示目的のために、図１のコンピューティングデバイス１０５及び複数のコンポーネントを参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
【００５４】
ブロック４０２において、コントローラ１０６は、システム又はコンピューティングデバイス１０５を高速ハイバネート状態からウェイクさせるための情報を受信してよい。コントローラ１０６は、コンピュータの蓋を開けること、ボタンを押す又は押下すること、ネットワーク接続を介して受信された情報、マウスの又はトラックパッド上での動き等のようなトリガイベントに応答して、情報を受信してよい。様々な実施形態は、本態様に限定されるものではなく、コントローラ１０６は、任意の数のトリガイベントに基づいて、情報を受信してよい。さらに、コントローラ１０６は、１つ又は複数の信号、ピン又はレジスタの設定等のような通信を介して、情報を受信してよい。
【００５５】
様々な実施形態において、コントローラ１０６は、どのオペレーティングシステムがコンピューティングデバイス１０５のブート先となるかを決定してよい。コントローラ１０６の決定は、コンピューティングシステム１０５が高速ハイバネート状態にされていた場合には、受信された情報に基づいてなされてよい。例えば、コントローラ１０６は、高速ハイバネート状態から再開する場合に、どのオペレーティングシステムをロードするかを示す情報を受信していてよい。さらに、コントローラ１０６は、デバイスが高速ハイバネート状態にされていた場合に、コンピューティングデバイス１０５が最後にロードされていたオペレーティングシステムで再開してよい。コントローラ１０６は、ユーザインタフェース又はユーザ用メニューが、初期ブートシーケンス中に、いずれのオペレーティングシステムをロード先にするかの選択をさらに可能としてよい。
【００５６】
コントローラ１０６は、決定ブロック４０６において、コンピューティングデバイス１０５のブート先となるべきオペレーティングシステムのスタンバイコンテキストが、不揮発性メモリ１１０に存在するか否かを決定してよい。コントローラ１０６が、オペレーティングシステムのスタンバイコンテキストが存在すると決定した場合に、コントローラ１０６は、ブロック４０８において、スタンバイコンテキストを揮発性メモリ１２０にロードしてよい。様々な実施形態において、スタンバイコンテキストは、オペレーティングシステムに関連付けられる不揮発性メモリ１１０のコンテキスト区画から揮発性メモリ１２０にロードされてよい。コントローラ１０６は、ブロック４１０において、オペレーティングシステムをスタンバイ状態から標準オペレーティングシステムにウェイクさせてよい。コントローラ１０６は、システム呼び出し、レジスタの利用可能性、ピン設定等として情報を送信して、オペレーティングシステムをウェイクさせてよく、オペレーティングシステムは、揮発性メモリにロードされたスタンバイコンテキストを用いて、スタンバイ状態から再開してよい。
【００５７】
ブロック４０６において、コントローラ１０６が、オペレーティングシステムのコンテキストが不揮発性１１０に存在しないと決定した場合に、コントローラ１０６は、ブロック４１２において、オペレーティングシステムの新たなインスタンスを開始してよい。オペレーティングシステムの新たなインスタンスは、ブート先となる場合に、標準的な又は完全なブート処理を経てよく、一度完全にブートアップすると、標準状態で動作してよい。
【００５８】
図５は、第１のオペレーティングシステムと第２のオペレーティングシステムとの間でスイッチするためのコンポーネントフロー図５００を示す。コンポーネントフロー図５００は、コンピューティングデバイス１０５のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。図５は、第１のオペレーティングシステム５０２と、第２のオペレーティングシステム５０４と、コントローラ５０６と、不揮発性メモリ５１０と、揮発性メモリ５２０とを含む。いくつかの実施形態において、コントローラ５０６、不揮発性メモリ５１０及び揮発性メモリ５２０は、図１において同じ符号を付されたコンポーネントと類似又は同じであってよい。しかしながら、様々な実施形態は、本態様に限定されるものではない。
【００５９】
さらに、不揮発性メモリ５１０は、任意の数の領域に分割されてよく、又は、複数の区画は、第１のオペレーティングシステム５０２のための第１のオペレーティングシステム空間５１２と、第２のオペレーティングシステム５０４のための第２のオペレーティングシステム空間５１４と、第１のコンテキスト区画５１６と、第２のコンテキスト区画５１８と、を含む。オペレーティングシステムのオペレーティングシステム空間は、対応するオペレーティングシステムが不揮発性メモリ５１０において、データ、情報、複数のファイル、複数のアプリケーション等を格納する専用空間であってよい。各オペレーティングシステムは、専用のオペレーティングシステム空間を有し、情報が他のオペレーティングシステムによって上書きされないことを保証してよい。いくつかの実施形態において、オペレーティングシステム空間は、不揮発性メモリ５１０の区画であってよい。
【００６０】
前述されたように、各オペレーティングシステムは、不揮発性メモリ５１０においてスタンバイコンテキスト区画を含んでよい。図５に示されるように、第１のオペレーティングシステム５０２は、第１のコンテキスト区画５１６に関連付けられてよく、第２のオペレーティングシステム５０４は、第２のコンテキスト区画５１８に関連付けられてよい。スタンバイコンテキスト区画は、関連付けられたオペレーティングシステムのスタンバイコンテキストを格納し、オペレーティングシステム間のスイッチ、複数のオペレーティングシステムと共に高速ハイバネートに入ること、及び複数のオペレーティングシステムと共に高速ハイバネートを出ることを可能とする。コンピューティングデバイスの各オペレーティングシステムは、対応する又は関連付けられたスタンバイコンテキスト区画を含んでよい。
【００６１】
図５は、コンピューティングシステムの複数のコンポーネントの間における様々な通信を示す。示された例示的な実施形態において、ユーザは、第１のオペレーティングシステム５０２においてコンピューティングデバイスを動作させてよい。ライン５５０において、コントローラ５０６は、ユーザが第１のオペレーティングシステム５０２から第２のオペレーティングシステム５０４へのスイッチを希望していることを示す情報を、第１のオペレーティングシステム５０２から受信してよい。情報を受信したことに応答して、コントローラ５０６は、ライン５５２において、スタンバイ状態に入るよう第１のオペレーティングシステム５０２と通信を行い、又はこれに命令してよい。通信は、システム又は機能呼び出し、レジスタ設定等を含む任意の形でなされてよい。
【００６２】
様々な実施形態において、第１のオペレーティングシステム５０２は、スタンバイ状態に入る命令を受信してよく、ライン５５４によって示されるように、スタンバイコンテキストを揮発性メモリ５２０に保存してよい。スタンバイコンテキストは、複数のオペレーティングシステム設定、レジスタ、アプリケーション設定、ファイル等を含んでよい。図５は第１のオペレーティングシステム５０２から揮発性メモリに延びるライン５５４を示すが、スタンバイコンテキスト情報は、揮発性メモリ自体における複数の位置のようなデバイスの様々なコンポーネントから、又は第１のＯＳ空間５１４から伝送されてよい。いくつかの実施形態において、情報は、１つ又は複数のプロセッサコンポーネント（不図示）によって決定され、揮発性メモリ５２０に保存されてよい。
【００６３】
コントローラ５０６は、ライン５５６および５５８によって示されるように、スタンバイコンテキストを揮発性メモリ５２０から不揮発性メモリ５１０にコピーしてよい。より詳細には、スタンバイコンテキストは、第１のオペレーティングシステム５０２に関連付けられる第１のコンテキスト区画５１６に保存されてよい。一度第１のオペレーティングシステム５０２のスタンバイコンテキストが不揮発性メモリ５１０にコピーされると、コントローラ５０６は、ライン５６０において、第２のオペレーティングシステム５０４のスタンバイコンテキストが第２のオペレーティングシステム５０４に関連付けられる第２のコンテキスト区画５１８に保存されたと決定してよい。さらに、第２のオペレーティングシステムのスタンバイコンテキストは、次にライン５６２によって示されるように、第２のコンテキスト区画５１８から揮発性メモリ５２０にコピーされてよい。
【００６４】
いくつかの実施形態において、コントローラ５０６は、ライン５６４において、機能もしくはシステム呼び出し、レジスタ設定、又はピンの有効化／無効化のような通信を介して、第２のオペレーティングシステム５０４をスタンバイ状態からウェイクさせてよい。第２のオペレーティングシステム５０４は、ライン５６６によって示されるように、揮発性メモリ５２０にコピーされたスタンバイコンテキストを用いて、スタンバイ状態からウェイクしてよい。第２のオペレーティングシステム５０４は、次に標準動作状態で動作してよい。さらに、第１のオペレーティングシステム５０２のスタンバイコンテキストは、不揮発性メモリ５２０に持続的に保存されてよい。
【００６５】
図５は、オペレーティングシステムをスイッチする例示的な一実施形態を示す。しかしながら、様々な実施形態は、本態様に限定されるものではなく、任意のオペレーティングシステムが、他のオペレーティングシステムにスイッチされてよい。
【００６６】
図６は、複数のオペレーティングシステムを有するコンピューティングデバイスを高速ハイバネート状態に入らせるコンポーネントフロー図６００を示す。コンポーネントフロー図６００は、コンピューティングデバイス１０５のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。
【００６７】
ライン６０２において、コントローラコンポーネント５０６は、ユーザがコンピューティングシステム又はデバイスをスタンバイ状態にしたいと希望することを示す情報を、第１のオペレーティングシステム５０２から受信してよい。コントローラコンポーネント５０６は、プロセッサコンポーネント（不図示）を介して、又はレジスタを設定し、もしくはピンを有効化／無効化する第１のオペレーティングシステム５０２によって、情報を受信してよい。図６は第１のオペレーティングシステム５０２から伝送された情報を示すが、いくつかの実施形態において、情報は、第２のオペレーティングシステム５０４又はユーザが現在システムを動作させている任意の他のオペレーティングシステムから伝送されてよい。
【００６８】
様々な実施形態において、コントローラ５０６は、ライン６０４において、スタンバイ状態に入るようオペレーティングシステムに命令してよい。示された例において、２つのオペレーティングシステムは、並列に動作する複数の処理を有してよく、コントローラ５０６は、両方のオペレーティングシステムに情報を送信する。
【００６９】
しかしながら、様々な実施形態は、本態様に限定されるものではなく、コンピューティングデバイスは、当該デバイス上で同じく動作する任意の数のオペレーティングシステムを有してよい。いくつかの実施形態において、コンピューティングデバイスは、当該デバイス上で動作する１つのオペレーティングシステムのみを有してよい。前述されたように、コントローラ５０６は、システム又は機能呼び出し、レジスタ設定、ピンの有効化／無効化等を介して、オペレーティングシステムに命令してよい。
【００７０】
オペレーティングシステム５０２、５０４は、スタンバイ状態に入ってよく、ライン６０６によって示されるように、各々が、複数のスタンバイコンテキストを揮発性メモリ５２０に保存してよい。様々な実施形態において、任意の数のオペレーティングシステムは、複数のスタンバイコンテキストを揮発性メモリに保存してよい。ライン６０８において、コントローラ５０６は、揮発性メモリ５２０から不揮発性メモリ５１０に、複数のスタンバイコンテキストのコピーを開始してよい。さらに、第１のオペレーティングシステム５０２のスタンバイコンテキストは、ライン６１０によって示されるように、第１のコンテキスト区画５１６にコピーされてよい。第２のオペレーティングシステム５０４のスタンバイコンテキストは、ライン６１２によって示されるように、第２のコンテキスト区画５１８にコピーされてよい。前述されたように、任意の数のシステムコンテキストは、不揮発性メモリ５１０のコンテキスト区画にコピーされてよい。
【００７１】
コントローラ５０６は、全てのスタンバイコンテキストが不揮発性メモリ５１０にコピーされたと決定してよく、ライン６１４によって示されるように、コンピューティングシステムをハイバネート状態にしてよい。より詳細には、複数のプロセッサコンポーネント、メモリコンポーネント等を含む様々なコンポーネントは、ＡＣＰＩ仕様書によって定義されるように、ハイバネート状態にされてよい。
【００７２】
図７Ａ／７Ｂは、複数のオペレーティングシステムを有するシステムが高速ハイバネート状態を出るコンポーネントブロックフロー図７００および７５０を示す。コンポーネントフロー図７００／７５０は、コンピューティングデバイス１０５のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。図７Ａおよび７Ｂは２つのオペレーティングシステムを有するシステムを示すが、様々な実施形態は、本態様に限定されるものではなく、システムは、任意の数のオペレーティングシステムを有してよい。図７Ａは、高速ハイバネート状態を出て第１のオペレーティングシステム５０２にブートするシステムを示し、図７Ｂは、高速ハイバネート状態を出て第２のオペレーティングシステム５０４にブートするシステムを示す。
【００７３】
ライン７０２において、コントローラ５０６は、トリガコンポーネント７２５からトリガイベントを受信し、高速ハイバネート状態の終了処理を開始してよい。トリガコンポーネント７２５は、システムが高速ハイバネート状態を含む１つ又は複数の状態を出るようにトリガすることが可能な任意のコンポーネントであってよい。例えば、トリガコンポーネント７２５は、コンピューティングデバイスの蓋に対するラッチ、ボタン、ネットワークインタフェース、マウス、トラックパッド等であってよい。さらに、トリガイベントは、トリガコンポーネント７２５によって検出可能な任意のイベントであってよい。例えば、トリガイベントは、蓋を開く又は閉じること、ボタンを押す又は押下すること、ネットワークインタフェースを介して受信された情報、マウスの又はトラックパッド上での動き等であってよい。様々な実施形態は、上述された複数の例に限定されるものではない。
【００７４】
様々な実施形態において、コントローラ５０６は、トリガイベントを受信し、高速ハイバネート状態から再開しつつ、ブート先のオペレーティングシステムを決定してよい。オペレーティングシステムは、コンピューティングデバイスが動作していた最後のオペレーティングシステム又はユーザに選択されたオペレーティングシステムであってよい。ユーザは、デバイスが高速ハイバネート状態を出る間に、又はデバイスが高速ハイバネート状態にされた場合に、オペレーティングシステムを選択していてよい。
【００７５】
この例示的な実施形態において、システムは、第１のオペレーティングシステム５０２にブートしてよく、コントローラは、ライン７０４によって示されるように、第１のコンテキスト区画５１６から揮発性メモリ５２０に、第１のオペレーティングシステムのスタンバイコンテキストのコピーを開始してよい。スタンバイコンテキストは、ライン７０６によって示されるように、揮発性メモリにコピーされてよい。第１のオペレーティングシステムは、次に、ブートアップする第１のオペレーティングシステムのスタンバイコンテキストを利用可能になってよい。
【００７６】
前述されたように、システムは高速ハイバネート状態にあるが、オペレーティングシステムは、構成されてスタンバイ状態にされていた。つまり、コントローラ５０６は、ライン７０８において、スタンバイ状態を出るための情報を、第１のオペレーティングシステム５０２に送信してよい。第１のオペレーティングシステム５０２は、揮発性メモリのスタンバイコンテキストを用いてスタンバイ状態を出て、標準動作状態にブートしてよい。
【００７７】
図７Ｂは、図７Ａと類似する。しかしながら、システムは、第２のオペレーティングシステム５０４にブートする。ライン７０２において、コントローラ５０６は、高速ハイバネートを出るためのトリガイベントを受信してよい。コントローラ５０６は、システムが第２のオペレーティングシステム５０４にブートするべきであると決定し、ライン７５２において、第２のコンテキスト区画５１８から揮発性メモリ５２０に、第２のオペレーティングシステム５０４のスタンバイコンテキストのコピーを開始してよい。さらに、スタンバイコンテキストは、ライン７５４において、揮発性メモリ５２０にコピーされてよい。最終的に、コントローラ５０６は、ライン７５６において、第２のオペレーティングシステム５０４のスタンバイ状態の終了処理を開始してよい。第２のオペレーティングシステム５０４は、揮発性メモリ５２０のスタンバイコンテキストを用いて、標準動作状態にブートしてよい。
【００７８】
図７Ａおよび７Ｂは、不揮発性メモリに保存されたスタンバイコンテキストを用いて高速ハイバネート状態を出る第１のオペレーティングシステム５０２及び第２のオペレーティングシステム５０４を示す。しかしながら、いくつかの例では、オペレーティングシステムのスタンバイコンテキストは存在しなくてよい。これらの例において、コントローラ５０６は、システム上でオペレーティングシステムの新たなインスタンスを開始してよく、ブートシーケンスは、最初から開始してよい。
【００７９】
図８は、論理フロー８００の例示的な実施形態を示す。論理フロー８００は、本明細書で説明される１つ又は複数の実施形態によって実行される複数の動作のいくつか又は全てを代表するものであってよい。例えば、論理フロー８００は、システム１００および９００によって実行される複数の動作を示してよい。
【００８０】
図８に示された実施形態において、論理フロー８００は、ブロック８０２において、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信することを含んでよい。例えば、コントローラは、現在使用中のオペレーティングシステムから異なるオペレーティングシステムへの移行をユーザが希望することを示す情報を、オペレーティングシステムから受信してよい。様々な実施形態において、ユーザは、グラフィカルユーザインタフェース（ＧＵＩ）、キーシーケンス、マウスの動き、トラックパッドの動き等の利用を含む任意の手段を介して選択を行い、移行を実行してよい。オペレーティングシステムは、呼び出し実行、レジスタ設定及びピンの有効化もしくは無効化を含む任意の通信又はシグナリング技術を用いて、移行を実行するための情報を受信し、コントローラに情報を伝達してよい。
【００８１】
ブロック８０４において、論理フロー８００は、第２のオペレーティングシステムのシステムコンテキストを不揮発性メモリの第２の位置から揮発性メモリにコピーすることを含んでよく、第２の位置は、第２のオペレーティングシステムに関連付けられる。例えば、コントローラは、第２のオペレーティングシステムのシステムコンテキストが不揮発性メモリの区画のような位置に存在すると決定してよい。コントローラは、システムコンテキストを、揮発性メモリにおいて、第２のオペレーティングシステムの区画にコピーしてよい。
【００８２】
様々な実施形態において、論理フロー８００は、ブロック８０６において、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行することを含んでよい。より詳細には、第２のオペレーティングシステムは、揮発性メモリにロードされたシステムコンテキストを用いて、スタンバイ状態を出て標準動作状態で動作してよい。いくつかの実施形態において、コントローラは、スタンバイ状態に入るよう第１のオペレーティングシステムに命令してよく、第１のオペレーティングシステムが第２のオペレーティングシステムに移行する場合に、第１のオペレーティングシステムのシステムコンテキストを第１の位置に保存してよい。しかしながら、様々な実施形態は、本態様に限定されるものではない。
【００８３】
図９は、前述された様々な実施形態を実装するために適した例示的なコンピューティングアーキテクチャ９００の実施形態を示す。一実施形態において、コンピューティングアーキテクチャ９００は、システム１００及びコンピューティングデバイス１０５を備えてよく、又は、これらの一部として実装されてよい。
【００８４】
本願で用いられるように、「システム」及び「コンポーネント」という用語は、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことが意図され、これらの例は、例示的なコンピューティングアーキテクチャ９００によって提供される。例えば、コンポーネントは、限定されるものではないが、プロセッサ上で動作中の処理、プロセッサ、ハードディスクドライブ、複数の（光及び／又は磁気記憶媒体の）ストレージドライブ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び／又はコンピュータであってよい。例として、サーバ上で動作中のアプリケーション及びサーバは、両方ともコンポーネントであってよい。１つ又は複数のコンポーネントは、処理及び／又は実行スレッド中に存在してよく、コンポーネントは、１つのコンピュータに局在してよく、及び／又は２つまたはそれより多くのコンピュータの間で分散されてよい。さらに、複数のコンポーネントは、様々なタイプの通信媒体によって互いに通信可能に結合され、動作を協調させてよい。調整は、単方向又は双方向の情報交換を伴ってよい。例えば、複数のコンポーネントは、通信媒体を介して伝達される複数の信号の形で、情報を伝達してよい。情報は、様々な信号ラインに割り当てられる複数の信号として実装されてよい。このような割り当てにおいて、各メッセージは、信号である。複数のさらなる実施形態は、しかしながら、代替的にデータメッセージを採用してよい。このようなデータメッセージは、様々な接続を介して送信されてよい。複数の例示的な接続は、並列インタフェース、シリアルインタフェース、及びバスインタフェースを含む。
【００８５】
コンピューティングアーキテクチャ９００は、１つ又は複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント、電源等のような様々な共通コンピューティング要素を含む。複数の実施形態は、しかしながら、コンピューティングアーキテクチャ９００による実装に限定されるものではない。
【００８６】
図９に示されるように、コンピューティングアーキテクチャ９００は、処理ユニット９０４と、システムメモリ９０６と、システムバス９０８とを備える。処理ユニット９０４は、図１に示されるプロセッサコンポーネント１０２を参照して説明されるもののような様々な市販のプロセッサのいずれかであってよい。
【００８７】
システムバス９０８は、限定されるものではないが、処理ユニット９０４からシステムメモリ９０６を含むシステムコンポーネントに、インタフェースを提供する。システムバス９０８は、様々な市販のバスアーキテクチャのいずれかを用いて、メモリバス（メモリコントローラがあってもなくても）、周辺バス、及びローカルバスにさらに相互接続可能ないくつかのタイプのバス構造のいずれかであってよい。複数のインタフェースアダプタは、スロットアーキテクチャを介してシステムバス９０８に接続してよい。
【００８８】
スロットアーキテクチャの例は、限定的ではなく、アクセラレーテッドグラフィックポート（ＡＧＰ）、カードバス、（拡張）インダストリスタンダードアーキテクチャ（（Ｅ）ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、ＮｕＢｕｓ、（拡張）周辺コンポーネント相互接続（ＰＣＩ（Ｘ））、ＰＣＩエクスプレス、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）等を含んでよい。
【００８９】
コンピューティングアーキテクチャ９００は、様々な製品を含んでよく、又はこれらを実装してよい。製品は、ロジックを格納するコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体の例は、揮発性メモリ又は不揮発性メモリ、リムーバブル又は非リムーバブルメモリ、消去可能又は消去不可能メモリ、書き込み可能又は再書き込み可能メモリ等を含む、電子データを格納可能な任意の有形の媒体を含んでよい。ロジックの例は、ソースコード、コンパイルコード、インタープリタコード、実行可能コード、スタティックコード、ダイナミックコード、オブジェクト指向コード、視覚コード等のような任意の適したタイプのコードを用いて実装された複数の実行可能コンピュータプログラム命令を含んでよい。複数の実施形態は、非一時的コンピュータ可読媒体上又は内部に含まれる複数の命令として、少なくとも部分的に実装されてもよく、これらの命令は、１つ又は複数のプロセッサによって読み出され及び実行され、本明細書で説明される複数の動作の性能を有効化してよい。
【００９０】
システムメモリ９０６は、様々なタイプのコンピュータ可読記憶媒体を、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電体ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化もしくは強誘電体メモリ、シリコン・酸化物・窒化物・酸化物・シリコン（ＳＯＮＯＳ）メモリ、磁気又は光カード、独立ディスク冗長アレイ（ＲＡＩＤ）ドライブなどの複数のデバイスのアレイ、ソリッドステートメモリデバイス（例えば、ＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））及び情報の格納に適した任意の他のタイプの記憶媒体のような１つ又は複数のより高速メモリユニットの形で含んでよい。図９に示された実施形態において、システムメモリ９０６は、不揮発性メモリ９１０及び／又は揮発性メモリ９１２を含んでよい。基本入出力システム（ＢＩＯＳ）は、不揮発性メモリ９１０に格納されてよい。
【００９１】
コンピュータ９０２は、内部（又は外部）ハードディスクドライブ（ＨＤＤ）９１４、リムーバブル磁気ディスク９１８から読み出すもしくはこれに書き込む磁気フロッピ（登録商標）ディスクドライブ（ＦＤＤ）９１６、リムーバブル光ディスク９２２（例えば、ＣＤ−ＲＯＭもしくはＤＶＤ）から読み出すもしくはこれに書き込む光ディスクドライブ９２０を含む１つ又は複数のより低速メモリユニットの形で、様々なタイプのコンピュータ可読記憶媒体を含んでよい。ＨＤＤ９１４、ＦＤＤ９１６及び光ディスクドライブ９２０は、ＨＤＤインタフェース９２４、ＦＤＤインタフェース９２６及び光ドライブインタフェース９２８によって、それぞれシステムバス９０８に接続されてよい。外部ドライブ実装用のＨＤＤインタフェース９２４は、ユニバーサルシリアルバス（ＵＳＢ）及びＩＥＥＥ１３９４インタフェース技術の少なくとも１つ又は両方を含んでよい。
【００９２】
複数のドライブ及び関連付けられたコンピュータ可読媒体は、データ、複数のデータ構造、複数のコンピュータ実行可能命令等の揮発性及び／又は不揮発性ストレージを提供する。例えば、オペレーティングシステム９３０、１つ又は複数のアプリケーションプログラム９３２、他のプログラムモジュール９３４、及びプログラムデータ９３６を含む多数のプログラムモジュールは、複数のドライブ及びメモリユニット９１０、９１２に格納されてよい。一実施形態において、１つ又は複数のアプリケーションプログラム９３２、他のプログラムモジュール９３４、及びプログラムデータ９３６は、例えば、システム１０５の様々なアプリケーション及び／又はコンポーネントを含んでよい。
【００９３】
ユーザは、複数のコマンド及び情報を、１つ又は複数の有線／無線入力デバイス、例えば、キーボード９３８及びマウス９４０のようなポインティングデバイスを介してコンピュータ９０２に入力してよい。複数の他の入力デバイスは、マイクロフォン、赤外線（ＩＲ）リモート制御機器、無線周波数（ＲＦ）リモート制御機器、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン（例えば、容量、抵抗等）、トラックボール、トラックパッド、センサ、スタイラス等を含んでよい。これら及び複数の他の入力デバイスは、多くの場合、システムバス９０８に結合される入力デバイスインタフェース９４２を介して処理ユニット９０４に接続されるが、並列ポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインタフェース等のような他のインタフェースによって接続されてよい。
【００９４】
モニタ９４４又は他のタイプのディスプレイデバイスも、ビデオアダプタ９４６のようなインタフェースを介してシステムバス９０８に接続される。モニタ９４４は、コンピュータ９０２の内部又は外部にあってよい。モニタ９４４に加えて、コンピュータは、典型的には、スピーカ、プリンタ等のような複数の他の周辺出力デバイスを含む。
【００９５】
コンピュータ９０２は、有線及び／又は無線通信を介してのリモートコンピュータ９４８のような１つ又は複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境で動作してよい。リモートコンピュータ９４８は、ワークステーション、サーバ、コンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメントアプライアンス、ピアデバイス又は他の共通ネットワークノードであってよく、典型的には、コンピュータ９０２に関して説明された複数の要素の多数又は全てを含むが、簡潔さを目的として、メモリ／ストレージデバイス９５０のみが示される。図示された複数の論理接続は、ローカルエリアネットワーク（ＬＡＮ）９５２及び／又はより大きい複数のネットワーク、例えばワイドエリアネットワーク（ＷＡＮ）９５４への有線／無線接続性を含む。このようなＬＡＮ及びＷＡＮネットワーキング環境は、オフィス及び企業でよく見られるものであり、その全てがグローバル通信ネットワーク、例えばインターネットに接続可能なイントラネットのようなエンタープライズワイドコンピュータネットワークを容易にする。
【００９６】
ＬＡＮネットワーキング環境で用いられる場合に、コンピュータ９０２は、有線及び／又は無線通信ネットワークインタフェース又はアダプタ９５６を介して、ＬＡＮ９５２に接続される。アダプタ９５６は、ＬＡＮ９５２への有線及び／又は無線通信を容易にしてよい。ＬＡＮ９５２は、アダプタ９５６の無線機能性と通信を行うために配置された無線アクセスポイントをさらに含んでよい。
【００９７】
ＷＡＮネットワーキング環境において用いられる場合に、コンピュータ９０２は、モデム９５８を含んでよく、又は、ＷＡＮ９５４上の通信サーバに接続され、又はＷＡＮ９５４を介して、例えばインターネットにより、通信を確立するための他の手段を有する。モデム９５８は、内部又は外部にある有線及び／又は無線デバイスであってよく、入力デバイスインタフェース９４２を介してシステムバス９０８に接続する。ネットワーク環境において、コンピュータ９０２に関して図示される複数のプログラムモジュール、又はこれらの一部は、リモートメモリ／ストレージデバイス９５０に格納されてよい。図示される複数のネットワーク接続は、例示であり、複数のコンピュータの間で通信リンクを確立する他の手段が利用可能であることが理解されよう。
【００９８】
コンピュータ９０２は、無線通信（例えば、ＩＥＥＥ８０２．１１無線変調技術）で動作可能に配置される無線デバイスのような、ＩＥＥＥ８０２規格のファミリを用いる有線及び無線デバイス又はエンティティと通信を行うように動作可能である。これは、特に少なくともＷｉＦｉ（又はＷｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、ＷｉＭＡＸ（登録商標）、及びＢｌｕｅｔｏｏｔｈ（登録商標）無線技術、３Ｇ、４Ｇ、ＬＴＥ無線技術を含む。つまり、通信は、従来のネットワークと同様に予め定義された構造であってよく、又は単純に、少なくとも２つのデバイスの間におけるアドホック通信であってよい。ＷｉＦｉネットワークは、ＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇ、ｎ等）と称される無線技術を用いて、セキュアで信頼性の高い高速無線接続性を提供する。ＷｉＦｉネットワークは、複数のコンピュータを互いに、インターネットに、及び（ＩＥＥＥ８０２．３関連の媒体及び機能を用いる）有線ネットワークに接続するために用いられてよい。
【００９９】
コンピュータシステム１００の様々な要素は、図１−８を参照して前述されたように、様々なハードウェア要素、ソフトウェア要素、又は両方の組み合わせを備えてよい。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素（例えば、トランジスタ、抵抗、キャパシタ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、又はこれらの任意の組み合わせを含んでよい。しかしながら、実施形態がハードウェア要素及び／又はソフトウェア要素を用いて実装されるか否かを決定することは、所与の実装の要望に応じて、所望の演算レート、電力レベル、耐熱性、処理サイクル量、入力データレート、出力データレート、メモリリソース、データバス速度及び他の設計又は性能上の制約のような任意の数の要因に従って変化してよい。
【０１００】
詳細な開示は、ここで、複数のさらなる実施形態に関する例の提供を行う。以下に提供される例１から３３（１−３３）は、例示かつ非限定的であることが意図される。
【０１０１】
第１の例において、少なくとも一部がハードウェアにあるロジックを備えるシステム又は装置であって、ロジックは、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信し、第２のオペレーティングシステムのシステムコンテキストを、第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーする。ロジックは、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行してもよい。
【０１０２】
第２の例において、第１の例に関連して、装置は、第１のオペレーティングシステムをスリープ状態にするロジックを備え、スリープ状態は、第１のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１０３】
第３の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのブートアップ処理中又は動作中に、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信するロジックを備える。
【０１０４】
第４の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するロジックを備える。
【０１０５】
第５の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存するロジックを備え、他の位置は、第１のオペレーティングシステムに関連付けられる。
【０１０６】
第６の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムから第１のオペレーティングシステムへの移行を実行するための情報を受信し、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーし、第１のオペレーティングシステムのシステムコンテキストを用いて、第２のオペレーティングシステムから第１のオペレーティングシステムに移行するロジックを備える。
【０１０７】
第７の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムからの移行前に、第２のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存するロジックを備える。
【０１０８】
第８の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムをスリープ状態にするロジックを備え、スリープ状態は、第２のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１０９】
第９の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含み、他の位置は、不揮発性メモリの異なる区画を含む。
【０１１０】
第１０の例において、複数の前述された例のいずれかに関連して、物品は、複数の命令を含むコンピュータ可読記憶媒体を備え、複数の命令は、実行された場合に、処理回路が、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信することと、第２のオペレーティングシステムのシステムコンテキストを、第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行することと、を可能にする。
【０１１１】
第１１の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第１のオペレーティングシステムをスリープ状態にすることを可能にし、スリープ状態は、第１のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１１２】
第１２の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第１のオペレーティングシステムのブートアップ処理中又は動作中に、第１のオペレーティングシステムから第２のオペレーティングへの移行を実行するための情報を受信することを可能にする。
【０１１３】
第１３の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行することを可能にする。
【０１１４】
第１４の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存することを可能にし、他の位置は、第１のオペレーティングシステムに関連付けられる。
【０１１５】
第１５の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第２のオペレーティングシステムから第１のオペレーティングシステムへの移行を実行するための情報を受信することと、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーすることと、第１のオペレーティングシステムのシステムコンテキストを用いて、第２のオペレーティングシステムから第１のオペレーティングシステムに移行することと、を実行することを可能にする。
【０１１６】
第１６の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第２のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存することを可能にする。
【０１１７】
第１７の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第２のオペレーティングシステムをスリープ状態にすることを可能にし、スリープ状態は、第２のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１１８】
第１８の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含み、他の位置は、不揮発性メモリの異なる区画を含む。
【０１１９】
第１９の例において、複数の前述された例のいずれかに関連して、方法は、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信する段階と、第２のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、位置は、第２のオペレーティングシステムに関連付けられる、段階と、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行する段階と、を含んでよい。
【０１２０】
第２０の例において、複数の前述された例のいずれかに関連して、方法は、第１のオペレーティングシステムをスリープ状態にする段階を含んでよく、スリープ状態は、第１のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１２１】
第２１の例において、複数の前述された例のいずれかに関連して、方法は、第１のオペレーティングシステムのブートアップ処理中又は動作中に、第１のオペレーティングシステムから第２のオペレーティングへの移行を実行するための情報を受信する段階を含んでよい。
【０１２２】
第２２の例において、複数の前述された例のいずれかに関連して、方法は、第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行する段階を含んでよい。
【０１２３】
第２３の例において、複数の前述された例のいずれかに関連して、方法は、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存する段階を含んでよく、他の位置は、第１のオペレーティングシステムに関連付けられる。
【０１２４】
第２４の例において、複数の前述された例のいずれかに関連して、方法は、第２のオペレーティングシステムから第１のオペレーティングシステムへの移行を実行するための情報を受信する段階と、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーする段階と、第１のオペレーティングシステムのシステムコンテキストを用いて、第２のオペレーティングシステムから第１のオペレーティングシステムに移行する段階と、を含んでよい。
【０１２５】
第２５の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含んでよく、他の位置は、不揮発性メモリの異なる区画を含んでよい。
【０１２６】
第２６の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信するための手段と、第２のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーするための手段であって、位置は、第２のオペレーティングシステムに関連付けられる、手段と、第２のオペレーティングシステムのシステムコンテキストを用いて、第１のオペレーティングシステムから第２のオペレーティングシステムに移行するための手段と、を含んでよい。
【０１２７】
第２７の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムをスリープ状態にするための手段を含んでよく、スリープ状態は、第１のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１２８】
第２８の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのブートアップ処理中又は動作中に、第１のオペレーティングシステムから第２のオペレーティングへの移行を実行するための情報を受信するための手段を含んでよい。
【０１２９】
第２９の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための手段を含んでよい。
【０１３０】
第３０の例において、複数の前述された例のいずれかに関連して、装置は、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存するための手段を含んでよく、他の位置は、第１のオペレーティングシステムに関連付けられる。
【０１３１】
第３１の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムから第１のオペレーティングシステムへの移行を実行するための情報を受信するための手段と、第１のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーするための手段と、第１のオペレーティングシステムのシステムコンテキストを用いて、第２のオペレーティングシステムから第１のオペレーティングシステムに移行するための手段と、を含んでよい。
【０１３２】
第３２の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存するための手段を含んでよい。
【０１３３】
第３３の例において、複数の前述された例のいずれかに関連して、装置は、第２のオペレーティングシステムをスリープ状態にするための手段を含んでよく、スリープ状態は、第２のオペレーティングシステムで動作する複数の処理の停止を含む。
【０１３４】
いくつかの実施形態は、「一実施形態」又は「実施形態」という表現を、それらの複数の派生語と共に用いて説明されてよい。これらの用語は、実施形態に関して説明された特定の機能、構造、又は特性が少なくとも一実施形態に含まれることを意味する。本明細書の様々な箇所に「一実施形態において」という語句が登場するが、これは、必ずしも全てが同じ実施形態を指すということではない。さらに、いくつかの実施形態は、「結合され」及び「接続され」という表現を、それらの派生語と共に用いて説明されてよい。これらの用語は、必ずしも互いの類義語として意図されるものではない。例えば、いくつかの実施形態は、２つ又はそれより多くの要素が、互いに直接物理的又は電気的に接触していることを示すべく、「接続され」及び／又は「結合され」という用語を用いて説明されてよい。「結合され」という用語は、しかしながら、２つ又はそれより多くの要素が、互いに直接接触していないが、なお互いに協働又は連携することを意味してもよい。
【０１３５】
強調されることは、本開示の要約書が、読み手が技術的開示の本質を迅速に把握することを可能にするために提供されることである。その理解によれば、これが請求項の範囲又は意味を解釈又は限定するために用いられるものではないと考えられる。さらに、上述された詳細な説明において、開示をストリームライン化する目的で、様々な機能が、単一の実施形態において共にグループ化されることは明らかであろう。本開示の方法は、特許請求の範囲に記載された実施形態が、各請求項に明示的に記載されたものより多くの特徴を必要とする意図を反映するものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の複数の特徴の一部にある。つまり、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれ、各請求項は、別個の実施形態として自立する。添付された特許請求の範囲において、「ｉｎｃｌｕｄｉｎｇ」及び「ｉｎ  ｗｈｉｃｈ」という用語は、それぞれ「ｃｏｍｐｒｉｓｉｎｇ」及び「ｗｈｅｒｅｉｎ」という各用語に相当する平易な英語として用いられる。さらに、「第１」、「第２」、「第３」等の用語は、単に符号として用いられ、それらの対象に数値的な要件を課すことが意図されるものではない。
【０１３６】
上述された内容は、開示されたアーキテクチャの複数の例を含む。勿論、複数のコンポーネント及び／又は方法論のあらゆる想到可能な組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせ及び変形が可能であることを認識しよう。従って、新規なアーキテクチャは、添付された特許請求の範囲の主旨及び範囲属するこのような全ての変更、修正、及び変形を包含することが意図される。
【図１】
2019050023.tif 000003
【図２】
2019050023.tif 000004
【図３】
2019050023.tif 000005
【図４】
2019050023.tif 000006
【図５】
2019050023.tif 000007
【図６】
2019050023.tif 000008
【図７Ａ】
2019050023.tif 000009
【図７Ｂ】
2019050023.tif 000010
【図８】
2019050023.tif 000011
【図９】
2019050023.tif 000012
【手続補正書】
【提出日】平成30年11月26日(2018.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサにより実行するための複数の命令のセットを格納するための非一時的なコンピュータ可読記憶媒体と、
を備え、
前記複数の命令のセットは、前記プロセッサに、
第１のオペレーティングシステムから第２のオペレーティングシステムへのスイッチを実行するための情報を受信させ、
前記第１のオペレーティングシステムを標準状態からスタンバイ状態に移行させ、
前記第１のオペレーティングシステムのスタンバイコンテキストを揮発性メモリから不揮発性メモリにコピーさせ、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための要求を受信させ、
前記第１のオペレーティングシステムの前記スタンバイコンテキストを前記不揮発性メモリから前記揮発性メモリにコピーさせ、
前記スタンバイコンテキストを用いて、前記第１のオペレーティングシステムを前記スタンバイ状態から前記標準状態に移行させる、
装置。
【請求項２】
前記スタンバイコンテキストは、前記第１のオペレーティングシステムの一つまたは複数の構成設定を含み、
前記一つまたは複数の構成設定は、レジスタ設定、アプリケーション設定、ファイル設定またはオペレーティングシステム状態設定を含む、
請求項１に記載の装置。
【請求項３】
前記標準状態は、前記第１のオペレーティングシステムについて複数の処理を実行することを含む、請求項１または２に記載の装置。
【請求項４】
前記スタンバイ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記揮発性メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む、請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記不揮発性メモリは、ハードディスクドライブまたはフラッシュメモリを含む、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記複数の命令のセットは、前記プロセッサに、前記第２のオペレーティングシステムの動作中に、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための前記情報を受信させるための複数の命令をさらに含む、請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記第１のオペレーティングシステムおよび前記第２のオペレーティングシステムは、仮想化技術を用いて単一のコンピューティングデバイス上で動作する、請求項１から７のいずれか一項に記載の装置。
【請求項９】
スイッチを実行するための前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための要求を含む、請求項１から８のいずれか一項に記載の装置。
【請求項１０】
スイッチを実行するための前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための、周辺デバイスからの要求を含む、請求項１から９のいずれか一項に記載の装置。
【請求項１１】
スイッチを実行するための前記受信した情報は、周辺デバイスで、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするためのトリガイベントが発生したことを示す、請求項１から１０のいずれか一項に記載の装置。
【請求項１２】
前記複数の命令のセットは、前記プロセッサにさらに、
前記第１のオペレーティングシステムから第３のオペレーティングシステムへのスイッチを実行するための情報を受信させ、
前記第１のオペレーティングシステムを標準状態からスタンバイ状態に移行させ、
前記第１のオペレーティングシステムの第２のスタンバイコンテキストを揮発性メモリから不揮発性メモリにコピーさせ、
前記第３のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための要求を受信させ、
前記第１のオペレーティングシステムの前記第２のスタンバイコンテキストを前記不揮発性メモリから前記揮発性メモリにコピーさせ、
前記第２のスタンバイコンテキストを用いて、前記第１のオペレーティングシステムを前記スタンバイ状態から前記標準状態に移行させる、
請求項１から１１のいずれか一項に記載の装置。
【請求項１３】
第１のオペレーティングシステムから第２のオペレーティングシステムへのスイッチを実行するための情報を受信する段階と、
前記第１のオペレーティングシステムを標準状態からスタンバイ状態に移行する段階と、
前記第１のオペレーティングシステムのスタンバイコンテキストを揮発性メモリから不揮発性メモリにコピーする段階と、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための要求を受信する段階と、
前記第１のオペレーティングシステムの前記スタンバイコンテキストを前記不揮発性メモリから前記揮発性メモリにコピーする段階と、
前記スタンバイコンテキストを用いて、前記第１のオペレーティングシステムを前記スタンバイ状態から前記標準状態に移行する段階と、
を備える方法。
【請求項１４】
前記スタンバイコンテキストは、前記第１のオペレーティングシステムの一つまたは複数の構成設定を含み、
前記一つまたは複数の構成設定は、レジスタ設定、アプリケーション設定、ファイル設定またはオペレーティングシステム状態設定を含む、
請求項１３に記載の方法。
【請求項１５】
前記標準状態は、前記第１のオペレーティングシステムについて複数の処理を実行することを含む、請求項１３または１４に記載の方法。
【請求項１６】
前記スタンバイ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１３から１５のいずれか一項に記載の方法。
【請求項１７】
前記第２のオペレーティングシステムの動作中に、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための前記情報を受信する段階をさらに備える、請求項１３から１６のいずれか一項に記載の方法。
【請求項１８】
前記第１のオペレーティングシステムおよび前記第２のオペレーティングシステムが、仮想化技術を用いて単一のコンピューティングデバイス上で動作する段階をさらに備える、請求項１３から１７のいずれか一項に記載の方法。
【請求項１９】
前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための要求を含む、請求項１３から１８のいずれか一項に記載の方法。
【請求項２０】
前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための、周辺デバイスからの要求を含む、請求項１３から１９のいずれか一項に記載の方法。
【請求項２１】
前記受信した情報は、周辺デバイスで、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするためのトリガイベントが発生したことを示す、請求項１３から２０のいずれか一項に記載の方法。
【請求項２２】
実行された場合に、システムに、
第１のオペレーティングシステムから第２のオペレーティングシステムへのスイッチを実行するための情報を受信させ、
前記第１のオペレーティングシステムを標準状態からスタンバイ状態に移行させ、
前記第１のオペレーティングシステムのスタンバイコンテキストを揮発性メモリから不揮発性メモリにコピーさせ、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための要求を受信させ、
前記第１のオペレーティングシステムの前記スタンバイコンテキストを前記不揮発性メモリから前記揮発性メモリにコピーさせ、
前記スタンバイコンテキストを用いて、前記第１のオペレーティングシステムを前記スタンバイ状態から前記標準状態に移行させる
ための複数の命令のセットを備える、少なくとも一つの非一時的なコンピュータ可読記憶媒体。
【請求項２３】
前記スタンバイコンテキストは、前記第１のオペレーティングシステムの一つまたは複数の構成設定を含み、
前記一つまたは複数の構成設定は、レジスタ設定、アプリケーション設定、ファイル設定またはオペレーティングシステム状態設定を含む、
請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記標準状態は、前記第１のオペレーティングシステムについて複数の処理を実行することを含む、請求項２２または２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記スタンバイ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項２２から２４のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項２６】
実行された場合に、前記システムに、前記第２のオペレーティングシステムの動作中に前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへスイッチするための前記情報を受信させる複数の命令をさらに備える、請求項２２から２５のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記第１のオペレーティングシステムおよび前記第２のオペレーティングシステムは、仮想化技術を用いて単一のコンピューティングデバイス上で動作する、請求項２２から２６のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための要求を含む、請求項２２から２７のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記受信した情報は、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするための、周辺デバイスからの要求を含む、請求項２２から２８のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記受信した情報は、周辺デバイスで、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへスイッチするためのトリガイベントが発生したことを示す、請求項２２から２９のいずれか一項に記載のコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
上述された内容は、開示されたアーキテクチャの複数の例を含む。勿論、複数のコンポーネント及び／又は方法論のあらゆる想到可能な組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせ及び変形が可能であることを認識しよう。従って、新規なアーキテクチャは、添付された特許請求の範囲の主旨及び範囲属するこのような全ての変更、修正、及び変形を包含することが意図される。
（項目１）
少なくとも一部がハードウェアにあるロジックを備える装置であって、前記ロジックは、
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第２のオペレーティングシステムのシステムコンテキストを、前記第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行する、装置。
（項目２）
前記ロジックは、前記第１のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１に記載の装置。
（項目３）
前記ロジックは、前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信する、請求項１に記載の装置。
（項目４）
前記ロジックは、前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する、請求項１に記載の装置。
（項目５）
前記ロジックは、前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存し、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１に記載の装置。
（項目６）
前記ロジックは、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーし、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行する、
請求項５に記載の装置。
（項目７）
前記ロジックは、前記第２のオペレーティングシステムからの移行前に、前記第２のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存する、請求項６に記載の装置。
（項目８）
前記ロジックは、前記第２のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第２のオペレーティングシステムで動作する複数の処理の停止を含む、請求項６に記載の装置。
（項目９）
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項５に記載の装置。
（項目１０）
格納された複数の命令を含む１つ又は複数の機械可読記憶媒体であって、前記複数の命令は、実行されたことに応答して、コンピューティングデバイスに、
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第２のオペレーティングシステムのシステムコンテキストを、前記第２のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行することと、
を実行させる、１つ又は複数の機械可読記憶媒体。
（項目１１）
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
（項目１２）
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信させる複数の命令を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
（項目１３）
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化させ、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する複数の命令を含む、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
（項目１４）
実行された場合に、前記コンピューティングデバイスに、前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存させる複数の命令を含み、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１０に記載の１つ又は複数の機械可読記憶媒体。
（項目１５）
実行された場合に、前記コンピューティングデバイスに、
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーすることと、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行することと、
を実行させる複数の命令を含む、請求項１４に記載の１つ又は複数の機械可読記憶媒体。
（項目１６）
実行された場合に、前記コンピューティングデバイスに、前記第２のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存させる複数の命令を含む、請求項１５に記載の１つ又は複数の機械可読記憶媒体。
（項目１７）
実行された場合に、前記コンピューティングデバイスに、前記第２のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第２のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１５に記載の１つ又は複数の機械可読記憶媒体。
（項目１８）
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項１４に記載の１つ又は複数の機械可読記憶媒体。
（項目１９）
第１のオペレーティングシステムから第２のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第２のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、前記位置は、前記第２のオペレーティングシステムに関連付けられる、段階と、
前記第２のオペレーティングシステムの前記システムコンテキストを用いて、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに移行する段階と、
を備える、方法。
（項目２０）
前記第１のオペレーティングシステムをスリープ状態にする段階を備え、前記スリープ状態は、前記第１のオペレーティングシステムで動作する複数の処理の停止を含む、請求項１９に記載の方法。
（項目２１）
前記第１のオペレーティングシステムのブートアップ処理中又は動作中に、前記第１のオペレーティングシステムから前記第２のオペレーティングへの前記移行を実行するための情報を受信する段階を備える、請求項１９に記載の方法。
（項目２２）
前記第１のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへの前記移行を実行する段階を備える、請求項１９に記載の方法。
（項目２３）
前記第１のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存する段階を備え、前記他の位置は、前記第１のオペレーティングシステムに関連付けられる、請求項１９に記載の方法。
（項目２４）
前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第１のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーする段階と、
前記第１のオペレーティングシステムの前記システムコンテキストを用いて、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに移行する段階と、
を備える、請求項２３に記載の方法。
（項目２５）
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項２３に記載の方法。
【外国語明細書】
2019050023000001.pdf