JP6152493B2 - マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移のための技術 - Google Patents

マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移のための技術 Download PDF

Info

Publication number
JP6152493B2
JP6152493B2 JP2016562742A JP2016562742A JP6152493B2 JP 6152493 B2 JP6152493 B2 JP 6152493B2 JP 2016562742 A JP2016562742 A JP 2016562742A JP 2016562742 A JP2016562742 A JP 2016562742A JP 6152493 B2 JP6152493 B2 JP 6152493B2
Authority
JP
Japan
Prior art keywords
operating system
computing device
copying
receiving
data storage
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.)
Expired - Fee Related
Application number
JP2016562742A
Other languages
English (en)
Other versions
JP2017501522A (ja
Inventor
エー. ロスマン,マイケル
エー. ロスマン,マイケル
ジェイ. ズィマー,ヴィンセント
ジェイ. ズィマー,ヴィンセント
ユー,ズィジアン
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017501522A publication Critical patent/JP2017501522A/ja
Application granted granted Critical
Publication of JP6152493B2 publication Critical patent/JP6152493B2/ja
Expired - Fee Related 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
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • 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
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Description

本出願は、2014年2月6日に出願された“DEEP CACHING OF TRANSITIONS IN DUAL OS ENVIRONMENT”という名称の米国仮出願第61/936,610及び2014年6月26日に出願された“TECHNOLOGIES FOR OPERATING SYSTEM TRANSITIONS IN MULTIPLE−OPERATING−SYSTEM ENVIRONMENTS”という名称の米国特許出願第14/316,370に対する優先権を主張する。
いくつかの計算装置は、メーカによりインストールされた複数のオペレーティングシステム(OS)と共に発送される。例えば、計算装置は、Microsoft(登録商標) WindowsTMなどの汎用的なオペレーティングシステムと、AndroidTMなどのモバイル向けオペレーティングシステムとの双方を含むものであってもよい。典型的な計算装置は、デュアルブート又はマルチブートコンフィギュレーションにおいて複数のオペレーティングシステムをサポートしうる。しかしながら、マルチブートコンフィギュレーションにおけるオペレーティングシステム間の切替は長いものであるかもしれず、典型的には、未使用のオペレーティングシステムがシャットダウンして状態を消失することを必要とする。いくつかの計算装置は、あるイベントに基づきアクティブなオペレーティングシステムを失うことなく、オペレーティングシステムの間で“切り替える(toggling)”ことができる(例えば、ハードウェアボタン押下又はソフトウェアコマンドなどのシステムイベント又はユーザにより起動されたイベントなど)。これらの計算装置は、例えば、アクティブなオペレーティングシステムをディスクにハイバネートすることによって(例えば、ACPI“S4”電力管理状態に入るなどによって)、電力管理機能を用いてオペレーティングシステムを切り替えてもよい。このようなハイバネーションベースのオペレーティングシステムの切替は、典型的には、“S4トグル”として参照される。
ACPI “S3”の電力管理状態は、計算装置が揮発性メモリのコンテンツを維持しながら、低電力状態に入ることを可能にする。多くの最近のプロセッサ、チップセット及びシステム・オン・チップ(SoC)は、ACPI S3スリープ状態の代わりに、接続スタンバイ電力管理状態に対応している。接続スタンバイ電力管理状態は、これらの計算装置が低電力状態にある間に特定のネットワークタスクを実行することを可能にする。多くの現在の計算装置は、S3スリープ状態に入ることができない。さらに、計算装置がS3モードに配置される場合、接続スタンバイの電力利用の効果は失われうる。
ここに説明されるコンセプトは、添付した図面における限定でなく具体例により示される。説明の簡単化のため、図面に示される要素は必ずしも縮尺通りに示されるとは限らない。適切であると考えられる場合、参照ラベルは対応する又は類似の要素を示すため図面間で繰り返される。
図1は、オペレーティングシステムの間で遷移する計算装置の少なくとも1つの実施例の簡単化されたブロック図である。 図2は、各種マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移パフォーマンスを示すプロットである。 図3は、図1の計算装置の環境の少なくとも1つの実施例の簡単化されたブロック図である。 図4は、図1及び3の計算装置により実行可能なオペレーティングシステムの間で遷移するための方法の少なくとも1つの実施例の簡単化されたフロー図である。
本開示のコンセプトは各種修正及び代替的形態を受け入れるが、それらの特定の実施例は図面において例示的に示され、ここで詳細に説明される。しかしながら、開示された特定の形態に本開示のコンセプトを限定する意図はなく、反対にその意図は、本開示及び添付した請求項に整合した全ての修正、均等及び代替をカバーすることである。
明細書における“一実施例”、“実施例”、“例示的な実施例”などの参照は、説明される実施例が特定の特徴、構成又は特性を含みうることを示すが、全ての実施例は、当該特定の特徴、構成又は特性を必ず含むものであってもよいし、そうでなくてもよい。さらに、このようなフレーズは必ずしも同一の実施例を参照しているとは限らない。さらに、特定の特徴、構成又は特性が実施例に関して説明されるとき、明示的に説明されているか否かに関わらず、当該特徴、構成又は特性を他の実施例に関して実現することが当業者の知識の範囲内であると主張される。さらに、“少なくとも1つのA,B及びC”の形式のリストに含まれるアイテムは、(A),(B),(C),(A及びB),(A及びC),(B及びC)又は(A,B及びC)を意味しうることが理解されるべきである。同様に、“A,B及びCの少なくとも1つ”の形式でリストされるアイテムは、(A),(B),(C),(A及びB),(A及びC),(B及びC)又は(A,B及びC)を意味しうる。
開示される実施例は、いくつかのケースではハードウェア、ファームウェア、ソフトウェア又はこれらの何れかの組み合わせにより実現されてもよい。開示される実施例はまた、1つ以上のプロセッサにより読み込まれて実行される、一時的又は非一時的な機械可読(例えば、コンピュータ可読)記憶媒体により担持又は記憶される命令として実現されてもよい。機械可読記憶媒体は、マシーンにより可読な形態で情報を記憶又は送信するための何れかの記憶装置、機構又は他の物理構造として実現されてもよい(例えば、揮発性又は不揮発性メモリ、メディアディスク又は他の媒体装置)。
図面では、いくつかの構造的又は方法の特徴が特定の配置及び/又は順序により示されうる。しかしながら、このような特定の配置及び/又は順序は必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施例では、このような特徴は例示的な図面に示されるのと異なる方式及び/又は順序により配置されてもよい。さらに、特定の図面における構造的又は方法の特徴の包含は、当該特徴が全ての実施例において必要とされることを意味することを意図しておらず、いくつかの実施例では、包含されなくてもよいし、又は他の特徴と組み合わされてもよい。
図1を参照して、複数のオペレーティングシステムの間を遷移する例示的な計算装置100は、プロセッサ120、I/Oサブシステム122、メモリ124及びデータ記憶装置130を有する。使用において、後述されるように、計算装置100は複数のオペレーティングシステムを実行するよう構成される。オペレーティングシステムの1つの実行中、計算装置100はオペレーティングシステム切替イベントをモニタリングする。オペレーティングシステム切替イベントは、例えば、ユーザ選択(ソフトウェアメニュー選択、所定のキー押下、ハードウェアボタン押下、又は他の何れかのユーザアクションなど)に応答して生成されてもよい。オペレーティングシステム切替イベントに応答して、計算装置100は、メモリ124のリザーブエリアにアクティブなオペレーティングシステムの状態データをコピーし、その後に他のオペレーティングシステムを起動する。移行のオペレーティングシステムの実行中、計算装置100は、メモリ124のリザーブエリアからデータ記憶装置130に状態データをコピーする。メモリ124への状態データのコピーは、オペレーティングシステムを切り替える際に必要とされるストレージI/Oの量を低下させ、特に比較的低速又は低帯域幅のデータ記憶装置130を備えた装置などについてパフォーマンスを向上させうる。さらに、メモリ124に状態データをコピーすることは、接続スタンバイ電力管理状態に対応するが、ACPI S3スリープ状態に対応しない現在の計算装置により実行されてもよい。
図2を参照して、プロット200は、本開示を用いて実現可能なオペレーティングシステム切替のパフォーマンスゲインを示す。曲線202は、S4トグル(すなわち、S4 ACPIハイバネーション状態に入る)を用いて典型的な計算装置により示される切替パフォーマンスを示す。曲線202は、複数の異なるタイプのデータ記憶装置を用いてメインメモリの2ギガバイト(2GB)についてS4トグルを完了させるのに必要とされる時間を示す。典型的なS4トグル中に保存及び/又は復元される必要がある平均的なデータ量は、可変であるが、500メガバイト未満であり得る。S4トグル時間は、切替に加えて約2秒の切替時間中に生じるオーバヘッド及び平均的なストレージI/O速度を反映しうる。図示されるように、平均的なS4トグル時間は、いくつかの実施例では、ソリッドステートディスク(SSD)について9秒、ハードディスクドライブ(HDD)について15秒、及びeMMC(埋め込みフラッシュメディア)について18秒であるかもしれない。従って、eMMCなどの低速なデータ記憶装置を用いてS4トグル処理に必要とされる時間は、SSDを用いることと比較して実際には2倍になりうる。しかしながら、多数の配置された計算装置は、コストを低減するため低速なデータ記憶装置を有する。実際、eMMCは多くの現在のタブレット計算装置において使用される。
曲線204は、本開示による計算装置100により実現可能な切替パフォーマンスを示す。曲線204は、アクティブなメインメモリ124の2GBのオペレーティングシステムと複数の異なるタイプのデータ記憶装置130との間で切り替えるのに必要とされうる時間を示す。S4トグルと同様に、保存及び/又は復元するのに必要とされる平均的なデータ量は、可変であり得るが、500メガバイト未満であってもよい。上述されるように、オペレーティングシステム切替時間は、切替に加えて約2秒の切替時間中のオーバヘッド及び平均的なストレージI/O速度を反映しうる。図示されるように、本開示の平均的な切替時間は、SSDについて7秒、HDDについて10秒、及びeMMCについて8秒となりうる。従って、図2に示されるように、本開示による計算装置100は、特にeMMCなどの低速なデータ記憶装置を利用する際、典型的なS4トグルと比較してオペレーティングシステム切替パフォーマンスを向上させうる。
図1に戻って、計算装置100は、オペレーティングシステム間の遷移と、ここに説明される機能を実行可能な何れかのタイプの装置として実現されてもよい。例えば、計算装置100は、限定することなく、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、モバイル計算装置、ウェアラブル計算装置、コンピュータ、デスクトップコンピュータ、ワークステーション、サーバコンピュータ、分散計算システム、マルチプロセッサシステム、家電装置、スマート機器及び/又はオペレーティングシステム間の遷移に対応する他の何れかの計算装置として実現されてもよい。図1に示されるように、例示的な計算装置100は、プロセッサ120、I/Oサブシステム122、メモリ124及びデータ記憶装置130を有する。もちろん、計算装置100は、他の実施例では、タブレットコンピュータに一般的に見つけられるもの(例えば、各種入出力装置)など、他の又は更なるコンポーネントを有してもよい。さらに、いくつかの実施例では、例示的なコンポーネントの1つ以上は、他のコンポーネントに搭載されるか、又はその一部を構成してもよい。例えば、メモリ124又はその一部は、いくつかの実施例では、プロセッサ120に搭載されてもよい。
プロセッサ120は、ここに説明される機能を実行可能な何れかのタイプのプロセッサとして実現されてもよい。例えば、プロセッサは、シングル又はマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理/制御回路として実現されてもよい。同様に、メモリ124は、ここに説明される機能を実行可能な何れかのタイプの揮発性又は不揮発性メモリ又はデータストレージとして実現されてもよい。メモリ124は、アクティブメモリエリア126及びリザーブメモリエリア128に分割される。動作中、メモリ124のアクティブメモリエリア126は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなどの計算装置100の動作中に用いられる各種データ及びソフトウェアを記憶してもよい。リザーブメモリエリア128は、計算装置100により実行されるオペレーティングシステム、アプリケーション又は他のプロセスによる一般的な利用からパーティション、プロテクト、隔離又はリザーブされるメモリ124の何れかの部分として実現されてもよい。いくつかの実施例では、アクティブメモリエリア126及びリザーブメモリエリア128はそれぞれ、メモリ124の1/2を有してもよい。例えば、4ギガバイト(4GB)のメインメモリ124による実施例では、アクティブメモリエリア126及びリザーブメモリエリア128はそれぞれ、2ギガバイト(2GB)を占有してもよい。他の実施例では、メモリ214の何れかの大きさがリザーブされてもよい。例えば、いくつかの実施例では、リザーブメモリエリア128は、メモリ124の1/2未満を占有してもよい。
メモリ124は、計算装置100のプロセッサ120、メモリ124及び他のコンポーネントとの入出力処理を実現するための回路及び/又はコンポーネントとして実現されてもよいI/Oサブシステム122を介しプロセッサ120に通信結合される。例えば、I/Oサブシステム122は、メモリコントローラハブ、入出力コントロールは部、ファームウェア装置、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、配線、ケーブル、光ガイド、プリント回路ボードトレースなど)及び/又は入出力処理を実現するための他のコンポーネント及びサブシステムとして実現されるか、あるいは有してもよい。いくつかの実施例では、I/Oサブシステム122は、システム・オン・チップ(SoC)の一部を構成し、プロセッサ120、メモリ124及び計算装置100の他のコンポーネントと共に、単一の集積回路チップ上に搭載されてもよい。
データ記憶装置130は、例えば、メモリ装置及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータ記憶装置などの短期又は長期のデータのストレージのために構成される何れかのタイプの装置として実現されてもよい。いくつかの実施例では、データ記憶装置130は、eMMCなどの埋め込みフラッシュメモリモジュールとして実現されてもよい。データ記憶装置130は、計算装置100が低電力ハイバネーション状態(例えば、ACPI S4状態)にある間、デバイス状態を記憶するのに利用されるデータ記憶装置130の何れかのファイル、ファイルシステム、ブロック、パーティション又は他のセグメントとして実現されてもよいハイバネーションファイル132を有してもよい。例えば、ハイバネーションファイル132は、メモリ124のコンテンツ、プロセッサ120の状態及び/又は他のデバイス状態を記憶してもよい。いくつかの実施例では、デバイス状態は、ハイバネーションファイル132のサイズを低減するよう圧縮、重複排除又は処理されてもよい。低電力ハイバネーション状態からアウェイクすると、計算装置100は、処理を再開するため、ハイバネーションファイル132のコンテンツをメインメモリ124にコピーしてもよい。
いくつかの実施例では、計算装置100はまた、1つ以上の周辺装置134を有してもよい。周辺装置134は、何れかの数の追加的な入出力装置、インタフェース装置及び/又は他の周辺装置を有してもよい。例えば、いくつかの実施例では、周辺装置134は、ディスプレイ、タッチ画面、グラフィクス回路、キーボード、マウス、スピーカシステム及び/又は他の入出力装置、インタフェース装置及び/又は周辺装置を含むものであってもよい。特に、いくつかの実施例では、周辺装置134は、オペレーティングシステムを切り替えるための専用のハードウェアボタン又は他のコントロールを有してもよい。
図3を参照して、例示的な実施例では、計算装置100は、処理中に環境300を確立する。例示的な実施例300は、メモリリザベーションモジュール302、切替イベントモジュール304及び複数のオペレーティングシステム306を有する。例示的な環境300は2つのオペレーティングシステム306a,306bを有するが、他の実施例では、何れかの数のオペレーティングシステム306が含まれてもよい。環境300の各種モジュール及び/又はコンポーネントは、ハードウェア、ファームウェア、ソフトウェア又はこれらの組み合わせとして実現されてもよい。
メモリリザベーションモジュール302は、リザーブメモリエリア128としてメモリ124の一部をリザーブするよう構成される。リザーブされた後、リザーブメモリエリア128は、オペレーティングシステム306の何れによっても利用されず、いくつかの実施例では、オペレーティングシステム306の何れにも可視的又はアクセス可能でなくてもよい。いくつかの実施例では、メモリリザベーションモジュール302は、UEFI(Unified Extensible Firmware Interface)フォーラムにより公開されるUEFI仕様書に従って実現されるプリブートファームウェア実行環境などの計算装置100のプリブートファームウェア実行環境によって確立されてもよい。
切替イベントモジュール304は、オペレーティングシステム306の何れかの実行中にオペレーティングシステム切替イベントを受信するよう構成される。切替イベントモジュール304は更に、アクティブなオペレーティングシステムの状態データがリザーブメモリエリア128にコピーされた後、他のオペレーティングシステム306を実行するよう構成される。例えば、例示的な実施例では、切替イベントモジュール304は、オペレーティングシステム306aの状態データがリザーブメモリエリア128にコピーされた後、オペレーティングシステム306bを実行してもよい。いくつかの実施例では、単一の切替イベントモジュール304として示されているが、環境300は、例えば、各オペレーティングシステム306について1つの切替イベントモジュール304など、複数の補完的な切替イベントモジュール304を有してもよい。
各オペレーティングシステム306は、計算装置100の何れかのオペレーティングシステム、バーチャルモニタ、ハイパーバイザ又は他の制御構造として実現されてもよい。例えば、オペレーティングシステム306aは、Microsoft(登録商標) WindowsTMとして実現され、オペレーティングシステム306bは、AndroidTMとして実現されてもよい。各オペレーティングシステム306は、リザーブコピーモジュール308及びライトアウトモジュール310を有する。リザーブコピーモジュール308及びライトアウトモジュール310のそれぞれは、ドライバ、プロセス、ロード可能なモジュール又はオペレーティングシステム306により実行される他のコンポーネントとして実現されてもよい。
各リザーブコピーモジュール308は、関連するオペレーティングシステム306の状態データをリザーブメモリエリア128にコピーするよう構成される。状態データは、メモリ124のアクティブコンテンツ、すなわち、リザーブメモリエリア128に含まれないメモリ124の一部を有してもよい。各ライトアウトモジュール310は、リザーブメモリエリア128のコンテンツをデータ記憶装置120にコピーするよう構成される。ライトアウトモジュール310は、関連するオペレーティングシステム306がオペレーティングシステム切替イベントに応答して起動された後、データ記憶装置128に書き込む。ライトアウトモジュール310は、関連するオペレーティングシステム306がユーザアプリケーションを実行している間、データ記憶装置130に書き込みしてもよい。
図4を参照して、使用中、計算装置100は、オペレーティングシステム306を切り替える方法400を実行する。方法400はブロック402において開始され、計算装置100は、オペレーティングシステム306の何れかにより使用されることからリザーブメモリエリア128を確保する。計算装置100は、何れかの技術を利用して、リザーブメモリエリア128を用いることからオペレーティングシステム306をプロテクト、パーティション、隔離又は禁止してもよい。いくつかの実施例では、計算装置100のプレブートファームウェア環境は、リザーブメモリエリア128をリザーブしてもよい。例えば、プレブートファームウェアは、計算装置100がメモリ124に実際に含まれる大きさより小さいメモリを有していることを示すため、1つ以上のシステムテーブルをオペレーティングシステム306にエクスポートしてもよい。この具体例では、リザーブメモリエリア128は、システムテーブルにより記載されていないメモリの上位メモリセグメントとして実現されてもよい。
ブロック404において、計算装置100は、オペレーティングシステム306aとして例示的に参照されるオペレーティングシステム306の1つを実行する。実行される特定のオペレーティングシステム306aは、初期的なブート処理中のユーザ選択に基づき、計算装置100のデフォルトポリシーに基づき、又は他の何れか適切な基準に基づき決定されてもよい。オペレーティングシステム306aの実行中、計算装置100は、ユーザにより指示されるような1つ以上のアプリケーションを実行してもよい。アクティブなオペレーティングシステム306a、アプリケーション及び関連する何れかの状態データは、アクティブメモリエリア126、すなわち、リザーブメモリエリア128に含まれないメモリ124の部分にある。
ブロック406において、計算装置100は、オペレーティングシステム切替イベントをモニタリングする。オペレーティングシステム切替イベントは、計算装置100に異なるオペレーティングシステム306に実行をスイッチさせる何れかのイベントとして実現されてもよい。いくつかの実施例では、ユーザ選択は、ソフトウェアインタフェースにおけるユーザ選択、所定のキー押下又はキーの組み合わせ、ハードウェアボタン押下又は他のユーザにより生成されたイベントとして実現されてもよい。いくつかの実施例では、オペレーティングシステム切替イベントは、ユーザの介入なしにシステムイベントにより生成されてもよい(例えば、デバイスドライバからのリクエスト、バックグラウンドソフトウェアプロセス又は他の非インタラクティブプロセスに応答して)。ブロック408において、計算装置100は、オペレーティングシステム切替イベントが受信されたか判断する。受信されていない場合、方法400は、オペレーティングシステム切替イベントのモニタリングを継続するためブロック406にループバックする。オペレーティングシステム切替イベントが受信された場合、方法400はブロック410に進捗する。
ブロック410において、計算装置100は、アクティブオペレーティングシステム306aの状態データをアクティブメモリエリア126からリザーブメモリエリア128にコピーする。いくつかの実施例では、計算装置100は、アクティブメモリエリア126の全てをリザーブメモリエリア128にコピーしてもよい(例えば、アクティブメモリエリア126及びリザーブメモリエリア128のそれぞれがトータルのメモリ124の1/2を占有するとき)。さらに又は代わりに、計算装置100は、例えば、アクティブメモリエリア126の状態を規定するアクティブメモリエリア126のコンテンツのみなど、アクティブメモリエリア126の一部のみをコピーしてもよい。いくつかの実施例では、計算装置100は、アクティブなオペレーティングシステム306aの状態をリザーブメモリエリア128にコピーするのに必要とされるデータ量を圧縮、重複排除又は低減してもよい。計算装置100は、リザーブメモリエリア128のコンテンツを置換してもよいし、又はいくつかの実施例では、アクティブなオペレーティングシステム306aの状態データ量、リザーブメモリエリア128における利用可能なスペース又は他のファクタに依存して、リザーブメモリエリア128のコンテンツの一部又は全てを保存してもよい。従って、いくつかの実施例では、リザーブメモリエリア128は、1つ以上のオペレーティングシステム306の状態データを記憶してもよく、これは、切替パフォーマンスを更に向上させる。
いくつかの実施例では、ブロック412において、計算装置100は、ハイバネーションファイル132に関する1つ以上のI/O処理をインターセプトしてもよい。これらのI/O処理は、低電力ハイバネーション状態(例えば、ACPI S4状態)に入る際、計算装置100により生成されてもよい。I/O処理をインターセプトした後、計算装置100は、I/O処理をハイバネーションファイル132でなくリザーブメモリエリア128にルーティングしてもよい。例えば、いくつかの実施例では、オペレーティングシステム306aのストレージドライバスタックは、ハイバネーションファイル132からのI/O処理をインターセプトし、リザーブメモリエリア128にリルーティングするフィルタドライバを有してもよい。さらに又はあるいは、いくつかの実施例では、計算装置100は、I/O処理をインターセプトするためファームウェアドライバを確立してもよい。従って、典型的なハイバネーション電力管理状態と同様に、オペレーティングシステム306aの状態をデータ記憶装置130に保存するのでなく、計算装置100は、オペレーティングシステム306aの状態をリザーブメモリエリア128に透過的に記憶してもよい。従って、計算装置100は、オペレーティングシステム306aに対する何れか特定の修正を必要とすることなく、オペレーティングシステム306aの状態をリザーブメモリエリア128に記憶してもよい。
ブロック414において、計算装置100は他のオペレーティングシステム306bをロードする。上述したように、実行されるオペレーティングシステム306bは、ユーザ選択に基づき、計算装置100のデフォルトポリシーに基づき、又は他の何れか適切な基準に基づき決定されてもよい。いくつかの実施例では、ブロック416において、計算装置100は、ハイバネーションファイル132から他のオペレーティングシステム306bをロードしてもよい。例えば、他のオペレーティングシステム306bが計算装置100により以前に実行されたことがある場合、他のオペレーティングシステム306bの状態は、以前のオペレーティングシステム切替イベントに応答して、ハイバネーションファイル132に記憶されているかもしれない。ハイバネーションファイル132から他のオペレーティングシステム306bの状態をロードすることは、オペレーティングシステムの切替に遅延を招く可能性がある。しかしながら、多数のデータ記憶装置130がデータ書き込み速度と比較してはるかに高速なデータリード速度を有するため、オペレーティングシステムの切替パフォーマンスは許容可能であり続ける。例えば、eMMCが埋め込まれたフラッシュメモリモジュールは、典型的には、ライト速度の3倍速いリード速度をサポートしうる。上述されたように、いくつかの実施例では、計算装置100はまた、リザーブメモリエリア128の一部にオペレーティングシステム306bの状態データを以前に記憶しているかもしれない。利用可能である場合、リザーブメモリエリア128から他のオペレーティングシステム306bをロードすることは、オペレーティングシステム切替の遅延を低下させうる。
他のオペレーティングシステム306bをロードした後、方法400の実行はブロック418,420に同時に進捗する。ブロック418において、計算装置100は他のオペレーティングシステム306bを実行する。ブロック404に関して上述されたように、他のオペレーティングシステム306bの実行中、計算装置100はユーザにより指示されるような1つ以上のアプリケーションを実行してもよい。他のオペレーティングシステム306bは、オペレーティングシステム306aにより以前に占有されたアクティブメモリエリア126の全て又は一部を占有してもよい。
ブロック420において、計算装置100は、リザーブメモリエリア128のコンテンツをデータ記憶装置130に書き込む。いくつかの実施例では、ブロック422において、計算装置100は、リザーブメモリエリア128のコンテンツをハイバネーションファイル132に書き込んでもよい。計算装置100は、他のオペレーティングシステム306bの実行と同時にデータ記憶装置130に書き込んでもよい。例えば、計算装置100は、カーネルドライバ、カーネルスレッド、ユーザプロセス、ユーザスレッド又は他のオペレーティングシステム306bにより実行される他のプロセスと同時に実行可能な他のエンティティを用いてデータ記憶装置130に書き込みしてもよい。いくつかの実施例では、計算装置100は、バックグラウンドにおいて、又は計算装置100がアイドルであるとき、データ記憶装置130に書き込みしてもよい。例えば、計算装置100は、他のプロセス又はスレッド(システムアイドルスレッド又は同様のアイドルスレッド以外)の何れもアクティブでないときに限って実行される低優先度プロセス又はスレッドにおいてデータ記憶装置130に書き込みしてもよい。従って、データ記憶装置130への書き込みは、計算装置100のユーザに感知不可であってもよい。従って、オペレーティングシステム切替に関連する伝送時間及び他の遅延は、ユーザから隠蔽されてもよい。上述されるように、書き込み遅延の隠蔽は、多数のデータ記憶装置130がリード速度と比較して低速なライト速度を提供するため、切替パフォーマンスを大きく向上させうる。いくつかの実施例では、計算装置100は、リザーブメモリエリア128のコンテンツがデータ記憶装置130にコピーされている間、更なるオペレーティングシステム切替イベントを不可、マスク又は禁止してもよい。
リザーブメモリエリア128のコンテンツのデータ記憶装置130へのコピーを完了した後、方法400はブロック404にループバックし、他のオペレーティングシステム306bが実行し続ける。従って、コピーを完了した後、計算装置100は、更なるオペレーティングシステム切替イベントをモニタリング及び応答し、ユーザがオペレーティングシステム306を切り替えることを可能にする。
具体例
ここに開示される技術の例示的な具体例が以下に提供される。技術の実施例は、後述される具体例の何れか1つ以上及び何れかの組み合わせを含むものであってもよい。
具体例1は、オペレーティングシステムの間を遷移する計算装置であって、リザーブメモリエリアを有するメインメモリと、データ記憶装置と、計算装置が、第1のオペレーティングシステムの実行中に第1のオペレーティングシステムから第2のオペレーティングシステムに遷移させるためのオペレーティングシステム切替イベントを受信するための切替イベントモジュールとを有し、第1のオペレーティングシステムは、オペレーティングシステム切替イベントの受信に応答して、第1のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするための第1のリザーブコピーモジュールを有し、第2のオペレーティングシステムは、第2のオペレーティングシステムの実行中に第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするための第1のライトアウトモジュールを有し、切替イベントモジュールは更に、状態データをリザーブメモリエリアにコピーしたことに応答して、第2のオペレーティングシステムを実行する計算装置を含む。
具体例2は、具体例1の主題を含み、切替イベントモジュールは更に、第2のオペレーティングシステムの実行中に第2のオペレーティングシステム切替イベントを受信し、第2のオペレーティングシステムは更に、第2のオペレーティングシステム切替イベントの受信に応答して、第2のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするための第2のリザーブコピーモジュールを有し、切替イベントモジュールは更に、第2のオペレーティングシステムの状態データをコピーしたことに応答して、第1のオペレーティングシステムの2回目を実行し、第1のオペレーティングシステムは更に、第1のオペレーティングシステムの2回目の実行中に第2のオペレーティングシステムの状態データをデータ記憶装置にコピーするための第2のライトアウトモジュールを有する。
具体例3は、具体例1及び2の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、システムイベントに応答してオペレーティングシステム切替イベントを受信することを含む。
具体例4は、具体例1〜3の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信することを含む。
具体例5は、具体例1〜4の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ハードウェア切替選択を受信することを含む。
具体例6は、具体例1〜5の何れかの主題を含み、オペレーティングシステム切替イベントの受信は、ソフトウェア切替選択を受信することを含む。
具体例7は、具体例1〜6の何れかの主題を含み、切替イベントモジュールは更に、オペレーティングシステム切替イベントの受信に応答して、計算装置をハイバネーション電力管理状態に移行させる。
具体例8は、具体例1〜7の何れかの主題を含み、第1のオペレーティングシステムの状態データをリザーブメモリエリアにコピーすることは、データ記憶装置に対する1つ以上のI/O処理をインターセプトし、1つ以上のI/O処理をリザーブメモリエリアにルーティングすることを含む。
具体例9は、具体例1〜8の何れかの主題を含み、1つ以上のI/O処理をインターセプトすることは、データ記憶装置により記憶されるハイバネーションファイルに対する1つ以上のI/O処理をインターセプトすることを含む。
具体例10は、具体例1〜9の何れかの主題を含み、1つ以上のI/O処理をインターセプトすることは、第1のオペレーティングシステムのフィルタドライバを用いて1つ以上のI/O処理をインターセプトすることを含む。
具体例11は、具体例1〜10の何れかの主題を含み、第2のオペレーティングシステムを実行することは、データ記憶装置により記憶されたハイバネーションファイルから第2のオペレーティングシステムをロードすることを含む。
具体例12は、具体例1〜11の何れかの主題を含み、第2のオペレーティングシステムは更に、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーすることと同時にアプリケーションを実行する。
具体例13は、具体例1〜12の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーすることは更に、計算装置がアイドルであるとき、状態データをコピーすることを含む。
具体例14は、具体例1〜13の何れかの主題を含み、データ記憶装置は、ハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールを含む。
具体例15は、具体例1〜14の何れかの主題を含み、第1のオペレーティングシステムの実行前に、リザーブメモリエリアとしてメインメモリの一部をリザーブするためのメモリリザベーションモジュールを更に有する。
具体例16は、具体例1〜15の何れかの主題を含み、メモリの一部をリザーブすることは、計算装置のファームウェアを用いてメモリの一部をリザーブすることを含む。
具体例17は、オペレーティングシステムの間を遷移する方法であって、計算装置が、計算装置の第1のオペレーティングシステムを実行するステップと、計算装置が、第1のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信するステップと、計算装置が、オペレーティングシステム切替イベントの受信に応答して、計算装置のリザーブメモリエリアに第1のオペレーティングシステムの状態データをコピーするステップと、計算装置が、状態データをリザーブメモリエリアにコピーしたことに応答して、計算装置の第2のオペレーティングシステムを実行するステップと、計算装置が、第2のオペレーティングシステムを実行したことに応答して、第1のオペレーティングシステムの状態データを計算装置のデータ記憶装置にコピーするステップとを有する方法を含む。
具体例18は、具体例17の主題を含み、計算装置が、第2のオペレーティングシステムの実行中に第2のオペレーティングシステム切替イベントを受信するステップと、計算装置が、第2のオペレーティングシステム切替イベントの受信に応答して、第2のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするステップと、計算装置が、第2のオペレーティングシステムの状態データをコピーしたことに応答して、第1のオペレーティングシステムの2回目を実行するステップと、計算装置が、第1のオペレーティングシステムの2回目の実行に応答して、第2のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップとを更に有する。
具体例19は、具体例17及び18の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、システムイベントに応答してオペレーティングシステム切替イベントを受信するステップを含む。
具体例20は、具体例17〜19の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ユーザ選択に応答してオペレーティングシステム切替イベントを受信するステップを含む。
具体例21は、具体例17〜20の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ハードウェア切替選択を受信するステップを含む。
具体例22は、具体例17〜21の何れかの主題を含み、オペレーティングシステム切替イベントを受信するステップは、ソフトウェア切替選択を受信するステップを含む。
具体例23は、具体例17〜22の何れかの主題を含み、計算装置が、オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行するステップを更に有する。
具体例24は、具体例17〜23の何れかの主題を含み、第1のオペレーティングシステムの状態データをリザーブメモリエリアにコピーするステップは、データ記憶装置に対する1つ以上のI/O処理をインターセプトするステップと、1つ以上のI/O処理をリザーブメモリエリアにルーティングするステップとを含む。
具体例25は、具体例17〜24の何れかの主題を含み、1つ以上のI/O処理をインターセプトするステップは、データ記憶装置により記憶されるハイバネーションファイルに対する1つ以上のI/O処理をインターセプトするステップを含む。
具体例26は、具体例17〜25の何れかの主題を含み、1つ以上のI/O処理をインターセプトするステップは、第1のオペレーティングシステムのフィルタドライバを用いて1つ以上のI/O処理をインターセプトするステップを含む。
具体例27は、具体例17〜26の何れかの主題を含み、第2のオペレーティングシステムを実行するステップは、データ記憶装置により記憶されるハイバネーションファイルから第2のオペレーティングシステムをロードするステップを含む。
具体例28は、具体例17〜27の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは、第2のオペレーティングシステムの実行と同時に第1のオペレーティングシステムの状態データをコピーするステップを含む。
具体例29は、具体例17〜28の何れかの主題を含み、第2のオペレーティングシステムを実行するステップは、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするのと同時にアプリケーションを実行するステップを含む。
具体例30は、具体例17〜29の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは更に、計算装置がアイドルであるとき、状態データをコピーするステップを含む。
具体例31は、具体例17〜30の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするステップは、第1のオペレーティングシステムの状態データを計算装置のハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールにコピーするステップを含む。
具体例32は、具体例17〜31の何れかの主題を含み、計算装置が、第1のオペレーティングシステムを実行する前に、リザーブメモリエリアとして計算装置のメモリの一部をリザーブするステップを更に有する。
具体例33は、具体例17〜32の何れかの主題を含み、計算装置のメモリの一部をリザーブするステップは、計算装置のファームウェアを用いてメモリの一部をリザーブするステップを含む。
具体例34は、プロセッサと、プロセッサにより実行されると、具体例17〜33の何れかの方法を計算装置に実行させるための複数の命令を記憶するメモリとを有する計算装置を含む。
具体例35は、実行されることに応答して、具体例17〜33の何れかの方法を計算装置に実行させるための複数の命令を有する1つ以上の機械可読記憶媒体を含む。
具体例36は、具体例17〜33の何れかの方法を実行するための手段を有する計算装置を含む。
具体例37は、オペレーティングシステムの間を遷移する計算装置であって、計算装置の第1のオペレーティングシステムを実行する手段と、第1のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信する手段と、オペレーティングシステム切替イベントの受信に応答して、計算装置のリザーブメモリエリアに第1のオペレーティングシステムの状態データをコピーする手段と、状態データをリザーブメモリエリアにコピーしたことに応答して、計算装置の第2のオペレーティングシステムを実行する手段と、第2のオペレーティングシステムを実行したことに応答して、第1のオペレーティングシステムの状態データを計算装置のデータ記憶装置にコピーする手段とを有する計算装置を含む。
具体例38は、具体例37の主題を含み、第2のオペレーティングシステムの実行中に第2のオペレーティングシステム切替イベントを受信する手段と、第2のオペレーティングシステム切替イベントの受信に応答して、第2のオペレーティングシステムの状態データをリザーブメモリエリアにコピーする手段と、第2のオペレーティングシステムの状態データをコピーしたことに応答して、第1のオペレーティングシステムの2回目を実行する手段と、第1のオペレーティングシステムの2回目の実行に応答して、第2のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段とを更に有する。
具体例39は、具体例37及び38の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、システムイベントに応答してオペレーティングシステム切替イベントを受信する手段を含む。
具体例40は、具体例37〜39の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信する手段を含む。
具体例41は、具体例37〜40の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ハードウェア切替選択を受信する手段を含む。
具体例42は、具体例37〜41の何れかの主題を含み、オペレーティングシステム切替イベントを受信する手段は、ソフトウェア切替選択を受信する手段を含む。
具体例43は、具体例37〜42の何れかの主題を含み、オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行する手段を更に有する。
具体例44は、具体例37〜43の何れかの主題を含み、第1のオペレーティングシステムの状態データをリザーブメモリエリアにコピーする手段は、データ記憶装置に対する1つ以上のI/O処理をインターセプトする手段と、1つ以上のI/O処理をリザーブメモリエリアにルーティングする手段とを含む。
具体例45は、具体例37〜44の何れかの主題を含み、1つ以上のI/O処理をインターセプトする手段は、データ記憶装置により記憶されるハイバネーションファイルに対する1つ以上のI/O処理をインターセプトする手段を含む。
具体例46は、具体例37〜45の何れかの主題を含み、1つ以上のI/O処理をインターセプトする手段は、第1のオペレーティングシステムのフィルタドライバを用いて1つ以上のI/O処理をインターセプトする手段を含む。
具体例47は、具体例37〜46の何れかの主題を含み、第2のオペレーティングシステムを実行する手段は、データ記憶装置により記憶されるハイバネーションファイルから第2のオペレーティングシステムをロードする手段を含む。
具体例48は、具体例37〜47の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は、第2のオペレーティングシステムの実行と同時に第1のオペレーティングシステムの状態データをコピーする手段を含む。
具体例49は、具体例37〜48の何れかの主題を含み、第2のオペレーティングシステムを実行する手段は、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーするのと同時にアプリケーションを実行する手段を含む。
具体例50は、具体例37〜49の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は更に、計算装置がアイドルであるとき、状態データをコピーする手段を含む。
具体例51は、具体例37〜50の何れかの主題を含み、第1のオペレーティングシステムの状態データをデータ記憶装置にコピーする手段は、第1のオペレーティングシステムの状態データを計算装置のハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールにコピーする手段を含む。
具体例52は、具体例37〜51の何れかの主題を含み、第1のオペレーティングシステムを実行する前に、リザーブメモリエリアとして計算装置のメモリの一部をリザーブする手段を更に有する。
具体例53は、具体例37〜52の何れかの主題を含み、計算装置のメモリの一部をリザーブする手段は、計算装置のファームウェアを用いてメモリの一部をリザーブする手段を含む。

