JP5032606B2 - 仮想マシン環境におけるハイパーバイザドライバ管理 - Google Patents

仮想マシン環境におけるハイパーバイザドライバ管理 Download PDF

Info

Publication number
JP5032606B2
JP5032606B2 JP2010024988A JP2010024988A JP5032606B2 JP 5032606 B2 JP5032606 B2 JP 5032606B2 JP 2010024988 A JP2010024988 A JP 2010024988A JP 2010024988 A JP2010024988 A JP 2010024988A JP 5032606 B2 JP5032606 B2 JP 5032606B2
Authority
JP
Japan
Prior art keywords
driver
virtual machine
hypervisor
domain
performance
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
JP2010024988A
Other languages
English (en)
Other versions
JP2011123857A (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 JP2011123857A publication Critical patent/JP2011123857A/ja
Application granted granted Critical
Publication of JP5032606B2 publication Critical patent/JP5032606B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Description

背景
[0001] 仮想マシンは複雑なコンピューティング環境で多くの利点を与える。仮想マシンを使用すれば、同じコンピュータ上で複数のオペレーティングシステムを実行できる。コンピュータの物理的リソースは、異なるオペレーティングシステム全体で物理的リソースを共有できるように、仮想化される。各仮想マシンは、たとえソフトウェアで実装されていたとしても、自身を実際のコンピュータとして認識する。
[0002]
仮想マシンは、同じコンピュータ上に複数のオペレーティングシステムを共存できることに加えて、他にも利点を有する。仮想マシンは、例えば、基礎となるハードウェアと独立して実行できる上、たとえ同一マシン上で稼働していても互いに切り離され、提供及び管理が容易である。
[0003] 仮想マシンの主な問題点は、効率性に関するものである。より具体的には、仮想マシンは、ネイティブに動作する従来のオペレーティングシステムほど効率的ではない。仮想マシンはコンピュータのソフトウェア実装であり、一般的に専用のハードウェア要素を持たない。
[0004] しかし、動作原理上、仮想マシンのインスタンス化を可能にする仮想マシン環境では、仮想マシンとコンピュータの物理的リソースとの間に更なるソフトウェア層が加えられる。その結果、仮想マシンは、コンピュータの物理的リソースに間接的にアクセスすることになり、ネイティブに動作するシステムより効率性が劣る。
[0005] 例えば、多くの場合、仮想マシンは仮想デバイスドライバを使用しており、仮想マシン内部で仮想デバイスドライバを実行することが望ましい。或いは、仮想デバイスドライバをそれぞれの仮想マシン内でインスタンス化することもできる。仮想デバイスドライバを実装することにより、仮想マシン環境の他の層及び他の仮想マシンを仮想デバイスドライバの問題と切り離すことができる。但し、残念ながら、仮想マシンはコンピュータの物理的リソースに直接アクセスすることはできない。
[0006] このため、多くの場合、仮想マシンには、アプリケーションから仮想デバイスドライバへの、また、仮想デバイスドライバから仮想マシン環境の下位層へのコンテキストスイッチが付き物である。コンテキストスイッチの割合が高くなる可能性があると、仮想マシンの性能低下の原因の1つになる。
図面の簡単な説明
[0007] 仮想マシン環境における物理的リソースへのアクセスに適応した仮想マシン環境の例示的な実施形態のブロック図である。 [0008] ドライバドメインでデバイスドライバを監視するハイパーバイザの例示的な実施形態のブロック図である。 [0009] ドライバドメインとハイパーバイザとの間で分割されたデバイスドライバの例示的な実施形態のブロック図である。 [0010] 仮想マシン環境で物理的リソースにアクセスするための方法の例示的な実施形態のフローチャートを示す。 [0011] 本開示に従い、仮想マシン環境で物理的リソースへのアクセスを提供するために配されたコンピューティングデバイスの例を示す。
詳細な説明
[0012] 以下の詳細な説明では、本明細書の一部をなす添付の図面を参照する。図面において、特に明記しない限り、類似の符号は通常類似の構成要素を示す。詳細な説明、図面、及び請求項に記載した例示的な実施形態は、これに限定するものではない。本明細書に提示する主題の趣旨又は範囲から逸脱することなしに、その他の実施形態を利用できると共に、その他の変更を加えることができる。本明細書に概説すると共に図に示した本開示の様態を、様々な異なる構成で配置、置換、結合、分割、及び設計できることは、容易に理解されよう。それら全てが本明細書で明示的に検討される。
[0013] 本明細書で説明する実施形態は、仮想マシン環境での物理的なコンピューティングリソースへのアクセスの実現に関する。仮想マシンは、多くの場合、抽象化層で構成される。最下位の層(以降、ハイパーバイザと称する)は、コンピューティング環境の実際の物理的リソースに完全にアクセスできる。ハイパーバイザでは、システムリソースへの確実なアクセスを実現するだけでなく、障害の切り離しにより安全性も確保する。例えば、あるゲストオペレーティングシステムを発生源とする障害又は攻撃は、仮想マシン環境において他のゲストオペレーティングシステムから切り離される。
[0014] 仮想マシン環境では、物理的リソースへのアクセスはハイパーバイザを介して提供される。この結果、物理的リソースへのアクセスは、コンテキストスイッチの処理コストを招く。コンテキストスイッチは、プロセス又はアプリケーションが実行している環境が変わった場合に発生する。
[0015] 例えば、仮想マシンで実行中のワードプロセッシングアプリケーションは、ハードディスクドライブに格納されたファイルへのアクセスが必要となる場合がある。アプリケーションはファイルへのアクセスを最初に要求する。仮想マシン環境では、この要求は、仮想マシンのゲストオペレーティングシステムによって最初に受信されるだろう。この場合、ワードプロセッシングアプリケーションが実行している環境はワードプロセッシングアプリケーションからオペレーティングシステムに変わるため、コンテキストスイッチが発生する。仮想マシンのオペレーティングシステムは物理的リソースに直接アクセスできないため、仮想マシンのゲストオペレーティングシステムから仮想デバイスドライバにもう1つコンテキストスイッチが発生し、これによって仮想デバイスドライバはハイパーバイザと相互に作用する。これは、コンテキストスイッチが大幅な性能低下の原因となり得ることを表している。
[0016] 本明細書で説明する実施形態では、コンテキストスイッチを監視し、仮想マシン環境を動的に適合させることにより、性能を向上させることが可能である。一実施例では、例示にすぎないが仮想マシンの特定のコードセグメントを修正することにより、そのコードセグメントが実行されるドメインを自動的及び動的に変更する。こうした修正により、仮想マシンにおけるコンテキストスイッチの数が減り、仮想マシン自体の性能及び仮想マシン環境の性能を向上させることができる。
[0017] 図1は、仮想マシン環境100の例示的な実施形態のブロック図である。仮想マシン環境100は、複数の仮想マシンを含んでも、又は同時に多くの仮想マシンをホストしてもよい。仮想マシン環境100は、例えば、サーバコンピュータ、又はクライアントコンピュータ、又は分散コンピューティングリソースを使用するネットワークに実装され得る。
[0018] 仮想マシン環境100は、システムリソース110、ハイパーバイザ120、ドメイン130、及びアプリケーション140を含み得る。システムリソース110は、仮想マシン環境100の物理的なデバイス又はリソースを含む。システムリソース110の例としては、ソリッドステートメモリ、大容量記憶装置、グラフィックアクセラレータ、ネットワークインタフェース、プロセッサ等、又はその任意の組合せが挙げられる。
[0019] ハイパーバイザ120は、仮想マシン環境100でシステムリソース110へのアクセスを制御するオペレーティングシステムクライアントの一例である。ハイパーバイザ120では、仮想マシン環境100内でインスタンス化された仮想マシンに提供される仮想リソースを実装及び管理できる。ハイパーバイザ120では、仮想マシン環境100におけるプロセスの切り離し、ポリシーの適用、リソースの共有化等を実現する。ハイパーバイザ120は、通常、仮想マシンから保護された、システムリソース110からの固有のリソースを有する。
[0020] ドメイン130は仮想マシンの例であり、ゲストオペレーティングシステム136及び138を含む。ドメインインスタンス130はまた、ドライバドメイン134を含んでもよい。アプリケーション142及び144を含むアプリケーション140は、それぞれのオペレーションシステム136及び138に実装される。結果として、アプリケーション142及び144は、それぞれのドメイン130の一部分とみなすことができる。
[0021] 例えば、図1では、オペレーティングシステム136、アプリケーション142、及びドライバ134が仮想マシン146として示されている。しかし、別の例では、ドライバ134を個別の仮想マシンとし、仮想マシン146をオペレーティングシステム136とアプリケーション142に対応させてもよい。仮想マシン146は、一般的に、仮想マシン環境100の他の仮想マシンから切り離される。
[0022] 仮想マシン(VM)ドメイン132は、ドライバドメイン134等の他のドメインや仮想マシン、及びオペレーティングシステム136や138を管理するために作成できる。例えば、VMドメイン132を使用して、他のドメインインスタンスを作成、破棄、移行、保存、及び/又はリストアすることができる。
[0023] 仮想マシン環境100では、ドライバドメイン134は、ゲストオペレーティングシステム136及び138といった他の仮想マシンに対し、仮想デバイスドライバをインスタンス化するために使用される。ドライバドメイン134の仮想デバイスドライバは、システムリソース110に含まれるハードウェアデバイスをエミュレートするために使用できる。仮想デバイスドライバは、単一のドライバドメイン134又は個々のドライバドメインにおいてインスタンス化することができる。仮想デバイスドライバごとに固有のドライバドメインを使用すると、仮想デバイスドライバで障害が発生した場合でも、VMドメイン132及びハイパーバイザ120を含む他のドメイン又は層は影響を受けることはない。
[0024] ハイパーバイザ120はドライバドメイン134を監視し、仮想デバイスドライバの実装を適合させることにより、仮想マシン環境の性能を向上させる。
[0025] 図2は、ドライバドメイン134を監視するハイパーバイザ120の例示的な実施形態のブロック図である。ドライバドメイン134はデバイスドライバ202を含んでもよく、デバイスドライバ202は仮想デバイスドライバであってもよい。ドライバドメイン134はまた、デバイスドライバ204を含んでもよく、デバイスドライバ204も仮想デバイスドライバであってもよい。或いは、デバイスドライバ204は固有のドライバドメイン内にあってもよい。
[0026] ハイパーバイザ120はドライバモニタ200を含む。ドライバモニタ200は、デバイスドライバ202及び204を監視し、それぞれの性能に応じてデバイスドライバ202及び204を適合させることにより、仮想マシン環境100の性能、又は仮想マシン環境100で稼働する仮想マシンの性能を向上させることができる。
[0027] 例えば、Webブラウザのようなアプリケーションが、ネットワークへのアクセスを要求することがある。Webブラウザが仮想マシン環境100に実装されている場合、アプリケーションでは、ドライバドメイン134へのコンテキストスイッチ及びハイパーバイザ120へのコンテキストスイッチが発生する。
[0028] ドライバモニタ200は、仮想マシン146の性能を向上させるようにデバイスドライバ202及び204を適合させるために、デバイスドライバ202及び204について発生するコンテキストスイッチの割合を監視することができる。デバイスドライバ202及び204を適合させることには、仮想マシン環境100の異なるドメイン又は層への機能の一部の移行を含んでもよい。例えば、デバイスドライバ202の一部分は仮想マシン146等信頼できないドメインで稼働し、デバイスドライバ202の別の一部分はハイパーバイザ120等の信頼できるドメインで稼働するよう、デバイスドライバ202及び204を分割できる。
[0029] 図3は、仮想マシン環境においてドライバドメイン134とハイパーバイザ120との間で分割されたデバイスドライバの例示的な実施形態のブロック図である。図面の参照番号202a及び202bで示されるデバイスドライバ202は、デバイスドライバ202の少なくとも一部分をハイパーバイザ120(信頼できるドメイン)に移行させることで、動的に適合されている。
[0030] ドライバモニタ200は、デバイスドライバ202の性能を監視するよう構成される。デバイスモニタ200は、デバイスドライバ202で行われるコンテキストスイッチ、又はデバイスドライバ202に関係するコンテキストスイッチを監視する。デバイスドライバ202で行われるコンテキストスイッチを、コンテキストスイッチの割合に反映させることができる。
[0031] ドライバモニタ200は、ドライバドメイン134内の複数のデバイスドライバを監視していることがある。このため、ドライバモニタ200は、コンテキストスイッチの割合が最も高いデバイスドライバを識別できる。或いは、ドライバモニタ200は制御及びデータフロー分析を実行し、性能が低下しているデバイスドライバを識別することもできる。
[0032] デバイスドライバ202がコンテキストスイッチの割合が比較的高いと識別されると、ドライバモニタ200はデバイスドライバ202のスライスを自動的及び/又は動的に生成できる。
[0033] 図3は、デバイスドライバ202がドライバ部分202aとドライバ部分202bとに分割されていることを示している。ある例では、ドライバ部分202bは完全なドライバであるものの、特定の機能がドライバ202aによって実装される。
[0034] ドライバ部分202a及び202bは、個々に独立して稼働できる、オリジナルのデバイスドライバ202のスタンドアローンのコードセグメントを含む。ドライバ部分202aはハイパーバイザ102の信頼できるドメインで稼働することができ、一方、ドライバ部分202bは引き続きドライバドメイン134(信頼できないドメインでもよい)で稼働を続ける。
[0035] 一実施形態では、デバイスドライバ202のスタンドアローン機能を識別する制御及びデータフロー分析手法を使用して、デバイスドライバ202を分割又はスライスすることができる。これは、スタンドアローンのコードセグメントが分割され、ドライバ部分202aとして実装されることを可能にする。例えば、ドライバモニタ200は、デバイスドライバに対応するネットワークインタフェースからのデータを追跡できる。ドライバモニタ200は、デバイスドライバ202でのデータフローを監視することにより、デバイスドライバ202がコンテキストスイッチと関係しており、分割されることで恩恵を受け得ることを判別できる。制御フロー手法を使用すれば、かなりの時間を要しているソフトウェアループ構造、又は簡便な実行のパーティショニングを提供しているサブルーチン構成要素を識別できる。データフロー手法は、システムにおいて異なる信頼ドメイン間でのデータのコピーが回避されるように、特定のデータに触れる命令を識別する役割を果たし得る。
[0036] ジャスト・イン・タイム(JIT)バイナリコード変換は、動的にチェックされ、安全性が保証されるように、ドライバ部分202aで行われた各メモリ参照をパッチするために使用できる。例えば、ドライバ202はドライバ部分202aと202bとして実装されているが、ドライバ202のデータのための場所は一箇所かもしれない。ドライバ202のデータは、通常、ドライバドメイン134のデータ空間に格納される。このため、ドライバ部分202aは、ハイパーバイザのデータ構造の格納、又はこのデータ構造へのアクセスを行うことはないので、データの破損に関連してドライバ部分202aがハイパーバイザ120に悪影響を及ぼすことはない。
[0037] ドライバ部分202aは、ソフトウェアでサポートされるアドレス変換を使用して、データにアクセスすることができる。この手法により、ドライバ部分202aは任意のゲストドメインコンテキストからドライバのデータ構造にアクセスすることができ、それによって、コンテキストスイッチが回避され、性能が向上する。一例では、デバイスドメイン134のアドレス空間内の仮想メモリのページアドレスをハイパーバイザ120のアドレス空間内のマッピングページアドレスにマッピングする変換テーブルが提供されている。変換テーブルエントリのマッピングページアドレスは、デバイスドメイン134のページアドレスと同じ物理的ページにマッピングするハイパーバイザページである。実行時に、ハイパーバイザ120のドライバ部分202aからのデバイスドメイン134のアドレス空間内のデータに対するあらゆるメモリアクセスは、変換テーブルを使用して、マッピングアドレスにまず変換され、変換されたアドレスを使用して格納がなされる。
[0038] したがって、ドライバモニタ200は、デバイスドメイン134のデバイスドライバの性能を監視することにより、どのデバイスドライバを区分化又は分割すべきなのかを識別できる。類似のデータ分析手法をJITコンパイルシステムに適用すれば、頻繁に実行されることからハイパーバイザ120で有益にアクセラレートされるコードセグメントを識別できる。
[0039] 通常、ドライバドメイン134等の信頼できないドメインからハイパーバイザ120等の信頼できるドメインにソフトウェアを取り込むことは受け入れられない。前述したように、ドライバ部分202aからのメモリ参照は、ソフトウェアで書き換えて実行時に安全性をチェックすることができる。
[0040] 図4は、仮想マシン環境で物理的リソースにアクセスするための方法の例示的な実施形態のフローチャートである。ブロック402で、ハイパーバイザは仮想マシン環境におけるデバイスドライバの性能を監視する。デバイスドライバの性能は、仮想マシンの性能に影響を及ぼす。
[0041] ハイパーバイザは、ブロック404内で性能がしきい値を下回るデバイスドライバを識別する。例えば、デバイスドライバのコンテキストスイッチの割合の追跡を使用して、性能が低下しているデバイスドライバを識別できる。
[0042] ブロック406で、ハイパーバイザはドライバを部分に適応させる。このような部分は、通常、ドライバのスタンドアローン部分であり、独立して稼働させることができる。ブロック408で、ドライバの部分は、異なるドメインで稼働している。具体的には、1つの部分を信頼できるドメインで稼働させ、別の部分を信頼できないドメインで稼働させてもよい。
[0043] 本明細書に開示されたこうした及びその他のプロセス及び方法について、そのプロセス及び方法で実施される機能を異なる順序で実装し得ることは、当業者であれば認識されよう。更に、概説したステップ及び動作は例として提供したものに過ぎず、ステップ及び動作の一部は、開示された実施形態の本質から逸れることなく、任意選択とすることも、結合してより少ないステップ及び動作にすることも、追加のステップ及び動作に拡張することも可能である。
[0044] 本開示は、本出願に記載される特定の実施形態に限定されるものではなく、様々な様態の例示として意図されている。当業者には明らかなように、本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形を行うことができる。本開示の範囲内にある機能的に等価な方法及び装置は、本明細書で列挙されたものに加えて、先に述べた記述から当業者にとっては明らかになろう。このような修正及び変形も、添付の請求項の範囲内に入ることを意図するものである。本開示は、添付の請求項の条件、加えてこのような請求項が充足する均等物の全範囲によってのみ限定されるものである。本開示は特定の方法、試薬、化合物組成物、又は生体系に限定されないことを理解されたい。これらは言うまでもなく変動する可能性がある。また、本明細書で使用する用語は特定の実施形態を説明することのみを目的としたものであり、限定的であることを意図するものでないことも理解されたい。
[0045] 図5は、本開示に従って仮想マシン環境で物理的リソースへのアクセスを実現するために配置された例示的なコンピューティングデバイス500を示すブロック図である。非常に基本的な構成502では、コンピューティングデバイス500は、通常、1つ又は複数のプロセッサ504及びシステムメモリ506を含む。プロセッサ504とシステムメモリ506との間の通信にメモリバス508を使用してもよい。
[0046] 所望の構成に応じて、プロセッサ504は、任意のタイプとすることができ、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、又はその任意の組合せを含むが、これに限定されることはない。プロセッサ504は、レベル1キャッシュ510とレベル2キャッシュ512、プロセッサコア514、及びレジスタ516等、1つ又は複数のレベルのキャッシングを含んでもよい。例示的なプロセッサコア514は、算術論理装置(ALU)、浮動小数点装置(FPU)、デジタル信号処理コア(DSPコア)、又はその任意の組合せを含んでもよい。更に例示的なメモリコントローラ518をプロセッサ504と一緒に使用してもよく、又は実装によっては、メモリコントローラ518はプロセッサ504の内部的な一部分であってもよい。
[0047] 所望の構成に応じて、システムメモリ506は、任意のタイプであってよく、揮発性メモリ(RAM等)、不揮発性メモリ(ROM、フラッシュメモリ等)、又はその任意の組合せを含むが、これに限定されることはない。システムメモリ506は、オペレーティングシステム520、1つ又は複数のアプリケーション522、及びプログラムデータ524を含んでもよい。アプリケーション522は、仮想マシンの性能を向上させるために、異なるドメインで稼働するようコードセグメントを動的に適応させるために配置された、物理的リソース526へのアクセスを提供するためのアプリケーションプログラムを含んでもよい。プログラムデータ524は、異なるドメイン又はコンテキストでスタンドアローンセグメントとして稼働できる部分又はスライスにデバイスドライバを分割するために有益となり得る、仮想マシン528のアプリケーション又はデバイスドライバの性能を指し示すデータを含んでもよい。ある実施形態では、アプリケーション522は、コードセグメントが動的に分割され得るように、オペレーティングシステム520上のプログラムデータ524で動作するように、構成されてもよい。この記載の基本構成502を図5に示す。その構成要素は、内側の点線で囲んでいる。
[0048] コンピューティングデバイス500は、追加の特徴又は機能、及び基本構成502と必要とされる任意のデバイス及びインタフェースとの間の通信を容易にする追加のインタフェースを有してもよい。例えば、バス/インタフェースコントローラ530を使用して、基本構成502とストレージインタフェースバス534を介した1つ又は複数のデータ記憶デバイス532との間の通信を容易にしてもよい。データ記憶デバイス532は、取外し可能な記憶デバイス536、取外し不能の記憶デバイス538、又はその組合せであってもよい。取外し可能な記憶デバイス及び取外し不能の記憶デバイスの例としては、いくつか名前を挙げると、フレキシブルディスクドライブ及びハードディスクドライブ(HDD)等の磁気ディスクデバイス、コンパクトディスク(CD)ドライブ又はデジタル多用途ディスク(DVD)ドライブ等の光ディスクドライブ、ソリッドステートドライブ(SDD)、及びテープドライブが含まれる。コンピュータ記憶媒体の例には、コンピュータで読取り可能な命令、データ構造、プログラムモジュール、又はその他のデータ等、情報を記憶しておくための任意の方法又は技術で実装された揮発性及び不揮発性、取外し可能及び取外し不能な媒体を含んでもよい。
[0049] システムメモリ506、取外し可能な記憶デバイス536、及び取外し不能な記憶デバイス538は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又はその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又はその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又はその他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用でき、コンピューティングデバイス500からアクセスできるその他の任意の媒体を含むが、これに限定されることはない。このようなあらゆるコンピュータ記憶媒体が、コンピューティングデバイス500の一部分であってよい。
[0050] コンピューティングデバイス500はまた、多様なインタフェースデバイス(出力デバイス542、周辺インタフェース544、及び通信デバイス546等)からバス/インタフェースコントローラ530を介し基本構成502への通信を容易にするためのインタフェースバス540を含んでもよい。例示的な出力デバイス542には、グラフィック処理装置548と音声処理装置550が含まれ、1つ又は複数のA/Vポート552を介しディスプレイ又はスピーカ等の多様な外部デバイスと通信するようにこれらを構成してもよい。例示的な周辺インタフェース544には、シリアルインタフェースコントローラ554又はパラレルインタフェースコントローラ556が含まれ、1つ又は複数のI/O558を介し、入力デバイス(キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等)又はその他の周辺デバイス(プリンタ、スキャナ等)等の外部デバイスと通信するようにこれらを構成してもよい。例示的な通信デバイス546には、ネットワークコントローラ560が含まれ、1つ又は複数の通信ポート564を介したネットワーク通信リンク上の1つ又は複数のその他のコンピューティングデバイス562との通信を容易するようこれを配置してもよい。
[0051] ネットワーク通信リンクは、通信媒体の一例となり得る。通信媒体は、一般的に、コンピュータで読取り可能な命令、データ構造、プログラムモジュール、又は搬送波やその他の伝送メカニズム等の変調されたデータ信号のその他のデータによって具現化でき、任意の情報配信媒体を含んでもよい。「変調されたデータ信号」は、信号の情報を符号化するように、その特性の1つ又は複数が設定又は変更された信号であってよい。通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、及び音響、無線周波数(RF)、マイクロ波、赤外線(IR)、及びその他の無線媒体等の無線媒体を含んでもよいが、これらは例として示すだけであって、これに限定するものではない。本明細書で使用するコンピュータで読取り可能な媒体という言葉には、記憶媒体と通信媒体の両方を含んでもよい。
[0052] コンピューティングデバイス500は、携帯電話、パーソナルデータアシスタント(PDA)、パーソナルメディアプレーヤーデバイス、無線のWeb閲覧デバイス、パーソナルヘッドセットデバイス、アプリケーション固有のデバイス、又は上記の機能の任意を含むハイブリッドデバイス等の小型の携帯用(又はモバイル)電子デバイスの一部分として実装してもよい。コンピューティングデバイス500はまた、ラップトップコンピュータ及び非ラップトップコンピュータの両方の構成を含む、パーソナルコンピュータとして実装してもよい。
[0053] 例示的な実施形態では、本明細書で説明する動作、プロセス等のいずれかを、コンピュータで読取り可能な媒体に格納したコンピュータで読取り可能な命令として実装できる。コンピュータで読取り可能な命令は、モバイル装置、ネットワーク要素、及び/又はその他の任意のコンピューティングデバイスのプロセッサで実行できる。
[0054] システムの様態のハードウェア実装とソフトウェア実装との間にはほとんど区別はない。ハードウェアを使用するのか、ソフトウェアを使用するのかは、通常(但し、これは常にとは限らず、コンテキストによっては、ハードウェアとソフトウェアとの間の選択が重大となることもある)、設計上の選択であり、コストと効率のトレードオフである。本明細書で説明したプロセス及び/又はシステム及び/又はその他の技術を遂行するための媒体は多様であり(ハードウェア、ソフトウェア、及び/又はファームウェア)、望ましい媒体はそのプロセス及び/又はシステム及び/又はその他の技術が展開されるコンテキストに応じて異なる。例えば、実装者が速度と精度が重要であると決定するならば、主としてハードウェア及び/又はファームウェアの媒体を選択できる。柔軟性が重要であるならば、実装者は主としてソフトウェア実装を選択できる。或いは、更には代替的に、実装者は、ハードウェア、ソフトウェア、及び/又はファームウェアの何らかの組合せを選択してもよい。
[0055] 前述の詳細な説明では、ブロック図、フローチャート、及び/又は例の使用により、デバイス及び/又はプロセスの様々な実施形態を挙げた。このようなブロック図、フローチャート、及び/又は例が1つ又は複数の機能及び/又は動作を含む範囲で、このようなブロック図、フローチャート、又は例に含まれるそれぞれの機能及び/又は動作が、幅広いハードウェア、ソフトウェア、ファームウェア、又はそれらのほぼあらゆる組合せにより、個々に及び/又は全体的に実装できることは、当業者によって理解されるであろう。一実施形態では、本明細書に説明する対象のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、又はその他の集積フォーマットを介して実装され得る。しかし、本明細書に開示される実施形態のいくつかの様態は、全体的に又は部分的に、1つ又は複数のコンピュータで動作する1つ又は複数のコンピュータプログラムとして(例えば、1つ又は複数のコンピュータシステムで動作する1つ又は複数のプログラムとして)、1つ又は複数のプロセッサで動作する1つ又は複数のプログラムとして(例えば、1つ又は複数のマイクロプロセッサで動作する1つ又は複数のプログラムとして)、ファームウェアとして、又はそれらのほぼあらゆる組合せとして、同様に集積回路に実装できることと共に、回路を設計すること及び/又はソフトウェア及び/又はファームウェアのコードを書くことが、当業者が本開示に鑑みて十分に実施できる程度の範囲にあることは、当業者には認識できるであろう。更に、本明細書に説明する対象のメカニズムは、様々な形態でプログラム生産物として配布できること、及び本明細書に説明する対象の例示的な実施形態は、実際に配布を実施するために使用される信号伝達媒体の特定の種類とは関係なく、適用されることは、当業者には認識できるであろう。信号伝達媒体の例は、以下のものを含むが、それに限定されることはない。フロッピー(登録商標)ディスク、ハードディスクドライブ、CD、DVD、デジタルテープ、コンピュータメモリ等の記録可能なタイプの媒体、及びデジタル及び/又はアナログ通信媒体等の伝送タイプの媒体(例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンク等)。
[0056] 本明細書に挙げられている形態でデバイス及び/又はプロセスを記載し、その後、技術的手法を使用して、このような記載されるデバイス及び/又はプロセスをデータ処理システムに組み込むことが当該技術内で一般的であることは、当業者には認識できるであろう。即ち、本明細書に説明するデバイス及び/又はプロセスの少なくとも一部分は、十分な量の実験を通して、データ処理システムに組み込むことができる。代表的なデータ処理システムが、通常、システムユニットハウジング、ビデオ表示デバイス、揮発性メモリ及び不揮発性メモリ等のメモリ、マイクロプロセッサ及びデジタル信号プロセッサ等のプロセッサ、オペレーティングシステム、ドライバ、グラフィカルユーザインタフェース、及びアプリケーションプログラム等の計算エンティティ、タッチパッド又はスクリーン等の1つ又は複数の相互作用デバイス、及び/又はフィードバックループ及び制御モータを含む制御システム(例えば、位置及び/又は速度を検知するためのフィードバック、構成要素及び/又はロットを移動及び/又は調整するための制御モータ)の1つ又は複数を含むことは、当業者には認識できるであろう。代表的なデータ処理システムは、通常データ計算/通信及び/又はネットワーク計算/通信システムに見られるような、市販されている何らかの適切な構成要素を利用して、実装し得る。
[0057] 本明細書に説明する対象は、場合によっては、様々なその他の構成要素の中に含まれる、又は様々なその他の構成要素に接続される様々な構成要素を表す。当然ながら、このように表されるアーキテクチャは単なる例示であると共に、実際には、同じ機能を実現するその他の多くのアーキテクチャを実装できる。概念上、同じ機能を実現する構成要素のいかなる配置も、所望の機能が実現されるように、効率的に「関連付けられる(associated)」。したがって、特定の機能を実現するようここで結合されたいかなる2つの構成要素も、アーキテクチャ又は中間の構成要素とは無関係に、所望の機能が実現されるように互いに「関連付けられる(associated)」ものとしてみなすことができる。同様に、そのように関連付けられたいかなる2つの構成要素も、所望の機能を実現するよう、互いに「動作可能に接続(operably connected)」又は「動作可能に結合(operably coupled)」されていると考えることができると共に、そのように連関できるいかなる2つの構成要素も、所望の機能を実現するよう、互いに「動作可能に結合可能(operably couplable)」なものとしてみなすことができる。。動作可能に結合可能である具体的な例は、物理的な接合可能な及び/又は物理的に相互作用している構成要素及び/又は無線上相互作用可能な及び/又は無線上相互作用している構成要素及び/又は論理的に相互作用している及び/又は論理的に相互作用可能な構成要素を含むが、これに限定されることはない。
[0058] 本明細書中の実質的にいかなる複数形及び/又は単数形の用語の使用に関しても、コンテキスト及び/又はアプリケーションに適切であれば、当業者は複数形を単数形として及び/又は単数形を複数形として解釈できる。わかりやすくするため、様々な単数形/複数形の置換を、本明細書で明白に定義し得る。
[0059] 一般に、本明細書で、及び特に添付の請求項(例えば、添付の請求項の本文)で使用される用語は、概して「制限のない(open)」用語として意図されていることは、当業者には理解できるであろう(例えば、「含んでいる(including)」という用語は「含んでいるがこれに限定されない(including but not limited to)」として解釈すべきであり、「有する(having)」という用語は「少なくとも有する(having at least)」として解釈すべきであり、「含む(includes)」という用語は「含むがこれに限定されない(includes but is not limited to)」として解釈すべきである)。更に、特定の数の導入請求項の列挙が意図される場合、そのような意図は明示的に請求項に列挙され、そのような列挙がない場合は、そのような意図がないということが、当業者には理解できるであろう。例えば、理解の助けとして、以下の添付の請求項は、請求項の列挙を導入するために「少なくとも1つ」及び「1つ又は複数」という導入的語句の使用を含むことがある。しかしながら、そのような語句の使用は、同じ請求項に導入的語句「1つ又は複数」又は「少なくとも1つ」と「a」又は「an」等の不定冠詞が含まれるとしても、不定冠詞「a」又は「an」による請求項の列挙の導入によって、たった1つのそのような列挙を含む実施形態に対してそのように導入請求項の列挙を含むいかなる特定の請求項も限定されることを意味するものと解釈すべきでない(例えば、「a」及び/又は「an」は、「少なくとも1つ」又は「1つ又は複数」を意味するものと解釈すべきである)。請求項の列挙を導入するために使用される定冠詞の使用についても同じことが言える。更に、特定の数の導入請求項の列挙が明示的に列挙されていたとしても、そのような列挙は少なくとも列挙された数字を意味するものと解釈すべきであることは、当業者には認識できるであろう(例えば、その他の修飾語句のない単純な列挙「2つの列挙」は、少なくとも2つの列挙、又は2つ又はそれ以上の列挙を意味する)。更に、「A、B、及びC等の少なくとも1つ」に類似する表記が使用されるような場合、通常、このような表記は、当業者がその表記を理解するような意味で意図される(例えば、「A、B、及びCの少なくとも1つを有するシステム」は、Aだけ、Bだけ、Cだけ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、及び/又はAとBとCとを一緒に有するシステムを含むが、それに限定されることはない、等)。「A、B、及びC等の少なくとも1つ」に類似する表記が使用されるような場合、通常、このような表記は、当業者がその表記を理解するような意味で意図される(例えば、「A、B、及びCの少なくとも1つを有するシステム」は、Aだけ、Bだけ、Cだけ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、及び/又はAとBとCとを一緒に有するシステムを含むが、それに限定されることはない、等)。更に、2つ又はそれ以上の代替条件を表すほぼあらゆる選言的な単語及び/又は句は、説明であろうが、請求項であろうが、又は図面であろうが、その条件の1つ、条件のいずれか、又は両方の条件を含む可能性を検討するものと理解すべきであることは、当業者によって理解されるであろう。例えば、句「A又はB」は、「A」又は「B」或いは「AとB」の可能性を含むものと理解されよう。
[0060] それに加えて、本開示の特長又は様態がマーカッシュ群の観点で記載される場合、マーカッシュ群の任意の個々のメンバー又はメンバーのサブグループの観点でも本開示が記載されていることは、当業者には認識できるであろう。
[0061] 当業者によって理解されるように、書面による説明を提供するという観点から等、あらゆる目的で、本明細書で開示される全ての範囲は、その範囲内のあらゆる可能な部分範囲及び部分範囲の組合せも包含する。列挙されるあらゆる範囲は、同じ範囲が少なくとも2等分、3等分、4等分、5等分、10等分等に分解されることを十分に記載及び可能にするものとして容易に認識できる。非限定的な例として、本明細書に記載される各範囲は、下の3分の1、真ん中の3分の1、及び上の3分の1等に容易に分解できる。又、当業者によって理解されるように、「まで」、「少なくとも」及びそれに類似するもの等の全ての言葉は、列挙されている数字を含むと共に、前述したようにその後部分範囲に分解でき得る範囲を示す。最後に、当業者によって理解されるように、範囲は個々の各メンバーを含む。したがって、例えば、1〜3のセルを有するグループは、1つ、2つ、又は3つのセルを有するグループを示す。同様に、1〜5のセルを有するグループは、1つ、2つ、3つ、4つ、又は5つのセルを有するグループを示すというようになる。
[0062] 上記から、本開示の様々な実施形態は例示を目的として本明細書に記載したものであり、本開示の範囲及び趣旨から逸脱することなく、様々な変更を行い得ることが認識されよう。したがって、本明細書に開示される様々な実施形態は限定的であることを意図するものではなく、真の範囲及び趣旨は添付の請求項によって示される。
100 仮想マシン環境
110 システムリソース
120 ハイパーバイザ
130 ドメイン
132 仮想マシン(VM)ドメイン
134 ドライバドメイン
136 ゲストオペレーティングシステム
138 ゲストオペレーティングシステム
140 アプリケーション
142 アプリケーション
144 アプリケーション
146 仮想マシン
200 ドライバモニタ
202 デバイスドライバ
202a ドライバ部分
202b ドライバ部分
204 デバイスドライバ
402 ブロック
404 ブロック
406 ブロック
408 ブロック
500 コンピューティングデバイス
502 基本構成
504 プロセッサ
506 システムメモリ
508 メモリバス
510 レベル1キャッシュ
512 レベル2キャッシュ
514 プロセッサコア
516 レジスタ
518 メモリコントローラ
520 オペレーティングシステム
522 アプリケーション
524 プログラムデータ
526 物理的リソース
528 仮想マシン
530 バス/インタフェースコントローラ
532 データ記憶デバイス
534 ストレージインタフェースバス
536 取外し可能な記憶デバイス
538 取外し不能の記憶デバイス
540 インタフェースバス
542 出力デバイス
544 周辺インタフェース
546 通信デバイス
548 グラフィック処理装置
550 音声処理装置
552 A/Vポート
554 シリアルインタフェースコントローラ
556 パラレルインタフェースコントローラ
558 I/O
560 ネットワークコントローラ
562 コンピューティングデバイス
564 通信ポート

Claims (18)

  1. 想マシン環境で物理的リソースにアクセスするための方法であって、
    前記仮想マシン環境内のハイパーバイザが、信頼できるドメインとドライバドメインとを含む前記仮想マシン環境で稼働する仮想マシン内で動作する複数のデバイスドライバのそれぞれの性能を監視することと、
    前記ハイパーバイザが、前記複数のデバイスドライバの中から、所定のしきい値を下回って稼働しているデバイスドライバをその性能特性に従って識別することと、
    前記ハイパーバイザが、前記仮想マシン環境が稼働している間、前記識別されたデバイスドライバをそれぞれ独立に動作可能な第1の部分と第2の部分とに動的に分割することと、
    前記ハイパーバイザが、前記第1の部分を当該ハイパーバイザに適応させることと、を含み、
    前記第1の部分は、前記ハイパーバイザの制御の下、実行され、前記第2の部分は、前記仮想マシンの制御の下、前記ドライバドメイン内で実行される、
    方法。
  2. 前記デバイスドライバの性能を監視することが、前記複数のデバイスドライバの少なくとも1つについてコンテキストスイッチを監視することを更に含む、請求項1に記載の方法。
  3. 前記デバイスドライバの性能を監視することが、前記複数のデバイスドライバの少なくとも1つに対してデータフロー分析を実行することを更に含む、請求項1に記載の方法。
  4. 前記デバイスドライバを識別することが、他のデバイスドライバと比較してより多くのコンテキストスイッチを発生しているときに前記デバイスドライバを識別することを更に含む、請求項1に記載の方法。
  5. 前記コンテキストスイッチが、前記デバイスドライバのそれぞれについてコンテキストスイッチの割合を追跡することにより計測される、請求項4に記載の方法。
  6. 前記第1の部分と前記第2の部分が前記特定のデバイスドライバのコードセグメントを含む、請求項1に記載の方法。
  7. 前記信頼できるドメインで前記第1の部分を実行する場合に、各メモリ参照に対してジャスト・イン・タイムバイナリコード変換を実行することによって、前記第1の部分の各メモリ参照を動的にパッチすることを更に含む、請求項6に記載の方法。
  8. 仮想マシン環境内の仮想マシンで稼働しているオペレーティングシステムのコンテキスト内で物理的リソースへのアクセスを提供する方法であって、
    前記仮想マシン環境内のハイパーバイザが、ドライバドメイン内で動作している複数のデバイスドライバのそれぞれの性能を監視することと、
    前記ハイパーバイザが、前記オペレーティングシステムが稼働している間、前記複数のデバイスドライバのうちの特定のデバイスドライバをそれぞれ独立に動作可能な第1の部分及び第2の部分に動的に分割することと、を含み、
    前記第1の部分は、前記ハイパーバイザの制御の下、実行され、前記第2の部分は、前記仮想マシンの制御の下、前記ドライバドメイン内で実行される、
    方法。
  9. 前記第1の部分が、前記ドライバドメインで使用されるデータを格納することと、前記データにアクセスすることを更に含み、前記データアクセスすることがアドレス変換を使用して達成される請求項に記載の方法。
  10. 前記デバイスドライバの性能を監視することが前記デバイスドライバと関連するコンテキストスイッチの割合を特定することを更に含み、前記コンテキストスイッチの割合がしきい値を上回った場合に前記デバイスドライバが分割される、請求項に記載の方法。
  11. 前記信頼できるドメインが前記ハイパーバイザを含み、前記第1の部分が、前記オペレーティングシステム上のアプリケーションによる要求に従って、前記ネットワークにアクセスする、請求項に記載の方法。
  12. 前記仮想マシンがコンテキストスイッチなしで前記第1の部分を呼び出す請求項に記載の方法。
  13. 仮想マシン環境で物理的リソースへのアクセスを制御するシステムであって、
    前記仮想マシン環境内に設けられ、前記仮想マシン環境内に信頼できるドメイン及びドライバドメイン設定するハイパーバイザと、
    前記ドライバドメイン内に設けられた複数のデバイスドライバと、
    前記ハイパーバイザ内に設けられたドライバモニタと、
    前記ドライバモニタは、前記ドライバドメイン内の複数のデバイスドライバのそれぞれの性能を監視し、前記デバイスドライバの性能に従って前記複数のデバイスドライバの中から特定のデバイスドライバを識別し、前記特定のデバイスドライバを使用する仮想マシンが前記仮想マシン環境内で動作している間、前記特定のデバイスドライバを少なくとも第1の部分と第2の部分に動的に分割するように構成され、
    前記第1の部分は前記信頼できるドメインで動作し、前記第2の部分は前記ドライバドメインで動作する
    システム
  14. 前記ドライバモニタは、前記特定のデバイスドライバを識別するために、前記複数のデバイスドライバのそれぞれの性能しきい値と比較し、前記特定のデバイスドライバを前記ハイパーバイザに適合させ、
    前記第1の部分と前記第2の部分がそれぞれ前記特定のデバイスドライバのコードセグメントを含む、請求項13に記載のシステム
  15. コンテキストスイッチの割合が所定の割合を上回った場合に前記デバイスドライバの性能に問題が発生する、請求項13に記載のシステム
  16. 前記ドライバモニタは、データフロー分析を実行して前記複数のデバイスドライバのそれぞれの性能を判定する、請求項13に記載のシステム
  17. 前記ドライバモニタは、前記信頼できるドメインで動作している前記第1の部分に対するアドレス参照を変更する、請求項13に記載のシステム
  18. 前記ドライバモニタがジャスト・イン・タイムバイナリコード変換を実行して前記第1の部分の各メモリ参照をパッチし、前記特定のデバイスドライバのデータが前記ドライバドメインに格納される、請求項13に記載のシステム
JP2010024988A 2009-12-10 2010-02-08 仮想マシン環境におけるハイパーバイザドライバ管理 Expired - Fee Related JP5032606B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/635,319 US8327358B2 (en) 2009-12-10 2009-12-10 Hypervisor driver management in virtual machine environments
US12/635,319 2009-12-10

Publications (2)

Publication Number Publication Date
JP2011123857A JP2011123857A (ja) 2011-06-23
JP5032606B2 true JP5032606B2 (ja) 2012-09-26

Family

ID=43778269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010024988A Expired - Fee Related JP5032606B2 (ja) 2009-12-10 2010-02-08 仮想マシン環境におけるハイパーバイザドライバ管理

Country Status (4)

Country Link
US (1) US8327358B2 (ja)
EP (1) EP2333663B1 (ja)
JP (1) JP5032606B2 (ja)
KR (1) KR101094675B1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8434081B2 (en) 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
JP2013008188A (ja) * 2011-06-24 2013-01-10 Univ Of Tsukuba 計算機、デバイス管理方法、プログラム、及び記録媒体
CN103620612B (zh) * 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
US8631423B1 (en) 2011-10-04 2014-01-14 Symantec Corporation Translating input/output calls in a mixed virtualization environment
US9395920B2 (en) 2011-11-17 2016-07-19 Mirosoft Technology Licensing, LLC Throttle disk I/O using disk drive simulation model
US8789047B2 (en) 2012-01-26 2014-07-22 Empire Technology Development Llc Allowing world switches between virtual machines via hypervisor world switch security setting
KR102063576B1 (ko) * 2012-07-24 2020-01-10 한국전자통신연구원 가상화 기반 은닉형 소프트웨어 실행 환경 제공 방법 및 장치
US8418230B1 (en) * 2012-08-28 2013-04-09 Netcomm Wireless Limited Apparatus and method for mobile communications and computing
US9164809B2 (en) * 2012-09-04 2015-10-20 Red Hat Israel, Ltd. Virtual processor provisioning in virtualized computer systems
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US9747314B2 (en) * 2013-07-25 2017-08-29 Rackspace Us, Inc. Normalized searchable cloud layer
US9658873B2 (en) * 2013-08-21 2017-05-23 Red Hat Israel, Ltd. Switching between devices having a common host backend in a virtualized environment
US9292336B1 (en) * 2014-01-22 2016-03-22 Amazon Technologies, Inc. Systems and methods providing optimization data
WO2016003415A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L.P. Securely sending a complete initialization package
EP3161652B1 (en) * 2014-06-30 2020-06-03 Hewlett-Packard Development Company, L.P. Full virtual machine functionality
US9507626B1 (en) * 2015-07-20 2016-11-29 Red Had Israel, Ltd. Virtual device backend recovery
US10013270B2 (en) 2015-12-03 2018-07-03 International Business Machines Corporation Application-level initiation of processor parameter adjustment
US9846592B2 (en) * 2015-12-23 2017-12-19 Intel Corporation Versatile protected input/output device access and isolated servicing for virtual machines
US11453131B2 (en) 2019-12-30 2022-09-27 UiPath, Inc. Method and apparatus for remote native automation decoupling
US20230418652A1 (en) * 2021-12-30 2023-12-28 Perseus Co., Ltd Operating System Performance Interference Preventing Apparatus of Hypervisor System

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59222631A (ja) 1983-06-01 1984-12-14 Nifco Inc 回転ダンパ−装置
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US20040019895A1 (en) 2002-07-29 2004-01-29 Intel Corporation Dynamic communication tuning apparatus, systems, and methods
US20050246453A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7779424B2 (en) * 2005-03-02 2010-08-17 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of an isolated driver domain in which a shared resource's device driver resides
US7673174B2 (en) 2005-04-06 2010-03-02 University Of Washington Recovering device drivers
US20070006178A1 (en) 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US20080028399A1 (en) 2006-07-26 2008-01-31 Diwaker Gupta System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on observed communication through a virtualized interface
US8141051B2 (en) * 2006-12-29 2012-03-20 Intel Corporation Methods and apparatus to collect runtime trace data associated with application performance
US8645974B2 (en) 2007-08-02 2014-02-04 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device
US7984449B2 (en) 2007-08-15 2011-07-19 International Business Machines Corporation In-band communication with virtual machines via a hypervisor message bus
US8185783B2 (en) * 2007-11-22 2012-05-22 Microsoft Corporation Split user-mode/kernel-mode device driver architecture
US9389921B2 (en) * 2008-01-14 2016-07-12 Hewlett Packard Enterprise Development Lp System and method for flexible device driver resource allocation
US8458730B2 (en) * 2008-02-05 2013-06-04 International Business Machines Corporation Multi-level driver configuration
JP4609521B2 (ja) 2008-04-21 2011-01-12 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
KR101094675B1 (ko) 2011-12-20
US20110145814A1 (en) 2011-06-16
EP2333663B1 (en) 2014-10-15
EP2333663A2 (en) 2011-06-15
US8327358B2 (en) 2012-12-04
JP2011123857A (ja) 2011-06-23
EP2333663A3 (en) 2012-03-07
KR20110066063A (ko) 2011-06-16

Similar Documents

Publication Publication Date Title
JP5032606B2 (ja) 仮想マシン環境におけるハイパーバイザドライバ管理
US7434003B2 (en) Efficient operating system operation on a hypervisor
US10078454B2 (en) Access to storage resources using a virtual storage appliance
JP6050262B2 (ja) 仮想ディスクストレージ技術
US8209459B2 (en) System and method for increased system availability in virtualized environments
US9575786B2 (en) System and method for raw device mapping in traditional NAS subsystems
US9201677B2 (en) Managing data input/output operations
US8612633B2 (en) Virtual machine fast emulation assist
US7886115B2 (en) Techniques for implementing virtual storage devices
JP5404783B2 (ja) 仮想化サーバ・プラットフォーム上でブート可能な仮想ストレージ・アプライアンスをブートするためのシステムおよび方法
US8132167B2 (en) Context based virtualization
US20070112999A1 (en) Efficient power management of a system with virtual machines
US20110088032A1 (en) Method and apparatus for configuring a hypervisor during a downtime state
US9563456B2 (en) Feature driven backend switching
WO2009150122A1 (en) Systems and methods for virtualizing storage for wpar clients using node port id virtuali zation
US11693722B2 (en) Fast memory mapped IO support by register switch
KR20110048515A (ko) Raid와 함께 애플리케이션의 실행을 위한 방법 및 시스템
US20080244212A1 (en) System and method to enable hierarchical data spilling
US11023139B2 (en) System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs
US20230350710A1 (en) Fast memory mapped io support by register switch
JP2015215782A (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120628

R150 Certificate of patent or registration of utility model

Ref document number: 5032606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees