(57)【要約】バーチャル・マシン・マネージャ（「ＶＭＭ」）が、メモリを、１台のバーチャル・マシン（「ＶＭ」）からもう一方へ、ダイナミックに再割り当てすることを可能にする方法、装置及びシステム。ＶＭＭは、メモリが現在割り当てられているＶＭに対するメッセージを生成してもよく、メモリがシャット・ダウンしているデバイスに通知してもよい。現在のＶＭは、その後で、メモリのコンテンツをホスト・ハードディスクにコピーして、メモリからイジェクトしてもよい。ＶＭＭは、それから、メモリが利用でき、第２のＶＭがそれからメモリをその空きメモリ・リソースに加えてもよいことを、他のＶＭに通知してもよい。【選択図】なし
2008530706.tif 000002
【特許請求の範囲】
【請求項１】
第１のバーチャル・マシン（「ＶＭ」）から第２のＶＭへメモリをダイナミックに再割り当てする方法であって、
第１のＶＭに、メモリが削除されたことを通知することと、
前記第１のＶＭに、前記メモリに対するシャット・ダウン命令を発行させることと、
前記シャット・ダウン命令をインターセプトすることと、
第２のＶＭに、前記メモリが使用可能であることを通知することと、
を備える方法。
【請求項２】
前記第１のＶＭに前記メモリが削除されたことを通知することは、更に、
前記メモリのために前記第１のＶＭへの第１のメッセージを生成することと、
前記第１のメッセージの要因に関する前記第１のＶＭからの第１の問合せをインターセプトすることと、
前記第１の問合せに応答して、前記第１のＶＭに、前記第１のＶＭに割り当てられた前記メモリがシャット・ダウン中であることを通知することと、
を有する請求項１に記載の方法。
【請求項３】
更に、前記第１のＶＭに、前記メモリをイジェクトするための命令を発行させること、
を備える請求項２に記載の方法。
【請求項４】
前記第１のＶＭに、前記メモリが削除されたことを通知することは、更に、
前記第１のＶＭに、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（「ＡＣＰＩ」）プロトコルにより、前記メモリが削除されたことを通知すること、
を有する請求項１に記載の方法。
【請求項５】
前記第２のＶＭに、前記メモリが使用可能であることを通知することは、更に、
前記第２のＶＭに、前記メモリを割り当て、前記第２のＶＭに対する第２のメッセージを生成することと、
前記第２のＶＭからの前記第２のメッセージの要因に関する第２の問合せをインターセプトすることと、
前記第２のＶＭに、前記メモリが使用可能であることの前記第２の問合せに応答して、通知することと、
を有する請求項１に記載の方法。
【請求項６】
前記第２のＶＭに、前記メモリが使用可能であることを通知することは、更に、
アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（「ＡＣＰＩ」）プロトコルによる前記第２のＶＭを通知すること、
を有する請求項５に記載の方法。
【請求項７】
更に、前記第２ＶＭにより発行されたコンフィギュレーションの問合せをインターセプトすること、
を備える請求項５に記載の方法。
【請求項８】
更に、前記メモリを前記第１のバーチャル・マシンから前記第２バーチャル・マシンへ再割り当てするユーザ・リクエストを受信すること、
を備える請求項１に記載の方法。
【請求項９】
前記メモリを前記第１のバーチャル・マシンから前記第２バーチャル・マシンへ再割り当てすることは、所定の割付けポリシーに基づく
請求項１に記載の方法。
【請求項１０】
メモリをダイナミックに再割り当てできるホスト・コンピュータのシステムであって、
モニタリング・モジュールと、
前記モニタリング・モジュールに接続される第１のコンピュータ・システムと、
前記モニタリング・モジュールに接続される第２のコンピュータ・システムと、
前記モニタリング・モジュールに接続されるフィジカルデバイスと、
を備え、
前記モニタリング・モジュールは、前記第１のコンピュータ・システムにメモリが削除されたことを通知することにより、前記メモリを前記第１のコンピュータ・システムから前記第２コンピュータ・システムへダイナミックに再割り当てできる、
ホスト・コンピュータのシステム。
【請求項１１】
前記モニタリング・モジュールは、更に、
前記第１のコンピュータ・システムにメッセージを生成することにより、前記メモリが削除されたことを、前記第１のコンピュータ・システムに通知できる
請求項１０に記載のシステム。
【請求項１２】
前記モニタリング・モジュールは、更に、
前記第１のコンピュータ・システムにより前記メモリに対して発行されたメッセージをインターセプトすることができる
請求項１１に記載のシステム。
【請求項１３】
前記モニタリング・モジュールは、更に、
前記第２コンピュータ・システムに前記メモリを割り当てることができ、前記第２コンピュータ・システムに、前記メモリが使用可能であることを通知できる、
請求項１０に記載のシステム。
【請求項１４】
前記第１のコンピュータ・システム及び前記第２コンピュータ・システムは、ホスト・コンピュータ上のバーチャル・マシン（「ＶＭ」）である
請求項１０に記載のシステム。
【請求項１５】
命令を記憶させたマシン−アクセスが可能なメディアを備える製造物であって、
マシンにより実行される時に、
前記マシンに、メモリを、第１のバーチャル・マシン（「ＶＭ」）から第２ＶＭへ、ダイナミックに再割り当てさせ、
前記第１のＶＭに前記メモリが削除されたことを通知し、
前記第１のＶＭに前記メモリへのシャット・ダウン命令を発行させ、
前記シャット・ダウン命令をインターセプトし、
前記第２ＶＭに、前記メモリが使用可能であることを通知させる、
製造物。
【請求項１６】
前記命令は、前記マシンにより実行される時に、更に、
前記マシンに、前記メモリが削除されたことを前記第１のＶＭへ通知させ、
前記メモリのために前記第１のＶＭへの第１のメッセージを生成させ、
前記第１のメッセージの要因に関する前記第１のＶＭからの第１の問合せをインターセプトさせ、
前記第１のＶＭに、前記第１のＶＭに割り当てられた前記メモリがシャット・ダウン中であることの前記第１の問合せに応答して通知する、
請求項１５に記載の製造物。
【請求項１７】
前記命令は、前記マシンにより実行される時に、更に、
前記マシンに、前記第１のＶＭに前記メモリをイジェクトさせる命令を発行させる、
請求項１６に記載の製造物。
【請求項１８】
前記命令は、前記マシンにより実行される時に、更に、
前記マシンに、前記メモリがアドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（「ＡＣＰＩ」）プロトコルにより削除されたことを、前記第１のＶＭに通知させる、
請求項１５に記載の製造物。
【請求項１９】
前記命令は、前記マシンにより実行される時に、更に、
前記マシンに、前記メモリが使用可能であることを前記第２ＶＭに通知させ、
前記デバイスを、前記第２ＶＭへの第２メッセージを生成する前記第２ＶＭに割り当て、
前記第２ＶＭから前記第２メッセージの要因に関する第２問合せをインターセプトし、
前記第２問合せに応答して、前記メモリが使用可能であることを前記第２ＶＭに通知させる、
請求項１５に記載の製造物。
【請求項２０】
前記命令は、前記マシンにより実行される時に、更に、
前記マシンに、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（「ＡＣＰＩ」）プロトコルにより前記メモリが使用可能であることを前記第２ＶＭに通知させる、
請求項１９に記載の製造物。
【発明の詳細な説明】
【背景技術】
【０００１】
バーチャライゼーション・テクノロジへの関心は、プロセッサ・テクノロジが進歩するにつれて着実に増している。バーチャライゼーション・テクノロジの１つの態様では、バーチャル・マシン・モニタ（「ＶＭＭ」）を実行している単一のホスト・コンピュータが、そのホストの基本的なハードウエアが一つ以上の独立して動作するバーチャル・マシン（「ＶＭ」）として存在するような、ホストのマルチプル・アブストラクト及び／又はビューを提示することを可能にする。各ＶＭは、それ自身のオペレーティング・システム（「ＯＳ」）、及び／又は、ソフトウェア・アプリケーション（複数の場合を含む）を実行する自己内蔵型プラットホームとして動作してもよい。ＶＭＭは、ホスト上のリソースの割り当てを管理して、必要に応じて、ラウンド−ロビン又は他の所定の方式による各種のバーチャル・マシンの間で循環させるコンテクスト・スイッチングを実行する。
【発明を実施するための最良の形態】
【０００２】
本発明の各実施形態は、バーチャル・マシン（複数の場合を含む）上のオペレーティング・システムをリブートすることなく、１台のバーチャル・マシンからもう一方へ、リソースをダイナミックに再割り当てするための方法、装置及びシステムを提供する。明細書中に参照される本発明の「一実施形態」又は「実施形態」とは、実施形態と関連して記述された特定の機能、構成又は特性が、本発明の少なくとも一つの実施形態に含まれることを意味する。したがって、明細書の全体にわたり様々な場所に現れる「一実施形態において、」、「一実施形態によれば」等の句の出現は、必ずしも同じ実施形態を全て参照するわけではない。
【０００３】
図１は、代表的なバーチャル・マシンのホスト・プラットホーム（ホスト１００）の一例を示す。前述したように、バーチャル・マシン・モニタ（「ＶＭＭ１３０」）は、概してホスト・プラットホーム上で実行され、他のソフトウェアに、プラットホームのアブストラクト及び／又はビュー（又は、「バーチャル・マシン」、又は、「ＶＭ」とも参照される）を提示する。図には２つのＶＭ部分（「ＶＭ１１０」及び「ＶＭ１２０」、この後集合的に「ＶＭ」として参照される）だけが示されるが、これらのＶＭは、単に例を示すだけであり、追加のバーチャル・マシンが、ホストに加えられてもよい。ＶＭＭ１３０は、ソフトウェア（例えば、ホスト・オペレーティング・システムのコンポーネント、及び／又は、独立型プログラムとして）、ハードウエア、ファームウェア、及び／又は、それらの任意の組合せによりインプリメントされてもよい。
【０００４】
ＶＭ１１０及びＶＭ１２０は、それら自身の「ゲスト・オペレーティング・システム」（すなわち「ゲストＯＳ１１１」及び「ゲストＯＳ１２１」として図示され、この後集合的に「ゲストＯＳ」として参照され、ＶＭＭ１３０によりホストされるオペレーティング・システム）、他のソフトウェア（「ゲスト・ソフトウェア１１２」及び「ゲスト・ソフトウェア１２２」として図示され、この後集合的に「ゲスト・ソフトウェア」として参照される）を実行することにより、それぞれ自己内蔵型プラットホームとして機能してもよい。各ゲストＯＳ及び／又はゲスト・ソフトウェアは、バーチャル・マシン上ではなく専用コンピュータ上で実行しているかのように動作する。すなわち、各ゲストＯＳ及び／又はゲスト・ソフトウェアは、様々なイベントを制御することを期待してもよく、ホスト１００上のハードウェア・リソースにアクセスしてもよい。実際には、ＶＭＭ１３０は、イベント上の最終的な制御及びハードウェア・リソースを有しており、それ自身のポリシーにより、リソースをバーチャル・マシンに割り当てる。
【０００５】
図１の各ＶＭは、メモリを、モニタ及び／又はダイナミックに再割り当てするために、一般的に、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（「ＡＣＰＩ」）ドライバ（「ＡＣＰＩ  ＯＳドライバ１１３」及び「ＡＣＰＩ  ＯＳドライバ１２３」）を備える。ＡＣＰＩ（例えば、リビジョン２．０ｂ、２００２年１０月１１日）は、プラットホーム・コンフィギュレーション及びパワー・マネジメント・スキームのためのオープンな業界標準規格である。ＡＣＰＩドライバは、現在存在しており、当業者にとって周知である。これらのドライバは、ＶＭＭ及びバーチャルホスト上のＶＭ間で一般的ＡＣＰＩインタラクションを使用可能にするために用いられる。以下の説明は、ＡＣＰＩプロトコルの使用を前提とするが、本発明の実施形態の趣旨から逸脱することなく、他のコンフィギュレーション・プロトコルを用いてもよい。
【０００６】
様々なメモリ・リソースを、ホスト１００（図１においては、メモリ・リソース１４０の一部がＶＭ１１０に割り当てられて、他の部分がＶＭ１２０に割り当てられた場合のメモリ・リソース１４０として集合的に示した）に用いてもよい。ホスト１００上の様々なＶＭに対するメモリ・リソースの割り当ては、ＶＭＭ１３０により管理される。一般的に、ＶＭＭ１３０は、ＶＭがインスタンスを生成するときに、メモリ・リソースをＶＭに割り当てる。新規なＶＭを加えるために、これらのリソースを再割り当てする現存しているスキームは、一般的に扱いにくい。例えば、ＶＭＭ１３０は、ホスト１００上のＶＭをシャット・ダウンし、それから、全てのＶＭ（オリジナル及び新規なＶＭ）を、再割り当てされたリソースで再起動させてもよい。このスキームは、各種のＶＭのゲストＯＳが、ＶＭ初期化プロセスの一部で、メモリ・リソースの変更を検出することを可能にする。しかし、そのスキームは、リソースのいかなるタイプのダイナミックな再割り当ても可能ではなく、本質的に、新規なＶＭのインスタンス生成を可能にするために、ホスト１００上のアクティブＶＭにリブートを要求する。
【０００７】
代替として、所有権が保持されているソフトウェア（例えば、ソフトウェア・ドライバ、図１のＶＭ１１０の「ソフトウェア・ドライバ１５０」として概念的に図示される）が、メモリ・リソース１４０の再割り当て処理をするために、ホスト１００上の各ＶＭに加えられてもよい。ソフトウェア・ドライバ１５０は、１つのＶＭからメモリ・リソースを効果的に削除することにより、メモリ・リソース１４０を再割り当てし、ＶＭＭ１３０がもう一つのＶＭにこれらのリソースを再割り当てするのを可能にする役割を果たしてもよい。マルチプル・ソフトウェア・ドライバは、オペレーティング・システムの異なるタイプ及び／又はバージョンを生成して保持しなければならない場合がある。ソフトウェア・ドライバをＶＭに加えることは、一般的に、ＶＭＭ１３０に大量の新型コードを加えることを含んでいる。更に、これらのドライバは、また、ソフトウェア・ドライバ及びＶＭＭ１３０間の所有権の保持されたインタフェースを要求する可能性がある。最終的に、このスキームは、保持するのが困難で、ＶＭＭ１３０の安定性の問題をおこす結果となる可能性があり、したがって、ホスト１００のパフォーマンスに影響する。
【０００８】
本発明の実施形態は、バーチャル化されたホスト上のメモリ・リソースのダイナミックな再割り当てを可能にする。より具体的には、本発明の一つの実施形態において、メモリ・リソースは、ホスト１００上のＶＭを「リブート」することなく、追加のソフトウェアなしで、再割り当てされてもよい。図２は、更に詳細な本発明の一実施形態を図示する。図示したように拡張ＶＭＭ２３０は、ソフトウェアをＶＭに加える要求を避けると共にメモリをダイナミックに再割り当て及び／又はモニタするために、様々なＶＭ上のＡＣＰＩ  ＯＳドライバ１１３及びＡＣＰＩ  ＯＳドライバ１２３と相互に作用してもよい。本発明の実施形態の拡張ＶＭＭ２３０は、下記に詳述されているホスト１００上のメモリをダイナミックに再割り当てするために、ＡＣＰＩドライバを利用してもよい。拡張ＶＭＭ２３０が、存在している一つのＶＭＭ及び／又は存在している一つのＶＭＭと連動して動作してもよい他の構成要素に設けられる拡張機能を有してもよいことは、当業者であれば明白である。拡張ＶＭＭ２３０は、それゆえに、ソフトウェア（例えば、独立型プログラム及び／又はホスト・オペレーティング・システムのコンポーネントとして）、ハードウエア、ファームウェア及び／又はそれらのいかなる組合せによりインプリメントされてもよい。
【０００９】
メモリ・リソース１４０は、スタティックな部分及びダイナミックな部分を有してもよい。一実施形態において、図２に示したように、メモリ・リソース１４０（「スタティック・メモリ２１４」及び「スタティック・メモリ２２４」）の一部は、各ＶＭに専有されてもよく、一方、メモリ・リソース１４０の他の部分は、ダイナミックに割り当てられて、及び／又は、ＶＭ１１０及びＶＭ１２０の間で共有されてもよい。代替の実施形態において、メモリ・リソース１４０の全部が、ＶＭ１１０及びＶＭ１２０により共有されてもよく、すなわち、ＶＭが、メモリの各々に専有されるスタティックな部分を有さないで、その代替に、メモリの適切な量が各々にダイナミックに割り当てられてもよい。説明目的のため、以前の仮定（すなわち、メモリのスタティックな部分及びダイナミックな部分）が以下で使用される。本実施形態において、ダイナミック・メモリの一部は、最初に各ＶＭ（図２において、ＶＭ１１０に割り当てられたダイナミック・メモリ２１５、ＶＭ１２０に割り当てられたダイナミック・メモリ２２５として図示される）に割り当てられてもよいが、これらの部分は、いつでもダイナミックに削除及び／又は追加されてもよい。本発明の一実施形態によれば、拡張ＶＭＭ２３０は、メモリ・リソースが再割り当てされなければならないことを決定してもよい。この決定は、拡張ＶＭＭ２３０に与えられた標準に基づいてか、及び／又は、ＶＭからの追加のリソースのリクエストに応じて、自動的に作られてもよい。本例の目的に対して、仮定条件は、リソースがＶＭ１１０から削除されていて、ＶＭ１２０に再割り当てされていることである。
【００１０】
リソースの再割り当てが決定するとすぐに、拡張ＶＭＭ２３０は、ＶＭ１１０に一つのＡＣＰＩ汎用イベント（「ＧＰＥ」）を生成してもよい。一実施形態において、拡張ＶＭＭ２３０により生成されるＡＣＰＩイベントは、ホスト１００のハードウエアにより処理され及び／又は発生されるよりは、むしろ、ソフトウェアにおいて、エミュレートされてもよい。ＧＰＥを受けるとすぐに、ＶＭ１１０のゲストＯＳ１１１は、ＧＰＥの目的を決定するために、ＡＣＰＩイベント・ステータス・レジスタを読込み及び／又は他のオペレーション（例えば、ホスト・バスのコンフィギュレーション・レジスタに関連する問合せ（この後「コンフィギュレーションの問合せ」と記載）を作る）を実行してもよい。拡張ＶＭＭ１３０は、これらのオペレーションをインターセプトして、ダイナミック・メモリ２１５が削除されているＶＭ１１０に通知してもよい。その結果として、メモリが実際は「削除」されていないけれども、ＶＭ１１０にはそのように見える。このインフォメーションを受けるとすぐに、ゲストＯＳ１１１は、メモリのいかなる現在のインフォメーションも、ホスト１００のハードディスクにスワップしてもよく、その後で、ダイナミック・メモリ２１５を「イジェクト」、すなわち、ゲストＯＳ１１１は、シャット・ダウン及び／又は削除されているメモリに通知するために、メッセージをダイナミック・メモリ２１５に送信してもよい。
【００１１】
実際のダイナミック・メモリ２１５は、実際にはシャット・ダウン状態でないので、拡張ＶＭＭ２３０は、ＶＭ１１０からダイナミック・メモリ２１５へのメッセージをインターセプトする。その後で、ダイナミック・メモリ２１５は、他のＶＭに再割り当てされるために用いられてもよい。拡張ＶＭＭ２３０は、すぐに、ホスト１００上の他のＶＭ、例えば、ＶＭ１２０（図３にて図示したような）に、ダイナミック・メモリ２１５を再割り当てしてもよい。具体的には、一実施形態において、拡張ＶＭＭ２３０は、今度はＶＭ１２０に対して、エミュレートされたＡＣＰＩ  ＧＰＥを再び生成してもよい。ＶＭ１２０のゲストＯＳ１２１は、ＡＣＰＩイベント・ステータス・レジスタを読込んでもよく及び／又はＧＰＥの要因を決定するために他のオペレーションを実行してもよい。再び、拡張ＶＭＭ２３０は、これらのオペレーションをインターセプトして、ダイナミック・メモリ２１５が使用可能であることをＶＭ１２０に通知してもよい。一実施形態において、拡張ＶＭＭ２３０は、ゲストＶＭ１２０のメモリ空間にデバイス・テーブル（ＡＣＰＩ仕様により定義される）を生成することによりＶＭ１２０に通知してもよい。このインフォメーションを受けるとすぐに、ＡＣＰＩ  ＯＳドライバ１２３と関連したゲストＯＳ１２１は、ダイナミック・メモリ２１５を、ＶＭ１２０に使用可能なメモリ・リソースに加えて（例えば、メモリをページテーブルその他に加える）、その後、デバイスが他のＶＭによりリクエストされるか及び／又は拡張ＶＭＭ２３０がダイナミック・メモリ２１５を再割り当てすることを決める時まで、このメモリに排他的アクセスを適用してもよい。ゲストＯＳ１２１及びＡＣＰＩ  ＯＳドライバ１２３がメモリをＶＭ１２１に加える方法の詳細は、当業者にとって周知であり、その更なる説明は、本願明細書において、省略される。
【００１２】
本発明の実施形態は、このようにして拡張ＶＭＭ２３０が、ゲストＯＳ１１１及びゲストＯＳ１２１をリブートすることなしに、追加のソフトウェアを必要とすることなく、１つのＶＭから他にメモリをダイナミックに再割り当てすることを可能にする。このフレキシビリティは、ＶＭがホスト１００にインスタンスを生成するに従い、ますます増加して価値を有するようになる。なぜなら、ダイナミックにメモリ・リソースを再割り当てする能力は、必要に応じて、拡張ＶＭＭ２３０に各ＶＭのパフォーマンスを最適化する（例えば、そのメモリ・リソースが効率的に割り当てられることを保証することにより）ことを可能にするためである。図４は、本発明の一実施形態の一つの概要を図示しているフローチャートである。以下のオペレーションは、シーケンシャル・プロセスとして記載されていてもよいが、オペレーションの多くは、実際には平行、及び／又は、同時に実行されてもよい。加えて、オペレーションの命令は、本発明の各実施形態の趣旨から逸脱することなく、再配置されてもよい。４０１において、拡張ＶＭＭ２３０は、リクエストを受信して、及び／又は、ダイナミック・メモリ２１５の再割り当てを決定させる。４０２において、拡張ＶＭＭ２３０は、一つのＡＣＰＩ  ＧＰＥを、現在それ専用であるダイナミック・メモリ２１５を有するＶＭ１１０に生成してもよい。前述したように、本願明細書においては、本発明の各実施形態がＡＣＰＩに関して記載されているが、他のインタフェース、及び／又は、プロトコルが、本発明の各実施形態の趣旨から逸脱しないで、同一の効果を得るために使用されてもよい。４０３において、ＶＭ１１０のゲストＯＳ１１１は、ＡＣＰＩイベント・ステータス・レジスタを読込んでもよく、及び／又は、ＧＰＥの要因を決定するために他のオペレーションを実行してもよい。４０４において、これらのオペレーションは拡張ＶＭＭ２３０によりインターセプトされてもよく、拡張ＶＭＭ２３０は、ＶＭ１１０にダイナミック・メモリ２１５がシャット・ダウンしていることを通知してもよい。４０５において、ゲストＯＳ１１１は、その後で、ダイナミック・メモリ２１５のインフォメーションを、ホスト１００のハードディスクにスワップして、デバイスをイジェクトしてもよい。４０６において、拡張ＶＭＭ２３０は、第２のＡＣＰＩ  ＧＰＥをＶＭ１２０に送信してもよい。４０７において、ＶＭ１２０のゲストＯＳ１２１は、ＡＣＰＩイベント・ステータス・レジスタを読込んでもよく、及び／又は、ＧＰＥの要因を決定するために他のオペレーションを実行してもよい。４０８において、これらのオペレーションは、拡張ＶＭＭ２３０によりインターセプトされてもよく、拡張ＶＭＭ２３０は、ダイナミック・メモリ２１５が使用可能であることを、ＶＭ１２０に通知してもよい。４０９において、その後で、ゲストＯＳ１２１（ＡＣＰＩ  ＯＳドライバ１２３と連動して）は、ダイナミック・メモリ２１５をその使用可能なリソースにマップしてもよくて、それからダイナミック・メモリ２１５に排他的アクセスを持ってもよい。
【００１３】
上記した説明は、マルチプルＶＭを実行しているホストに集中しているが、本発明の各実施形態はそれに限らない。その代替として、本発明の各実施形態は、バスを共有する多重の独立したコンピュータ・システム（バーチャルの、又は、その他の）を有するいかなるプラットホームでインプリメントされてもよい。このように、例えば、独立したコンピュータ・システムを有しているサーバ・システムにおいて、コンピュータ・システムのうちの１つが障害のためのバックアップ・システムとして使用されてもよい。メインのコンピュータ・システムの障害時にはすぐに、本発明の各実施形態が、コンピュータ・システムをバックアップするための全メモリ・リソースをダイナミックに再割り当てするためのコンポーネントを、管理及び／又はモニタリングすることにより用いられてもよい。このようにして、いかなるオペレーティング・システムもリブートすることなく実行し続けるサーバ・システムが可能になる。様々な他のタイプのシステムが、また、本発明の他の各実施形態により利益を得てもよい。
【００１４】
本発明の各実施形態によるホストは、様々なコンピューティングデバイス上でインプリメントされてもよい。本発明の一実施形態によれば、コンピューティングデバイスは、本発明の一つの実施形態をなしとげるための命令を実行できる様々なコンポーネントを含んでもよい。例えば、コンピューティングデバイスは、少なくとも一つのマシン−アクセスが可能なメディアを備えるか、及び／又は、接続されてもよい。この明細書に用いられているように、「マシン」は、一つ以上のプロセッサを有するいかなるコンピューティングデバイスをも含むが、これに限定されるものではない。この明細書において、用いられているように、マシン−アクセスが可能なメディアは、インフォメーションをコンピューティングデバイスによりアクセス可能ないかなるフォームでも記憶、及び／又は、伝送するいかなるメカニズムも含み、そのマシン−アクセスが可能なメディアは、レコーダブル／ノン・レコーダブル・メディア（例えば、読取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体及びフラッシュメモリ・デバイス）、と同様に、電気、光学、音響、又は、他の形態の伝搬される信号（例えば、搬送波、赤外線シグナル及びデジタル信号）を含むが、それに限られない。
【００１５】
一実施形態によれば、コンピューティングデバイスは、一つ以上のプロセッサのような、様々な他の周知のコンポーネントを含んでもよい。プロセッサ及びマシン−アクセスが可能なメディアは、ブリッジ／メモリ・コントローラを用いて通信接続されてもよく、プロセッサは、マシン−アクセスが可能なメディアに記憶された命令を実行できてもよい。ブリッジ／メモリ・コントローラは、グラフィック・コントローラに接続されてもよく、グラフィック・コントローラは、ディスプレイ装置上の表示データの出力を制御してもよい。ブリッジ／メモリ・コントローラは、一つ以上のバスに接続されてもよい。これらの構成要素のうちの１つ以上は、単一のパッケージ上、又はマルチプル・パッケージ又はダイを使用するプロセッサと共に集積化されてもよい。ユニバーサル・シリアル・バス（「ＵＳＢ」）ホスト・コントローラのようなホスト・バス制御装置は、バス（複数の場合を含む）に接続されてもよく、複数のデバイスがＵＳＢに接続されてもよい。例えば、キーボード及びマウスのようなユーザー入力デバイスは、入力データを供給するためのコンピューティングデバイスに含まれてもよい。代替の各実施形態において、ホスト・バス制御装置は、ＰＣＩ、ＰＣＩエクスプレス、ファイヤワイヤ及びその他のそのような現存するか将来の規格を含む様々な他の相互接続規格と互換性があってもよい。
【００１６】
上記した明細書においては、本発明が、特定の例示的な各実施形態について記載されている。しかし、請求項に記載した本発明のより広い精神と範囲から逸脱することなく、それに対して、様々な変更形態と変更が実施されてもよいことが理解できる。本明細書及び図面は、したがって、制限的な意味よりむしろ一つの説明用とみなせる。
【図面の簡単な説明】
【００１７】
本発明の添付図面は、一例であり、かつ、本発明を限定するものではなく、同類の参照符号は、同様の要素を示す。添付図面において：
【００１８】
【図１】代表的なバーチャル・マシン・ホストの一例を示す。
【００１９】
【図２】本発明の一実施形態の概要を示す。
【００２０】
【図３】図２のイジェクトされたメモリを本発明の一実施形態による新規なＶＭに割り当てる場合の概要を示す。
【００２１】
【図４】本発明の一実施形態を図示するフローチャートである。
【図１】
2008530706.tif 000003
【図２】
2008530706.tif 000004
【図３】
2008530706.tif 000005
【図４】
2008530706.tif 000006
【国際調査報告】
2008530706.tif 000007
2008530706.tif 000008
2008530706.tif 000009