Claims (26)

  1. オペレーティングシステムの間を遷移する計算装置であって、
    リザーブメモリエリアを有するメインメモリと、
    データ記憶装置と、
    前記計算装置が、第1のオペレーティングシステムの実行中に前記第1のオペレーティングシステムから第2のオペレーティングシステムに遷移させるためのオペレーティングシステム切替イベントを受信するための切替イベントモジュールと、
    を有し、
    前記第1のオペレーティングシステムは、前記オペレーティングシステム切替イベントの受信に応答して、前記第1のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするための第1のリザーブコピーモジュールを有し、
    前記第2のオペレーティングシステムは、前記第2のオペレーティングシステムの実行中に前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーするための第1のライトアウトモジュールを有し、
    前記切替イベントモジュールは更に、前記状態データを前記リザーブメモリエリアにコピーしたことに応答して、前記第2のオペレーティングシステムを実行する計算装置。
  2. 前記切替イベントモジュールは更に、前記第2のオペレーティングシステムの実行中に第2のオペレーティングシステム切替イベントを受信し、
    前記第2のオペレーティングシステムは更に、前記第2のオペレーティングシステム切替イベントの受信に応答して、前記第2のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするための第2のリザーブコピーモジュールを有し、
    前記切替イベントモジュールは更に、前記第2のオペレーティングシステムの状態データをコピーしたことに応答して、前記第1のオペレーティングシステムの2回目を実行し、
    前記第1のオペレーティングシステムは更に、前記第1のオペレーティングシステムの2回目の実行中に前記第2のオペレーティングシステムの状態データを前記データ記憶装置にコピーするための第2のライトアウトモジュールを有する、請求項1記載の計算装置。
  3. 前記オペレーティングシステム切替イベントの受信は、システムイベントに応答してオペレーティングシステム切替イベントを受信するか、又は、ユーザ選択に応答してオペレーティングシステム切替イベントを受信することを含む、請求項1記載の計算装置。
  4. 前記オペレーティングシステム切替イベントの受信は、ハードウェア切替選択を受信するか、又はソフトウェア切替選択を受信することを含む、請求項3記載の計算装置。
  5. 前記切替イベントモジュールは更に、前記オペレーティングシステム切替イベントの受信に応答して、前記計算装置をハイバネーション電力管理状態に移行させる、請求項1乃至4何れか一項記載の計算装置。
  6. 前記第1のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーすることは、
    前記データ記憶装置に対する1つ以上のI/O処理をインターセプトし、
    前記1つ以上のI/O処理を前記リザーブメモリエリアにルーティングする、
    ことを含む、請求項1乃至4何れか一項記載の計算装置。
  7. 前記1つ以上のI/O処理をインターセプトすることは、前記データ記憶装置により記憶されるハイバネーションファイルに対する1つ以上のI/O処理をインターセプトすることを含む、請求項6記載の計算装置。
  8. 前記1つ以上のI/O処理をインターセプトすることは、前記第1のオペレーティングシステムのフィルタドライバを用いて1つ以上のI/O処理をインターセプトすることを含む、請求項6記載の計算装置。
  9. 前記第2のオペレーティングシステムを実行することは、前記データ記憶装置により記憶されたハイバネーションファイルから前記第2のオペレーティングシステムをロードすることを含む、請求項1乃至4何れか一項記載の計算装置。
  10. 前記第2のオペレーティングシステムは更に、前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーすることと同時にアプリケーションを実行する、請求項1乃至4何れか一項記載の計算装置。
  11. 前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーすることは更に、前記計算装置がアイドルであるとき、前記状態データをコピーすることを含む、請求項1乃至4何れか一項記載の計算装置。
  12. 前記データ記憶装置は、ハードディスクドライブ、ソリッドステートドライブ又は埋め込みフラッシュメモリモジュールを含む、請求項1乃至4何れか一項記載の計算装置。
  13. 前記第1のオペレーティングシステムの実行前に、前記リザーブメモリエリアとして前記メインメモリの一部をリザーブするためのメモリリザベーションモジュールを更に有する、請求項1乃至4何れか一項記載の計算装置。
  14. 前記メモリの一部をリザーブすることは、前記計算装置のファームウェアを用いて前記メモリの一部をリザーブすることを含む、請求項13記載の計算装置。
  15. オペレーティングシステムの間を遷移する方法であって、
    計算装置が、前記計算装置の第1のオペレーティングシステムを実行するステップと、
    前記計算装置が、前記第1のオペレーティングシステムの実行中にオペレーティングシステム切替イベントを受信するステップと、
    前記計算装置が、前記オペレーティングシステム切替イベントの受信に応答して、前記計算装置のリザーブメモリエリアに前記第1のオペレーティングシステムの状態データをコピーするステップと、
    前記計算装置が、前記状態データを前記リザーブメモリエリアにコピーしたことに応答して、前記計算装置の第2のオペレーティングシステムを実行するステップと、
    前記計算装置が、前記第2のオペレーティングシステムを実行したことに応答して、前記第1のオペレーティングシステムの状態データを前記計算装置のデータ記憶装置にコピーするステップと、
    を有する方法。
  16. 前記計算装置が、前記第2のオペレーティングシステムの実行中に第2のオペレーティングシステム切替イベントを受信するステップと、
    前記計算装置が、前記第2のオペレーティングシステム切替イベントの受信に応答して、前記第2のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするステップと、
    前記計算装置が、前記第2のオペレーティングシステムの状態データをコピーしたことに応答して、前記第1のオペレーティングシステムの2回目を実行するステップと、
    前記計算装置が、前記第1のオペレーティングシステムの2回目の実行に応答して、前記第2のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップと、
    を更に有する、請求項15記載の方法。
  17. 前記オペレーティングシステム切替イベントを受信するステップは、ユーザ選択に応答してオペレーティングシステム切替イベントを受信するステップを含み、
    前記オペレーティングシステム切替イベントを受信するステップは、ハードウェア切替選択を受信するステップを含む、請求項15記載の方法。
  18. 前記計算装置が、前記オペレーティングシステム切替イベントの受信に応答して、ハイバネーション電力管理状態に移行するステップを更に有する、請求項15記載の方法。
  19. 前記第1のオペレーティングシステムの状態データを前記リザーブメモリエリアにコピーするステップは、
    前記データ記憶装置に対する1つ以上のI/O処理をインターセプトするステップと、
    前記1つ以上のI/O処理を前記リザーブメモリエリアにルーティングするステップと、を含む、請求項15記載の方法。
  20. 前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは、前記第2のオペレーティングシステムの実行と同時に前記第1のオペレーティングシステムの状態データをコピーするステップを含み、
    前記第2のオペレーティングシステムを実行するステップは、前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーするのと同時にアプリケーションを実行するステップを含む、請求項15記載の方法。
  21. 前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは、前記第2のオペレーティングシステムの実行と同時に前記第1のオペレーティングシステムの状態データをコピーするステップを含み、
    前記第1のオペレーティングシステムの状態データを前記データ記憶装置にコピーするステップは更に、前記計算装置がアイドルであるとき、前記状態データをコピーするステップを含む、請求項15記載の方法。
  22. 前記計算装置が、前記第1のオペレーティングシステムを実行する前に、前記リザーブメモリエリアとして前記計算装置のメモリの一部をリザーブするステップを更に有する、請求項15記載の方法。
  23. 計算装置であって、
    プロセッサと、
    前記プロセッサにより実行されると、請求項15乃至22何れか一項記載の方法を前記計算装置に実行させるための複数の命令を記憶するメモリと、
    を有する計算装置。
  24. 請求項15乃至22何れか一項記載の方法を計算装置に実行させるためのプログラム。
  25. 請求項15乃至22何れか一項記載の方法を実行するための手段を有する計算装置。
  26. 請求項24記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
