JP2017508204A - オペレーティングシステム間のスイッチ技術 - Google Patents

オペレーティングシステム間のスイッチ技術 Download PDF

Info

Publication number
JP2017508204A
JP2017508204A JP2016549729A JP2016549729A JP2017508204A JP 2017508204 A JP2017508204 A JP 2017508204A JP 2016549729 A JP2016549729 A JP 2016549729A JP 2016549729 A JP2016549729 A JP 2016549729A JP 2017508204 A JP2017508204 A JP 2017508204A
Authority
JP
Japan
Prior art keywords
operating system
volatile memory
context
operating
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016549729A
Other languages
English (en)
Other versions
JP6438039B2 (ja
Inventor
エイ. シディッキ、ファラズ
エイ. シディッキ、ファラズ
クーパー、バーンズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2017508204A publication Critical patent/JP2017508204A/ja
Application granted granted Critical
Publication of JP6438039B2 publication Critical patent/JP6438039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Abstract

様々な実施形態は、概して、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信し、第2のオペレーティングシステムのシステムコンテキストを、第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行するための装置、方法及び他の複数の技術を対象とする。

Description

[関連出願]
本願は、2014年3月20日出願の米国特許出願第14/220,812号に対する優先権を主張し、その全体は、参照によって本明細書に組み込まれる。
本明細書で説明される複数の実施形態は、概して、オペレーティングシステム間のスイッチ技術に関する。より詳細には、様々な実施形態は、概して、不揮発性メモリに保存されたシステムコンテキストを用いて、複数のオペレーティングシステムの間で高速スイッチを行うことを対象とする。
多くのコンピューティングシステムは、今日では、システム上で動作可能な1つより多くのオペレーティングシステム(OS)を有する。しかしながら、コンピューティングシステムは、概して、システム上で、1つのオペレーティングシステムのみを一度にブートする。第2のOSが必要な場合に、コンピューティングシステムはパワーダウンされ、システムは新たなオペレーティングシステムにおいてブートアップされる。しかしながら、新たなオペレーティングシステムへのリブートは、典型的には低速である。
さらに、仮想化技術を用いることによって、単一のコンピューティングデバイス上で複数のOSを用いて、単一のホストオペレーティングシステムに加えて、複数のゲストオペレーティングシステムを動作させることも可能である。しかしながら、仮想化技術は、概して、各OSが複数のハードウェアデバイスに直接アクセスすることを可能とするものではなく、特に、高速周辺機器への直接アクセスを要求するゲームのようなプログラムの性能を低下させることがある。
第1のシステムの実施形態を示す。 オペレーティングシステム間のスイッチのための論理フローを示す。 オペレーティングシステムを高速ハイバネート状態にする論理フローを示す。 オペレーティングシステムが高速ハイバネート状態を出るための論理フローを示す。 オペレーティングシステム間のスイッチのためのブロックフロー図を示す。
オペレーティングシステムを高速ハイバネート状態にするためのブロックフロー図を示す。 オペレーティングシステムが高速ハイバネート状態を出るためのブロックフロー図を示す。 オペレーティングシステムが高速ハイバネート状態を出るためのブロックフロー図を示す。 論理フロー図の実施形態を示す。 コンピューティングアーキテクチャの実施形態を示す。
様々な実施形態は、概して、オペレーティングシステムが、2013年11月13日に公開されたアドバンスド・コンフィグレーション・アンド・パワー・インタフェース(ACPI)仕様書改訂5.0aに定義されるスタンバイ又はS3状態にされた場合に、保存された複数のシステムコンテキストを用いることによって、コンピューティングデバイス上でオペレーティングシステム間のスイッチを行うこと対象とし、同仕様書は、http://acpi.info/spec.htmで公開されている。より詳細には、ロジックを有するコントローラは、その少なくとも一部がハードウェアに実装され、現在動作中のオペレーティングシステムから他のオペレーティングシステムへのスイッチ要求を受信してよい。従来、システムは、現在のオペレーティングシステムを完全にシャットダウンし、次に、新たな又は他のオペレーティングシステムを最初からブートし、全てのファイル及び構成設定をメモリ及び複数のレジスタにロードしていた。しかしながら、この処理は、非合理的に長い時間がかかることがある。
つまり、オペレーティングシステムのシステム又はスタンバイコンテキストは、複数のオペレーティングシステムの間でスイッチするために用いられてよい。スタンバイコンテキストは、複数のレジスタ設定、アプリケーション設定、ファイル設定、オペレーティングシステム状態設定等を含むオペレーティングシステムの様々な構成設定を含んでよい。オペレーティングシステムのスイッチ要求を受信すると、コントローラは、現在のオペレーティングシステムに、スタンバイ状態に入るよう命令し、オペレーティングシステムに、スタンバイコンテキストを揮発性メモリに保存させてよい。しかしながら、揮発性メモリに保存されたスタンバイコンテキストは、メモリへの電力が遮断された場合に消失することがあり、又は、他のオペレーティングシステムによって上書きされることがある。つまり、コントローラは、スタンバイコンテキストを不揮発性メモリにコピーし、さらなる利用のために保存してよい。
新たなオペレーティングシステムにスイッチする場合に、コントローラは、オペレーティングシステムのスタンバイコンテキストを不揮発性メモリにおいて特定してよく、これを揮発性メモリにコピーしてよい。新たなオペレーティングシステムのスタンバイコンテキストは、複数のオペレーティングシステムの間での前のスイッチ中に、又はオペレーティングシステムが動作していた任意の他の時点に、不揮発性メモリに保存されていてよい。一度、スタンバイコンテキストが揮発性メモリに保存されると、コントローラは、揮発性メモリのスタンバイコンテキストを用いて、新たなオペレーティングシステムをスタンバイ又はS3状態からウェイクさせてよい。新たなオペレーティングシステムは、ブートし、標準状態で動作してよい。複数のオペレーティングシステムの間でスイッチすべく、不揮発性メモリに保存された複数のスタンバイコンテキストを用いることは、完全なシャットダウン及びブートアップ処理より著しく長い時間を節約する。
オペレーティングシステム間のスイッチに加えて、様々な実施形態は、複数のオペレーティングシステムを有するシステムを高速ハイバネート状態にし、高速ハイバネート状態から出て複数のオペレーティングシステムのいずれか1つに入ることをさらに対象としてよい。これらの実施形態において、コントローラは、システムの電力を節約すべく、システムをスタンバイ又はS3状態にする要求を受信してよい。概して、システムがS3状態にされた場合に、複数の処理コンポーネント、不揮発性メモリ等のような様々なコンポーネントへの電力が遮断されるが、揮発性メモリのような複数のコンポーネントへの電力は、例えばスタンバイコンテキストを保持すべく、オンのまま維持される。しかしながら、システムがスタンバイ又はS3状態に入ることを要求した場合には、さらなる電力節約が、システムをハイバネーション又はS4状態にすることによって実現可能である。
つまり、スタンバイコンテキストは、前述されたように、電力があってもなくても、コントローラによって持続的に不揮発性メモリに保存されてよい。システムは、オペレーティングシステムのスタンバイコンテキストを消失するリスクなく、ハイバネーション又はS4状態に入ってよい。コントローラは、システムをスタンバイ又はS3状態にするための情報を受信してよく、この状態に入るよう動作中のオペレーティングシステムに命令してよい。オペレーティングシステムは、スタンバイコンテキストを揮発性メモリにコピーし、S3状態に入ってよい。コントローラは、スタンバイコンテキストを不揮発性メモリにコピーし、システムをハイバネーション又はS4状態にし、さらなる電力をS3状態より節約してよい。
様々な実施形態において、コントローラは、ハイバネーション又はS4状態を出るための情報を受信し、システムを標準動作状態にしてよい。コントローラは、どのオペレーティングシステムにシステムをブートするかを決定し、オペレーティングシステムのスタンバイコンテキストを不揮発性メモリから揮発性メモリにコピーし、スタンバイコンテキストを用いて、スタンバイ又はS3状態を出るようオペレーティングシステムに命令してよい。ブート先のオペレーティングシステムは、それがハイバネーション状態に入った場合にシステム上で動作していた最後のオペレーティングシステム、又はユーザが選択したオペレーティングシステムであってよい。ユーザは、システムがハイバネーション又はS4状態を出ていた場合、又はシステムがS4もしくはハイバネーション状態にされていた場合に、オペレーティングシステムを選択していてよい。様々な詳細は、以下の説明によってより明らかとなろう。
本明細書で用いられる複数の表記及び用語への全般的な参照により、以下の詳細な説明は、コンピュータ又は複数のコンピュータのネットワーク上で実行される複数のプログラム手順に関して示されてよい。これらの手順の説明及び表現は、当業者によって、それらの動作の本質を他の当業者に最も効果的に伝達するために用いられる。
手順は、ここで説明され、概して、所望の結果をもたらす首尾一貫した複数の動作のシーケンスと考えられる。これらの動作は、物理量の物理的操作を要求するものである。通常、これらの量は、格納、移行、組み合わせ、比較、及び他の操作が可能な電気、磁気又は光信号の形をとるが、必ずしもこれに限定されない。これは、主に共通利用の理由で、これらの信号をビット、値、要素、記号、文字、用語、数等と称することが好都合な場合があることを明らかにする。しかしながら、これらの及び同様の用語の全ては、適切な物理量に関連付けられるべきものであり、かつ、単にこれらの量に適用される好都合な符号に過ぎないことに留意されたい。
さらに、実行される複数の操作は、多くの場合、追加又は比較のような用語で称され、これは一般に、人間のオペレータによって実行される複数の精神的動作に関連付けられる。人間のオペレータのこのような能力は、本明細書で説明され、1つ又は複数の実施形態の一部を形成するいずれの動作においても、大抵の場合、必要でも望ましいものでもない。むしろ、それらの動作は、機械の動作である。様々な実施形態の動作を実行するために有用な機械は、汎用デジタルコンピュータ又は類似のデバイスを含む。
様々な実施形態は、これらの動作を実行するための装置又はシステムにさらに関する。この装置は、要求された目的のために特別に構築されてよく、又は、そのコンピュータに格納されたコンピュータプログラムによって選択的にアクティベートもしくは再構成される汎用コンピュータを備えてよい。本明細書に示される複数の手順は、本来的には、特定のコンピュータ又は他の装置に関するものではない。様々な汎用機械が本明細書の教示に従って記述されたプログラムと共に利用可能であり、あるいは、より特化された装置を構築し、要求された方法の複数の段階を実行することが好都合であることが明らかにされよう。様々なこれらの機械に要求される構造は、所与の説明から明らかとなろう。
ここで、図面が参照され、同様の参照番号は、全体において、同様の要素を指すために用いられる。以下の説明において、説明目的のために、多数の具体的な詳細が、これらの十分な理解を提供すべく、示される。しかしながら、新規な実施形態は、これらの具体的な詳細がなくとも、実施可能であることは明らかであろう。他の複数の例において、周知の構造及びデバイスは、これらの説明を容易にすべく、ブロック図の形で示される。その意図は、特許請求の範囲に記載された主題に合致する全ての変更、均等物、及び代替物を対象とするものである。
図1は、本明細書で説明される様々な実施形態の実装に適したシステム100の実施形態を示す。システム100は、オペレーティングシステム間のスイッチと、高速ハイバネート状態への出入りとを処理及び有効化する様々なコンポーネントを有するコンピューティングデバイス105を含む。様々な実施形態において、システム100は、任意の数のオペレーティングシステムをシステム上に有してよく、これらは、限定されるものではないが、Windows(登録商標)OS、アップル(登録商標)OS、Linux(登録商標)OS、UNIX(登録商標)OS等を含む任意のタイプのオペレーティングシステムであってよい。
図1は、コントローラ106を含む基本入出力システム(BIOS)104に結合されるプロセッサコンポーネント102を含むコンピューティングデバイス105を示す。さらに、コンピューティングデバイス105は、不揮発性メモリ110及び揮発性メモリ120をさらに含む。プロセッサコンポーネント102、BIOS104、不揮発性メモリ110及び揮発性メモリ120は、相互接続143のような1つ又は複数の相互接続を介して通信を行ってよく、これらは、任意のタイプのバス、トレース等であってよい。
図1は特定数のコンポーネントを示すが、様々な実施形態は、本態様に限定されるものではなく、コンピューティングシステム105は、任意の数のコンポーネントを含んでよい。さらに、図1は、様々なコンポーネントを、スタンドアロンコンポーネントとして、又は複数の他のコンポーネントの一部として示す。例えば、図1は、コントローラ106を含むBIOS104を示す。
しかしながら、様々な実施形態は、本態様に限定されなくてよく、いくつかの実施形態においては、コントローラ106は、スタンドアロンコンポーネントであってよく、又はBIOS104に含まれなくてよい。図1は、揮発性メモリ120をスタンドアロンコンポーネントとしてさらに示す。しかしながら、様々な実施形態において、揮発性メモリ120は、プロセッサコンポーネント102の一部であってよい。さらに、プロセッサコンポーネント102は、それ自体の揮発性メモリコンポーネントを有してよい。様々な実施形態は、これに関して限定されるものではない。
様々な実施形態において、コンピューティングデバイス105は、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、一方向ページャ、二方向ページャ、メッセージングデバイス、コンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、マルチプロセッサシステム、プロセッサベースシステム、又はこれらの任意の組み合わせのような任意のタイプのコンピューティングデバイスを含んでよい。複数の実施形態は、これに関して限定されるものではない。
プロセッサコンポーネント102は、限定されるものではないが、マイクロプロセッサ、プロセッサ、中央処理装置、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ(SoC)デバイス、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セット(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は単一のチップもしくは集積回路上の任意の他のタイプのプロセッサもしくは処理回路のような任意のタイプの演算要素の1つ又は複数であってよい。プロセッサコンポーネント102は、相互接続143を介して、コンピューティングシステムの複数の他の要素に接続され、これらと通信を行ってよい。さらに、プロセッサコンポーネント102は、コアの処理に必須ではない情報、複数の命令等を処理するロジックを含むアンコアコンポーネントのような複数の他のコンポーネントを含んでよい。
様々な実施形態において、コンピューティングデバイス105は、コンピューティングデバイス105のデータ、情報、及び複数の命令を格納するための不揮発性メモリ110を含んでよい。不揮発性メモリ110は、メモリに電力が供給される場合又は電力が供給されない場合に、データ、情報、複数の命令等を持続的に格納可能な任意のタイプの不揮発性メモリであってよい。不揮発性メモリ110は、フラッシュメモリ、ソリッドステートドライブ(SSD)、強誘電体ランダムアクセスメモリ(F−RAM)、光ディスク、リードオンリメモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、SONOS、プログラム可能メタライゼーションセル、レーストラックメモリ、ナノRAM、ミリピードメモリ、相変化メモリ(PCM)等を含んでよい。
様々な実施形態において、不揮発性メモリ110は、複数の領域に分割され、コンピューティングシステム105の1つ又は複数のオペレーティングシステムを格納してよい。より詳細には、以下、さらに詳細に説明されるように、不揮発性メモリ110は、多数の異なる区画に分割されてよく、複数のオペレーティングシステム空間区画と、コンピューティングデバイス上にインストールされ又はここで有効化される複数のオペレーティングシステムの各々の複数のシステムコンテキストを保存する複数の区画とを含んでよい。コンピューティングシステム105は、揮発性メモリ120をさらに含んでよく、これは、情報を格納せず、電力がメモリに供給されない任意のタイプのメモリであってよい。揮発性メモリ120は、限定されるものではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、T−RAM、Z−RAM等を含んでよい。
揮発性メモリ120は、情報を格納してよく、以下、より詳細に説明されるように、オペレーティングシステムは、システムがスタンバイ状態にされた場合に、そのスタンバイコンテキストを揮発性メモリに保存してよい。スタンバイコンテキストは、スタンバイ状態に入った時点で用いられていた複数のオープンドキュメント及びプログラム(アプリケーション)を含んでよい。いくつかのチップセットレジスタの内容は、スタンバイコンテキストの一部として、揮発性メモリにさらに書き込まれてよい。スタンバイコンテキストは、揮発性メモリ120への電力が無効化される前に、不揮発性メモリ110に書き込まれ、又はこれに保存され、スタンバイコンテキストを持続的に保存してよい。いくつかの実施形態において、スタンバイコンテキストは、複数のオペレーティングシステムの間で迅速に移行するためにさらに用いられてよい。様々な実施形態において、コンピューティングデバイスは、オペレーティングシステム間のスイッチを実行すること、コンピューティングデバイスを高速ハイバネート状態にすること、高速ハイバネート状態から再開することを含むコンピューティングデバイス105の様々な態様を制御するためのコントローラ106を有するBIOS104を含んでよい。BIOS104は、複数のシステムBIOS命令を提供する。より詳細には、BIOSソフトウェアは、ファームウェアとしてコンピューティングデバイス105に構築されてよく、電源オンにされた場合に、コンピューティングデバイス105によって動作させられる第1のソフトウェアである。BIOS104は、システムコンポーネントを初期化及び試験し、ブートローダ又はオペレーティングシステムを不揮発性メモリ110のようなメモリデバイスからロードしてよい。
図1はコントローラ106をBIOS104の一部として示すが、様々な実施形態は、本態様に限定されなくてよく、コントローラ106は、スタンドアロンコンポーネントであってよく、相互接続143を介して複数の他のコンポーネントと通信を行ってよい。さらに、コントローラ106は、ロジックを含んでよく、ハードウェア、ソフトウェア、又はこれらの組み合わせで実装されてよい。
いくつかの実施形態において、他のオペレーティングシステムにスイッチ又は移行する場合に、コントローラ106は、ユーザがコンピューティングデバイス105上で動作中の現在のオペレーティングシステムから、コンピューティングデバイス105上にインストールされ又はここで動作可能な他のオペレーティングシステムにスイッチしたいということを示す情報を受信してよい。コントローラ106は、現在動作中のオペレーティングシステムに、スタンバイ状態に入るよう命令し、情報を送信してよい。スタンバイ状態に入ることによって、オペレーティングシステムは、様々なレジスタに格納された情報と、スタンバイ状態に入った時点で用いられていた複数のオープンドキュメント及びプログラム(アプリケーション)に関する情報とを含むスタンバイコンテキストを保存してよい。現在のオペレーティングシステムの複数の処理のいくつか又は全ては、一度スタンバイコンテキストが揮発性メモリにコピーされると、停止させられてもよい。
コントローラ106は、揮発性メモリ120に保存されたスタンバイコンテキストを不揮発性メモリ110にコピーし、又はコピー及び除去し、持続的な状態で情報を維持してよい。スタンバイコンテキストは、不揮発性メモリ110において、スイッチ元のオペレーティングシステムに関連付けられる特定位置に保存されてよい。様々な実施形態において、特定位置は、オペレーティングシステムのコンテキスト区画であってよい。
コントローラ106は、次に、揮発性メモリ120から情報を除去し、又は他のオペレーティングシステムに情報への上書きを許可してよい。一度オペレーティングシステムのスタンバイコンテキストが不揮発性メモリ110に保存されると、コントローラ106は、他のオペレーティングシステムにスイッチしてよい。いくつかの実施形態において、コントローラ106は、スタンバイコンテキストが他のオペレーティングシステム又はスイッチ先のオペレーティングシステムのために不揮発性メモリ110に存在するか否かを決定してよく、スタンバイコンテキストを揮発性メモリ120にコピーしてよい。コントローラ106は、揮発性メモリ120にコピーされたスタンバイコンテキストを用いて、スタンバイ状態を出るよう他のオペレーティングシステムに命令してよい。しかしながら、スイッチ先のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリ110に存在しない場合に、コントローラ106は、ブートシーケンスを開始し、オペレーティングシステムの新たなインスタンスをロードしてよい。
様々な実施形態において、コントローラ106は、複数のオペレーティングシステムとの間で、1つ又は複数のシステム呼び出し、機能呼び出し等として複数のメッセージを送信及び受信することによって、1つ又は複数の相互接続143を用いてプロセッサコンポーネント102を介してオペレーティングシステムと通信を行ってよい。さらに、コントローラ106は、1つ又は複数のレジスタ又は制御ピンを有効化又は無効化し、オペレーティングシステムに、様々なスリープ状態に入る又はこれらから出させてよい。様々な実施形態は、本態様に限定されるものではなく、コントローラ106は、複数のオペレーティングシステムと任意の態様で通信を行ってよい。
様々な実施形態において、コントローラ106は、不揮発性メモリ120に保存された複数のスタンバイコンテキストを用いることによって、ユーザに、任意の数のオペレーティングシステムの間におけるスイッチを有効化させてよい。コントローラ106は、スイッチ元の複数のオペレーティングシステムの複数のスタンバイコンテキストを不揮発性メモリ110に保存してよく、スイッチ先の複数のオペレーティングシステムの複数のスタンバイコンテキストを揮発性メモリ120にロードしてよい。複数のオペレーティングシステムの完全なシャットダウン及びスタートアップシーケンスが要求されないので、著しく長い時間及び処理電力が、スタンバイコンテキストを用いることによって節約可能である。さらに、複数のスタンバイコンテキストは、ユーザ用の構成及び複数の設定を保存するために用いられてよく、これにより、ユーザが元のオペレーティングシステムにスイッチした場合に、これを同じ構成とすることができる。
コントローラ106は、保存された複数のスタンバイコンテキストを用いることによって、ユーザに、コンピューティングデバイス105を高速ハイバネート状態にさせ、高速ハイバネート状態から1つ又は複数のオペレーティングシステムのいずれか1つで再開することを可能とさせてもよい。より詳細には、コントローラ106は、複数のオペレーティングシステムに、スタンバイ状態に入るよう命令し、オペレーティングシステムに、スタンバイコンテキストを揮発性メモリ120に保存させてよい。しかしながら、システムは、次に、スタンバイコンテキストを不揮発性メモリ110にコピーし、実際にシステムをハイバネーション状態にしてよい。
例えば、コントローラ106は、現在動作中のオペレーティングシステムから、ユーザがシステムをスタンバイ状態にしたいという情報を受信してよい。情報は、グラフィカルユーザインタフェースを介してのユーザ選択、コンピューティングデバイスの蓋(不図示)を閉じること、コンピューティングデバイスのボタン(不図示)を押す又は押下すること等に応答して、受信されてよい。現在動作中のオペレーティングシステムは、スタンバイコンテキストを揮発性メモリ120に保存してよく、コントローラ106は、動作中の複数の処理を有する任意の複数の他のオペレーティングシステムに、それらのスタンバイコンテキストを同様に揮発性メモリ120に保存するようさらに命令してよい。コントローラ106は、コンピューティングデバイス105の複数のオペレーティングシステムの各々の複数のスタンバイコンテキストを、不揮発性メモリ110に保存してよい。いくつかの実施形態において、コントローラ106は、複数のスタンバイコンテキストを、複数のオペレーティングシステムの各々に関連付けられる複数のコンテキスト区画に保存してよい。
一度全てのスタンバイコンテキストが不揮発性メモリ110に保存されると、コントローラ106は、1つ又は複数のメッセージを伝達すること、レジスタを設定すること又は1つ又は複数のピンを有効化することによって、コンピューティングデバイス105をハイバネーション状態にしてよい。ハイバネーション状態にある場合、コンピューティングシステム105は、プロセッサコンポーネント102、揮発性メモリ120、不揮発性メモリ110及びACPI仕様書に定義される任意の他のコンポーネントを含む様々なコンポーネントへの電力をオフにしてよい。コンピューティングデバイス105は、トリガイベント発生までハイバネーション状態のままであってよい。
様々な実施形態において、トリガイベントは、蓋を開けること、ボタンを押すこと、ボタンを押下すること、マウスを動かすこと、ネットワークインタフェースを介して受信された通信等であってよい。コントローラ106は、トリガイベントが発生したことを示す情報を受信してよく、コンピューティングデバイス105上で再開処理を開始してよい。コントローラ106は、コンピューティングデバイス105上で有効化された複数のオペレーティングシステムのいずれか1つを再開して標準動作状態にしてよい。コントローラ106は、コンピューティングデバイス105を再開して、デバイス上で動作した最後のオペレーティングシステムにしてよく、又はデバイスが高速ハイバネーション状態にされた場合に受信されたユーザ選択に基づくオペレーティングシステムにしてよい。あるいはコントローラ106は、ハイバネーション状態から出た場合に、初期ブート処理中にユーザ選択を受信してよい。より詳細には、ユーザは、コンピューティングデバイス105のブート先のオペレーティングシステムを選択するための選択リストを示されてよい。
一度コントローラ106がブート先のオペレーティングシステムを決定すると、オペレーティングシステムのスタンバイコンテキストは、不揮発性メモリ120から揮発性メモリ110にコピーされてよい。スタンバイコンテキストは、不揮発性メモリ110のコンテキスト区画に配置されてよく、コンテキスト区画は、ブート先のオペレーティングシステムに関連付けられてよい。コントローラ106は、スタンバイコンテキストを用いて、オペレーティングシステムに、コンピューティングデバイス105上でのスタンバイ状態を出て、スタンバイコンテキストに保存された同じ構成となるよう命令してよい。いくつかの実施形態において、コンピューティングデバイス105のロード先であるオペレーティングシステムのスタンバイ状態は、保存されなくてよく、コントローラ106は、オペレーティングシステムの完全なブート処理を開始してよい。いくつかの実施形態において、オペレーティングシステムのスタンバイコンテキストを用いての再開は、オペレーティングシステムの新たなインスタンスをブートするより迅速に行われる。
図2は、オペレーティングシステム間のスイッチの論理フロー200の例示的な実施形態を示す。論理フロー200は、例示目的のために、図1のコンピューティングデバイス105を参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
ブロック202において、コントローラ106は、オペレーティングシステム間でスイッチするための情報を受信してよい。より詳細には、情報は、ユーザが第1のオペレーティングシステムから第2のオペレーティングシステムへのスイッチを希望することを示す。前述されたように、第1のオペレーティングシステム及び第2のオペレーティングシステムは、Windows(登録商標)OS(登録商標)、アップルOS(登録商標)、Linux(登録商標)OS(登録商標)、UNIX(登録商標)OS(登録商標)等を含む任意のタイプのオペレーティングシステムであってよい。情報は、第1のオペレーティングシステムの中で動作しつつ、グラフィカルユーザインタフェースを介してユーザ選択によって生成されてよく、コントローラ106によって受信されてよい。いくつかの実施形態において、コンピューティングデバイス105は、当該デバイス上で有効化される任意の数のオペレーティングシステムを有してよく、情報は、ユーザがどのオペレーティングシステムへのスイッチを希望するかをさらに示してよい。
様々な実施形態において、コントローラ106は、ブロック204において、第1のオペレーティングシステムに、ACPI仕様書によって定義されるS3状態のようなスタンバイ状態に入るよう命令してよい。第1のオペレーティングシステムは、S3状態に入る場合に、スタンバイコンテキストを揮発性メモリ120に保存してよい。スタンバイコンテキストは、複数のレジスタ設定、アプリケーション設定、ファイル設定、オペレーティングシステム状態設定等を含む第1のオペレーティングシステムの様々な構成設定を含んでよい。
様々な実施形態において、論理フロー200は、ブロック206において、第1のオペレーティングシステムのスタンバイコンテキストを不揮発性メモリ110にコピー又は保存することを含んでよい。様々な実施形態において、コントローラ106は、第1のオペレーティングシステムのスタンバイコンテキストを揮発性メモリ120から不揮発性メモリ110にコピーしてよい。より詳細には、コントローラ106は、スタンバイコンテキストを第1のオペレーティングシステムに関連付けられる第1のコンテキスト区画にコピーし、スタンバイコンテキストを持続的に保存してよい。いくつかの実施形態において、コントローラ106は、一度スタンバイコンテキストが不揮発性メモリ110にコピーされると、これを揮発性メモリ120から除去してよい。しかしながら、同じ又は他の複数の実施形態において、コントローラ106は、スタンバイコンテキストが揮発性メモリ120に保存されたままにすることを可能にしてよい。
決定ブロック208において、コントローラ106は、第2のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリ110に存在するか又は存在しないかを決定してよい。第2のオペレーティングシステムのスタンバイコンテキストが不揮発性メモリに存在する場合、コントローラ106は、ブロック210において、スタンバイコンテキストを不揮発性メモリ110から揮発性メモリ120にコピーしてよい。様々な実施形態において、スタンバイコンテキストは、第2のオペレーティングシステムに関連付けられる第2のコンテキスト区画から揮発性メモリ120にコピーされてよい。
様々な実施形態において、コントローラ106は、ブロック212において、第2のオペレーティングシステムを開始し、又はこれにスタンバイ状態又はS3状態を出るよう命令してよい。第2のオペレーティングシステムは、コントローラ106によって揮発性メモリ120にロードされる第2のオペレーティングシステムのスタンバイコンテキストを用いてスタンバイ状態を出てよい。いくつかの実施形態において、第2のオペレーティングシステムは、レジスタの有効化又は設定、ピン、システム呼び出し等の設定を行うコントローラ106を介して、スタンバイを出るための情報を受信してよい。第2のオペレーティングシステムは、スタンバイ状態を出て、標準動作状態で動作してよい。
決定ブロック208において、第2のオペレーティングシステムが不揮発性メモリ110に保存されたスタンバイコンテキストを有さない場合に、コントローラ106は、ブロック214において、第2のオペレーティングシステムの新たなインスタンスを開始してよい。第2のオペレーティングシステムは、同様の任意のオペレーティングシステムをロードし、電力オフ状態からブートしてよい。
論理フロー200は、数が付された複数のブロックを特定の順序で示すが、様々な実施形態は本態様に限定されるものではなく、論理フロー200の複数のブロックは、任意の順序で行われてよい。さらに、論理フロー200は、任意の回数繰り返されてよく、コンピューティングデバイスは、任意の数のオペレーティングシステムの間でスイッチしてよい。
図3は、複数のオペレーティングシステムを高速ハイバネート状態にするための論理フロー300の例示的な実施形態を示す。論理フロー300は、例示目的のために、図1のコンピューティングデバイス105及び複数のコンポーネントを参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
ブロック302において、コントローラ106は、コンピューティングデバイス105をスタンバイ状態にするための情報を受信してよい。しかしながら、コンピューティングデバイス105をスタンバイ状態にする要求を受信したことに応答して、コントローラ106は、コンピューティングデバイス105を高速ハイバネート状態にし、スタンバイコンテキストを不揮発性メモリ110に持続的に保存してよい。さらに、コンピューティングデバイス105をスタンバイ状態にするための情報は、ユーザ選択、コンピュータの蓋を閉じたこと、ボタンを押したこと等のようなトリガイベントに基づいて受信されてよい。
様々な実施形態において、コントローラ106は、ブロック304において、コンピューティングデバイス105上で動作中の1つ又は複数の処理を有する全オペレーティングシステムに、スタンバイ状態に入るよう命令し、又はそのための情報を送信してよい。各オペレーティングシステムは、スタンバイ状態に入り、スタンバイコンテキストを揮発性メモリ120に保存して、スタンバイ状態を出る場合に用いてよい。前述されたように、各オペレーティングシステムの複数のスタンバイコンテキストは、オペレーティングシステムの構成情報を含んでよい。さらに、コントローラ106は、決定ブロック306において、コンピューティングデバイス106上で動作中の1つ又は複数の処理を有する各オペレーティングシステムがスタンバイ状態にあるか否かを決定してよい。
決定ブロック306において、コントローラ106が、各オペレーティングシステムがスタンバイ状態にないと決定した場合に、コントローラ106は、ブロック308において、遅延期間だけ待機し、全オペレーティングシステムがスタンバイ状態にあるか否かを再度チェックしてよい。その期間は、数秒、数ミリ秒、数マイクロ秒、数ナノ秒等の任意の期間であってよい。例えば、コントローラ106は、1ミリ秒待機し、全オペレーティングシステムがスタンバイ状態にあるか否かを再度チェックしてよい。様々な実施形態は、この例に限定されるものではなく、遅延期間は、任意の時間長であってよい。この処理は、全オペレーティングシステムがスタンバイ状態になるまで、又は特定数の決定がなされるまで、繰り返されてよい。
決定ブロック306において、コントローラ106が、各オペレーティングシステムがスタンバイ状態にあると決定した場合に、コントローラ106は、ブロック310において、各スタンバイコンテキストを揮発性メモリ120から、不揮発性メモリ110における、複数のオペレーティングシステムの各々の個別のコンテキスト区画にコピーしてよい。例えば、コントローラは、第1のオペレーティングシステムのスタンバイコンテキストを揮発性メモリ120から不揮発性メモリ110の第1のコンテキスト区画にコピーし、第2のオペレーティングシステムのスタンバイコンテキストを不揮発性メモリ110の第2のコンテキスト区画にコピーしてよい。コントローラ106は、任意の数のオペレーティングシステムのスタンバイコンテキストをコピーしてよい。
決定ブロック312において、コントローラ106は、複数のオペレーティングシステムの各々の全てのスタンバイコンテキストが、不揮発性メモリ110にコピーされたか否かを決定してよい。複数のスタンバイコンテキストが不揮発性メモリ110に完全にコピーされていなかった場合に、コントローラは、ブロック314において、遅延期間だけ待機してよい。コントローラ106は、全てのスタンバイコンテキストが不揮発性メモリ110にコピーされるまで、遅延期間だけ待機すること、多くの回数続けてよい。遅延期間は、任意の期間であってよい。
ブロック312において、コントローラ106が、全スタンバイコンテキストが不揮発性メモリ110にコピーされたと決定した場合に、コントローラ106は、ブロック316において、ACPI仕様書に定義されるコンピューティングデバイス105をハイバネート又はS4状態にしてよい。コンピューティングデバイス105は、いくつかの実施形態において、トリガイベントがコントローラ106又はコンピューティングデバイス105に受信されるまで、ハイバネート状態のままであってよい。
図4は、複数のオペレーティングシステムについて、高速ハイバネート状態を出るための論理フロー400の例示的な実施形態を示す。論理フロー400は、例示目的のために、図1のコンピューティングデバイス105及び複数のコンポーネントを参照して説明される。しかしながら、様々な実施形態は、本態様に限定されるものではなく、論理フローは、任意のコンピューティングシステム又はデバイス上で実装されてよい。
ブロック402において、コントローラ106は、システム又はコンピューティングデバイス105を高速ハイバネート状態からウェイクさせるための情報を受信してよい。コントローラ106は、コンピュータの蓋を開けること、ボタンを押す又は押下すること、ネットワーク接続を介して受信された情報、マウスの又はトラックパッド上での動き等のようなトリガイベントに応答して、情報を受信してよい。様々な実施形態は、本態様に限定されるものではなく、コントローラ106は、任意の数のトリガイベントに基づいて、情報を受信してよい。さらに、コントローラ106は、1つ又は複数の信号、ピン又はレジスタの設定等のような通信を介して、情報を受信してよい。
様々な実施形態において、コントローラ106は、どのオペレーティングシステムがコンピューティングデバイス105のブート先となるかを決定してよい。コントローラ106の決定は、コンピューティングシステム105が高速ハイバネート状態にされていた場合には、受信された情報に基づいてなされてよい。例えば、コントローラ106は、高速ハイバネート状態から再開する場合に、どのオペレーティングシステムをロードするかを示す情報を受信していてよい。さらに、コントローラ106は、デバイスが高速ハイバネート状態にされていた場合に、コンピューティングデバイス105が最後にロードされていたオペレーティングシステムで再開してよい。コントローラ106は、ユーザインタフェース又はユーザ用メニューが、初期ブートシーケンス中に、いずれのオペレーティングシステムをロード先にするかの選択をさらに可能としてよい。
コントローラ106は、決定ブロック406において、コンピューティングデバイス105のブート先となるべきオペレーティングシステムのスタンバイコンテキストが、不揮発性メモリ110に存在するか否かを決定してよい。コントローラ106が、オペレーティングシステムのスタンバイコンテキストが存在すると決定した場合に、コントローラ106は、ブロック408において、スタンバイコンテキストを揮発性メモリ120にロードしてよい。様々な実施形態において、スタンバイコンテキストは、オペレーティングシステムに関連付けられる不揮発性メモリ110のコンテキスト区画から揮発性メモリ120にロードされてよい。コントローラ106は、ブロック410において、オペレーティングシステムをスタンバイ状態から標準オペレーティングシステムにウェイクさせてよい。コントローラ106は、システム呼び出し、レジスタの利用可能性、ピン設定等として情報を送信して、オペレーティングシステムをウェイクさせてよく、オペレーティングシステムは、揮発性メモリにロードされたスタンバイコンテキストを用いて、スタンバイ状態から再開してよい。
ブロック406において、コントローラ106が、オペレーティングシステムのコンテキストが不揮発性110に存在しないと決定した場合に、コントローラ106は、ブロック412において、オペレーティングシステムの新たなインスタンスを開始してよい。オペレーティングシステムの新たなインスタンスは、ブート先となる場合に、標準的な又は完全なブート処理を経てよく、一度完全にブートアップすると、標準状態で動作してよい。
図5は、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でスイッチするためのコンポーネントフロー図500を示す。コンポーネントフロー図500は、コンピューティングデバイス105のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。図5は、第1のオペレーティングシステム502と、第2のオペレーティングシステム504と、コントローラ506と、不揮発性メモリ510と、揮発性メモリ520とを含む。いくつかの実施形態において、コントローラ506、不揮発性メモリ510及び揮発性メモリ520は、図1において同じ符号を付されたコンポーネントと類似又は同じであってよい。しかしながら、様々な実施形態は、本態様に限定されるものではない。
さらに、不揮発性メモリ510は、任意の数の領域に分割されてよく、又は、複数の区画は、第1のオペレーティングシステム502のための第1のオペレーティングシステム空間512と、第2のオペレーティングシステム504のための第2のオペレーティングシステム空間514と、第1のコンテキスト区画516と、第2のコンテキスト区画518と、を含む。オペレーティングシステムのオペレーティングシステム空間は、対応するオペレーティングシステムが不揮発性メモリ510において、データ、情報、複数のファイル、複数のアプリケーション等を格納する専用空間であってよい。各オペレーティングシステムは、専用のオペレーティングシステム空間を有し、情報が他のオペレーティングシステムによって上書きされないことを保証してよい。いくつかの実施形態において、オペレーティングシステム空間は、不揮発性メモリ510の区画であってよい。
前述されたように、各オペレーティングシステムは、不揮発性メモリ510においてスタンバイコンテキスト区画を含んでよい。図5に示されるように、第1のオペレーティングシステム502は、第1のコンテキスト区画516に関連付けられてよく、第2のオペレーティングシステム504は、第2のコンテキスト区画518に関連付けられてよい。スタンバイコンテキスト区画は、関連付けられたオペレーティングシステムのスタンバイコンテキストを格納し、オペレーティングシステム間のスイッチ、複数のオペレーティングシステムと共に高速ハイバネートに入ること、及び複数のオペレーティングシステムと共に高速ハイバネートを出ることを可能とする。コンピューティングデバイスの各オペレーティングシステムは、対応する又は関連付けられたスタンバイコンテキスト区画を含んでよい。
図5は、コンピューティングシステムの複数のコンポーネントの間における様々な通信を示す。示された例示的な実施形態において、ユーザは、第1のオペレーティングシステム502においてコンピューティングデバイスを動作させてよい。ライン550において、コントローラ506は、ユーザが第1のオペレーティングシステム502から第2のオペレーティングシステム504へのスイッチを希望していることを示す情報を、第1のオペレーティングシステム502から受信してよい。情報を受信したことに応答して、コントローラ506は、ライン552において、スタンバイ状態に入るよう第1のオペレーティングシステム502と通信を行い、又はこれに命令してよい。通信は、システム又は機能呼び出し、レジスタ設定等を含む任意の形でなされてよい。
様々な実施形態において、第1のオペレーティングシステム502は、スタンバイ状態に入る命令を受信してよく、ライン554によって示されるように、スタンバイコンテキストを揮発性メモリ520に保存してよい。スタンバイコンテキストは、複数のオペレーティングシステム設定、レジスタ、アプリケーション設定、ファイル等を含んでよい。図5は第1のオペレーティングシステム502から揮発性メモリに延びるライン554を示すが、スタンバイコンテキスト情報は、揮発性メモリ自体における複数の位置のようなデバイスの様々なコンポーネントから、又は第1のOS空間514から伝送されてよい。いくつかの実施形態において、情報は、1つ又は複数のプロセッサコンポーネント(不図示)によって決定され、揮発性メモリ520に保存されてよい。
コントローラ506は、ライン556および558によって示されるように、スタンバイコンテキストを揮発性メモリ520から不揮発性メモリ510にコピーしてよい。より詳細には、スタンバイコンテキストは、第1のオペレーティングシステム502に関連付けられる第1のコンテキスト区画516に保存されてよい。一度第1のオペレーティングシステム502のスタンバイコンテキストが不揮発性メモリ510にコピーされると、コントローラ506は、ライン560において、第2のオペレーティングシステム504のスタンバイコンテキストが第2のオペレーティングシステム504に関連付けられる第2のコンテキスト区画518に保存されたと決定してよい。さらに、第2のオペレーティングシステムのスタンバイコンテキストは、次にライン562によって示されるように、第2のコンテキスト区画518から揮発性メモリ520にコピーされてよい。
いくつかの実施形態において、コントローラ506は、ライン564において、機能もしくはシステム呼び出し、レジスタ設定、又はピンの有効化/無効化のような通信を介して、第2のオペレーティングシステム504をスタンバイ状態からウェイクさせてよい。第2のオペレーティングシステム504は、ライン566によって示されるように、揮発性メモリ520にコピーされたスタンバイコンテキストを用いて、スタンバイ状態からウェイクしてよい。第2のオペレーティングシステム504は、次に標準動作状態で動作してよい。さらに、第1のオペレーティングシステム502のスタンバイコンテキストは、不揮発性メモリ520に持続的に保存されてよい。
図5は、オペレーティングシステムをスイッチする例示的な一実施形態を示す。しかしながら、様々な実施形態は、本態様に限定されるものではなく、任意のオペレーティングシステムが、他のオペレーティングシステムにスイッチされてよい。
図6は、複数のオペレーティングシステムを有するコンピューティングデバイスを高速ハイバネート状態に入らせるコンポーネントフロー図600を示す。コンポーネントフロー図600は、コンピューティングデバイス105のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。
ライン602において、コントローラコンポーネント506は、ユーザがコンピューティングシステム又はデバイスをスタンバイ状態にしたいと希望することを示す情報を、第1のオペレーティングシステム502から受信してよい。コントローラコンポーネント506は、プロセッサコンポーネント(不図示)を介して、又はレジスタを設定し、もしくはピンを有効化/無効化する第1のオペレーティングシステム502によって、情報を受信してよい。図6は第1のオペレーティングシステム502から伝送された情報を示すが、いくつかの実施形態において、情報は、第2のオペレーティングシステム504又はユーザが現在システムを動作させている任意の他のオペレーティングシステムから伝送されてよい。
様々な実施形態において、コントローラ506は、ライン604において、スタンバイ状態に入るようオペレーティングシステムに命令してよい。示された例において、2つのオペレーティングシステムは、並列に動作する複数の処理を有してよく、コントローラ506は、両方のオペレーティングシステムに情報を送信する。
しかしながら、様々な実施形態は、本態様に限定されるものではなく、コンピューティングデバイスは、当該デバイス上で同じく動作する任意の数のオペレーティングシステムを有してよい。いくつかの実施形態において、コンピューティングデバイスは、当該デバイス上で動作する1つのオペレーティングシステムのみを有してよい。前述されたように、コントローラ506は、システム又は機能呼び出し、レジスタ設定、ピンの有効化/無効化等を介して、オペレーティングシステムに命令してよい。
オペレーティングシステム502、504は、スタンバイ状態に入ってよく、ライン606によって示されるように、各々が、複数のスタンバイコンテキストを揮発性メモリ520に保存してよい。様々な実施形態において、任意の数のオペレーティングシステムは、複数のスタンバイコンテキストを揮発性メモリに保存してよい。ライン608において、コントローラ506は、揮発性メモリ520から不揮発性メモリ510に、複数のスタンバイコンテキストのコピーを開始してよい。さらに、第1のオペレーティングシステム502のスタンバイコンテキストは、ライン610によって示されるように、第1のコンテキスト区画516にコピーされてよい。第2のオペレーティングシステム504のスタンバイコンテキストは、ライン612によって示されるように、第2のコンテキスト区画518にコピーされてよい。前述されたように、任意の数のシステムコンテキストは、不揮発性メモリ510のコンテキスト区画にコピーされてよい。
コントローラ506は、全てのスタンバイコンテキストが不揮発性メモリ510にコピーされたと決定してよく、ライン614によって示されるように、コンピューティングシステムをハイバネート状態にしてよい。より詳細には、複数のプロセッサコンポーネント、メモリコンポーネント等を含む様々なコンポーネントは、ACPI仕様書によって定義されるように、ハイバネート状態にされてよい。
図7A/7Bは、複数のオペレーティングシステムを有するシステムが高速ハイバネート状態を出るコンポーネントブロックフロー図700および750を示す。コンポーネントフロー図700/750は、コンピューティングデバイス105のようなコンピューティングシステムの様々なコンポーネントの間における通信を示す。図7Aおよび7Bは2つのオペレーティングシステムを有するシステムを示すが、様々な実施形態は、本態様に限定されるものではなく、システムは、任意の数のオペレーティングシステムを有してよい。図7Aは、高速ハイバネート状態を出て第1のオペレーティングシステム502にブートするシステムを示し、図7Bは、高速ハイバネート状態を出て第2のオペレーティングシステム504にブートするシステムを示す。
ライン702において、コントローラ506は、トリガコンポーネント725からトリガイベントを受信し、高速ハイバネート状態の終了処理を開始してよい。トリガコンポーネント725は、システムが高速ハイバネート状態を含む1つ又は複数の状態を出るようにトリガすることが可能な任意のコンポーネントであってよい。例えば、トリガコンポーネント725は、コンピューティングデバイスの蓋に対するラッチ、ボタン、ネットワークインタフェース、マウス、トラックパッド等であってよい。さらに、トリガイベントは、トリガコンポーネント725によって検出可能な任意のイベントであってよい。例えば、トリガイベントは、蓋を開く又は閉じること、ボタンを押す又は押下すること、ネットワークインタフェースを介して受信された情報、マウスの又はトラックパッド上での動き等であってよい。様々な実施形態は、上述された複数の例に限定されるものではない。
様々な実施形態において、コントローラ506は、トリガイベントを受信し、高速ハイバネート状態から再開しつつ、ブート先のオペレーティングシステムを決定してよい。オペレーティングシステムは、コンピューティングデバイスが動作していた最後のオペレーティングシステム又はユーザに選択されたオペレーティングシステムであってよい。ユーザは、デバイスが高速ハイバネート状態を出る間に、又はデバイスが高速ハイバネート状態にされた場合に、オペレーティングシステムを選択していてよい。
この例示的な実施形態において、システムは、第1のオペレーティングシステム502にブートしてよく、コントローラは、ライン704によって示されるように、第1のコンテキスト区画516から揮発性メモリ520に、第1のオペレーティングシステムのスタンバイコンテキストのコピーを開始してよい。スタンバイコンテキストは、ライン706によって示されるように、揮発性メモリにコピーされてよい。第1のオペレーティングシステムは、次に、ブートアップする第1のオペレーティングシステムのスタンバイコンテキストを利用可能になってよい。
前述されたように、システムは高速ハイバネート状態にあるが、オペレーティングシステムは、構成されてスタンバイ状態にされていた。つまり、コントローラ506は、ライン708において、スタンバイ状態を出るための情報を、第1のオペレーティングシステム502に送信してよい。第1のオペレーティングシステム502は、揮発性メモリのスタンバイコンテキストを用いてスタンバイ状態を出て、標準動作状態にブートしてよい。
図7Bは、図7Aと類似する。しかしながら、システムは、第2のオペレーティングシステム504にブートする。ライン702において、コントローラ506は、高速ハイバネートを出るためのトリガイベントを受信してよい。コントローラ506は、システムが第2のオペレーティングシステム504にブートするべきであると決定し、ライン752において、第2のコンテキスト区画518から揮発性メモリ520に、第2のオペレーティングシステム504のスタンバイコンテキストのコピーを開始してよい。さらに、スタンバイコンテキストは、ライン754において、揮発性メモリ520にコピーされてよい。最終的に、コントローラ506は、ライン756において、第2のオペレーティングシステム504のスタンバイ状態の終了処理を開始してよい。第2のオペレーティングシステム504は、揮発性メモリ520のスタンバイコンテキストを用いて、標準動作状態にブートしてよい。
図7Aおよび7Bは、不揮発性メモリに保存されたスタンバイコンテキストを用いて高速ハイバネート状態を出る第1のオペレーティングシステム502及び第2のオペレーティングシステム504を示す。しかしながら、いくつかの例では、オペレーティングシステムのスタンバイコンテキストは存在しなくてよい。これらの例において、コントローラ506は、システム上でオペレーティングシステムの新たなインスタンスを開始してよく、ブートシーケンスは、最初から開始してよい。
図8は、論理フロー800の例示的な実施形態を示す。論理フロー800は、本明細書で説明される1つ又は複数の実施形態によって実行される複数の動作のいくつか又は全てを代表するものであってよい。例えば、論理フロー800は、システム100および900によって実行される複数の動作を示してよい。
図8に示された実施形態において、論理フロー800は、ブロック802において、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信することを含んでよい。例えば、コントローラは、現在使用中のオペレーティングシステムから異なるオペレーティングシステムへの移行をユーザが希望することを示す情報を、オペレーティングシステムから受信してよい。様々な実施形態において、ユーザは、グラフィカルユーザインタフェース(GUI)、キーシーケンス、マウスの動き、トラックパッドの動き等の利用を含む任意の手段を介して選択を行い、移行を実行してよい。オペレーティングシステムは、呼び出し実行、レジスタ設定及びピンの有効化もしくは無効化を含む任意の通信又はシグナリング技術を用いて、移行を実行するための情報を受信し、コントローラに情報を伝達してよい。
ブロック804において、論理フロー800は、第2のオペレーティングシステムのシステムコンテキストを不揮発性メモリの第2の位置から揮発性メモリにコピーすることを含んでよく、第2の位置は、第2のオペレーティングシステムに関連付けられる。例えば、コントローラは、第2のオペレーティングシステムのシステムコンテキストが不揮発性メモリの区画のような位置に存在すると決定してよい。コントローラは、システムコンテキストを、揮発性メモリにおいて、第2のオペレーティングシステムの区画にコピーしてよい。
様々な実施形態において、論理フロー800は、ブロック806において、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行することを含んでよい。より詳細には、第2のオペレーティングシステムは、揮発性メモリにロードされたシステムコンテキストを用いて、スタンバイ状態を出て標準動作状態で動作してよい。いくつかの実施形態において、コントローラは、スタンバイ状態に入るよう第1のオペレーティングシステムに命令してよく、第1のオペレーティングシステムが第2のオペレーティングシステムに移行する場合に、第1のオペレーティングシステムのシステムコンテキストを第1の位置に保存してよい。しかしながら、様々な実施形態は、本態様に限定されるものではない。
図9は、前述された様々な実施形態を実装するために適した例示的なコンピューティングアーキテクチャ900の実施形態を示す。一実施形態において、コンピューティングアーキテクチャ900は、システム100及びコンピューティングデバイス105を備えてよく、又は、これらの一部として実装されてよい。
本願で用いられるように、「システム」及び「コンポーネント」という用語は、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことが意図され、これらの例は、例示的なコンピューティングアーキテクチャ900によって提供される。例えば、コンポーネントは、限定されるものではないが、プロセッサ上で動作中の処理、プロセッサ、ハードディスクドライブ、複数の(光及び/又は磁気記憶媒体の)ストレージドライブ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び/又はコンピュータであってよい。例として、サーバ上で動作中のアプリケーション及びサーバは、両方ともコンポーネントであってよい。1つ又は複数のコンポーネントは、処理及び/又は実行スレッド中に存在してよく、コンポーネントは、1つのコンピュータに局在してよく、及び/又は2つまたはそれより多くのコンピュータの間で分散されてよい。さらに、複数のコンポーネントは、様々なタイプの通信媒体によって互いに通信可能に結合され、動作を協調させてよい。調整は、単方向又は双方向の情報交換を伴ってよい。例えば、複数のコンポーネントは、通信媒体を介して伝達される複数の信号の形で、情報を伝達してよい。情報は、様々な信号ラインに割り当てられる複数の信号として実装されてよい。このような割り当てにおいて、各メッセージは、信号である。複数のさらなる実施形態は、しかしながら、代替的にデータメッセージを採用してよい。このようなデータメッセージは、様々な接続を介して送信されてよい。複数の例示的な接続は、並列インタフェース、シリアルインタフェース、及びバスインタフェースを含む。
コンピューティングアーキテクチャ900は、1つ又は複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源等のような様々な共通コンピューティング要素を含む。複数の実施形態は、しかしながら、コンピューティングアーキテクチャ900による実装に限定されるものではない。
図9に示されるように、コンピューティングアーキテクチャ900は、処理ユニット904と、システムメモリ906と、システムバス908とを備える。処理ユニット904は、図1に示されるプロセッサコンポーネント102を参照して説明されるもののような様々な市販のプロセッサのいずれかであってよい。
システムバス908は、限定されるものではないが、処理ユニット904からシステムメモリ906を含むシステムコンポーネントに、インタフェースを提供する。システムバス908は、様々な市販のバスアーキテクチャのいずれかを用いて、メモリバス(メモリコントローラがあってもなくても)、周辺バス、及びローカルバスにさらに相互接続可能ないくつかのタイプのバス構造のいずれかであってよい。複数のインタフェースアダプタは、スロットアーキテクチャを介してシステムバス908に接続してよい。
スロットアーキテクチャの例は、限定的ではなく、アクセラレーテッドグラフィックポート(AGP)、カードバス、(拡張)インダストリスタンダードアーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、(拡張)周辺コンポーネント相互接続(PCI(X))、PCIエクスプレス、パーソナルコンピュータメモリカード国際協会(PCMCIA)等を含んでよい。
コンピューティングアーキテクチャ900は、様々な製品を含んでよく、又はこれらを実装してよい。製品は、ロジックを格納するコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体の例は、揮発性メモリ又は不揮発性メモリ、リムーバブル又は非リムーバブルメモリ、消去可能又は消去不可能メモリ、書き込み可能又は再書き込み可能メモリ等を含む、電子データを格納可能な任意の有形の媒体を含んでよい。ロジックの例は、ソースコード、コンパイルコード、インタープリタコード、実行可能コード、スタティックコード、ダイナミックコード、オブジェクト指向コード、視覚コード等のような任意の適したタイプのコードを用いて実装された複数の実行可能コンピュータプログラム命令を含んでよい。複数の実施形態は、非一時的コンピュータ可読媒体上又は内部に含まれる複数の命令として、少なくとも部分的に実装されてもよく、これらの命令は、1つ又は複数のプロセッサによって読み出され及び実行され、本明細書で説明される複数の動作の性能を有効化してよい。
システムメモリ906は、様々なタイプのコンピュータ可読記憶媒体を、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラム可能ROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、強誘電体ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化もしくは強誘電体メモリ、シリコン・酸化物・窒化物・酸化物・シリコン(SONOS)メモリ、磁気又は光カード、独立ディスク冗長アレイ(RAID)ドライブなどの複数のデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))及び情報の格納に適した任意の他のタイプの記憶媒体のような1つ又は複数のより高速メモリユニットの形で含んでよい。図9に示された実施形態において、システムメモリ906は、不揮発性メモリ910及び/又は揮発性メモリ912を含んでよい。基本入出力システム(BIOS)は、不揮発性メモリ910に格納されてよい。
コンピュータ902は、内部(又は外部)ハードディスクドライブ(HDD)914、リムーバブル磁気ディスク918から読み出すもしくはこれに書き込む磁気フロッピ(登録商標)ディスクドライブ(FDD)916、リムーバブル光ディスク922(例えば、CD−ROMもしくはDVD)から読み出すもしくはこれに書き込む光ディスクドライブ920を含む1つ又は複数のより低速メモリユニットの形で、様々なタイプのコンピュータ可読記憶媒体を含んでよい。HDD914、FDD916及び光ディスクドライブ920は、HDDインタフェース924、FDDインタフェース926及び光ドライブインタフェース928によって、それぞれシステムバス908に接続されてよい。外部ドライブ実装用のHDDインタフェース924は、ユニバーサルシリアルバス(USB)及びIEEE1394インタフェース技術の少なくとも1つ又は両方を含んでよい。
複数のドライブ及び関連付けられたコンピュータ可読媒体は、データ、複数のデータ構造、複数のコンピュータ実行可能命令等の揮発性及び/又は不揮発性ストレージを提供する。例えば、オペレーティングシステム930、1つ又は複数のアプリケーションプログラム932、他のプログラムモジュール934、及びプログラムデータ936を含む多数のプログラムモジュールは、複数のドライブ及びメモリユニット910、912に格納されてよい。一実施形態において、1つ又は複数のアプリケーションプログラム932、他のプログラムモジュール934、及びプログラムデータ936は、例えば、システム105の様々なアプリケーション及び/又はコンポーネントを含んでよい。
ユーザは、複数のコマンド及び情報を、1つ又は複数の有線/無線入力デバイス、例えば、キーボード938及びマウス940のようなポインティングデバイスを介してコンピュータ902に入力してよい。複数の他の入力デバイスは、マイクロフォン、赤外線(IR)リモート制御機器、無線周波数(RF)リモート制御機器、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量、抵抗等)、トラックボール、トラックパッド、センサ、スタイラス等を含んでよい。これら及び複数の他の入力デバイスは、多くの場合、システムバス908に結合される入力デバイスインタフェース942を介して処理ユニット904に接続されるが、並列ポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース等のような他のインタフェースによって接続されてよい。
モニタ944又は他のタイプのディスプレイデバイスも、ビデオアダプタ946のようなインタフェースを介してシステムバス908に接続される。モニタ944は、コンピュータ902の内部又は外部にあってよい。モニタ944に加えて、コンピュータは、典型的には、スピーカ、プリンタ等のような複数の他の周辺出力デバイスを含む。
コンピュータ902は、有線及び/又は無線通信を介してのリモートコンピュータ948のような1つ又は複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境で動作してよい。リモートコンピュータ948は、ワークステーション、サーバ、コンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメントアプライアンス、ピアデバイス又は他の共通ネットワークノードであってよく、典型的には、コンピュータ902に関して説明された複数の要素の多数又は全てを含むが、簡潔さを目的として、メモリ/ストレージデバイス950のみが示される。図示された複数の論理接続は、ローカルエリアネットワーク(LAN)952及び/又はより大きい複数のネットワーク、例えばワイドエリアネットワーク(WAN)954への有線/無線接続性を含む。このようなLAN及びWANネットワーキング環境は、オフィス及び企業でよく見られるものであり、その全てがグローバル通信ネットワーク、例えばインターネットに接続可能なイントラネットのようなエンタープライズワイドコンピュータネットワークを容易にする。
LANネットワーキング環境で用いられる場合に、コンピュータ902は、有線及び/又は無線通信ネットワークインタフェース又はアダプタ956を介して、LAN952に接続される。アダプタ956は、LAN952への有線及び/又は無線通信を容易にしてよい。LAN952は、アダプタ956の無線機能性と通信を行うために配置された無線アクセスポイントをさらに含んでよい。
WANネットワーキング環境において用いられる場合に、コンピュータ902は、モデム958を含んでよく、又は、WAN954上の通信サーバに接続され、又はWAN954を介して、例えばインターネットにより、通信を確立するための他の手段を有する。モデム958は、内部又は外部にある有線及び/又は無線デバイスであってよく、入力デバイスインタフェース942を介してシステムバス908に接続する。ネットワーク環境において、コンピュータ902に関して図示される複数のプログラムモジュール、又はこれらの一部は、リモートメモリ/ストレージデバイス950に格納されてよい。図示される複数のネットワーク接続は、例示であり、複数のコンピュータの間で通信リンクを確立する他の手段が利用可能であることが理解されよう。
コンピュータ902は、無線通信(例えば、IEEE802.11無線変調技術)で動作可能に配置される無線デバイスのような、IEEE802規格のファミリを用いる有線及び無線デバイス又はエンティティと通信を行うように動作可能である。これは、特に少なくともWiFi(又はWireless Fidelity)、WiMAX(登録商標)、及びBluetooth(登録商標)無線技術、3G、4G、LTE無線技術を含む。つまり、通信は、従来のネットワークと同様に予め定義された構造であってよく、又は単純に、少なくとも2つのデバイスの間におけるアドホック通信であってよい。WiFiネットワークは、IEEE802.11x(a、b、g、n等)と称される無線技術を用いて、セキュアで信頼性の高い高速無線接続性を提供する。WiFiネットワークは、複数のコンピュータを互いに、インターネットに、及び(IEEE802.3関連の媒体及び機能を用いる)有線ネットワークに接続するために用いられてよい。
コンピュータシステム100の様々な要素は、図1−8を参照して前述されたように、様々なハードウェア要素、ソフトウェア要素、又は両方の組み合わせを備えてよい。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素(例えば、トランジスタ、抵抗、キャパシタ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、又はこれらの任意の組み合わせを含んでよい。しかしながら、実施形態がハードウェア要素及び/又はソフトウェア要素を用いて実装されるか否かを決定することは、所与の実装の要望に応じて、所望の演算レート、電力レベル、耐熱性、処理サイクル量、入力データレート、出力データレート、メモリリソース、データバス速度及び他の設計又は性能上の制約のような任意の数の要因に従って変化してよい。
詳細な開示は、ここで、複数のさらなる実施形態に関する例の提供を行う。以下に提供される例1から33(1−33)は、例示かつ非限定的であることが意図される。
第1の例において、少なくとも一部がハードウェアにあるロジックを備えるシステム又は装置であって、ロジックは、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信し、第2のオペレーティングシステムのシステムコンテキストを、第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーする。ロジックは、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行してもよい。
第2の例において、第1の例に関連して、装置は、第1のオペレーティングシステムをスリープ状態にするロジックを備え、スリープ状態は、第1のオペレーティングシステムで動作する複数の処理の停止を含む。
第3の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのブートアップ処理中又は動作中に、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信するロジックを備える。
第4の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するロジックを備える。
第5の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存するロジックを備え、他の位置は、第1のオペレーティングシステムに関連付けられる。
第6の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムから第1のオペレーティングシステムへの移行を実行するための情報を受信し、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーし、第1のオペレーティングシステムのシステムコンテキストを用いて、第2のオペレーティングシステムから第1のオペレーティングシステムに移行するロジックを備える。
第7の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムからの移行前に、第2のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存するロジックを備える。
第8の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムをスリープ状態にするロジックを備え、スリープ状態は、第2のオペレーティングシステムで動作する複数の処理の停止を含む。
第9の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含み、他の位置は、不揮発性メモリの異なる区画を含む。
第10の例において、複数の前述された例のいずれかに関連して、物品は、複数の命令を含むコンピュータ可読記憶媒体を備え、複数の命令は、実行された場合に、処理回路が、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信することと、第2のオペレーティングシステムのシステムコンテキストを、第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行することと、を可能にする。
第11の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第1のオペレーティングシステムをスリープ状態にすることを可能にし、スリープ状態は、第1のオペレーティングシステムで動作する複数の処理の停止を含む。
第12の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第1のオペレーティングシステムのブートアップ処理中又は動作中に、第1のオペレーティングシステムから第2のオペレーティングへの移行を実行するための情報を受信することを可能にする。
第13の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行することを可能にする。
第14の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存することを可能にし、他の位置は、第1のオペレーティングシステムに関連付けられる。
第15の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第2のオペレーティングシステムから第1のオペレーティングシステムへの移行を実行するための情報を受信することと、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーすることと、第1のオペレーティングシステムのシステムコンテキストを用いて、第2のオペレーティングシステムから第1のオペレーティングシステムに移行することと、を実行することを可能にする。
第16の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第2のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存することを可能にする。
第17の例において、複数の前述された例のいずれかに関連して、記憶媒体は、複数の命令を含み、複数の命令は、実行された場合に、処理回路が、第2のオペレーティングシステムをスリープ状態にすることを可能にし、スリープ状態は、第2のオペレーティングシステムで動作する複数の処理の停止を含む。
第18の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含み、他の位置は、不揮発性メモリの異なる区画を含む。
第19の例において、複数の前述された例のいずれかに関連して、方法は、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信する段階と、第2のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、位置は、第2のオペレーティングシステムに関連付けられる、段階と、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行する段階と、を含んでよい。
第20の例において、複数の前述された例のいずれかに関連して、方法は、第1のオペレーティングシステムをスリープ状態にする段階を含んでよく、スリープ状態は、第1のオペレーティングシステムで動作する複数の処理の停止を含む。
第21の例において、複数の前述された例のいずれかに関連して、方法は、第1のオペレーティングシステムのブートアップ処理中又は動作中に、第1のオペレーティングシステムから第2のオペレーティングへの移行を実行するための情報を受信する段階を含んでよい。
第22の例において、複数の前述された例のいずれかに関連して、方法は、第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行する段階を含んでよい。
第23の例において、複数の前述された例のいずれかに関連して、方法は、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存する段階を含んでよく、他の位置は、第1のオペレーティングシステムに関連付けられる。
第24の例において、複数の前述された例のいずれかに関連して、方法は、第2のオペレーティングシステムから第1のオペレーティングシステムへの移行を実行するための情報を受信する段階と、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーする段階と、第1のオペレーティングシステムのシステムコンテキストを用いて、第2のオペレーティングシステムから第1のオペレーティングシステムに移行する段階と、を含んでよい。
第25の例において、複数の前述された例のいずれかに関連して、位置は、不揮発性メモリの区画を含んでよく、他の位置は、不揮発性メモリの異なる区画を含んでよい。
第26の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信するための手段と、第2のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーするための手段であって、位置は、第2のオペレーティングシステムに関連付けられる、手段と、第2のオペレーティングシステムのシステムコンテキストを用いて、第1のオペレーティングシステムから第2のオペレーティングシステムに移行するための手段と、を含んでよい。
第27の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムをスリープ状態にするための手段を含んでよく、スリープ状態は、第1のオペレーティングシステムで動作する複数の処理の停止を含む。
第28の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのブートアップ処理中又は動作中に、第1のオペレーティングシステムから第2のオペレーティングへの移行を実行するための情報を受信するための手段を含んでよい。
第29の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための手段を含んでよい。
第30の例において、複数の前述された例のいずれかに関連して、装置は、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置に保存するための手段を含んでよく、他の位置は、第1のオペレーティングシステムに関連付けられる。
第31の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムから第1のオペレーティングシステムへの移行を実行するための情報を受信するための手段と、第1のオペレーティングシステムのシステムコンテキストを不揮発性メモリの他の位置から揮発性メモリにコピーするための手段と、第1のオペレーティングシステムのシステムコンテキストを用いて、第2のオペレーティングシステムから第1のオペレーティングシステムに移行するための手段と、を含んでよい。
第32の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムの新たなシステムコンテキストを不揮発性メモリの位置に保存するための手段を含んでよい。
第33の例において、複数の前述された例のいずれかに関連して、装置は、第2のオペレーティングシステムをスリープ状態にするための手段を含んでよく、スリープ状態は、第2のオペレーティングシステムで動作する複数の処理の停止を含む。
いくつかの実施形態は、「一実施形態」又は「実施形態」という表現を、それらの複数の派生語と共に用いて説明されてよい。これらの用語は、実施形態に関して説明された特定の機能、構造、又は特性が少なくとも一実施形態に含まれることを意味する。本明細書の様々な箇所に「一実施形態において」という語句が登場するが、これは、必ずしも全てが同じ実施形態を指すということではない。さらに、いくつかの実施形態は、「結合され」及び「接続され」という表現を、それらの派生語と共に用いて説明されてよい。これらの用語は、必ずしも互いの類義語として意図されるものではない。例えば、いくつかの実施形態は、2つ又はそれより多くの要素が、互いに直接物理的又は電気的に接触していることを示すべく、「接続され」及び/又は「結合され」という用語を用いて説明されてよい。「結合され」という用語は、しかしながら、2つ又はそれより多くの要素が、互いに直接接触していないが、なお互いに協働又は連携することを意味してもよい。
強調されることは、本開示の要約書が、読み手が技術的開示の本質を迅速に把握することを可能にするために提供されることである。その理解によれば、これが請求項の範囲又は意味を解釈又は限定するために用いられるものではないと考えられる。さらに、上述された詳細な説明において、開示をストリームライン化する目的で、様々な機能が、単一の実施形態において共にグループ化されることは明らかであろう。本開示の方法は、特許請求の範囲に記載された実施形態が、各請求項に明示的に記載されたものより多くの特徴を必要とする意図を反映するものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の複数の特徴の一部にある。つまり、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれ、各請求項は、別個の実施形態として自立する。添付された特許請求の範囲において、「including」及び「in which」という用語は、それぞれ「comprising」及び「wherein」という各用語に相当する平易な英語として用いられる。さらに、「第1」、「第2」、「第3」等の用語は、単に符号として用いられ、それらの対象に数値的な要件を課すことが意図されるものではない。
上述された内容は、開示されたアーキテクチャの複数の例を含む。勿論、複数のコンポーネント及び/又は方法論のあらゆる想到可能な組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせ及び変形が可能であることを認識しよう。従って、新規なアーキテクチャは、添付された特許請求の範囲の主旨及び範囲属するこのような全ての変更、修正、及び変形を包含することが意図される。
上述された内容は、開示されたアーキテクチャの複数の例を含む。勿論、複数のコンポーネント及び/又は方法論のあらゆる想到可能な組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせ及び変形が可能であることを認識しよう。従って、新規なアーキテクチャは、添付された特許請求の範囲の主旨及び範囲属するこのような全ての変更、修正、及び変形を包含することが意図される。
[項目1]
少なくとも一部がハードウェアにあるロジックを備える装置であって、前記ロジックは、
第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第2のオペレーティングシステムのシステムコンテキストを、前記第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、
前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行する、装置。
[項目2]
前記ロジックは、前記第1のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、項目1に記載の装置。
[項目3]
前記ロジックは、前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信する、項目1に記載の装置。
[項目4]
前記ロジックは、前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する、項目1に記載の装置。
[項目5]
前記ロジックは、前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存し、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、項目1に記載の装置。
[項目6]
前記ロジックは、
前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信し、
前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーし、
前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行する、
項目5に記載の装置。
[項目7]
前記ロジックは、前記第2のオペレーティングシステムからの移行前に、前記第2のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存する、項目6に記載の装置。
[項目8]
前記ロジックは、前記第2のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第2のオペレーティングシステムで動作する複数の処理の停止を含む、項目6に記載の装置。
[項目9]
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、項目5に記載の装置。
[項目10]
格納された複数の命令を含む1つ又は複数の機械可読記憶媒体であって、前記複数の命令は、実行されたことに応答して、コンピューティングデバイスに、
第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第2のオペレーティングシステムのシステムコンテキストを、前記第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、
前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行することと、
を実行させる、1つ又は複数の機械可読記憶媒体。
[項目11]
実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、項目10に記載の1つ又は複数の機械可読記憶媒体。
[項目12]
実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信させる複数の命令を含む、項目10に記載の1つ又は複数の機械可読記憶媒体。
[項目13]
実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化させ、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する複数の命令を含む、項目10に記載の1つ又は複数の機械可読記憶媒体。
[項目14]
実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存させる複数の命令を含み、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、項目10に記載の1つ又は複数の機械可読記憶媒体。
[項目15]
実行された場合に、前記コンピューティングデバイスに、
前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信することと、
前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーすることと、
前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行することと、
を実行させる複数の命令を含む、項目14に記載の1つ又は複数の機械可読記憶媒体。
[項目16]
実行された場合に、前記コンピューティングデバイスに、前記第2のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存させる複数の命令を含む、項目15に記載の1つ又は複数の機械可読記憶媒体。
[項目17]
実行された場合に、前記コンピューティングデバイスに、前記第2のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第2のオペレーティングシステムで動作する複数の処理の停止を含む、項目15に記載の1つ又は複数の機械可読記憶媒体。
[項目18]
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、項目14に記載の1つ又は複数の機械可読記憶媒体。
[項目19]
第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第2のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、前記位置は、前記第2のオペレーティングシステムに関連付けられる、段階と、
前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行する段階と、
を備える、方法。
[項目20]
前記第1のオペレーティングシステムをスリープ状態にする段階を備え、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、項目19に記載の方法。
[項目21]
前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信する段階を備える、項目19に記載の方法。
[項目22]
前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する段階を備える、項目19に記載の方法。
[項目23]
前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存する段階を備え、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、項目19に記載の方法。
[項目24]
前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーする段階と、
前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行する段階と、
を備える、項目23に記載の方法。
[項目25]
前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、項目23に記載の方法。

Claims (25)

  1. 少なくとも一部がハードウェアにあるロジックを備える装置であって、前記ロジックは、
    第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信し、
    前記第2のオペレーティングシステムのシステムコンテキストを、前記第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から、揮発性メモリにコピーし、
    前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行する、装置。
  2. 前記ロジックは、前記第1のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、請求項1に記載の装置。
  3. 前記ロジックは、前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信する、請求項1に記載の装置。
  4. 前記ロジックは、前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する、請求項1に記載の装置。
  5. 前記ロジックは、前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存し、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、請求項1に記載の装置。
  6. 前記ロジックは、
    前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信し、
    前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーし、
    前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行する、
    請求項5に記載の装置。
  7. 前記ロジックは、前記第2のオペレーティングシステムからの移行前に、前記第2のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存する、請求項6に記載の装置。
  8. 前記ロジックは、前記第2のオペレーティングシステムをスリープ状態にし、前記スリープ状態は、前記第2のオペレーティングシステムで動作する複数の処理の停止を含む、請求項6に記載の装置。
  9. 前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項5に記載の装置。
  10. 格納された複数の命令を含む1つ又は複数の機械可読記憶媒体であって、前記複数の命令は、実行されたことに応答して、コンピューティングデバイスに、
    第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信することと、
    前記第2のオペレーティングシステムのシステムコンテキストを、前記第2のオペレーティングシステムに関連付けられる不揮発性メモリの位置から揮発性メモリにコピーすることと、
    前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行することと、
    を実行させる、1つ又は複数の機械可読記憶媒体。
  11. 実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、請求項10に記載の1つ又は複数の機械可読記憶媒体。
  12. 実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信させる複数の命令を含む、請求項10に記載の1つ又は複数の機械可読記憶媒体。
  13. 実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化させ、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する複数の命令を含む、請求項10に記載の1つ又は複数の機械可読記憶媒体。
  14. 実行された場合に、前記コンピューティングデバイスに、前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存させる複数の命令を含み、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、請求項10に記載の1つ又は複数の機械可読記憶媒体。
  15. 実行された場合に、前記コンピューティングデバイスに、
    前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信することと、
    前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーすることと、
    前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行することと、
    を実行させる複数の命令を含む、請求項14に記載の1つ又は複数の機械可読記憶媒体。
  16. 実行された場合に、前記コンピューティングデバイスに、前記第2のオペレーティングシステムの新たなシステムコンテキストを前記不揮発性メモリの前記位置に保存させる複数の命令を含む、請求項15に記載の1つ又は複数の機械可読記憶媒体。
  17. 実行された場合に、前記コンピューティングデバイスに、前記第2のオペレーティングシステムをスリープ状態にさせる複数の命令を含み、前記スリープ状態は、前記第2のオペレーティングシステムで動作する複数の処理の停止を含む、請求項15に記載の1つ又は複数の機械可読記憶媒体。
  18. 前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項14に記載の1つ又は複数の機械可読記憶媒体。
  19. 第1のオペレーティングシステムから第2のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
    前記第2のオペレーティングシステムのシステムコンテキストを、不揮発性メモリの位置から揮発性メモリにコピーする段階であって、前記位置は、前記第2のオペレーティングシステムに関連付けられる、段階と、
    前記第2のオペレーティングシステムの前記システムコンテキストを用いて、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムに移行する段階と、
    を備える、方法。
  20. 前記第1のオペレーティングシステムをスリープ状態にする段階を備え、前記スリープ状態は、前記第1のオペレーティングシステムで動作する複数の処理の停止を含む、請求項19に記載の方法。
  21. 前記第1のオペレーティングシステムのブートアップ処理中又は動作中に、前記第1のオペレーティングシステムから前記第2のオペレーティングへの前記移行を実行するための情報を受信する段階を備える、請求項19に記載の方法。
  22. 前記第1のオペレーティングシステムのグラフィカルユーザインタフェースにおけるユーザ選択を有効化し、前記第1のオペレーティングシステムから前記第2のオペレーティングシステムへの前記移行を実行する段階を備える、請求項19に記載の方法。
  23. 前記第1のオペレーティングシステムのシステムコンテキストを前記不揮発性メモリの他の位置に保存する段階を備え、前記他の位置は、前記第1のオペレーティングシステムに関連付けられる、請求項19に記載の方法。
  24. 前記第2のオペレーティングシステムから前記第1のオペレーティングシステムへの移行を実行するための情報を受信する段階と、
    前記第1のオペレーティングシステムの前記システムコンテキストを前記不揮発性メモリの前記他の位置から前記揮発性メモリにコピーする段階と、
    前記第1のオペレーティングシステムの前記システムコンテキストを用いて、前記第2のオペレーティングシステムから前記第1のオペレーティングシステムに移行する段階と、
    を備える、請求項23に記載の方法。
  25. 前記位置は、前記不揮発性メモリの区画を含み、前記他の位置は、前記不揮発性メモリの異なる区画を含む、請求項23に記載の方法。
JP2016549729A 2014-03-20 2015-03-10 装置、方法、コンピュータプログラムおよびコンピュータ可読記憶媒体 Active JP6438039B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/220,812 2014-03-20
US14/220,812 US9934047B2 (en) 2014-03-20 2014-03-20 Techniques for switching between operating systems
PCT/US2015/019612 WO2015142567A1 (en) 2014-03-20 2015-03-10 Techniques for switching between operating systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018214903A Division JP6708333B2 (ja) 2014-03-20 2018-11-15 装置、方法およびコンピュータ可読記憶媒体

Publications (2)

Publication Number Publication Date
JP2017508204A true JP2017508204A (ja) 2017-03-23
JP6438039B2 JP6438039B2 (ja) 2018-12-12

Family

ID=54142194

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016549729A Active JP6438039B2 (ja) 2014-03-20 2015-03-10 装置、方法、コンピュータプログラムおよびコンピュータ可読記憶媒体
JP2018214903A Active JP6708333B2 (ja) 2014-03-20 2018-11-15 装置、方法およびコンピュータ可読記憶媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018214903A Active JP6708333B2 (ja) 2014-03-20 2018-11-15 装置、方法およびコンピュータ可読記憶媒体

Country Status (6)

Country Link
US (2) US9934047B2 (ja)
EP (1) EP3120242A4 (ja)
JP (2) JP6438039B2 (ja)
KR (1) KR102026217B1 (ja)
CN (2) CN105993001B (ja)
WO (1) WO2015142567A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI522924B (zh) * 2014-04-30 2016-02-21 宏碁股份有限公司 電子裝置及其切換作業系統的方法
US9690596B1 (en) * 2014-09-02 2017-06-27 Phoenix Technologies Ltd. Firmware based runtime operating system switch
US20160209973A1 (en) * 2015-01-21 2016-07-21 Microsoft Technology Licensing, Llc. Application user interface reconfiguration based on an experience mode transition
CN105677321A (zh) * 2015-12-28 2016-06-15 宇龙计算机通信科技(深圳)有限公司 切换系统的方法和装置
WO2018119811A1 (zh) 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 多虚拟机同时运行的方法、装置及电子设备
FR3107975B1 (fr) * 2020-03-05 2022-12-02 Idemia France Procédé mis en œuvre dans un module à circuit intégré, module à circuit intégré correspondant, système comportant un tel module et programme d’ordinateur associé
JP2022097174A (ja) * 2020-12-18 2022-06-30 東芝テック株式会社 制御装置及びその起動方法、ならびに電気機器
CN114840259A (zh) * 2021-02-02 2022-08-02 台湾积体电路制造股份有限公司 操作具有多个操作系统的用户装置的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11288366A (ja) * 1998-04-01 1999-10-19 Canon Inc 情報処理方法及び装置並びに記憶媒体
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP2008524730A (ja) * 2004-12-24 2008-07-10 ▲聯▼想(北京)有限公司 コンピュータマルチオペレーティングシステムの切換え方法
WO2013035141A1 (ja) * 2011-09-05 2013-03-14 Suginaka Junko 情報処理装置、その起動制御方法、その起動制御プログラム及び外部デバイス
JP2013541877A (ja) * 2010-08-27 2013-11-14 インテル・コーポレーション 遠隔制御デバイスのトランスコーダ利用可能なクラウド
JP2013546087A (ja) * 2010-12-22 2013-12-26 インテル・コーポレーション プラットフォームのレジューム時間を改善する方法および装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US20030037279A1 (en) * 2001-08-14 2003-02-20 Jui-Min Laio HDD data backup and recovery method
US7356677B1 (en) 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US7254744B2 (en) * 2003-08-19 2007-08-07 Intel Corporation BIOS for saving and restoring operational state in the absence of AC power
CN1658185A (zh) * 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
KR100714677B1 (ko) * 2004-05-21 2007-05-07 삼성전자주식회사 운영 시스템 전환을 수행하는 컴퓨터 시스템 및 전환 방법
US7886136B2 (en) * 2004-05-21 2011-02-08 Samsung Electronics Co., Ltd. Computer system, method, and medium for switching operating system
US9619279B2 (en) 2004-08-18 2017-04-11 Red Bend Software Sas Operating systems sharing supervisor address space with same virtual to physical mapping for supervisor address space using same translation formula with different translation tree
US7529923B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Operating system mode transfer
TWI279724B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast activating execution of computer multimedia playing from standby mode
US7523323B2 (en) * 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
CN1804806A (zh) * 2006-01-16 2006-07-19 浙江大学 Java操作系统中进程的实现和进程状态转换的方法
JP2007221370A (ja) * 2006-02-15 2007-08-30 Matsushita Electric Ind Co Ltd 復号装置、及び集積回路
JP4233585B2 (ja) * 2006-07-25 2009-03-04 株式会社エヌ・ティ・ティ・ドコモ ペリフェラル切替装置及びペリフェラル切替制御装置
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
JP2009110428A (ja) * 2007-10-31 2009-05-21 Toshiba Corp 情報処理装置および制御方法
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
US8239667B2 (en) * 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
JP5343586B2 (ja) * 2009-01-29 2013-11-13 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8453118B2 (en) * 2009-02-09 2013-05-28 Ricoh Company, Ltd. Automated multi-operating system testing with virtualization
US8489847B2 (en) 2009-03-20 2013-07-16 Hewlett-Packard Development Company, L.P. Inter operating system memory hotswap to support memory growth in a non-virtualized system
CN101782861A (zh) * 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置
US8433889B2 (en) 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
US8869300B2 (en) * 2010-05-10 2014-10-21 Citrix Sytems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
JP2012018515A (ja) * 2010-07-07 2012-01-26 Fujitsu Ltd 情報処理装置,制御方法,制御プログラム
KR101727041B1 (ko) * 2010-10-29 2017-04-14 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US8719561B2 (en) * 2010-11-29 2014-05-06 International Business Machines Corporation Automatic configuration sampling for managing configuration parameters of a computer system
TWI528162B (zh) * 2011-01-26 2016-04-01 威盛電子股份有限公司 電腦系統及其作業系統切換方法
CN102135910B (zh) * 2011-03-03 2014-05-14 威盛电子股份有限公司 切换操作系统的方法及使用此方法的电子装置
US8990459B2 (en) * 2011-04-30 2015-03-24 Ineda Systems Pvt. Ltd Peripheral device sharing in multi host computing systems
US8966236B2 (en) * 2011-05-05 2015-02-24 Microsoft Technology Licensing, Llc Dynamically redirecting boot to another operating system
US8832690B1 (en) * 2011-06-21 2014-09-09 Google Inc. Multi-threaded virtual machine processing on a web page
US20130055254A1 (en) * 2011-08-31 2013-02-28 Nokia Corporation Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
US20150347155A1 (en) * 2011-10-28 2015-12-03 Michael Rothman Switching between operational contexts
JP2013137649A (ja) * 2011-12-28 2013-07-11 Toshiba Corp 情報処理装置および仮想マシンの制御方法
CN103309737A (zh) * 2012-03-07 2013-09-18 联想(北京)有限公司 一种切换操作系统的方法及设备
US9081603B2 (en) * 2012-07-09 2015-07-14 Cisco Technology, Inc. Packet forwarding optimization with virtual machine mobility by comparing device identifiers to determine VM movement
WO2014112981A1 (en) * 2013-01-15 2014-07-24 Empire Technology Development, Llc Function-targeted virtual machine switching
US9971616B2 (en) * 2013-02-26 2018-05-15 Red Hat Israel, Ltd. Virtual machine suspension
US9189248B2 (en) * 2013-04-25 2015-11-17 Insyde Software Corp. Specialized boot path for speeding up resume from sleep state

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11288366A (ja) * 1998-04-01 1999-10-19 Canon Inc 情報処理方法及び装置並びに記憶媒体
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP2008524730A (ja) * 2004-12-24 2008-07-10 ▲聯▼想(北京)有限公司 コンピュータマルチオペレーティングシステムの切換え方法
JP2013541877A (ja) * 2010-08-27 2013-11-14 インテル・コーポレーション 遠隔制御デバイスのトランスコーダ利用可能なクラウド
JP2013546087A (ja) * 2010-12-22 2013-12-26 インテル・コーポレーション プラットフォームのレジューム時間を改善する方法および装置
WO2013035141A1 (ja) * 2011-09-05 2013-03-14 Suginaka Junko 情報処理装置、その起動制御方法、その起動制御プログラム及び外部デバイス

Also Published As

Publication number Publication date
JP2019050023A (ja) 2019-03-28
CN105993001B (zh) 2021-02-09
US20170300342A1 (en) 2017-10-19
EP3120242A1 (en) 2017-01-25
CN107832095A (zh) 2018-03-23
KR20160108492A (ko) 2016-09-19
CN105993001A (zh) 2016-10-05
KR102026217B1 (ko) 2019-09-27
US20150268968A1 (en) 2015-09-24
WO2015142567A1 (en) 2015-09-24
EP3120242A4 (en) 2017-11-15
JP6708333B2 (ja) 2020-06-10
US11307868B2 (en) 2022-04-19
US9934047B2 (en) 2018-04-03
JP6438039B2 (ja) 2018-12-12

Similar Documents

Publication Publication Date Title
JP6708333B2 (ja) 装置、方法およびコンピュータ可読記憶媒体
US8719560B2 (en) Virtual machine monitor bridge to bare-metal booting
TWI578154B (zh) 用於電源管理的系統、方法及設備
US11157064B2 (en) Techniques to dynamically enable and disable accelerator devices in compute environments
JP6139034B2 (ja) 通信ポートのための低電力状態を有効にする技術
CN104516782B (zh) 用于进行智能系统运行环境切换的方法及其设备
WO2014120113A1 (en) Assigning processors to memory mapped configuration
US20150347155A1 (en) Switching between operational contexts
US20100229180A1 (en) Information processing system
JP2012256306A (ja) 環境に配慮した演算処理異種計算機システム
US20120159136A1 (en) Computer system boot enhancements with user override
WO2018119811A1 (zh) 多虚拟机同时运行的方法、装置及电子设备
US11175938B2 (en) Central processing unit support for efficient timers at low power states
US10429988B2 (en) Touch screen support by emulating a legacy device
US8364943B2 (en) S3 BIOS operating system switch
US9471132B2 (en) Techniques for putting platform subsystems into a lower power state in parallel
US20240028222A1 (en) Sleep mode using shared memory between two processors of an information handling system
JP2014531099A (ja) 動作コンテキストの切り替え
CN105807887B (zh) CPU和SoC桥片构架的节能型系统、处理装置及方法
WO2018119810A1 (zh) 多虚拟机切换过程中的上下文处理方法、装置及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181115

R150 Certificate of patent or registration of utility model

Ref document number: 6438039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250