JP2016173821A - コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 - Google Patents
コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2016173821A JP2016173821A JP2016052123A JP2016052123A JP2016173821A JP 2016173821 A JP2016173821 A JP 2016173821A JP 2016052123 A JP2016052123 A JP 2016052123A JP 2016052123 A JP2016052123 A JP 2016052123A JP 2016173821 A JP2016173821 A JP 2016173821A
- Authority
- JP
- Japan
- Prior art keywords
- hypervisor
- mode
- processor
- persistent
- engine
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Abstract
Description
例えば、パーソナルコンピュータのユーザは複数の仮想マシンを利用することができ、それにより、その単一のマシンでの異なるオペレーティング・システムにおいて、様々なアプリケーションを同時に実行することが可能となる。
多くの場合、仮想化は、ウェブホスティングサービスを提供する場合のような大容量サーバにおいて見られる
仮想マシンのマネージャー又はディスパッチャーとして機能する。一般的に、ハイパーバイザーは、また、仮想マシンモニター(VMM)と呼ばれる。
ハイパーバイザーコード自体は、特定のタイムクォンタム時間割当て量の満了時にその実行を正確に完了する。
しかし、このタイムクォンタムは、必ずしもOSのスケジューラによって割り当てられたタイムクォンタムと一致しないことに留意すべきである。
例えば、永続的なハイパーバイザーが、非常に重要な仮想マシンを実行するために使用される場合、1つ又は複数の非永続的なハイパーバイザーと並んで、従来のマルチタスク技術は、永続的なハイパーバイザー用の永続的な運用を適切に行うことを確実するという点において困難性を有している。もう一つの問題は、他の従来のハイパーバイザーは、永続的なハイパーバイザーの存在を認識しないかもしれないし、ハイパーバイザー・モードのプロセッサ上での実行を先に行なおうとしたときに、オペレーティング・システムをクラッシュする可能性があるという問題である。従って、複数のハイパーバイザーの効果的かつ効率的な同時実行を容易にするために、解決策が必要となる。
スーパーバイザー・モード命令の実行の終了に応答して、ハンドラ・エンジンは、プロセッサ状態を保存することを含む、非永続的なハイパーバイザーの実行を中断し、ハイパーバイザー・モードで永続的なハイパーバイザーを実行するようにプロセッサ状態を推移する。
それは、1つの物理的なマシンであってもよく、又は、複数の物理的なマシン間に分散してもよい。
クラウドコンピューティング分散モデルの場合、役割又は機能によって、又は、プロセススレッドによって、分散することもできる。
例として、ルータ、スイッチなどのネットワークデバイスなどとともに、デスクトップ又はモバイル型のパーソナルコンピュータ(PC)、スマートフォン、及びタブレットを含む。
コンピューティング・プラットフォームは、スタンドアロンデバイス、又は、組み込みデバイスであってもよく、組み込みデバイスは、より大きなデバイス又はシステムの一部であってもよい。
それは、(実行される間に)マイクロプロセッサシステムを専用のデバイスに変換する。
エンジンはまた、
ハードウェアのみによって容易となる特定の機能、及びハードウェアとソフトウェアの組み合わせによって容易となる他の機能の、両者の組み合わせとして実装することもできる。
ある実装形態では、エンジンの少なくとも一部、場合によっては、全部は、1つ又は複数のコンピュータのプロセッサ上で実行することができ、それは、オペレーティング・システム、システム・プログラム、及びアプリケーションプログラムを実行する。
一方、マルチタスク、マルチスレッド、そこでの適切な分散(例えば、クラスタ、ピア・ツー・ピア、クラウド等)処理、又は他の類似の技術を使用してエンジンを実装する。
さらに、エンジンは、1つ以上のサブエンジンにより、構成されることができ、そのそれぞれが、それ自体でエンジンとみなすことができる。
ハイパーバイザーは、仮想オペレーティングプラットフォームを有するゲスト・オペレーティング・システム又はシステム・プログラムを提示し、且つ、ゲスト・オペレーティング・システム又はシステム・プログラムの実行を管理する。
その命令により、1つ又は複数のハイパーバイザーの能力を、異なるオペレーティング・システム又はその他のシステム・プログラムに分けることが容易となり、それにより、相互に影響を与えることを回避され、各々がスーパーバイザー・モードで実行される。
典型的に、スーパーバイザー・モードはプロテクションリング0として指定されているシステムでは、ハイパーバイザー・モードは、プロテクションリング1として指定されている。
例として、ネットワークインターフェースデバイス、モニター、キーボード、マウス、プリンタ、シリアルポートなど)が挙げられる
また、本明細書で説明した実施形態で、様々なエンジンの各々は、定義された機能に対応するものである。しかしながら、他の意図される実施形態では、各機能が複数のエンジンに分散されてもよいことが理解されるべきである。同様に、他の意図される実施形態では、複数の定義された機能は、これらの複数の機能を実行する単一のエンジンによって、おそらく他の機能と並んで、又は本明細書に具体的に例に示されているものとは異なって、エンジンセットの中で分散される、ように実装されることができる。
ハイパーバイザー110аの永続的な運用を確実することは不可能である。というのも、遅かれ早かれ、スケジューラ120は、ハイパーバイザー110bのコードの実行のために、タイムクォンタムを割り当てるだろう。この文脈では、ハイパーバイザー110bの1つを実行するということは、ハイパーバイザーのもとで動作している仮想マシンの実行であることを本質的に意味している。
まず、ハイパーバイザーは、OSコアでの悪質なコードの実行(スーパーバイザー・モード、リング0)レベル(例えば、ルートキット)の検出を可能にできる。
次に、ハイパーバイザーは、PatchGuardなどのOSコアプロテクションを避けるために必要とされることができる。
マルチコアプロセッサでは、ハイパーバイザーの個別のコピーは、各コアにおいて動作するのではなく、異なる対応の前後関係を有している。
例えば、Page Directory及びCR3のレジストリが完全にリロードされる。
仮想マシン110bの起動における他の例としては、(VMWareの場合)vmrunコマンドの実行である。
これらのパラメータとコマンドのいずれかは、システムの状態情報220として、図2Aにまとめて表されている。
コマンド検出エンジン250及びパラメータ変更モニターエンジン252は、システムの状態情報220をモニターするために、各々がプログラムされるか、又は別な方法で構成される。
コマンド検出エンジンは、コマンドを検出し、一方、パラメータ変更モニター252は、オペレーティング・システム内の特定のパラメータの変更を検出する。
ハイパーバイザー実行検出器256は、検出したコマンドとパラメータの変更を、基準に照らして比較し、ハイパーバイザー110bの実行のためのコールを指示し、又は、永続的なハイパーバイザー110aにおける運用を再開するように適合するためのコールを指示する。
このような基準は、プロセッサの状態の変化、Page Directory又はCR3のレジスタのリロード、或いは、vmrunコマンドの生成を含めることができる。
関連する実施形態において、インターセプター・エンジン258は、モード推移の試みにおける、コマンド又はパラメータ変更を示す存在を検出したことに応答して、
特定の一連のアクションが行われるまで、そのコマンドの実行又はモード推移を保持するために、
プログラムされ、又は別な方法で構成される。
永続的なハイパーバイザー実行制御エンジン260は、以下に詳細に説明するように、そのようなアクションを行うように、プログラムされ、又は別な方法で構成される。
ハイパーバイザー・モードの終了、及び、ハイパーバイザー110aの最後の命令へ制御の推移。
この運用により、
ハイパーバイザー110bがハイパーバイザー・モードで実行され、ハイパーバイザー110bが永続的なハイパーバイザー110aの存在に気づかない場合、
永続的なハイパーバイザー110aは、ハイパーバイザー・モードからスーパーバイザー・モードに切り替えられることを確実になる。
すでに異なるプロテクションリングの範囲内で、実行が継続されているので、
ハイパーバイザー・モード外ですでに実行されている。(一般的に、それはカーネルの優先レベルに対応するリング0になるだろう)
工程310において、ハンドラ210は、(コマンド検出器250及びパラメータ変更モニター252を使用して)システムのステータス情報220を監視する。
工程320において、ハイパーバイザー実行検出エンジン256が、システムの状態が変化した(例えば、ページディレクトリが上書きされ、又はvmrunコマンドが実行される)と判断した場合、
その後、工程330で、永続的なハイパーバイザー110aの実行は、永続的なハイパーバイザー実行制御部260によって停止される。
レジストリのリロードがカーネルモードからコールされた場合、
前後関係の単なる切替であると考えられ、
そして、ユーザーモードからコールされた場合、例えば、仮想マシンのプロセスからのコールがあったという、さらなる確認をすることが可能である。
このようなチェックにより、システムは、永続的なハイパーバイザー110aの停止の場合に備えて、その停止の必要性が絶対にないのに停止することを防ぐために、「偽のアクティベーション」の数を最小限にすることを可能となる。
複数の異なるハイパーバイザー110bが存在する実施形態では、
最初のハイパーバイザー110bの実行完了後すぐに永続的なハイパーバイザー110aの再開するのに先立ち、
永続的なハイパーバイザー110aは、実行を再開する前に、それらの実行を完了するために、すべてのハイパーバイザー110bを待つ。
例えば、指定した時間の満了時(実行タイムクォンタムが期限切れとなったとき)に、
スケジューラ120は、コードが実行される(例えば、永続的なハイパーバイザー110aのスタート)べきかを決定する。
タイマーは、ハイパーバイザー110bのうちの1つが運用を完了し、永続的なハイパーバイザー110Aを起動することができるように、引き続き起動する次の時間を許可するためにリセットすることができる。
この目的のために、電源に関連する機能(WindowsOSではPower Managementのコールバック関数)、又は、システム変数(WindowsOSではSYSTEM_POWER_STATE)は、監視されている。
それは、また、プロセッサの状態、例えば、エミュレータ(QEMU (Quick Emulator)及び他の類似のプログラム、それらは、ウイルス対策アプリケーションで使用含む)に大きな変化をもたらす。しかし、エミュレータ及び永続的なハイパーバイザー110aが、ウイルス対策製品に含まれている場合、そのから、エミュレータの運用後、後者は自動的に永続的なハイパーバイザー部110aを起動することができる。
論理コアは、システムメモリ406又はメモリ(リムーバブル416及び非リムーバブル418のメモリインターフェース418に装着された)などのコンピュータ可読媒体上に格納された情報を処理することができる。コンピュータ402のシステムメモリ406は、リードオンリーメモリ(ROM)422等の不揮発性メモリ又は、ランダムアクセスメモリ(RAM)424等の揮発性メモリを含んでもよい。ROM422は、コンピュータ402の他の部分と通信するのに役立つように、基本入力/出力システム(BIOS)426を含むことができる。RAM424は、オペレーティング・システム428、アプリケーションプログラム430、及び、他のプログラム・エンジン432等の、種々のソフトウェアアプリケーションのパーツを格納することができる。
さらに、RAM424は、プログラム又はアプリケーションデータ434のような他の情報を格納することができる。様々な実施形態において、RAM424は操作又は動作され、低レイテンシ且つ効率的なアクセスを必要とする情報を格納する。様々な実施形態では、RAM424は、ダブルデータレート(DDR)メモリ、エラー訂正メモリ(ECC)、又は、他のメモリ技術を備え、様々なレイテンシ、及び、RAMBUS 又は DDR2 及びDDR3等の構成を有している。
これらのディスクドライブ436は、オペレーティング・システム438、アプリケーションプログラム440、及び、その他のプログラム・エンジン442等の種々のソフトウェアアプリケーションのためのさらなるストレージを提供することができる。さらに、ディスクドライブ436は、プログラム又はアプリケーションデータ444等の他の情報を格納することができる。種々の実施形態では、ディスクドライブ436は、他のストレージ媒体と同様に、低レイテンシを必要としない情報を格納する。
さらに、オペレーティング・システム438、アプリケーションプログラム440のデータ、プログラム・エンジン442、及びプログラム又はアプリケーションデータ444は、上記に示すように、様々な実施形態で、RAM424に格納されているものと同じ情報であってもよく、又は、異なるデータであってもよい。それは、データを格納しているRAM424の潜在的に誘導されるものである。
さらに他の実施形態では、リムーバルメモリの容量を増大させるために、ポータブル筐体54内に収容される、SSD又は回転ディスクを利用する。
類似のハードウェア及びソフトウェア構成を有してもよく、又は、リモートアプリケーションプログラム466を含んでいるメモリ464を有してもよい、そのプログラムは、コンピュータ402に追加のコンピュータ可読命令を提供することができる。様々な実施形態では、リモートコンピュータのメモリ464は、識別されたファイル情報などの情報を格納するために利用することができ、ファイル情報は、後でローカルシステムメモリ406にダウンロードすることができる。さらに、様々な実施形態において、リモートコンピュータ456は、アプリケーションサーバ、管理サーバ、クライアントコンピュータ、又はネットワーク機器であってもよい。
さらに、入力デバイスは、トラックパッド、指紋スキャナ、ジョイスティック、バーコードスキャナ、メディアスキャナ等であってもよい。
ビデオ・インターフェース408は、モニター472等の表示に視覚情報を提供することができる。
ビデオ・インターフェース408は、組み込みインターフェースであってもよいし、個別のインターフェースであってもよい。
さらに、コンピュータは、コンピュータ402の運用の自由度を増加させるために、複数のビデオ・インターフェース408、ネットワークインターフェース412、及び、リムーバブル416及び非リムーバブル418インターフェースを利用することができる。
さらに、様々な実施形態は、コンピュータ402の性能及び機能を変化させるために、複数のモニター472及び複数のビデオ・インターフェース408を利用する。
他のコンピュータ・インターフェースは、出力周辺インターフェース410等をコンピュータ402に含めることができる。このインターフェースは、コンピュータ402に追加機能を提供するために、プリンタ474又はスピーカ476、或いは、他の周辺装置に接続することができる。
これらの変化は、制限はなく、ユニバーサル・シリアル・バス(USB)、プリンターポート、PCIバス、PCIエクスプレス、又は、上記に示した様々なコンポーネントの統合したもの(ノースブリッジやサウスブリッジなどのチップセットコンポーネント)等のシステムバス420に接続された追加のインターフェース、を含んでも良い。
例えば、種々の実施形態において、処理ユニット404は、システムメモリ406からのデータのより効率的(システムバス420が提供するよりも)な転送を可能にするために、組込み型メモリコントローラ(図示せず)を含んでもよい。
本明細書に記載の実施形態は、本発明の様々な特徴を組み合わせた方法の網羅的な提示であることを意味するものではない。
従って、実施形態は、明示的な記載がない限り、相互に機能の排他的な組合せではない。
むしろ、本発明は、当業者によって理解されるように、異なる個々の実施形態から選択された、異なる個々の機能の組み合わせを含むことができる。
更に、上記文書のいずれの援用も、
文書に含まれる特許請求の範囲が、本出願の特許請求の範囲に援用されないように制限されている。
しかしながら、文書のいずれかにおける特許請求の範囲は、具体的に除外されない限り、本明細書の開示の一部として組み込まれる。
上記文書のいずれの援用も、文書で提供される任意の定義が、本明細書に明示的に含まれていない限り、本明細書に参考として援用されないように制限されている。
米国特許法112条第6項の条文は、具体的な用語“means for” 又は “step for”が、請求項に記載されてない限り、適用されるものではない、ということが明白に意図されている。
Claims (21)
- 複数のハイパーバイザーの共同運用を調整するためのシステムであって、
前記システムは、プロセッサ、データストレージ、及び入力/出力機能、を有するコンピューティング・プラットフォームを備え、
前記プロセッサは、ハイパーバイザー・モードとスーパーバイザー・モードの間の切替が可能であり、
前記ハイパーバイザー・モードは、前記スーパーバイザー・モードよりも高い特権レベルを提供し、
前記コンピューティング・プラットフォームは、命令を含み、
前記命令は、前記コンピューティング・プラットフォームによって実行された時、前記コンピューティング・プラットフォームが、
永続的なハイパーバイザー及び非永続的なハイパーバイザーと、
前記スーパーバイザー・モードでの前記非永続的なハイパーバイザーの運用を調整するように構成されるスケジューラエンジンと、
前記ハイパーバイザー・モードで、前記永続的なハイパーバイザーの運用を調整するように構成されるハンドラ・エンジンと、を実装し、
前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モード間で、前記プロセッサのモード推移の試みを監視しその試みに応答し、
前記ハイパーバイザー・モードから前記スーパーバイザー・モードへのモード推移の試みに応答して、前記ハンドラ・エンジンは、前記プロセッサの状態の保存することを含む、前記非永続的なハイパーバイザーの実行を中断し、及び、前記スーパーバイザー・モードで前記非永続的なハイパーバイザーを実行するようにプロセッサ状態を推移する、という命令であり、
前記スーパーバイザー・モード命令の実行の終了に応答して、前記ハンドラ・エンジンは、前記プロセッサ状態を保存することを含む、前記非永続的なハイパーバイザーの実行を中断し、及び、前記ハイパーバイザー・モードで前記永続的なハイパーバイザーを実行するようにプロセッサ状態を推移する、
システム。
- 前記ハンドラ・エンジンは、オペレーティング・システム・ドライバを使用して実現される、請求項1に記載のシステム。
- 前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モードの間でのプロセッサモード推移を示す前記コンピューティング・プラットフォームの状態情報をモニターするように構成される、請求項1に記載のシステム。
- 前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モードの間でのプロセッサモード推移に関連する少なくとも一つのコマンドをモニターするように構成される、請求項1に記載のシステム。
- 前記少なくとも一つのコマンドはvmrunコマンドを含む、請求項4に記載のシステム。
- 前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モードの間でのプロセッサモード推移に関連する少なくとも一つのパラメータの状態変化を検出するように構成される請求項1に記載のシステム。
- 前記パラメータの状態変化は、ページディレクトリのリロードを含む、請求項6に記載のシステム。
- 前記パラメータの状態変化は、CR3レジスタのリロードを含む、請求項6に記載のシステム。
- 前記ハンドラ・エンジンは、インターセプター・エンジンを含み、
前記インターセプター・エンジンは、
前記永続的なハイパーバイザーの運用を制御するための一連のアクションが完了するまで、
モード変更の試みの検出に応答して、
前記プロセッサのモード変更の実行を中断するように構成される、
請求項1に記載のシステム。
- 前記ハンドラ・エンジンは、以下のように構成される、
前記ハイパーバイザー・モードから前記スーパーバイザー・モードへのモード推移の試みに応答して、
前記ハンドラ・エンジンは、前記モード推移によって生じるプロセッサモードを決定し、
前記プロセッサモードの決定に基づいて、
前記永続的なハイパーバイザーの中断は許可され、又は許可されない、
請求項1に記載のシステム。 - 前記ハンドラ・エンジンは、
前記非永続的なハイパーバイザーの実行を停止するというコールを示す状況に対応する為に、前記スケジューラエンジンをモニターするように構成され、
前記状況に応答して、
前記ハンドラ・エンジンは、中断された永続的なハイパーバイザーの運用を再開する、
請求項1に記載のシステム。 - ハイパーバイザー・モードとスーパーバイザー・モードの間での切り替え可能なプロセッサを備えたコンピューティング・システム内における、複数のハイパーバイザーの共同運用を調整するための方法であって、
前記ハイパーバイザー・モードは、前記スーパーバイザー・モードより高い特権レベルを提供し、
前記方法は、
前記コンピューティング・システムによって、永続的なハイパーバイザー及び非永続的なハイパーバイザーを実行するステップと、
前記コンピューティング・システムによって、前記ハイパーバイザー・モードで前記永続的なハイパーバイザーの運用を調整するハンドラ・エンジンを実行し、
前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モード間でのプロセッサのモード推移の試みを監視し、その試みに応答し、
前記ハイパーバイザー・モードから前記スーパーバイザー・モードへのモード推移の試みに応答して、前記ハンドラ・エンジンは、前記プロセッサの状態を保存することを含む、前記永続的なハイパーバイザーの実行を中断し、前記スーパーバイザー・モードで前記非永続的なハイパーバイザーを実行するプロセッサの推移する、ステップと、を有し、
前記非永続的なハイパーバイザーは、スケジューラエンジンによって制御された動作方式に応じて、前記スーパーバイザー・モードで実行され、
前記スーパーバイザー・モードの命令の実行の終了に応答して、前記ハンドラ・エンジンが、前記プロセッサ状態の保存することを含む、前記非永続的なハイパーバイザーの実行を中断し、前記永続的なハイパーバイザー・モードで前記ハイパーバイザーを実行するようにプロセッサ状態の推移する、
方法。 - 前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モードとの間でプロセッサモード推移を示すコンピューティング・プラットフォームの状態情報をモニターする、請求項12に記載の方法。
- 前記ハンドラ・エンジンは、前記ハイパーバイザー・モードと前記スーパーバイザー・モードとの間のプロセッサモード推移に関連する少なくとも一つのコマンドをモニターする、請求項12に記載の方法。
- 前記少なくとも一つのコマンドは、vmrunコマンドを含む、請求項14に記載の方法。
- 前記ハンドラ・エンジンが、前記ハイパーバイザー・モードと前記スーパーバイザー・モードとの間のプロセッサモードの推移に関連する少なくとも1つのパラメータの状態変化を検出する、請求項12に記載の方法。
- 前記パラメータの状態変化が、ページディレクトリ又はCR3レジスタのリロードを含む、請求項16に記載の方法。
- 前記ハンドラ・エンジンが、
モード変更を行う試みの検出に応答して、
永続的なハイパーバイザーの動作を制御するための一連のアクションが完了するまで、
プロセッサのモード変更の実行を中断する、
請求項12に記載の方法。 - 前記ハイパーバイザー・モードから前記スーパーバイザー・モードへのモード推移の試みに応答して、
前記ハンドラ・エンジンは、発信された前記モード遷移によって生じるプロセッサモードを決定し、
前記プロセッサモードの決定に基づいて、
前記永続的なハイパーバイザーの中断は許可され、又は、許可されない、
請求項12に記載の方法。 - 前記ハンドラ・エンジンは、
非永続的なハイパーバイザーの実行を停止するというコールを示す状況に対応する為に、
前記スケジューラエンジンをモニターするように構成され、
前記状況に応答して、
前記ハンドラ・エンジンは、中断された永続的なハイパーバイザーの運用を再開する、
請求項12に記載の方法。 - ハイパーバイザー・モードとスーパーバイザー・モードの間で切り替え可能なプロセッサを備えたコンピューティング・システム内における、複数のハイパーバイザーの共同運用を調整するためのシステムであって、
前記ハイパーバイザー・モードは、前記スーパーバイザー・モードよりも高い特権レベルを提供し、
前記システムは、
永続的なハイパーバイザーと非永続的なハイパーバイザーを実行するための手段と、
前記ハイパーバイザー・モードで前記永続的なハイパーバイザーの運用を調整するように前記ハンドラ・エンジンを実行し、
前記ハンドラ・エンジンは、前記ハイパーバイザーと前記スーパーバイザー・モード間のプロセッサのモード推移の試みを監視し、その試みに応答し、
前記ハイパーバイザー・モードから前記スーパーバイザー・モードへのモード推移の試みに応答して、前記ハンドラ・エンジンは、前記プロセッサの状態を保存することを含む、前記永続的なハイパーバイザーの実行を中断し、前記スーパーバイザー・モードで前記非永続的なハイパーバイザーを実行するようにプロセッサを推移する、手段と、を備え、
前記非永続的なハイパーバイザーは、スケジューラエンジンによって制御された動作方式に応じて、前記スーパーバイザー・モードで実行され、
前記スーパーバイザー・モードの命令の実行の終了に応答して、前記ハンドラ・エンジンが、前記プロセッサ状態の保存することを含む、前記非永続的なハイパーバイザーの実行を中断し、前記永続的なハイパーバイザー・モードで、前記ハイパーバイザーを実行するようにプロセッサ状態の推移する、
システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/659,049 US9286105B1 (en) | 2015-03-16 | 2015-03-16 | System and method for facilitating joint operation of multiple hypervisors in a computer system |
US14/659,049 | 2015-03-16 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016173821A true JP2016173821A (ja) | 2016-09-29 |
JP2016173821A5 JP2016173821A5 (ja) | 2019-01-10 |
JP6530723B2 JP6530723B2 (ja) | 2019-06-12 |
Family
ID=52875587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016052123A Active JP6530723B2 (ja) | 2015-03-16 | 2016-03-16 | コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9286105B1 (ja) |
EP (1) | EP3070605A1 (ja) |
JP (1) | JP6530723B2 (ja) |
CN (1) | CN105511941B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286105B1 (en) | 2015-03-16 | 2016-03-15 | AO Kaspersky Lab | System and method for facilitating joint operation of multiple hypervisors in a computer system |
KR101729680B1 (ko) * | 2015-12-01 | 2017-04-25 | 한국전자통신연구원 | 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치 |
US10127068B2 (en) * | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10708136B2 (en) * | 2017-06-20 | 2020-07-07 | Microsoft Technology Licensing, Llc | Standardization of network management across cloud computing environments and data control policies |
US11016798B2 (en) | 2018-06-01 | 2021-05-25 | The Research Foundation for the State University | Multi-hypervisor virtual machines that run on multiple co-located hypervisors |
US10915353B2 (en) * | 2019-04-01 | 2021-02-09 | International Business Machines Corporation | Intelligent processor for user-provided routines in a transaction processing system |
US11640315B2 (en) | 2019-11-04 | 2023-05-02 | Vmware, Inc. | Multi-site virtual infrastructure orchestration of network service in hybrid cloud environments |
US11709698B2 (en) * | 2019-11-04 | 2023-07-25 | Vmware, Inc. | Multi-site virtual infrastructure orchestration of network service in hybrid cloud environments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003749A (ja) * | 2007-06-22 | 2009-01-08 | Hitachi Ltd | 仮想化プログラム及び仮想計算機システム |
US20110066786A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method of Suspending and Resuming Virtual Machines |
JP2011070663A (ja) * | 2009-09-22 | 2011-04-07 | Internatl Business Mach Corp <Ibm> | コンピュータ・システムにおける入れ子式仮想化の性能改善 |
US20130145363A1 (en) * | 2011-12-05 | 2013-06-06 | Ravello Systems Ltd. | System and method thereof for running an unmodified guest operating system in a para-virtualized environment |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2353113B (en) | 1999-08-11 | 2001-10-10 | Sun Microsystems Inc | Software fault tolerant computer system |
US7552426B2 (en) | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
US7802110B2 (en) | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
JP4982971B2 (ja) | 2004-09-29 | 2012-07-25 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
CN101490645A (zh) * | 2006-07-10 | 2009-07-22 | Vm设备有限公司 | 用以设备虚拟化的方法及设备 |
DE102006048173A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten |
US8010763B2 (en) | 2007-08-02 | 2011-08-30 | International Business Machines Corporation | Hypervisor-enforced isolation of entities within a single logical partition's virtual address space |
US8321931B2 (en) | 2008-03-31 | 2012-11-27 | Intel Corporation | Method and apparatus for sequential hypervisor invocation |
US8275971B2 (en) | 2008-08-27 | 2012-09-25 | International Business Machines Corporation | Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities |
US8873375B2 (en) | 2009-07-22 | 2014-10-28 | Broadcom Corporation | Method and system for fault tolerance and resilience for virtualized machines in a network |
US8381284B2 (en) | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
US8918575B2 (en) * | 2009-09-14 | 2014-12-23 | Broadcom Corporation | Method and system for securely programming OTP memory |
RU2445686C2 (ru) | 2010-01-21 | 2012-03-20 | Игорь Вячеславович Стручков | Способ установки, настройки, администрирования и резервного копирования программного обеспечения |
US8539484B1 (en) | 2010-05-26 | 2013-09-17 | HotLink Corporation | Multi-platform computer system management for virtualized environments |
EP2609511B1 (en) * | 2010-08-26 | 2016-10-19 | Freescale Semiconductor, Inc. | Memory management unit for a microprocessor system, microprocessor system and method for managing memory |
CN102770846B (zh) | 2010-12-21 | 2016-08-31 | 松下电器(美国)知识产权公司 | 虚拟计算机系统控制装置及虚拟计算机系统控制方法 |
US9158592B2 (en) | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
US8621274B1 (en) | 2011-05-18 | 2013-12-31 | Netapp Inc. | Virtual machine fault tolerance |
US9904564B2 (en) | 2011-11-15 | 2018-02-27 | Red Hat Israel, Ltd. | Policy enforcement by hypervisor paravirtualized ring copying |
JP5630671B2 (ja) | 2012-09-18 | 2014-11-26 | 横河電機株式会社 | フォールトトレラントシステム |
US8762948B1 (en) * | 2012-12-20 | 2014-06-24 | Kaspersky Lab Zao | System and method for establishing rules for filtering insignificant events for analysis of software program |
US9286105B1 (en) | 2015-03-16 | 2016-03-15 | AO Kaspersky Lab | System and method for facilitating joint operation of multiple hypervisors in a computer system |
-
2015
- 2015-03-16 US US14/659,049 patent/US9286105B1/en active Active
- 2015-04-13 EP EP15163429.2A patent/EP3070605A1/en not_active Ceased
- 2015-12-02 CN CN201510870274.0A patent/CN105511941B/zh active Active
-
2016
- 2016-03-07 US US15/062,861 patent/US9864626B2/en active Active
- 2016-03-16 JP JP2016052123A patent/JP6530723B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003749A (ja) * | 2007-06-22 | 2009-01-08 | Hitachi Ltd | 仮想化プログラム及び仮想計算機システム |
US20110066786A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method of Suspending and Resuming Virtual Machines |
JP2011070663A (ja) * | 2009-09-22 | 2011-04-07 | Internatl Business Mach Corp <Ibm> | コンピュータ・システムにおける入れ子式仮想化の性能改善 |
US20130145363A1 (en) * | 2011-12-05 | 2013-06-06 | Ravello Systems Ltd. | System and method thereof for running an unmodified guest operating system in a para-virtualized environment |
Also Published As
Publication number | Publication date |
---|---|
US20160274931A1 (en) | 2016-09-22 |
CN105511941B (zh) | 2019-04-19 |
JP6530723B2 (ja) | 2019-06-12 |
US9864626B2 (en) | 2018-01-09 |
EP3070605A1 (en) | 2016-09-21 |
US9286105B1 (en) | 2016-03-15 |
CN105511941A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6530723B2 (ja) | コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 | |
EP3555744B1 (en) | Kernel soft reset using non-volatile ram | |
US8909946B2 (en) | Efficient power management of a system with virtual machines | |
KR101019937B1 (ko) | 보안 운영 시스템 스위칭 | |
RU2398267C2 (ru) | Иерархическая виртуализация посредством многоуровневого механизма виртуализации | |
US7865893B1 (en) | System and method for starting virtual machine monitor in common with already installed operating system | |
US7743389B2 (en) | Selecting between pass-through and emulation in a virtual machine environment | |
JP6063941B2 (ja) | システム管理要求のための仮想高特権モード | |
US20100318997A1 (en) | Annotating virtual application processes | |
US20180365421A9 (en) | Multiple Hardware-Separated Computer Operating Systems within a Single Processor Computer System to Prevent Cross-Contamination between Systems | |
US10948967B2 (en) | Mobile device virtualization solution based on bare-metal hypervisor with optimal resource usage and power consumption | |
KR20070086843A (ko) | 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법 | |
TWI443508B (zh) | 用於超管理器負載之記憶體管理 | |
JP2014026669A (ja) | マルチモードコンピュータオペレーション | |
WO2018039967A1 (zh) | 虚拟机切换方法、装置、电子设备和计算机程序产品 | |
US10552345B2 (en) | Virtual machine memory lock-down | |
US9864708B2 (en) | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels | |
US11169837B2 (en) | Fast thread execution transition | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
WO2013189180A1 (zh) | 虚拟化系统中关闭中断的方法和装置 | |
US11726811B2 (en) | Parallel context switching for interrupt handling | |
US20230066447A1 (en) | Execution of code in system memory | |
CN113826072A (zh) | 系统管理模式中的代码更新 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170817 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180821 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20181120 |
|
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: 20190507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190517 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6530723 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 |