JP2016562742A 2014-02-06 2015-01-30 マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移のための技術 Expired - Fee Related JP6152493B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461936610P 2014-02-06 2014-02-06
US61/936,610 2014-02-06
US14/316,370 US9645864B2 (en) 2014-02-06 2014-06-26 Technologies for operating system transitions in multiple-operating-system environments
US14/316,370 2014-06-26
PCT/US2015/013822 WO2015119860A1 (en) 2014-02-06 2015-01-30 Technologies for operating system transitions in multiple-operating-system environments

Publications (2)

Publication Number Publication Date
JP2017501522A JP2017501522A (ja) 2017-01-12
JP6152493B2 true JP6152493B2 (ja) 2017-06-21

Family

ID=53754894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016562742A Expired - Fee Related JP6152493B2 (ja) 2014-02-06 2015-01-30 マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移のための技術

Country Status (6)

Country Link
US (3) US9645864B2 (ja)
EP (1) EP3103013A4 (ja)
JP (1) JP6152493B2 (ja)
KR (2) KR102219122B1 (ja)
CN (1) CN105874428B (ja)
WO (1) WO2015119860A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645864B2 (en) 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments
JP6189267B2 (ja) * 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
IN2015CH01317A (ja) * 2015-03-18 2015-04-10 Wipro Ltd
US10756991B2 (en) 2015-09-17 2020-08-25 Salesforce.Com, Inc. Simplified entity engagement automation
US10324773B2 (en) * 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
US10437635B2 (en) 2016-02-10 2019-10-08 Salesforce.Com, Inc. Throttling events in entity lifecycle management
CN107491160A (zh) * 2017-06-22 2017-12-19 深圳天珑无线科技有限公司 一种双操作***的使用方法、存储设备及智能终端
CN110780926B (zh) * 2018-07-30 2022-11-15 中兴通讯股份有限公司 一种操作***的切换方法、终端和计算机存储介质
CN115543364A (zh) * 2021-06-30 2022-12-30 华为云计算技术有限公司 内核升级方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI305319B (en) * 2000-05-19 2009-01-11 Vir2Us Inc Computer having proctected data stores and switchable components providing isolated computing for vital and haker immunity
US20130024812A1 (en) * 2011-07-13 2013-01-24 Z124 Foreground/background assortment of hidden windows
JP2003196096A (ja) * 2001-12-07 2003-07-11 Internatl Business Mach Corp <Ibm> コンピュータシステム、その起動制御方法及びプログラム
CN100383744C (zh) * 2004-12-24 2008-04-23 联想(北京)有限公司 一种计算机多操作***的切换方法
US8667418B2 (en) * 2007-06-08 2014-03-04 Apple Inc. Object stack
US8589706B2 (en) * 2007-12-26 2013-11-19 Intel Corporation Data inversion based approaches for reducing memory power consumption
US20090287571A1 (en) * 2008-03-26 2009-11-19 Robb Fujioka Hypervisor and virtual machine ware
US20100185667A1 (en) * 2009-01-12 2010-07-22 David Joseph O'Hanlon System and method appending internet command functions
US20100180185A1 (en) * 2009-01-12 2010-07-15 David Joseph O'Hanlon System and method appending internet command functions
CN101782861A (zh) 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式***中操作***的管理方法及装置
US20110185142A1 (en) * 2010-01-26 2011-07-28 Tsuyoshi Nishida Information processing apparatus and data saving acceleration method of the information processing apparatus
US8433889B2 (en) * 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
CN102135910B (zh) * 2011-03-03 2014-05-14 威盛电子股份有限公司 切换操作***的方法及使用此方法的电子装置
US9354900B2 (en) * 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
CN102810071B (zh) * 2011-05-30 2015-01-28 联想(北京)有限公司 控制方法、控制装置以及计算机
US20150347155A1 (en) 2011-10-28 2015-12-03 Michael Rothman Switching between operational contexts
CN103136052A (zh) * 2011-11-25 2013-06-05 展讯通信(上海)有限公司 移动终端及安装有多个操作***的移动终端的控制方法
TWI588747B (zh) * 2014-01-14 2017-06-21 仁寶電腦工業股份有限公司 切換作業系統的方法及電子裝置
US9645864B2 (en) 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments

