(57)【特許請求の範囲】
【請求項１】
スケジューリングレイヤに基づいて仮想マシン間通信を実現する方法であって、
スケジューリングレイヤは、ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングするステップと、
前記スケジューリングレイヤは、ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した第２の通信リクエストを受信して、前記第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングするステップと、
前記スケジューリングレイヤは、前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にするステップと、を含む
ことを特徴とする方法。
【請求項２】
前記スケジューリングレイヤはソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記スケジューリングレイヤは、前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てるステップをさらに含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用することは、
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供されたソース仮想マシンＩＤ番号と第１のマークＩＤを利用することである
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記スケジューリングレイヤは第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記スケジューリングレイヤは、前記第１の通信リクエストを前記通信情報テーブルに保存するステップをさらに含む
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記スケジューリングレイヤはソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にした後、
前記スケジューリングレイヤは、前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除するステップをさらに含む
ことを特徴とする請求項２〜４のいずれか１項に記載の方法。
【請求項６】
ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングすることに用いられる第１の返信モジュールと、
ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した第２の通信リクエストを受信して、前記第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングすることに用いられる第２の返信モジュールと、
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にすることに用いられる転送モジュールとを備える
ことを特徴とするスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置。
【請求項７】
前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てることに用いられる初期化モジュールをさらに備える
ことを特徴とする請求項６に記載の装置。
【請求項８】
前記ターゲット仮想マシンが利用する、前記ソース仮想マシンにより提供された情報は、ソース仮想マシンＩＤ番号と第１のマークＩＤを含む
ことを特徴とする請求項７に記載の装置。
【請求項９】
前記第１の通信リクエストを前記通信情報テーブルに保存することに用いられる保存モジュールをさらに備える
ことを特徴とする請求項７に記載の装置。
【請求項１０】
前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除することに用いられる削除モジュールをさらに備える
ことを特徴とする請求項７〜９のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信技術分野に関し、特にスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法および装置に関する。
【背景技術】
【０００２】
仮想化オペレーティングシステムは、単一のＣＰＵ上で複数のオペレーティングシステムで同時に稼働させることができる。ただし、携帯電話などの移動端末にとって、リアルタイム性は一つの非常に重要な指標であり、複数の仮想マシンを同時に稼働させている際に、複数の仮想マシン間の迅速な通信を実現することは非常に重要なことになる。従来技術において、仮想マシン間通信に用いられる方法は主として、二台の仮想マシンの間にメモリを共有してから、ＣＰＵによって共有メモリの内容を読み取ることで、二台の仮想マシンの間の通信を実現することである。しかし、このような方法では、一般的に、仮想マシンがメモリを割り当てて編み出すことが必要であり、また、仮想マシン間において通信を行う需要がある時に、ＣＰＵによって共有メモリの内容を読み取ることも必要である。こうすれば、二台の仮想マシンの間の通信のリアルタイム性が低下すると共に、ＣＰＵリソースも無駄になる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の主要な目的は、スケジューリングレイヤを採用することにより、上位レイヤにあるソース仮想マシンがスケジューリングレイヤを介してターゲット仮想マシンに直接に通信情報を送信できて、仮想マシン間の通信速度を向上し、メモリのリソースを節約するという目的を達成可能なスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法および装置を提供することにある。
【課題を解決するための手段】
【０００４】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法は、
ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための1つの第１のマークＩＤを、前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングするステップと、
ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した、第２の通信リクエストを受信して、前記第２の通信リクエストが成功にバインディングされたことを識別するための１つの第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングするステップと、
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にするステップと、を含む。
【０００５】
前記ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記方法は、前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てるステップをさらに含むことが好ましい。
【０００６】
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用することは、
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供されたソース仮想マシンＩＤ番号と第１のマークＩＤを利用することが好ましい。
【０００７】
前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記方法は、前記第１の通信リクエストを前記通信情報テーブルに保存するステップをさらに含むことが好ましい。
【０００８】
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にする後、
前記方法は、前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除するステップをさらに含むことが好ましい。
【０００９】
また、本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置は、
ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための一つの第１のマークＩＤを前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングすることに用いられる第１の返信モジュールと、
ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した、第２の通信リクエストを受信して、前記第２の通信リクエストがバインディング成功されたことを識別するための第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングすることに用いられる第２の返信モジュールと、
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にすることに用いられる転送モジュールと、を備える。
【００１０】
スケジューリングレイヤに基づいて仮想マシン間通信を実現する装置は、
前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てることに用いられる初期化モジュールをさらに備えることが好ましい。
【００１１】
前記ターゲット仮想マシンが利用する、前記ソース仮想マシンにより提供された情報は、ソース仮想マシンＩＤ番号と第１のマークＩＤを含むことが好ましい。
【００１２】
スケジューリングレイヤに基づいて仮想マシン間通信を実現する装置は、
前記第１の通信リクエストを前記通信情報テーブルに保存することに用いられる保存モジュールをさらに備えることが好ましい。
【００１３】
スケジューリングレイヤに基づいて仮想マシン間通信を実現する装置は、
前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除することに用いられる削除モジュールをさらに備えることが好ましい。
本明細書は、例えば、以下の項目も提供する。
（項目１）
スケジューリングレイヤに基づいて仮想マシン間通信を実現する方法であって、
ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングするステップと、
ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した第２の通信リクエストを受信して、前記第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングするステップと、
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にするステップと、を含む
ことを特徴とする方法。
（項目２）
前記ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てるステップをさらに含む
ことを特徴とする項目１に記載の方法。
（項目３）
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用することは、
前記ターゲット仮想マシンが前記ソース仮想マシンにより提供されたソース仮想マシンＩＤ番号と第１のマークＩＤを利用することである
ことを特徴とする項目２に記載の方法。
（項目４）
前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信する前に、
前記第１の通信リクエストを前記通信情報テーブルに保存するステップをさらに含む
ことを特徴とする項目２に記載の方法。
（項目５）
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にした後、
前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除するステップをさらに含む
ことを特徴とする項目２〜４のいずれか１項に記載の方法。
（項目６）
ソース仮想マシンから送信された第１の通信リクエストを受信して、前記第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤを前記ソース仮想マシンに返信し、前記ソース仮想マシンが第１のコールバック関数を登録した後に前記第１のマークＩＤとバインディングすることに用いられる第１の返信モジュールと、
ターゲット仮想マシンが前記ソース仮想マシンにより提供された情報を利用して送信した第２の通信リクエストを受信して、前記第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤを前記ターゲット仮想マシンに返信し、前記ターゲット仮想マシンが第２のコールバック関数を登録した後に前記第２のマークＩＤとバインディングすることに用いられる第２の返信モジュールと、
前記ソース仮想マシンから送信された通信情報を前記ターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして前記通信情報処理用にすることに用いられる転送モジュールとを備える
ことを特徴とするスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置。
（項目７）
前記ソース仮想マシンと前記ターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、前記ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てることに用いられる初期化モジュールをさらに備える
ことを特徴とする項目６に記載の装置。
（項目８）
前記ターゲット仮想マシンが利用する、前記ソース仮想マシンにより提供された情報は、ソース仮想マシンＩＤ番号と第１のマークＩＤを含む
ことを特徴とする項目７に記載の装置。
（項目９）
前記第１の通信リクエストを前記通信情報テーブルに保存することに用いられる保存モジュールをさらに備える
ことを特徴とする項目７に記載の装置。
（項目１０）
前記ソース仮想マシンから送信された通信キャンセルリクエストを受信して、前記通信情報テーブルに保存されている通信情報を削除することに用いられる削除モジュールをさらに備える
ことを特徴とする項目７〜９のいずれか１項に記載の装置。
【発明の効果】
【００１４】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法において、まず、ソース仮想マシンとターゲット仮想マシンから送信された第１の通信リクエストと第２の通信リクエストを受信して、バインディング成功されたことを識別するための第１のマークＩＤと第２のマークＩＤを返信することにより、ソース仮想マシンとターゲット仮想マシンは、それぞれ受信されたマークＩＤとバインディングし、続いて、ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントしてこの通信情報処理用にする。この方法を採用すれば、ソース仮想マシンとターゲット仮想マシンの間の通信を完成させることで、上位レイヤにあるソース仮想マシンがターゲット仮想マシンに通信情報を直接に送信できることになる。そうすれば、仮想マシン間の通信速度を大幅に向上させるとともに、メモリのリソースも節約できる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法の一実施例のフローチャートである。
【図２】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法の別の一実施例のフローチャートである。
【図３】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法のさらに別の一実施例のフローチャートである。
【図４】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法のさらに別の一実施例のフローチャートである。
【図５】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置の一実施例の構造の模式図である。
【図６】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置の別の一実施例の構造の模式図である。
【図７】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置のさらに別の一実施例の構造の模式図である。
【図８】本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置のさらに別の一実施例の構造の模式図である。
【発明を実施するための形態】
【００１６】
ここで記載されている具体的な実施例は本発明を解釈するために過ぎず、本発明を制限するものではないことが理解されよう。
【００１７】
図1を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法の一実施例を提案する。この方法は以下のいくつかのステップを含む。
【００１８】
ステップＳ１０１：ソース仮想マシンから送信された第１の通信リクエストを受信して、第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤをソース仮想マシンに返信して、ソース仮想マシンが第１のコールバック関数を登録した後に第１のマークＩＤとバインディングする。
【００１９】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法では、スケジューリングレイヤを介して、ソース仮想マシンと一つ或いは複数のターゲット仮想マシンとの間の通信リクエストを受信して、唯一のマークＩＤをそれぞれ返信することにより、ソース仮想マシンとターゲット仮想マシンとはそれぞれ受信されたマークＩＤとバインディングする。その後、スケジューリングレイヤを介して、ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送することにより、ターゲット仮想マシンがこの通信情報を処理する。スケジューリングレイヤは、通信リクエストを受信したたびに、このリクエストを直ちに処理してスケジューリングコマンドを送信する。このような方式で仮想マシン間の通信リクエストに迅速に対応して処理を行える。
【００２０】
本実施例において、ソース仮想マシンは、相手の一つ或いは複数のターゲット仮想マシンと通信を行う必要があれば、まず、スケジューリングレイヤに第１の通信リクエストを送信してスケジューリングレイヤとのバインディングを請求する必要がある。スケジューリングレイヤは、この第１の通信リクエストを受信した後に、このリクエストに基づき、そして、バインディング成功された後に、ソース仮想マシンから送信された第１の通信リクエストがスケジューリングレイヤとバインディング成功されたことを識別するための１つの唯一の第１のマークＩＤをソース仮想マシンに返信する。ソース仮想マシンはこの唯一の第１のマークＩＤを受信した後に、この第１のマークＩＤを保存しておき、１つの第１のコールバック関数を登録し、そして第１のマークＩＤとこの第１のコールバック関数とをバインディングすることにより、ターゲット仮想マシンと通信を行っている時に、対応するコールバックを実行できる。これによって、ターゲット仮想マシンと通信を行うという目的を達成する。
【００２１】
ステップＳ１０２：ターゲット仮想マシンがソース仮想マシンにより提供された情報を利用して送信した、第２の通信リクエストを受信して、第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤをターゲット仮想マシンに返信することにより、ターゲット仮想マシンが第２のコールバック関数を登録した後に第２のマークＩＤとバインディングする。
【００２２】
ソース仮想マシンは、スケジューリングレイヤの第１のマークＩＤを受信して第１のコールバック関数を登録した後に、ソース仮想マシンのバインディング情報を含む通知を相手のターゲット仮想マシンに送信する必要がある。そして、ターゲット仮想マシンは通知にキャリーされた情報を利用して、スケジューリングレイヤに第２の通信リクエストと定義される１つのバインディングリクエストも送信し、スケジューリングレイヤとのバインディングを同様に請求する。スケジューリングレイヤは、第２の通信リクエストを受信した後に、このリクエストにキャリーされた情報に基づいて、バインディングを行うかどうかをチェックし、バインディング成功されたら、第２の通信リクエストとスケジューリングレイヤがバインディング成功されたことを識別するための１つの唯一の第２のマークＩＤを同様にターゲット仮想マシンに返信する。ターゲット仮想マシンはこの唯一の第２のマークＩＤを受信した後に、この第２のマークＩＤを同様に保存しておき、第２のコールバック関数を登録し、そして第２のマークＩＤとこの第２のコールバック関数とをバインディングすることにより、ソース仮想マシンと通信を行っている時に、対応するコールバックを実行できる。これによって、ソース仮想マシンと通信を行うという目的を達成する。
【００２３】
本実施例において、ソース仮想マシンはスケジューリングレイヤの第１のマークＩＤを受信して、第１のコールバック関数を登録したとともに、この第1のマークＩＤと第１のコールバック関数とのバインディングを完成させる後、ソース仮想マシンは、通信を行う必要があるターゲット仮想マシンに、スケジューリングレイヤとのバインディングを請求させるように知らせることが必要となる。このように、ソース仮想マシンが共有メモリを介して、ソース仮想マシンＩＤ番号と第１のマークＩＤとを含む情報を同時にターゲット仮想マシンに提供することにより、ターゲット仮想マシンがこれらの情報に基づいてスケジューリングレイヤに第２の通信リクエストを送信する。本実施例において、ソース仮想マシンＩＤ番号は、スケジューリングレイヤが初期化している時にソース仮想マシンとターゲット仮想マシンに割り当てた、各仮想マシンを識別するための唯一のＩＤ番号である。
【００２４】
ステップＳ１０３：ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして通信情報処理用にする。
【００２５】
ソース仮想マシンとターゲット仮想マシンはいずれもスケジューリングレイヤとのバインディング成功を完成したと、ソース仮想マシンとターゲット仮想マシンの通信リクエストに対するテストプロセスが完成する。この際、ソース仮想マシンとターゲット仮想マシンは互いに通信を行うことができる。まず、ソース仮想マシンが通信情報をターゲット仮想マシンに送信し、スケジューリングレイヤがソース仮想マシンからターゲット仮想マシンに送信すべき通信情報があるかどうかを随時に検出し、もしあれば、この通信情報をターゲット仮想マシンに転送する。それと同時に、スケジューリングレイヤはＣＰＵをターゲット仮想マシンにグラントすることにより、この通信情報を処理する。ターゲット仮想マシンは、スケジューリングレイヤから転送した通信情報を受信した後、第２のマークＩＤとバインディング済みの第２のコールバック関数を呼び出すことで、ターゲット関数に入り、対応する関数に基づいて通信情報を処理する。
【００２６】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法は、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンの間の通信を完成させる。まず、スケジューリングレイヤは、ソース仮想マシンとターゲット仮想マシンから送信された第１の通信リクエストと第２の通信リクエストを受信して、スケジューリングレイヤとバインディング成功されたことを識別するための第１のマークＩＤと第２のマークＩＤを返信することにより、ソース仮想マシンとターゲット仮想マシンは、それぞれ受信するマークＩＤとバインディングする。そして、スケジューリングレイヤを介して、ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして、それがこの通信情報を処理する。この方法を採用して、ソース仮想マシンとターゲット仮想マシンの間の通信を完成させることで、上位レイヤにあるソース仮想マシンがスケジューリングレイヤを介して、ターゲット仮想マシンに通信情報を直接送信できることになる。そうすれば、仮想マシン間の通信速度を大幅に向上させるとともに、メモリのリソースも節約できる。
【００２７】
図２を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法の別の一実施例を提案する。ステップＳ１０１を実行する前に、この実施例はさらに次のステップを含む。
【００２８】
ステップＳ１０４：ソース仮想マシンとターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てる。
【００２９】
本実施例において、スケジューリングレイヤを介してソース仮想マシンとターゲット仮想マシンの間の通信を実現する前に、まず、スケジューリングレイヤを介して初期化する必要がある。ここで、初期化するというのは、ソース仮想マシンとターゲット仮想マシンの状態、および通信情報テーブルを初期化するということを含む。本実施例により提供される通信情報テーブルは、スケジューリングレイヤが各仮想マシンからの通信リクエストを受信した後、それらの通信情報を保存するためのものである。ところで、スケジューリングレイヤを介して初期化すると同時に、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンに、ソース仮想マシンとターゲット仮想マシンを識別するためのＩＤ番号をそれぞれ割り当てる必要がある。この２種類のＩＤ番号は、それぞれソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号と定義されてもよい。それと同時に、ソース仮想マシンとターゲット仮想マシンは自体を初期化する必要もあり、その目的は、割り込み関数を登録することで、スケジューリングレイヤと通信を確立することにある。
【００３０】
ソース仮想マシンとターゲット仮想マシンの間の通信を実現する前に、まず、ソース仮想マシンとターゲット仮想マシンの状態、および通信情報テーブルを初期化すると同時に、ソース仮想マシンとターゲット仮想マシンに、ソース仮想マシンとターゲット仮想マシンを識別するためのソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号をそれぞれ割り当てる。同時に、ソース仮想マシンとターゲット仮想マシンは自体を初期化する必要もある。このように、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンからの通信リクエストを便利に受信でき、これらの通信リクエストに直ちに迅速に対応して処理を行うこともできる。そうすれば、仮想マシン間の通信速度を大幅に向上させることをさらに確保する。
【００３１】
図３を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法のさらに別の一実施例を提案する。図３に示すように、この方法はさらに次のステップを含む。
【００３２】
ステップＳ１０５：第１の通信リクエストを通信情報テーブルに保存する。
【００３３】
本実施例において、ソース仮想マシンは、相手の一つ或いは複数のターゲット仮想マシンと通信を行う必要があると、まず、スケジューリングレイヤに１つの第１の通信リクエストを送信してスケジューリングレイヤとのバインディングを請求する必要がある。スケジューリングレイヤは第１の通信リクエストを受信した後、まずこの第１の通信リクエストを保存する必要があり、つまり、これをスケジューリングレイヤの通信情報テーブルに保存する。本実施例により提供される通信情報テーブルは、スケジューリングレイヤが各仮想マシンからの通信リクエストを受信した後、これらの通信情報を保存することに用いられる。ソース仮想マシンとターゲット仮想マシンの通信が終わると、スケジューリングレイヤはこの通信情報テーブルに保存されているすべての通信情報をクリアすることにより、ソース仮想マシンとターゲット仮想マシンが次回通信を行う時に、新たな通信情報を保存することができる。
【００３４】
ソース仮想マシンから送信される第１の通信リクエストをスケジューリングレイヤの通信情報テーブルに保存することで、これらの通信情報を保存し、ソース仮想マシンとターゲット仮想マシンが通信を行っている過程で、通信情報をチェックしテストすることが可能となる。
【００３５】
図４を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する方法のさらに別の一実施例を提案する。ステップＳ１０３を実行する後、さらに次のステップを含む。
【００３６】
ステップＳ１０６：ソース仮想マシンから送信される通信キャンセルリクエストを受信して、通信情報テーブルに保存されている通信情報を削除する。
【００３７】
本実施例において、ソース仮想マシンとターゲット仮想マシンがスケジューリングレイヤを介して互いの通信を完成したと、さらに、ソース仮想マシンが、ソース仮想マシンとすべてのターゲット仮想マシンのバインディング情報をリリースするように、スケジューリングレイヤに知らせることが必要である。つまり、ソース仮想マシンがスケジューリングレイヤに通信キャンセルリクエストを送信して、スケジューリングレイヤに対して各仮想マシンのバインディング情報をリリースするように請求する。同時に、スケジューリングレイヤは、ソース仮想マシンから送信される通信キャンセルリクエストを受信したと、通信情報テーブルに保存されている、通信を行っているソース仮想マシンとすべてのターゲット仮想マシンの通信情報を削除することも必要となる。ソース仮想マシンとターゲット仮想マシンが、スケジューリングレイヤから返信された、第１のマークＩＤと第１のコールバック関数とのバインディングおよび第２のマークＩＤと第２のコールバック関数とのバインディングを、同時に削除する必要もある。
【００３８】
ソース仮想マシンとターゲット仮想マシンがスケジューリングレイヤを介して互いの通信を完成したと、各仮想マシンのバインディング情報をリリースして、通信情報テーブルに保存されている、通信を行っているソース仮想マシンとすべてのターゲット仮想マシンの通信情報を削除する。そうすれば、メモリのリソースを節約できることをさらに確保する。
【００３９】
図５を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置の一実施例を提案する。この装置は、
ソース仮想マシンから送信された第１の通信リクエストを受信して、第１の通信リクエストがバインディング成功されたことを識別するための１つの第１のマークＩＤをソース仮想マシンに返信することにより、ソース仮想マシンが第１のコールバック関数を登録した後に第１のマークＩＤとバインディングすることに用いられる第１の返信モジュール１０と、
ターゲット仮想マシンがソース仮想マシンに提供された情報を利用して送信した第２の通信リクエストを受信して、第２の通信リクエストがバインディング成功されたことを識別するための１つの第２のマークＩＤをターゲット仮想マシンに返信することにより、ターゲット仮想マシンが第２のコールバック関数を登録した後に第２のマークＩＤとバインディングすることに用いられる第２の返信モジュール２０と、
ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントして通信情報処理用にすることに用いられる転送モジュール３０と、を備える。
【００４０】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置では、スケジューリングレイヤを介して、ソース仮想マシンと一つ或いは複数のターゲット仮想マシンとの間の通信リクエストを受信して、唯一のマークＩＤをそれぞれ返信することにより、ソース仮想マシンとターゲット仮想マシンとはそれぞれ受信するマークＩＤとバインディングする。そして、スケジューリングレイヤを介して、ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送することにより、ターゲット仮想マシンがこの通信情報を処理する。スケジューリングレイヤは、通信リクエストを受信したたびに、このリクエストを直ちに処理してスケジューリングコマンドを送信する。この方式で、仮想マシン間の通信リクエストに迅速に対応して処理を行える。
【００４１】
本実施例において、ソース仮想マシンは、相手の一つ或いは複数のターゲット仮想マシンと通信を行う必要があれば、まず、スケジューリングレイヤに１つの第１の通信リクエストを送信してスケジューリングレイヤとのバインディングを請求する必要がある。スケジューリングレイヤは、この第１の通信リクエストを受信した後に、このリクエストに応じて、そして、バインディング成功された後に、第１の返信モジュール１０によって、ソース仮想マシンから送信された第１の通信リクエストとスケジューリングレイヤとがバインディング成功されたことを識別するための１つの唯一の第１のマークＩＤをソース仮想マシンに返信する。ソース仮想マシンはこの唯一の第１のマークＩＤを受信した後に、この第１のマークＩＤを保存しておき、第１のコールバック関数を登録し、そして第１のマークＩＤとこの第１のコールバック関数とをバインディングすることにより、ターゲット仮想マシンと通信を行っている時に、対応するコールバックを実行できる。これによって、ターゲット仮想マシンと通信を行うという目的を達成する。
【００４２】
ソース仮想マシンは、スケジューリングレイヤの第１のマークＩＤを受信して第１のコールバック関数を登録した後に、ソース仮想マシンのバインディング情報を含む通知を相手のターゲット仮想マシンに送信する必要がある。そして、ターゲット仮想マシンは通知にキャリーされた情報を利用して、スケジューリングレイヤに第２の通信リクエストと定義されるバインディングリクエストも送信し、スケジューリングレイヤとのバインディングを同様に請求する。スケジューリングレイヤは、第２の通信リクエストを受信した後に、このリクエストにキャリーされた情報に基づいて、バインディングを行うかどうかをチェックし、バインディング成功されたら、第２の返信モジュールによって、第２の通信リクエストとスケジューリングレイヤとのバインディング成功されたことを識別するための唯一の第２のマークＩＤを同様にターゲット仮想マシンに返信する。ターゲット仮想マシンはこの唯一の第２のマークＩＤを受信した後に、この第２のマークＩＤを同様に保存しておき、第２のコールバック関数を登録し、そして第２のマークＩＤとこの第２のコールバック関数とをバインディングすることにより、ソース仮想マシンと通信を行っている時に、対応するコールバックを実行できる。これによって、ソース仮想マシンと通信を行うという目的を達成する。
【００４３】
本実施例において、ソース仮想マシンはスケジューリングレイヤの第１のマークＩＤを受信して、第１のコールバック関数を登録したとともに、この第1のマークＩＤと第１のコールバック関数とのバインディングを完成した後、ソース仮想マシンは、通信を行う必要があるターゲット仮想マシンに、スケジューリングレイヤとのバインディングを請求させるように知らせることが必要となる。このように、ソース仮想マシンが共有メモリを介して、ソース仮想マシンＩＤ番号と第１のマークＩＤとを含む情報を同時にターゲット仮想マシンに提供することにより、ターゲット仮想マシンがこれらの情報に基づいてスケジューリングレイヤに第２の通信リクエストを送信する。本実施例において、ソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号は、スケジューリングレイヤが初期化している時にソース仮想マシンとターゲット仮想マシンに割り当てた、各仮想マシンを識別するための唯一のＩＤ番号である。
【００４４】
ソース仮想マシンとターゲット仮想マシンはいずれもスケジューリングレイヤとのバインディング成功を完成したと、ソース仮想マシンとターゲット仮想マシンの通信リクエストに対するテストプロセスが完成される。この際、ソース仮想マシンとターゲット仮想マシンは互いに通信を行うことができる。まず、ソース仮想マシンは通信情報をターゲット仮想マシンに送信し、スケジューリングレイヤはソース仮想マシンからターゲット仮想マシンに送信すべき通信情報があるかどうかを随時に検出し、もしあれば、転送モジュール３０はこの通信情報をターゲット仮想マシンに転送する。それと同時に、スケジューリングレイヤはＣＰＵをターゲット仮想マシンにグラントすることにより、ターゲット仮想マシンがこの通信情報を処理することができる。ターゲット仮想マシンは、スケジューリングレイヤから転送した通信情報を受信した後、第２のマークＩＤとバインディング済みの第２のコールバック関数を呼び出すことで、ターゲット関数に入り、対応する関数に基づいて通信情報を処理する。
【００４５】
本発明により提供されるスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置は、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンの間の通信を完成させる。まず、スケジューリングレイヤは、ソース仮想マシンとターゲット仮想マシンから送信された第１の通信リクエストと第２の通信リクエストを受信して、スケジューリングレイヤとがバインディング成功されたことを識別するための第１のマークＩＤと第２のマークＩＤを返信することにより、ソース仮想マシンとターゲット仮想マシンは、それぞれ受信するマークＩＤとバインディングする。そして、スケジューリングレイヤを介して、ソース仮想マシンから送信された通信情報をターゲット仮想マシンに転送して、ＣＰＵをターゲット仮想マシンにグラントしてこの通信情報処理用にする。上記の装置によって、ソース仮想マシンとターゲット仮想マシンの間の通信を完成させることで、上位レイヤにあるソース仮想マシンがスケジューリングレイヤを介して、ターゲット仮想マシンに通信情報を直接に送信できることになる。そうすれば、仮想マシン間の通信速度を大幅に向上させるとともに、メモリのリソースも節約できる。
【００４６】
図６を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置の別の一実施例を提案する。前記装置は、さらに、
ソース仮想マシンとターゲット仮想マシンの状態、および通信情報を保存するための通信情報テーブルを初期化し、ソース仮想マシンとターゲット仮想マシンにソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号を割り当てることに用いられる初期化モジュール４０を備える。
【００４７】
本実施例において、スケジューリングレイヤを介してソース仮想マシンとターゲット仮想マシンの間の通信を実現する前に、まず、初期化モジュール４０によって初期化する必要がある。ここで、初期化するというのは、ソース仮想マシンとターゲット仮想マシンの状態、および通信情報テーブルを初期化するということを含む。本実施例により提供される通信情報テーブルは、スケジューリングレイヤが各仮想マシンからの通信リクエストを受信した後、それらの通信情報を保存するためのものである。ところで、スケジューリングレイヤを介して初期化すると同時に、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンに、ソース仮想マシンとターゲット仮想マシンを識別するためのＩＤ番号をそれぞれ割り当てる必要がある。この２種類のＩＤ番号は、それぞれソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号と定義されてもよい。それと同時に、ソース仮想マシンとターゲット仮想マシンは自体を初期化する必要もあり、その目的は、割り込み関数を登録することで、スケジューリングレイヤと通信を確立することにある。
【００４８】
ソース仮想マシンとターゲット仮想マシンの間の通信を実現する前に、まず、ソース仮想マシンとターゲット仮想マシンの状態、および通信情報テーブルを初期化すると同時に、ソース仮想マシンとターゲット仮想マシンに、ソース仮想マシンとターゲット仮想マシンを識別するためのソース仮想マシンＩＤ番号とターゲット仮想マシンＩＤ番号をそれぞれ割り当てる。同時に、ソース仮想マシンとターゲット仮想マシンは自体を初期化する必要もある。このように、スケジューリングレイヤを介して、ソース仮想マシンとターゲット仮想マシンからの通信リクエストを便利に受信でき、これらの通信リクエストに直ちに迅速に対応して処理を行うこともできる。そうすれば、仮想マシン間の通信速度を大幅に向上させることをさらに確保する。
【００４９】
図７を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置のさらに別の一実施例を提案する。前記装置は、さらに、
第１の通信リクエストを通信情報テーブルに保存することに用いられる保存モジュール５０を備える。
【００５０】
本実施例において、ソース仮想マシンは、相手の一つ或いは複数のターゲット仮想マシンと通信を行う必要があると、まず、スケジューリングレイヤに第１の通信リクエストを送信してスケジューリングレイヤとのバインディングを請求する必要がある。スケジューリングレイヤが第１の通信リクエストを受信した後、まず、保存モジュール５０がこの第１の通信リクエストを保存する必要があり、つまり、これをスケジューリングレイヤの通信情報テーブルに保存する。本実施例により提供される通信情報テーブルは、スケジューリングレイヤが各仮想マシンからの通信リクエストを受信した後、これらの通信情報を保存することに用いられる。ソース仮想マシンとターゲット仮想マシンの通信が終わると、スケジューリングレイヤはこの通信情報テーブルに保存されているすべての通信情報をクリアすることにより、ソース仮想マシンとターゲット仮想マシンが次回通信を行う時に、新たな通信情報を保存することができる。
【００５１】
ソース仮想マシンから送信される第１の通信リクエストをスケジューリングレイヤの通信情報テーブルに保存することで、これらの通信情報を保存し、ソース仮想マシンとターゲット仮想マシンが通信を行っている過程で、通信情報をチェックしテストすることが可能となる。
【００５２】
図８を参照しながら本発明に係るスケジューリングレイヤに基づいて仮想マシン間通信を実現する装置のさらに別の一実施例を提案する。前記装置は、さらに、
ソース仮想マシンから送信される通信キャンセルリクエストを受信して、通信情報テーブルに保存されている通信情報を削除することに用いられる削除モジュール６０を備える。
【００５３】
本実施例において、ソース仮想マシンとターゲット仮想マシンがスケジューリングレイヤを介して互いの通信を完成させると、さらに、ソース仮想マシンが、ソース仮想マシンとすべてのターゲット仮想マシンのバインディング情報をリリースするように、スケジューリングレイヤに知らせることが必要である。つまり、ソース仮想マシンがスケジューリングレイヤに通信キャンセルリクエストを送信して、スケジューリングレイヤに対して各仮想マシンのバインディング情報をリリースするように請求する。同時に、スケジューリングレイヤがソース仮想マシンから送信される通信キャンセルリクエストを受信すると、削除モジュール６０がさらに、通信情報テーブルに保存されている、通信を行っているソース仮想マシンとすべてのターゲット仮想マシンの通信情報を削除する必要がある。ソース仮想マシンとターゲット仮想マシンは、スケジューリングレイヤから返信された、第１のマークＩＤと第１のコールバック関数とのバインディングおよび第２のマークＩＤと第２のコールバック関数とのバインディングを、同時に削除する必要もある。
【００５４】
ソース仮想マシンとターゲット仮想マシンはスケジューリングレイヤを介して互いの通信を完成したと、各仮想マシンのバインディング情報をリリースして、通信情報テーブルに保存されている、通信を行っているソース仮想マシンとすべてのターゲット仮想マシンの通信情報を削除する。そうすれば、メモリのリソースを節約できることをさらに確保する。
【００５５】
以上は、本発明の最適的な実施例に過ぎなく、本発明の保護範囲を制限するものではない。本発明の明細書および図面の内容を利用して作られた同等の構造或いは同等のプロセス変更や、関連する他の技術分野への直接或いは間接的な適用が、すべて本発明の保護範囲以内に含まれるべきである。
【図１】
0005832659.tif 000002
【図２】
0005832659.tif 000003
【図３】
0005832659.tif 000004
【図４】
0005832659.tif 000005
【図５】
0005832659.tif 000006
【図６】
0005832659.tif 000007
【図７】
0005832659.tif 000008
【図８】
0005832659.tif 000009