(57)【要約】      （修正有）【課題】同一ホストマシン上の仮想マシン間で通信を行う場合に、ＮＷ通信プロトコルを使用せず、メモリアクセスで通信をし、各通信階層の制御処理による通信のオーバーヘッドが削減できる情報処理装置、情報処理方法及びプログラムを提供する。【解決手段】情報処理装置１は、メモリ制御部と、通信制御部と、を備える制御部を有する。メモリ制御部は、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、複数の仮想マシン毎に情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付ける。通信制御部は、第一仮想マシンと第二仮想マシンとの間の通信を制御する。【選択図】図１
2019164661.tif 000002
【特許請求の範囲】
【請求項１】
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、
情報処理装置。
【請求項２】
前記複数の仮想マシンのＯＳが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
を備える請求項１に記載の情報処理装置。
【請求項３】
前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
請求項２に記載の情報処理装置。
【請求項４】
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として送信先を表す送信先情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記送信先情報が示す前記第一仮想マシンに送信データを送信させる
請求項２又は３に記載の情報処理装置。
【請求項５】
前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
を備える請求項２から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンの通信状態を表す状態情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記状態情報を前記データ登録部に出力し、
前記データ登録部は、前記状態情報を前記記憶部に登録する
請求項５に記載の情報処理装置。
【請求項７】
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンに前記実データが保有されているか否かを表す保存データ情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記保存データ情報を前記データ登録部に出力し、
前記データ登録部は、前記保存データ情報を前記記憶部に登録する
請求項５又は６に記載の情報処理装置。
【請求項８】
前記データ登録部は、前記保存データ情報に、前記実データのアドレスを対応付けて登録する
請求項７に記載の情報処理装置。
【請求項９】
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、
前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、
前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、
前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、
を有する情報処理方法。
【請求項１０】
１又は複数のコンピュータを、
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータなどの情報機器では、１台のコンピュータ上で、複数のコンピュータやＯＳ（Operating System）を動作させる場合や、別のアーキテクチャ用のソフトウェアを動作させる場合に、仮想マシンが用いられている。仮想マシンが動く情報機器（以下「ホストマシン」という。）は、ＲＡＭ（Random Access Memory）などを用いて仮想マシンを動かす。
【０００３】
仮想マシンは、他の仮想マシンやコンピュータと通信を行うことができる。ホストマシン上に、仮想マシンが複数存在する場合、当該仮想マシンは、他の仮想マシンと通信が可能である。しかしながら、同一のホストマシン上の仮想マシン同士であっても、仮想マシン間の通信は、ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）などのネットワーク通信用の通信プロトコル（以下「ＮＷ通信プロトコル」という。）を使用する必要がある。
【０００４】
ＮＷ通信プロトコルに従った通信方式を用いた場合、通信データに制御を行うためのデータを付与する工程を経て通信され、通信データの容量は、大きくなる。これは、ＮＷ通信プロトコルのデータ通信モデルに基づいて、各階層で通信を制御するためのデータが付与されるためである。このため、ＮＷ通信プロトコルに従った通信方式は、同一のホストマシン上の仮想マシン間で通信する場合、複数の処理階層を経由するため、通信効率が悪く、通信処理のオーバーヘッドが大きくなる。
【０００５】
また、ネットワーク通信用のＩ／Ｏ（Input / Output）処理は、他のＩ／Ｏ処理と比較して処理優先度が低い。このため、システムのＩ／Ｏ負荷が高くなった場合、ネットワーク通信用のＩ／Ｏ性能が低下しやすい。これにより通信処理のオーバーヘッドが増加する可能性がある。
【０００６】
以上のことから、仮想マシン同士の通信は、同一のホストマシン上の仮想マシン同士の通信であっても、ＮＷ通信プロトコルを用いた通信を実行する必要があるため、処理にオーバーヘッドが生じてしまうという課題があった。
【０００７】
仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン間のネットワーク通信では、通信する階層を減らし、仮想マシン間で共用可能なメモリを使用する手法が文献１で開示されている。具体的には、文献１では、同一のメモリ（以下「共有メモリ」という。）を仮想マシン間で使用することが可能であるため、共用メモリを使用して通信する方法が開示されている。
【０００８】
また、仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン内に定めた通信チャネルを介して通信を行う手法が文献２で開示されている。具体的には、文献２では、仮想マシン間の通信機構として通信チャネルが提供される。文献２の仮想マシンは、当該通信チャネルを用いて、仮想マシン間の通信を行う手法が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１５−１７０８８７号公報
【特許文献２】国際公開第２０１０／０６４４１１号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以上より、上記文献１及び２では、同一ホストマシン上の仮想マシン間で通信を行う場合、ＮＷ通信プロトコルを使用して試みている。しかしながら、上記の方法では、同一ホストマシン上の仮想マシン間の通信にも関わらず、ネットワークのＮＷ通信プロトコルを使用するため、各通信階層の制御処理による通信のオーバーヘッドは、削減できていないという問題があった。各通信階層の制御処理とは、通信に使用する中身のデータ（以下「実データ」という。）に、プロトコルの階層に応じた制御用のデータを付与する処理である。
【００１１】
そこで本発明は、上述の課題を解決する情報処理装置、情報処理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明の第１の態様によれば、情報処理装置は、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する。
【００１３】
本発明の第２の態様によれば、情報処理方法は、１又は複数のコンピュータが、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、を有する。
【００１４】
本発明の第３の態様によれば、プログラムは、１又は複数のコンピュータに、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させる。
【発明の効果】
【００１５】
上記態様のうち少なくとも１つの態様によれば、仮想マシンは、ホストマシンの仮想通信用メモリを用いて通信を行う。これにより、同一ホストマシン上の仮想マシン間で通信を行う場合、ＮＷ通信プロトコルを使用せずに、メモリアクセスで通信を行うため、各通信階層の制御処理による通信のオーバーヘッドが削減できるという効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る情報処理装置１のハードウェア構成を示す図である。
【図２】本発明の一実施形態に係る制御部１００のソフトウェア構成を示す概略ブロック図である。
【図３】本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。
【図４】本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。
【図５】本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。
【図６】本発明の一実施形態に係る通信用メモリが管理する識別データの一例を示すデータテーブルである。
【図７】本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。
【図８】本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。
【図９】本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。
【図１０】本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。
【図１１】本発明の一実施形態に係る仮想マシンのプロトコル階層の一例を示す図である。
【図１２】本実施形態による情報処理装置１の最少構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して説明する。
【００１８】
図１は本発明の一実施形態に係る情報処理装置１のハードウェア構成を示す図である。
情報処理装置１は、制御部１００と、システムメモリ２００と、通信用メモリドライバ３００と、仮想通信用メモリ４００と、第一仮想マシン５００と、第二仮想マシン６００と、を備える。
【００１９】
なお、本実施形態における仮想マシンは、ホスト型でもよいし、ハイパーバイザ型でもよい。つまり、同一ホストマシン上で動作する仮想マシンであれば、仮想マシンの稼働方式及び稼働数は問わない。以下の本実施形態では、例として、ホストマシン上でホスト型の仮想マシンを２台動作させるものとして説明する。
【００２０】
制御部１００は、ＣＰＵ（Central Processing Unit）等のプロセッサを用いて構成される。制御部１００は、プログラムをメインメモリに展開し、プロセッサがプログラムを実行することによって、プログラムに従って処理を実行する。本実施形態では、制御部１００は、プログラムを実行することで、図２で示す制御部として機能する。
システムメモリ２００は、通信用メモリ記憶部２１０及び通信データ記憶部２２０を備える。なお、システムメモリ２００は、記憶部の一態様である。
【００２１】
通信用メモリ記憶部２１０は、後述する図３から図５までのデータテーブルを予め記憶する。また、通信用メモリ記憶部２１０は、データ登録部１３０から受信する、処理のコマンド（以下「指示データ」という。）や、識別ＩＤ、通信ＩＤなどの情報（以下「識別データ」という。）を、図６で後述するデータテーブルに記憶する。
通信データ記憶部２２０は、第一仮想マシン５００と第二仮想マシン６００との間で通信される実データを記憶する。
【００２２】
通信用メモリドライバ３００は、仮想通信用メモリ４００の生成を行う。制御部１００は、通信用メモリドライバ３００の機能を用いてプログラムの処理を実行する。
【００２３】
仮想通信用メモリ４００は、第一仮想メモリ４１０及び第二仮想メモリ４２０を備える。なお、第一仮想メモリ４１０及び第二仮想メモリ４２０のフォーマットは、ＶＨＤＸやＶＨＤなど仮想マシンで使用できるフォーマットであれば、どのフォーマットを使用してもよい。また、第一仮想メモリ４１０及び第二仮想メモリ４２０は、第一記憶領域の一態様である。
第一仮想メモリ４１０及び第二仮想メモリ４２０は、第一通信用メモリ５２０及び第二通信用メモリ６２０と対応付けて扱われる。
【００２４】
第一仮想マシン５００は、第一アプリケーション５１０及び第一通信用メモリ５２０を備える。
第一アプリケーション５１０は、第一仮想マシン５００が第二仮想マシン６００とデータの送受信を行う際、第一通信用メモリ５２０を通して送受信の命令を通信用メモリドライバ３００へ通知する。
【００２５】
第一通信用メモリ５２０は、第一アプリケーション５１０から通知された送受信の命令を通信用メモリドライバ３００へ通知し、通信を行う。なお、第一通信用メモリ５２０は、後述するメモリ制御部１１０によって、第一仮想メモリ４１０とアドレスが対応付けされる。また、第一通信用メモリ５２０は、第二記憶領域の一態様である。
【００２６】
第二仮想マシン６００は、第二アプリケーション６１０及び第二通信用メモリ６２０を備える。
第二アプリケーション６１０は、第二仮想マシン６００が第一仮想マシン５００とデータの送受信を行う際、第二通信用メモリ６２０を通して送受信の命令を通信用メモリドライバ３００へ通知する。
【００２７】
第二通信用メモリ６２０は、第二アプリケーション６１０から通知された送受信の命令を通信用メモリドライバ３００へ通知し、通信を行う。なお、第二通信用メモリ６２０は、後述するメモリ制御部１１０によって、第二仮想メモリ４２０が対応付けされる。また、第二通信用メモリ６２０は、第二記憶領域の一態様である。
【００２８】
なお、システムメモリ２００及び通信用メモリドライバ３００は、記憶装置の一例であり、仮想通信用メモリ４００は、仮想的な記憶装置の一例である。
【００２９】
図２は、本発明の一実施形態に係る制御部１００のソフトウェア構成を示す概略ブロック図である。
制御部１００は、プログラムを実行することで、メモリ制御部１１０、データ判定部１２０、データ登録部１３０及び通信制御部１４０として機能する。
【００３０】
メモリ制御部１１０は、仮想マシンと通信を行うための、仮想の通信用メモリ（以下「仮想通信用メモリ４００」という。）を構成する。はじめに、メモリ制御部１１０は、メインメモリから記憶領域を確保し、通信用メモリドライバ３００によりアクセスする仮想通信用メモリ４００を生成する。メモリ制御部１１０は、仮想通信用メモリ４００に、第一仮想メモリ４１０及び第二仮想メモリ４２０を生成する。次に、メモリ制御部１１０は第一仮想メモリ４１０及び第二仮想メモリ４２０を、第一通信用メモリ５２０及び第二通信用メモリ６２０に対応付ける。
【００３１】
これにより、第一仮想マシン５００及び第二仮想マシン６００が、第一通信用メモリ５２０及び第二通信用メモリ６２０を用いて通信を行う場合、メモリ制御部は、第一通信用メモリ５２０及び第二通信用メモリ６２０を、仮想通信用メモリ４００にアクセスさせる。
【００３２】
なお、本実施形態では、２台の仮想マシン間での通信を想定しているため、仮想通信用メモリ４００内の仮想メモリは２つにしている。３台以上の複数の仮想マシン間での通信を想定する場合、仮想メモリは、仮想マシンの台数に応じて生成される必要がある。２台の仮想マシンでの通信の場合と同様に、メモリ制御部１１０は、生成した仮想メモリを、仮想マシンの通信用メモリと１対１で対応付ける。
【００３３】
データ判定部１２０は、情報処理装置１のＯＳがＷｉｎｄｏｗｓ（登録商標）の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット（ＩＲＰ：Ｉ／Ｏ Ｒｅｑｕｅｓｔ Ｐａｃｋｅｔ）が発行される。データ判定部１２０は、プロセスから受け取った入出力要求パケットの情報に基づいて、実データ及び識別データを判定する。入出力要求パケットの情報には、通信用メモリのアドレスに対応した論理ブロックアドレスＬＢＡ（Logical Block Addressing）が含まれ、データ判定部１２０は、送信要求及び受信要求の発行元の識別ＩＤとしてＬＢＡを使用する。そして、データ判定部１２０は、判定結果に基づいて取得したデータをデータ登録部１３０へ送る。
【００３４】
データ登録部１３０は、データ判定部１２０から受け取ったデータをシステムメモリ２００に登録する。本実施形態では、例として、データ登録部１３０は、データ判定部１２０から受け取った識別ＩＤ、通信ＩＤ、保存データフラグ及びデータ保存アドレスを通信用メモリ記憶部２１０に登録する。
【００３５】
データ登録部１３０は、通信制御部１４０の処理の結果に基づいて、仮想マシンが制御された状態を表すデータ（以下「状態情報」という。）を通信制御部１４０から受け取り、通信用メモリ記憶部２１０に登録する。データ登録部１３０は、データ判定部１２０から受け取った実データを通信データ記憶部２２０に登録する。
【００３６】
通信制御部１４０は、複数の仮想マシン間の通信を制御する。通信制御部１４０は、後述する図６のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。具体的には、通信制御部１４０は、ＯＳが発行する入出力要求パケットなどの識別データに基づいて、仮想マシン間の通信を制御する。
【００３７】
例えば、第一アプリケーション５１０から、初期化リクエストがあった場合、通信制御部１４０は、図６のデータテーブルを参照し、指示データが書込用初期設定の「ＩＮＩＴ＿Ｗ」、識別ＩＤが「ＬＢＡ＿ＡＰ１＿Ｗ」、送り元が「ＡＰ１」であることを確認する。そして、通信制御部１４０は、第一アプリケーション５１０の書き込み用初期設定を行う。
【００３８】
通信制御部１４０が行う制御に関しては、後述する図８から１０のシーケンス図を用いて説明する。また、通信制御部１４０は、制御処理が行われる工程に基づいて、状態情報をデータ登録部１３０へ送る。
【００３９】
図３は、本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。
通信用メモリ記憶部２１０は、書き込みの初期設定を行う指示データ、読み込みの初期設定を行う指示データ及び送信を行う指示データを、予め記憶する。また、通信する宛先や送り元を示す宛先情報も同様に記憶されている。
【００４０】
図３では、例として、指示データの項目に「ＩＮＩＴ＿Ｗ」、「ＩＮＩＴ＿Ｒ」、「ＴＸ」が記憶されており、宛先情報の項目に「ＡＰ１」、「ＡＰ２」が記憶されている。なお、図３は、本実施形態のデータフォーマットの一例であり、使用する通信方法に合わせて変更してもよい。
【００４１】
図４は、本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。
通信用メモリ記憶部２１０は、仮想マシンの通信用メモリの送信用アドレス及び受信用アドレスを、予め記憶する。
【００４２】
図４では、例として、第一通信用メモリ５２０の送信用アドレス項目に「0xXXXXXXX1」、第一通信用メモリ５２０の受信用アドレス項目に「0xYYYYYYY1」、第二通信用メモリ６２０の送信用アドレス項目に「0xXXXXXXX2」、第二通信用メモリ６２０の受信用アドレス項目に「0xYYYYYYY2」が記憶されている。
【００４３】
図５は、本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。論理ブロックアドレスとは、記憶装置においてデータの位置を示すアドレスを指定する方法である。論理ブロックアドレスは、論理ブロックを含むブロックアドレス空間の先頭からのブロックオフセットを表す。
【００４４】
図５では、例として、通信用メモリのＩ／Ｏに使用する論理ブロックアドレスとして、図４で示した通信用メモリの送信用アドレスと、受信用アドレスと、を用いている。通信用メモリドライバの論理ブロックアドレスは、通信用メモリのＩ／Ｏに使用する論理ブロックアドレスと、関連付けて記憶される、通信用メモリドライバの論理ブロックアドレスとして、例として、「ＬＢＡ＿ＡＰ１＿Ｗ」「ＬＢＡ＿ＡＰ１＿Ｒ」「ＬＢＡ＿ＡＰ２＿Ｗ」「ＬＢＡ＿ＡＰ２＿Ｒ」を設定している。
【００４５】
図６は、本発明の一実施形態に係る通信用メモリ記憶部２１０で管理する識別データの一例を示すデータテーブルである。本実施形態では、通信用メモリ記憶部２１０で管理する識別データのデータテーブル（以下「管理テーブル」という。）は、識別ＩＤ、通信ＩＤ、状態情報、保存データフラグ、データ保存アドレスを有する。
【００４６】
識別ＩＤのデータ項目は、通信用メモリドライバの論理ブロックアドレスが登録される。図６において、論理ブロックアドレスは、図５の通信用メモリの送受信のアドレスと対応付いて登録されている。
通信ＩＤのデータ項目は、宛先情報が登録される。図６において、宛先情報は、図３の宛先情報と対応付いて登録されている。
【００４７】
状態のデータ項目は、「初期設定中」「アイドル」「送信要求中」「送信完了待ち」「受信要求中」「受信完了待ち」の６つの状態情報うち、いずれか１つの状態情報が登録される。状態のデータ項目は、通信制御部１４０の処理に基づいて、データ登録部１３０によって登録される。なお、初期設定を行う前は識別ＩＤによる管理情報が無いため、「初期状態」として表す。
【００４８】
保存データフラグのデータ項目は、保存された実データが存在するか否かに基づいて、データ登録部１３０によって登録される。保存データフラグの種別は、有効、無効とし、保存データが有る場合には有効、保存データが無い場合には無効とする。
【００４９】
データ保存アドレスのデータ項目は、初期設定を行う際、通信データを一時的に格納するメモリエリア（バッファ）の先頭アドレスがデータ登録部１３０によって登録される。
なお、保存データフラグ及びデータ保存アドレスは、識別ＩＤが送信用の場合、使用しない。
【００５０】
図７は、本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。
メモリ制御部１１０は、メインメモリから記憶領域を確保し、通信用メモリドライバ３００によりアクセスする仮想通信用メモリ４００を生成する（ステップＳ１００）。
【００５１】
メモリ制御部１１０は、仮想通信用メモリ４００の中に仮想マシンの数と同数の仮想メモリ（第一仮想メモリ４１０、第二仮想メモリ４２０、…）を生成する（ステップＳ１０１）。
メモリ制御部１１０は、各仮想マシンの通信用メモリに、ステップＳ１０１で生成した仮想メモリを１対１で対応付ける（ステップＳ１０２）。
【００５２】
図８は、本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。
第一通信用メモリからの入出力要求パケットを処理するスレッド１と、第二通信用メモリからの入出力要求パケットを処理するスレッド２は、マルチスレッドで動作する。
【００５３】
第一アプリケーション５１０は、第一通信用メモリ５２０の送信用アドレスを用いて初期化要求（書込用初期設定の入出力要求パケット生成）を行う（ステップＳ２００）。この初期化要求により、ＯＳが発行する入出力要求パケットの情報（指示データ：ＩＮＩＴ＿Ｗ、送り元：ＡＰ１、識別ＩＤ：ＬＢＡ＿ＡＰ１＿Ｗ）をデータ判定部１２０が受け取る（ステップＳ２０１）。
【００５４】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ２０２）。データ判定部１２０の判定結果に基づいて、データ登録部１３０は、通信用メモリ記憶部２１０が記憶する管理テーブルに、識別ＩＤを「ＬＢＡ＿ＡＰ１＿Ｗ」、状態を「初期設定中」として登録する（ステップＳ２０３）。
【００５５】
データ登録部１３０は、管理テーブルに識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の通信ＩＤを「ＡＰ１」として識別データを登録する（ステップＳ２０４）。初期値を記憶した後、データ登録部１３０は、管理テーブルに識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「アイドル」として登録する（ステップＳ２０５）。そして、通信制御部１４０は、ステップＳ２０１の入出力要求パケットで要求された処理の完了通知を第一アプリケーション５１０へ送る（ステップＳ２０６）。
【００５６】
第二アプリケーション６１０は、第二通信用メモリ６２０の受信用アドレスを用いて初期化要求（読込用初期設定の入出力要求パケット生成）を行う（ステップＳ２０７）。この初期化要求により、ＯＳが発行する入出力要求パケットの情報（指示データ：ＩＮＩＴ＿Ｒ、送り元：ＡＰ２、識別ＩＤ：ＬＢＡ＿ＡＰ２＿Ｒ）をデータ判定部１２０が受け取る（ステップＳ２０８）。
【００５７】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ２０９）。データ判定部１２０の判定結果に基づいて、データ登録部１３０は、通信用メモリ記憶部２１０が記憶する管理テーブルに、識別ＩＤを「ＬＢＡ＿ＡＰ２＿Ｒ」、状態を「初期設定中」として登録する（ステップＳ２１０）。
【００５８】
データ登録部１３０は、管理テーブルに識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の通信ＩＤを「ＡＰ２」、保存データフラグを「無効」、データ保存アドレスを「ＬＢＡ＿ＡＰ２＿Ｒ用バッファアドレス」として識別データを登録する（ステップＳ２１１）。初期値を記憶した後、データ登録部１３０は、管理テーブルに識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「アイドル」として登録する（ステップＳ２１２）。そして、通信制御部１４０は、ステップＳ２０８の入出力要求パケットで要求された処理の完了通知を第二アプリケーション６１０へ送る（ステップＳ２１３）。
【００５９】
図９は、本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。
第一アプリケーション５１０は、第一通信用メモリ５２０の送信用アドレスを用いて送信要求（送信リクエストの入出力要求パケット生成）を行う（ステップＳ３００）。この送信要求により、ＯＳが発行する入出力要求パケットの情報（識別ＩＤ：ＬＢＡ＿ＡＰ１＿Ｗ、指示データ：ＴＸ、送り元：ＡＰ１、宛先：ＡＰ２）をデータ判定部１２０が受け取る（ステップＳ３０１）。
【００６０】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ３０２）。データ判定部１２０の判定結果に基づいて、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「送信要求中」として登録する（ステップＳ３０３）。さらに、データ判定部１２０は、判定結果に基づいて、「ＬＢＡ＿ＡＰ２＿Ｒ」の状態が「アイドル中」であることをデータ登録部１３０に通知する。データ登録部１３０は、通信データ記憶部２２０の「ＬＢＡ＿ＡＰ２＿Ｒ用」のバッファアドレスに実データを保存し、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」のデータ保存フラグを「有効」にする（ステップＳ３０４）。
【００６１】
データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「送信完了待ち」として登録する（ステップＳ３０５）。
【００６２】
第二アプリケーション６１０は、第二通信用メモリ６２０の受信用アドレスを用いて受信要求（受信リクエストの入出力要求パケット生成）を行う（ステップＳ３０６）。この受信要求により、ＯＳが発行する入出力要求パケットの情報（識別ＩＤ：ＬＢＡ＿ＡＰ２＿Ｒ）をデータ判定部１２０が受け取る（ステップＳ３０７）。
【００６３】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ３０８）。具体的には、データ判定部１２０は、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「受信要求中」として登録する（ステップＳ３０９）。
【００６４】
図９の処理フローでは、実データは保存されているため、通信制御部１４０は、通信データ記憶部２２０の「ＬＢＡ＿ＡＰ２＿Ｒ用」のバッファアドレスから実データを読み出して、読み出した実データをＡＰ２宛の実データとして第二アプリケーション６１０に転送する（ステップＳ３１０）。データ登録部１３０は、通信データ記憶部２２０の「ＬＢＡ＿ＡＰ２＿Ｒ用」のバッファアドレスに保存された実データを破棄し識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」のデータ保存フラグを「無効」にする。
【００６５】
通信制御部１４０が実データを第二アプリケーション６１０に転送した後、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「アイドル」として登録する（ステップＳ３１１）。そして、通信制御部１４０は、ステップＳ３０７の入出力要求パケットで要求された処理の完了を通知する（ステップＳ３１２）。
【００６６】
また、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「アイドル」として登録する（ステップＳ３１３）。そして、通信制御部１４０は、ステップＳ３０１の入出力要求パケットで要求された処理の完了を通知する（ステップＳ３１４）。
【００６７】
図１０は、本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。
第二アプリケーション６１０は、第二通信用メモリ６２０の受信用アドレスを用いて受信要求（受信リクエストの入出力要求パケット生成）を行う（ステップＳ４００）。この受信要求により、ＯＳが発行する入出力要求パケットの情報（識別ＩＤ：ＬＢＡ＿ＡＰ２＿Ｒ）をデータ判定部１２０が受け取る（ステップＳ４０１）。
【００６８】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ４０２）。具体的には、データ判定部１２０は、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「受信要求中」として登録する（ステップＳ４０３）。
【００６９】
図１０の処理フローでは、実データは保存されていないため、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「受信完了待ち」として登録する（ステップＳ４０４）。
【００７０】
第一アプリケーション５１０は、第一通信用メモリ５２０の送信用アドレスを用いて送信要求（送信リクエストの入出力要求パケット生成）を行う（ステップＳ４０５）。この送信要求により、ＯＳが発行する入出力要求パケットの情報（識別ＩＤ：ＬＢＡ＿ＡＰ１＿Ｗ、指示データ：ＴＸ、送り元：ＡＰ１、宛先：ＡＰ２）をデータ判定部１２０が受け取る（ステップＳ４０６）。
【００７１】
データ判定部１２０は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別ＩＤなどの識別データを判定する（ステップＳ４０７）。データ判定部１２０の判定結果に基づいて、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「送信要求中」として登録する（ステップＳ４０８）。さらにデータ判定部１２０は、判定結果に基づいて、「ＬＢＡ＿ＡＰ２＿Ｒ」の状態が「受信完了待ち」であることを通信制御部１４０に通知する。通信制御部１４０は、「ＬＢＡ＿ＡＰ２＿Ｒ」の状態が「受信完了待ち」であるため、実データを第二アプリケーション６１０へ転送する（ステップＳ４０９）。
【００７２】
通信制御部１４０が実データを第二アプリケーション６１０に転送した後、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ２＿Ｒ」の状態を「アイドル」として登録する（ステップＳ４１０）。そして、通信制御部１４０は、ステップＳ４０１の入出力要求パケットで要求された処理の完了を通知する（ステップＳ４１１）。
【００７３】
また、データ登録部１３０は、管理テーブルに、識別ＩＤ「ＬＢＡ＿ＡＰ１＿Ｗ」の状態を「アイドル」として登録（ステップＳ４１２）する。そして、通信制御部１４０は、ステップＳ４０６の入出力要求パケットで要求された処理の完了を通知する（ステップＳ４１３）。
【００７４】
[変形例]
本実施形態では、仮想マシンを２台用いて説明したが、同一のホストマシン上で動作する仮想マシンであれば、２台以上のＮ台の仮想マシン間の通信にも本実施形態は、応用が可能である。
【００７５】
本実施形態では、仮想通信用メモリ４００を、仮想マシン上の通信用メモリとして対応付けることにより、仮想通信用メモリ４００を通信用メモリとみなして動作させた。変形例では、通信データフォーマットのデータテーブルに通信用の制御コードを予め登録しておき、通信用制御コードを参照することにより、動作方法を変更することが可能となる。
【００７６】
図１１は、本発明の一実施形態に係る仮想マシンのプロトコル階層の一例を示す図である。
ＮＷ通信プロトコルを使用した仮想マシン間の通信は、ＴＣＰ／ＩＰの規格に基づいて、アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層を介して通信を行う。
【００７７】
送信側の仮想マシンは、通信する実データに加えて、各層に応じた制御用のデータを付与する。受信側の仮想マシンは、付与されたデータを、各層に応じて取り除き、実データのみを取得する。図１１では、例として、ＮＷ通信プロトコルを使用し、第一仮想マシン５００から第二仮想マシン６００へデータを送信する場合を説明する。
【００７８】
第一仮想マシン５００から送信される実データは、送信処理が行われた場合、アプリケーション層からネットワークインターフェース層までの各層で、制御用のデータとしてＴＣＰセグメント（ＴＣＰパケット）が付与される。そして、ホストマシンの仮想マシン管理層を経由し、第二仮想マシン６００へ送信される。
【００７９】
第二仮想マシン６００では、ネットワークインターフェース層からアプリケーション層までの各層に応じたＴＣＰセグメントを取り除く。そして、第二仮想マシンは、実データを受信する。
【００８０】
上記の通信方法を用いた場合、仮想マシン間の通信に制御用のデータを使用する工程が発生する。本実施形態では、ＮＷ通信プロトコルを使用せず、メモリアクセスの手法でデータを通信するため、上記の通信方法で発生するオーバーヘッドが削減できる。
【００８１】
図１２は、本実施形態による情報処理装置１の最小構成を示す図である。
本実施形態による情報処理装置１は少なくとも、メモリ制御部１１０及び通信制御部１４０を備えればよい。
【００８２】
メモリ制御部１１０は、仮想マシンと通信を行うための、仮想通信用メモリを構成する。はじめに、メモリ制御部１１０は、メインメモリから記憶領域を確保し、通信用メモリドライバ３００によりアクセスする仮想通信用メモリ４００を生成する。そして、仮想通信用メモリ４００の中に2台分の仮想メモリを生成する。つまり、メモリ制御部１１０は、第一仮想メモリ４１０及び第二仮想メモリ４２０を生成する。次に、メモリ制御部１１０は第一仮想メモリ４１０及び第二仮想メモリ４２０を、第一通信用メモリ５２０及び第二通信用メモリ６２０に対応付ける。
【００８３】
通信制御部１４０は、複数の仮想マシン間の通信を制御する。通信制御部１４０は、図６のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。また、通信制御部１４０は、処理のフローに基づいて、状態情報を通信用メモリ記憶部２１０に登録する。
【００８４】
以上より、本実施形態では、メモリ制御部１１０、通信制御部１４０を持つことにより、同一ホストマシン上の仮想マシン同士の通信において、ＮＷ通信プロトコルを使用しないことにより、通信処理のオーバーヘッドを削減することができる。
【００８５】
上述の情報処理装置は内部に、コンピュータシステムを有している。そして、上述した同一ホストマシン上で動作する複数の仮想マシン間で通信を行う場合に、オーバーヘッドを削減する過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００８６】
なお、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、ＢＩＯＳの例外時にＯＳの処理を継続させてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８７】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００８８】
《付記》
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８９】
（付記１）
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、
情報処理装置。
【００９０】
（付記２）
前記複数の仮想マシンのＯＳが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
を備える付記１に記載の情報処理装置。
【００９１】
（付記３）
前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
付記２に記載の情報処理装置。
【００９２】
（付記４）
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として送信先を表す送信先情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記送信先情報が示す前記第一仮想マシンに送信データを送信させる
付記２又は３に記載の情報処理装置。
【００９３】
（付記５）
前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
を備える付記２から４のいずれか一項に記載の情報処理装置。
【００９４】
（付記６）
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンの通信状態を表す状態情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記状態情報を前記データ登録部に出力し、
前記データ登録部は、前記状態情報を前記記憶部に登録する
付記５に記載の情報処理装置。
【００９５】
（付記７）
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンに前記実データが保有されているか否かを表す保存データ情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記保存データ情報を前記データ登録部に出力し、
前記データ登録部は、前記保存データ情報を前記記憶部に登録する
付記５又は６に記載の情報処理装置。
【００９６】
（付記８）
前記データ登録部は、前記保存データ情報に、前記実データのアドレスを対応付けて登録する
付記７に記載の情報処理装置。
【００９７】
（付記９）
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、
前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、
前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、
前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、
を有する情報処理方法。
【００９８】
（付記１０）
１又は複数のコンピュータを、
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。
【符号の説明】
【００９９】
１・・・情報処理装置
１００・・・制御部
１１０・・・メモリ制御部
１２０・・・データ判定部
１３０・・・データ登録部
１４０・・・通信制御部
２００・・・システムメモリ
２１０・・・通信用メモリ記憶部
２２０・・・通信データ記憶部
３００・・・通信用メモリドライバ
４００・・・仮想通信用メモリ
４１０・・・第一仮想メモリ
４２０・・・第二仮想メモリ
５００・・・第一仮想マシン
５１０・・・第一アプリケーション
５２０・・・第一通信用メモリ
６００・・・第二仮想マシン
６１０・・・第二アプリケーション
６２０・・・第二通信用メモリ
【図１】
2019164661.tif 000003
【図２】
2019164661.tif 000004
【図３】
2019164661.tif 000005
【図４】
2019164661.tif 000006
【図５】
2019164661.tif 000007
【図６】
2019164661.tif 000008
【図７】
2019164661.tif 000009
【図８】
2019164661.tif 000010
【図９】
2019164661.tif 000011
【図１０】
2019164661.tif 000012
【図１１】
2019164661.tif 000013
【図１２】
2019164661.tif 000014