Also Published As

Publication number Publication date
WO2015119860A1 (en) 2015-08-13
US9645864B2 (en) 2017-05-09
US20220100530A1 (en) 2022-03-31
KR20180015755A (ko) 2018-02-13
EP3103013A4 (en) 2017-08-23
JP2017501522A (ja) 2017-01-12
US11609767B2 (en) 2023-03-21
EP3103013A1 (en) 2016-12-14
CN105874428B (zh) 2019-06-25
KR20160094434A (ko) 2016-08-09
US11182172B2 (en) 2021-11-23
CN105874428A (zh) 2016-08-17
US20150220353A1 (en) 2015-08-06
KR102219122B1 (ko) 2021-02-23
US20170242710A1 (en) 2017-08-24
KR101826769B1 (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
JP6152493B2 (ja) マルチオペレーティングシステム環境におけるオペレーティングシステムの遷移のための技術
US9823877B2 (en) Virtual machine backup from storage snapshot
US9317320B2 (en) Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
US9552405B1 (en) Methods and apparatus for recovery of complex assets in distributed information processing systems
US9183099B2 (en) Replication of a write-back cache using a placeholder virtual machine for resource management
US9600369B2 (en) Operating system recovery method and apparatus, and terminal device
US11422860B2 (en) Optimizing save operations for OS/hypervisor-based persistent memory
EP2905700B1 (en) Operating system recovery method, apparatus and terminal device
CN109313604B (zh) 用于压缩虚拟存储器的动态配置的计算***、装置和方法
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
EP3871087B1 (en) Managing power request during cluster operations
KR101552580B1 (ko) 모바일 기기를 포함하는 시스템 복원 및 멀티 운영체제를 지원하는 백업 방법
US12008391B2 (en) System and method for virtualizing hot-swappable PCIe devices for virtual machines
US20140189184A1 (en) Creating dynamic fixed functionality for a hardware device system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170421

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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170529

R150 Certificate of patent or registration of utility model

Ref document number: 6152493

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees