











本発明は、情報処理装置、情報処理方法及びプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method and a program.
コンピュータなどの情報機器では、1台のコンピュータ上で、複数のコンピュータやOS(Operating System)を動作させる場合や、別のアーキテクチャ用のソフトウェアを動作させる場合に、仮想マシンが用いられている。仮想マシンが動く情報機器(以下「ホストマシン」という。)は、RAM(Random Access Memory)などを用いて仮想マシンを動かす。 In information devices such as computers, virtual machines are used when operating a plurality of computers and OSs (Operating Systems) on one computer, or when operating software for different architectures. An information device (hereinafter referred to as a "host machine") on which a virtual machine operates uses RAM (Random Access Memory) or the like to operate the virtual machine.
仮想マシンは、他の仮想マシンやコンピュータと通信を行うことができる。ホストマシン上に、仮想マシンが複数存在する場合、当該仮想マシンは、他の仮想マシンと通信が可能である。しかしながら、同一のホストマシン上の仮想マシン同士であっても、仮想マシン間の通信は、TCP/IP(Transmission Control Protocol / Internet Protocol)などのネットワーク通信用の通信プロトコル(以下「NW通信プロトコル」という。)を使用する必要がある。 A virtual machine can communicate with other virtual machines and computers. When a plurality of virtual machines exist on the host machine, the virtual machine can communicate with other virtual machines. However, even between virtual machines on the same host machine, communication between virtual machines is a communication protocol for network communication such as TCP / IP (Transmission Control Protocol / Internet Protocol) (hereinafter referred to as "NW communication protocol"). .) Must be used.
NW通信プロトコルに従った通信方式を用いた場合、通信データに制御を行うためのデータを付与する工程を経て通信され、通信データの容量は、大きくなる。これは、NW通信プロトコルのデータ通信モデルに基づいて、各階層で通信を制御するためのデータが付与されるためである。このため、NW通信プロトコルに従った通信方式は、同一のホストマシン上の仮想マシン間で通信する場合、複数の処理階層を経由するため、通信効率が悪く、通信処理のオーバーヘッドが大きくなる。 When a communication method according to the NW communication protocol is used, communication is performed through a step of adding data for controlling the communication data, and the capacity of the communication data becomes large. This is because data for controlling communication is added at each layer based on the data communication model of the NW communication protocol. Therefore, in the communication method according to the NW communication protocol, when communicating between virtual machines on the same host machine, the communication efficiency is poor and the communication processing overhead becomes large because the communication goes through a plurality of processing layers.
また、ネットワーク通信用のI/O(Input / Output)処理は、他のI/O処理と比較して処理優先度が低い。このため、システムのI/O負荷が高くなった場合、ネットワーク通信用のI/O性能が低下しやすい。これにより通信処理のオーバーヘッドが増加する可能性がある。 Further, the I / O (Input / Output) processing for network communication has a lower processing priority than other I / O processing. Therefore, when the I / O load of the system becomes high, the I / O performance for network communication tends to deteriorate. This may increase the communication processing overhead.
以上のことから、仮想マシン同士の通信は、同一のホストマシン上の仮想マシン同士の通信であっても、NW通信プロトコルを用いた通信を実行する必要があるため、処理にオーバーヘッドが生じてしまうという課題があった。 From the above, in the communication between virtual machines, even if the communication is between virtual machines on the same host machine, it is necessary to execute the communication using the NW communication protocol, which causes an overhead in the processing. There was a problem.
  仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン間のネットワーク通信では、通信する階層を減らし、仮想マシン間で共用可能なメモリを使用する手法が文献1で開示されている。具体的には、文献1では、同一のメモリ(以下「共有メモリ」という。)を仮想マシン間で使用することが可能であるため、共用メモリを使用して通信する方法が開示されている。  As a measure against overhead in communication processing between virtual machines, in network communication between virtual machines, a method of reducing the communication hierarchy and using a memory that can be shared between virtual machines is disclosed in
また、仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン内に定めた通信チャネルを介して通信を行う手法が文献2で開示されている。具体的には、文献2では、仮想マシン間の通信機構として通信チャネルが提供される。文献2の仮想マシンは、当該通信チャネルを用いて、仮想マシン間の通信を行う手法が開示されている。 Further, as a measure against overhead in communication processing between virtual machines, a method of performing communication via a communication channel defined in the virtual machine is disclosed in Document 2. Specifically, in Document 2, a communication channel is provided as a communication mechanism between virtual machines. The virtual machine of Document 2 discloses a method of communicating between virtual machines using the communication channel.
  以上より、上記文献1及び2では、同一ホストマシン上の仮想マシン間で通信を行う場合、NW通信プロトコルを使用して試みている。しかしながら、上記の方法では、同一ホストマシン上の仮想マシン間の通信にも関わらず、ネットワークのNW通信プロトコルを使用するため、各通信階層の制御処理による通信のオーバーヘッドは、削減できていないという問題があった。各通信階層の制御処理とは、通信に使用する中身のデータ(以下「実データ」という。)に、プロトコルの階層に応じた制御用のデータを付与する処理である。  From the above, in
そこで本発明は、上述の課題を解決する情報処理装置、情報処理方法及びプログラムを提供することを目的としている。 Therefore, an object of the present invention is to provide an information processing apparatus, an information processing method, and a program that solve the above-mentioned problems.
本発明の第1の態様によれば、情報処理装置は、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する。 According to the first aspect of the present invention, the information processing apparatus is secured in the memory of the information processing apparatus for each of the plurality of virtual machines mounted on the same information processing apparatus and communicating with each other. Communication secured in each of the virtual first storage area, the first virtual machine that transmits transmission data including identification data for specifying the data content, and the second virtual machine that receives the transmission data. A memory control unit associated with a second storage area for data processing, and a communication control unit for controlling communication between the first virtual machine and the second virtual machine are provided, and the first virtual machine is the first virtual machine. The transmission data is written in the first storage area associated with the second storage area of the first virtual machine, and the second virtual machine is associated with the second storage area of the second virtual machine. A reception instruction for receiving the transmission data is written in the first storage area, and the communication control unit transmits the transmission data to the second virtual machine based on the reception instruction.
本発明の第2の態様によれば、情報処理方法は、1又は複数のコンピュータが、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、を有する。 According to the second aspect of the present invention, in the information processing method, in a plurality of virtual machines in which one or a plurality of computers are mounted on the same information processing device and communicate with each other, the information is described for each of the plurality of virtual machines. Each of the virtual first storage area secured in the memory of the processing device, the first virtual machine for transmitting transmission data including identification data for specifying the data content, and the second virtual machine for receiving the transmission data. A memory control step associated with a second storage area for communication secured in the above, and the first storage area in which the first virtual machine is associated with the second storage area of the first virtual machine. In the step of writing the transmission data, and the reception instruction for the second virtual machine to receive the transmission data in the first storage area associated with the second storage area of the second virtual machine. It has a step of writing the data and a step of transmitting the transmission data to the second virtual machine based on the reception instruction.
本発明の第3の態様によれば、プログラムは、1又は複数のコンピュータに、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させる。 According to the third aspect of the present invention, the program is mounted on one or a plurality of computers on the same information processing device, and in a plurality of virtual machines communicating with each other, the information processing device is used for each of the plurality of virtual machines. In each of the virtual first storage area secured in the memory of the first virtual machine for transmitting transmission data including identification data for specifying the data content and the second virtual machine for receiving the transmission data. A memory control unit associated with the second storage area for communication secured in the above, and a communication control unit for controlling communication between the first virtual machine and the second virtual machine are provided. The virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine, and the second virtual machine is the second storage of the second virtual machine. A reception instruction for receiving the transmission data is written in the first storage area associated with the area, and the communication control unit transmits the transmission data to the second virtual machine based on the reception instruction. To function as an information processing device.
上記態様のうち少なくとも1つの態様によれば、仮想マシンは、ホストマシンの仮想通信用メモリを用いて通信を行う。これにより、同一ホストマシン上の仮想マシン間で通信を行う場合、NW通信プロトコルを使用せずに、メモリアクセスで通信を行うため、各通信階層の制御処理による通信のオーバーヘッドが削減できるという効果が得られる。 According to at least one of the above aspects, the virtual machine communicates using the virtual communication memory of the host machine. As a result, when communicating between virtual machines on the same host machine, communication is performed by memory access without using the NW communication protocol, so there is an effect that the communication overhead due to the control processing of each communication layer can be reduced. can get.
以下、本発明の実施形態について、図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
  図1は本発明の一実施形態に係る情報処理装置1のハードウェア構成を示す図である。
  情報処理装置1は、制御部100と、システムメモリ200と、通信用メモリドライバ300と、仮想通信用メモリ400と、第一仮想マシン500と、第二仮想マシン600と、を備える。FIG. 1 is a diagram showing a hardware configuration of an
 The
なお、本実施形態における仮想マシンは、ホスト型でもよいし、ハイパーバイザ型でもよい。つまり、同一ホストマシン上で動作する仮想マシンであれば、仮想マシンの稼働方式及び稼働数は問わない。以下の本実施形態では、例として、ホストマシン上でホスト型の仮想マシンを2台動作させるものとして説明する。 The virtual machine in this embodiment may be a host type or a hypervisor type. That is, as long as it is a virtual machine operating on the same host machine, the operating method and the number of operating virtual machines do not matter. In the following embodiment, as an example, two host-type virtual machines will be operated on the host machine.
  制御部100は、CPU(Central Processing Unit)等のプロセッサを用いて構成される。制御部100は、プログラムをメインメモリに展開し、プロセッサがプログラムを実行することによって、プログラムに従って処理を実行する。本実施形態では、制御部100は、プログラムを実行することで、図2で示す制御部として機能する。
  システムメモリ200は、通信用メモリ記憶部210及び通信データ記憶部220を備える。なお、システムメモリ200は、記憶部の一態様である。The
 The
  通信用メモリ記憶部210は、後述する図3から図5までのデータテーブルを予め記憶する。また、通信用メモリ記憶部210は、データ登録部130から受信する、処理のコマンド(以下「指示データ」という。)や、識別ID、通信IDなどの情報(以下「識別データ」という。)を、図6で後述するデータテーブルに記憶する。
  通信データ記憶部220は、第一仮想マシン500と第二仮想マシン600との間で通信される実データを記憶する。The communication
 The communication
  通信用メモリドライバ300は、仮想通信用メモリ400の生成を行う。制御部100は、通信用メモリドライバ300の機能を用いてプログラムの処理を実行する。  The
  仮想通信用メモリ400は、第一仮想メモリ410及び第二仮想メモリ420を備える。なお、第一仮想メモリ410及び第二仮想メモリ420のフォーマットは、VHDXやVHDなど仮想マシンで使用できるフォーマットであれば、どのフォーマットを使用してもよい。また、第一仮想メモリ410及び第二仮想メモリ420は、第一記憶領域の一態様である。
  第一仮想メモリ410及び第二仮想メモリ420は、第一通信用メモリ520及び第二通信用メモリ620と対応付けて扱われる。The
 The first
  第一仮想マシン500は、第一アプリケーション510及び第一通信用メモリ520を備える。
  第一アプリケーション510は、第一仮想マシン500が第二仮想マシン600とデータの送受信を行う際、第一通信用メモリ520を通して送受信の命令を通信用メモリドライバ300へ通知する。The first
 When the first
  第一通信用メモリ520は、第一アプリケーション510から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第一通信用メモリ520は、後述するメモリ制御部110によって、第一仮想メモリ410とアドレスが対応付けされる。また、第一通信用メモリ520は、第二記憶領域の一態様である。  The
  第二仮想マシン600は、第二アプリケーション610及び第二通信用メモリ620を備える。
  第二アプリケーション610は、第二仮想マシン600が第一仮想マシン500とデータの送受信を行う際、第二通信用メモリ620を通して送受信の命令を通信用メモリドライバ300へ通知する。The second
 When the second
  第二通信用メモリ620は、第二アプリケーション610から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第二通信用メモリ620は、後述するメモリ制御部110によって、第二仮想メモリ420が対応付けされる。また、第二通信用メモリ620は、第二記憶領域の一態様である。  The
  なお、システムメモリ200及び通信用メモリドライバ300は、記憶装置の一例であり、仮想通信用メモリ400は、仮想的な記憶装置の一例である。  The
  図2は、本発明の一実施形態に係る制御部100のソフトウェア構成を示す概略ブロック図である。
  制御部100は、プログラムを実行することで、メモリ制御部110、データ判定部120、データ登録部130及び通信制御部140として機能する。FIG. 2 is a schematic block diagram showing a software configuration of the
 The
  メモリ制御部110は、仮想マシンと通信を行うための、仮想の通信用メモリ(以下「仮想通信用メモリ400」という。)を構成する。はじめに、メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する。メモリ制御部110は、仮想通信用メモリ400に、第一仮想メモリ410及び第二仮想メモリ420を生成する。次に、メモリ制御部110は第一仮想メモリ410及び第二仮想メモリ420を、第一通信用メモリ520及び第二通信用メモリ620に対応付ける。  The
  これにより、第一仮想マシン500及び第二仮想マシン600が、第一通信用メモリ520及び第二通信用メモリ620を用いて通信を行う場合、メモリ制御部は、第一通信用メモリ520及び第二通信用メモリ620を、仮想通信用メモリ400にアクセスさせる。  As a result, when the first
  なお、本実施形態では、2台の仮想マシン間での通信を想定しているため、仮想通信用メモリ400内の仮想メモリは2つにしている。3台以上の複数の仮想マシン間での通信を想定する場合、仮想メモリは、仮想マシンの台数に応じて生成される必要がある。2台の仮想マシンでの通信の場合と同様に、メモリ制御部110は、生成した仮想メモリを、仮想マシンの通信用メモリと1対1で対応付ける。  In this embodiment, since communication between two virtual machines is assumed, the number of virtual memories in the
  データ判定部120は、情報処理装置1のOSがWindows(登録商標)の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット(IRP:I/O Request Packet)が発行される。データ判定部120は、プロセスから受け取った入出力要求パケットの情報に基づいて、実データ及び識別データを判定する。入出力要求パケットの情報には、通信用メモリのアドレスに対応した論理ブロックアドレスLBA(Logical Block Addressing)が含まれ、データ判定部120は、送信要求及び受信要求の発行元の識別IDとしてLBAを使用する。そして、データ判定部120は、判定結果に基づいて取得したデータをデータ登録部130へ送る。  When the OS of the
  データ登録部130は、データ判定部120から受け取ったデータをシステムメモリ200に登録する。本実施形態では、例として、データ登録部130は、データ判定部120から受け取った識別ID、通信ID、保存データフラグ及びデータ保存アドレスを通信用メモリ記憶部210に登録する。  The
  データ登録部130は、通信制御部140の処理の結果に基づいて、仮想マシンが制御された状態を表すデータ(以下「状態情報」という。)を通信制御部140から受け取り、通信用メモリ記憶部210に登録する。データ登録部130は、データ判定部120から受け取った実データを通信データ記憶部220に登録する。  The
  通信制御部140は、複数の仮想マシン間の通信を制御する。通信制御部140は、後述する図6のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。具体的には、通信制御部140は、OSが発行する入出力要求パケットなどの識別データに基づいて、仮想マシン間の通信を制御する。  The
  例えば、第一アプリケーション510から、初期化リクエストがあった場合、通信制御部140は、図6のデータテーブルを参照し、指示データが書込用初期設定の「INIT_W」、識別IDが「LBA_AP1_W」、送り元が「AP1」であることを確認する。そして、通信制御部140は、第一アプリケーション510の書き込み用初期設定を行う。  For example, when there is an initialization request from the
  通信制御部140が行う制御に関しては、後述する図8から10のシーケンス図を用いて説明する。また、通信制御部140は、制御処理が行われる工程に基づいて、状態情報をデータ登録部130へ送る。  The control performed by the
  図3は、本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。
  通信用メモリ記憶部210は、書き込みの初期設定を行う指示データ、読み込みの初期設定を行う指示データ及び送信を行う指示データを、予め記憶する。また、通信する宛先や送り元を示す宛先情報も同様に記憶されている。FIG. 3 is a data table showing an example of a command and destination information according to an embodiment of the present invention.
 The communication
図3では、例として、指示データの項目に「INIT_W」、「INIT_R」、「TX」が記憶されており、宛先情報の項目に「AP1」、「AP2」が記憶されている。なお、図3は、本実施形態のデータフォーマットの一例であり、使用する通信方法に合わせて変更してもよい。 In FIG. 3, as an example, "INIT_W", "INIT_R", and "TX" are stored in the instruction data item, and "AP1" and "AP2" are stored in the destination information item. Note that FIG. 3 is an example of the data format of the present embodiment, and may be changed according to the communication method to be used.
  図4は、本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。
  通信用メモリ記憶部210は、仮想マシンの通信用メモリの送信用アドレス及び受信用アドレスを、予め記憶する。FIG. 4 is a data table showing an example of the address of the communication memory according to the embodiment of the present invention.
 The communication
  図4では、例として、第一通信用メモリ520の送信用アドレス項目に「0xXXXXXXX1」、第一通信用メモリ520の受信用アドレス項目に「0xYYYYYYY1」、第二通信用メモリ620の送信用アドレス項目に「0xXXXXXXX2」、第二通信用メモリ620の受信用アドレス項目に「0xYYYYYYY2」が記憶されている。  In FIG. 4, as an example, the transmission address item of the
図5は、本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。論理ブロックアドレスとは、記憶装置においてデータの位置を示すアドレスを指定する方法である。論理ブロックアドレスは、論理ブロックを含むブロックアドレス空間の先頭からのブロックオフセットを表す。 FIG. 5 is a data table showing an example of the logical block address of the communication memory and the communication memory driver of the virtual machine according to the embodiment of the present invention. The logical block address is a method of designating an address indicating the position of data in a storage device. The logical block address represents the block offset from the beginning of the block address space containing the logical block.
図5では、例として、通信用メモリのI/Oに使用する論理ブロックアドレスとして、図4で示した通信用メモリの送信用アドレスと、受信用アドレスと、を用いている。通信用メモリドライバの論理ブロックアドレスは、通信用メモリのI/Oに使用する論理ブロックアドレスと、関連付けて記憶される、通信用メモリドライバの論理ブロックアドレスとして、例として、「LBA_AP1_W」「LBA_AP1_R」「LBA_AP2_W」「LBA_AP2_R」を設定している。 In FIG. 5, as an example, the transmission address and the reception address of the communication memory shown in FIG. 4 are used as the logical block addresses used for the I / O of the communication memory. The logical block address of the communication memory driver is, for example, "LBA_AP1_W" and "LBA_AP1_R" as the logical block address of the communication memory driver that is stored in association with the logical block address used for the I / O of the communication memory. "LBA_AP2_W" and "LBA_AP2_R" are set.
  図6は、本発明の一実施形態に係る通信用メモリ記憶部210で管理する識別データの一例を示すデータテーブルである。本実施形態では、通信用メモリ記憶部210で管理する識別データのデータテーブル(以下「管理テーブル」という。)は、識別ID、通信ID、状態情報、保存データフラグ、データ保存アドレスを有する。  FIG. 6 is a data table showing an example of identification data managed by the communication
  識別IDのデータ項目は、通信用メモリドライバの論理ブロックアドレスが登録される。図6において、論理ブロックアドレスは、図5の通信用メモリの送受信のアドレスと対応付いて登録されている。
  通信IDのデータ項目は、宛先情報が登録される。図6において、宛先情報は、図3の宛先情報と対応付いて登録されている。The logical block address of the communication memory driver is registered in the data item of the identification ID. In FIG. 6, the logical block address is registered in association with the transmission / reception address of the communication memory of FIG.
 Destination information is registered in the data item of the communication ID. In FIG. 6, the destination information is registered in association with the destination information of FIG.
  状態のデータ項目は、「初期設定中」「アイドル」「送信要求中」「送信完了待ち」「受信要求中」「受信完了待ち」の6つの状態情報うち、いずれか1つの状態情報が登録される。状態のデータ項目は、通信制御部140の処理に基づいて、データ登録部130によって登録される。なお、初期設定を行う前は識別IDによる管理情報が無いため、「初期状態」として表す。  As for the status data item, one of the six status information of "initial setting", "idle", "transmission requesting", "transmission completion waiting", "reception requesting", and "reception completion waiting" is registered. Idol. The state data item is registered by the
  保存データフラグのデータ項目は、保存された実データが存在するか否かに基づいて、データ登録部130によって登録される。保存データフラグの種別は、有効、無効とし、保存データが有る場合には有効、保存データが無い場合には無効とする。  The data item of the saved data flag is registered by the
  データ保存アドレスのデータ項目は、初期設定を行う際、通信データを一時的に格納するメモリエリア(バッファ)の先頭アドレスがデータ登録部130によって登録される。
  なお、保存データフラグ及びデータ保存アドレスは、識別IDが送信用の場合、使用しない。As for the data item of the data storage address, the start address of the memory area (buffer) for temporarily storing the communication data is registered by the
 The saved data flag and data saved address are not used when the identification ID is for transmission.
  図7は、本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。
  メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する(ステップS100)。FIG. 7 is a flowchart showing a flow of processing for setting a communication memory of a virtual machine according to an embodiment of the present invention.
 The
  メモリ制御部110は、仮想通信用メモリ400の中に仮想マシンの数と同数の仮想メモリ(第一仮想メモリ410、第二仮想メモリ420、…)を生成する(ステップS101)。
  メモリ制御部110は、各仮想マシンの通信用メモリに、ステップS101で生成した仮想メモリを1対1で対応付ける(ステップS102)。The
 The
  図8は、本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。
  第一通信用メモリからの入出力要求パケットを処理するスレッド1と、第二通信用メモリからの入出力要求パケットを処理するスレッド2は、マルチスレッドで動作する。FIG. 8 is a sequence diagram showing a flow of initial setting processing in communication between virtual machines according to an embodiment of the present invention.
 The
  第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて初期化要求(書込用初期設定の入出力要求パケット生成)を行う(ステップS200)。この初期化要求により、OSが発行する入出力要求パケットの情報(指示データ:INIT_W、送り元:AP1、識別ID:LBA_AP1_W)をデータ判定部120が受け取る(ステップS201)。  The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS202)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP1_W」、状態を「初期設定中」として登録する(ステップS203)。  The
  データ登録部130は、管理テーブルに識別ID「LBA_AP1_W」の通信IDを「AP1」として識別データを登録する(ステップS204)。初期値を記憶した後、データ登録部130は、管理テーブルに識別ID「LBA_AP1_W」の状態を「アイドル」として登録する(ステップS205)。そして、通信制御部140は、ステップS201の入出力要求パケットで要求された処理の完了通知を第一アプリケーション510へ送る(ステップS206)。  The
  第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて初期化要求(読込用初期設定の入出力要求パケット生成)を行う(ステップS207)。この初期化要求により、OSが発行する入出力要求パケットの情報(指示データ:INIT_R、送り元:AP2、識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS208)。  The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS209)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP2_R」、状態を「初期設定中」として登録する(ステップS210)。  The
  データ登録部130は、管理テーブルに識別ID「LBA_AP2_R」の通信IDを「AP2」、保存データフラグを「無効」、データ保存アドレスを「LBA_AP2_R用バッファアドレス」として識別データを登録する(ステップS211)。初期値を記憶した後、データ登録部130は、管理テーブルに識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS212)。そして、通信制御部140は、ステップS208の入出力要求パケットで要求された処理の完了通知を第二アプリケーション610へ送る(ステップS213)。  The
  図9は、本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。
  第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて送信要求(送信リクエストの入出力要求パケット生成)を行う(ステップS300)。この送信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP1_W、指示データ:TX、送り元:AP1、宛先:AP2)をデータ判定部120が受け取る(ステップS301)。FIG. 9 is a sequence diagram showing a processing flow when the transmission processing is performed first in the communication between the virtual machines according to the embodiment of the present invention.
 The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS302)。データ判定部120の判定結果に基づいて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する(ステップS303)。さらに、データ判定部120は、判定結果に基づいて、「LBA_AP2_R」の状態が「アイドル中」であることをデータ登録部130に通知する。データ登録部130は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスに実データを保存し、識別ID「LBA_AP2_R」のデータ保存フラグを「有効」にする(ステップS304)。  The
  データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信完了待ち」として登録する(ステップS305)。  The
  第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS306)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS307)。  The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS308)。具体的には、データ判定部120は、識別ID「LBA_AP2_R」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信要求中」として登録する(ステップS309)。  The
  図9の処理フローでは、実データは保存されているため、通信制御部140は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスから実データを読み出して、読み出した実データをAP2宛の実データとして第二アプリケーション610に転送する(ステップS310)。データ登録部130は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスに保存された実データを破棄し識別ID「LBA_AP2_R」のデータ保存フラグを「無効」にする。  In the processing flow of FIG. 9, since the actual data is stored, the
  通信制御部140が実データを第二アプリケーション610に転送した後、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS311)。そして、通信制御部140は、ステップS307の入出力要求パケットで要求された処理の完了を通知する(ステップS312)。  After the
  また、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「アイドル」として登録する(ステップS313)。そして、通信制御部140は、ステップS301の入出力要求パケットで要求された処理の完了を通知する(ステップS314)。  Further, the
  図10は、本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。
  第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS400)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS401)。FIG. 10 is a sequence diagram showing a flow of processing when reception is performed first in communication between virtual machines according to an embodiment of the present invention.
 The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS402)。具体的には、データ判定部120は、識別ID「LBA_AP2_R」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信要求中」として登録する(ステップS403)。  The
  図10の処理フローでは、実データは保存されていないため、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信完了待ち」として登録する(ステップS404)。  In the processing flow of FIG. 10, since the actual data is not saved, the
  第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて送信要求(送信リクエストの入出力要求パケット生成)を行う(ステップS405)。この送信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP1_W、指示データ:TX、送り元:AP1、宛先:AP2)をデータ判定部120が受け取る(ステップS406)。  The
  データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS407)。データ判定部120の判定結果に基づいて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する(ステップS408)。さらにデータ判定部120は、判定結果に基づいて、「LBA_AP2_R」の状態が「受信完了待ち」であることを通信制御部140に通知する。通信制御部140は、「LBA_AP2_R」の状態が「受信完了待ち」であるため、実データを第二アプリケーション610へ転送する(ステップS409)。  The
  通信制御部140が実データを第二アプリケーション610に転送した後、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS410)。そして、通信制御部140は、ステップS401の入出力要求パケットで要求された処理の完了を通知する(ステップS411)。  After the
  また、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「アイドル」として登録(ステップS412)する。そして、通信制御部140は、ステップS406の入出力要求パケットで要求された処理の完了を通知する(ステップS413)。  Further, the
[変形例]
  本実施形態では、仮想マシンを2台用いて説明したが、同一のホストマシン上で動作する仮想マシンであれば、2台以上のN台の仮想マシン間の通信にも本実施形態は、応用が可能である。[Modification example]
 In this embodiment, two virtual machines have been described, but if the virtual machines operate on the same host machine, the present embodiment can also be applied to communication between two or more N virtual machines. Is possible.
  本実施形態では、仮想通信用メモリ400を、仮想マシン上の通信用メモリとして対応付けることにより、仮想通信用メモリ400を通信用メモリとみなして動作させた。変形例では、通信データフォーマットのデータテーブルに通信用の制御コードを予め登録しておき、通信用制御コードを参照することにより、動作方法を変更することが可能となる。  In the present embodiment, the
  図11は、本発明の一実施形態に係る仮想マシンのプロトコル階層の一例を示す図である。
  NW通信プロトコルを使用した仮想マシン間の通信は、TCP/IPの規格に基づいて、アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層を介して通信を行う。FIG. 11 is a diagram showing an example of a protocol hierarchy of a virtual machine according to an embodiment of the present invention.
 Communication between virtual machines using the NW communication protocol is performed via the application layer, the transport layer, the Internet layer, and the network interface layer based on the TCP / IP standard.
  送信側の仮想マシンは、通信する実データに加えて、各層に応じた制御用のデータを付与する。受信側の仮想マシンは、付与されたデータを、各層に応じて取り除き、実データのみを取得する。図11では、例として、NW通信プロトコルを使用し、第一仮想マシン500から第二仮想マシン600へデータを送信する場合を説明する。  The virtual machine on the transmitting side adds control data according to each layer in addition to the actual data to be communicated. The virtual machine on the receiving side removes the given data according to each layer and acquires only the actual data. FIG. 11 describes a case where data is transmitted from the first
  第一仮想マシン500から送信される実データは、送信処理が行われた場合、アプリケーション層からネットワークインターフェース層までの各層で、制御用のデータとしてTCPセグメント(TCPパケット)が付与される。そして、ホストマシンの仮想マシン管理層を経由し、第二仮想マシン600へ送信される。  When the transmission process is performed, the actual data transmitted from the first
  第二仮想マシン600では、ネットワークインターフェース層からアプリケーション層までの各層に応じたTCPセグメントを取り除く。そして、第二仮想マシンは、実データを受信する。  In the second
上記の通信方法を用いた場合、仮想マシン間の通信に制御用のデータを使用する工程が発生する。本実施形態では、NW通信プロトコルを使用せず、メモリアクセスの手法でデータを通信するため、上記の通信方法で発生するオーバーヘッドが削減できる。 When the above communication method is used, a step of using control data for communication between virtual machines occurs. In the present embodiment, since the data is communicated by the memory access method without using the NW communication protocol, the overhead generated by the above communication method can be reduced.
  図12は、本実施形態による情報処理装置1の最小構成を示す図である。
  本実施形態による情報処理装置1は少なくとも、メモリ制御部110及び通信制御部140を備えればよい。FIG. 12 is a diagram showing a minimum configuration of the
 The
  メモリ制御部110は、仮想マシンと通信を行うための、仮想通信用メモリを構成する。はじめに、メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する。そして、仮想通信用メモリ400の中に2台分の仮想メモリを生成する。つまり、メモリ制御部110は、第一仮想メモリ410及び第二仮想メモリ420を生成する。次に、メモリ制御部110は第一仮想メモリ410及び第二仮想メモリ420を、第一通信用メモリ520及び第二通信用メモリ620に対応付ける。  The
  通信制御部140は、複数の仮想マシン間の通信を制御する。通信制御部140は、図6のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。また、通信制御部140は、処理のフローに基づいて、状態情報を通信用メモリ記憶部210に登録する。  The
  以上より、本実施形態では、メモリ制御部110、通信制御部140を持つことにより、同一ホストマシン上の仮想マシン同士の通信において、NW通信プロトコルを使用しないことにより、通信処理のオーバーヘッドを削減することができる。  From the above, in the present embodiment, by having the
上述の情報処理装置は内部に、コンピュータシステムを有している。そして、上述した同一ホストマシン上で動作する複数の仮想マシン間で通信を行う場合に、オーバーヘッドを削減する過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。 The above-mentioned information processing apparatus has a computer system inside. The process of reducing overhead when communicating between a plurality of virtual machines operating on the same host machine described above is stored in a computer-readable recording medium in the form of a program, and this program is stored in a computer. Reads and executes, so that the above processing is performed. Here, the computer-readable recording medium means a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like. Further, this computer program may be distributed to a computer via a communication line, and the computer receiving the distribution may execute the program.
なお、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、BIOSの例外時にOSの処理を継続させてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。 An exception to the BIOS is obtained by recording a program for realizing the function of the processing unit in FIG. 1 on a computer-readable recording medium, causing the computer system to read the program recorded on the recording medium, and executing the program. Occasionally, OS processing may be continued. The term "computer system" as used herein includes hardware such as an OS and peripheral devices. Further, the "computer system" shall also include a WWW system provided with a homepage providing environment (or display environment). Further, the "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, or a CD-ROM, and a storage device such as a hard disk built in a computer system. Furthermore, a "computer-readable recording medium" is a volatile memory (RAM) inside a computer system that serves as a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, it shall include those that hold the program for a certain period of time.
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。 Further, the program may be transmitted from a computer system in which this program is stored in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the "transmission medium" for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the above program may be for realizing a part of the above-mentioned functions. Further, a so-called difference file (difference program) may be used, which can realize the above-mentioned function in combination with a program already recorded in the computer system.
《付記》
  上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。<< Additional notes >>
 Some or all of the above embodiments may also be described, but not limited to:
(付記1)
  同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
  前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
  前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
  前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
  前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、
  情報処理装置。(Appendix 1)
 In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
 A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
 The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
 The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
 The communication control unit transmits the transmission data to the second virtual machine based on the reception instruction.
 Information processing equipment.
(付記2)
  前記複数の仮想マシンのOSが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
  を備える付記1に記載の情報処理装置。(Appendix 2)
 Information included in the transmission data based on the identification data issued by the OSs of the plurality of virtual machines and instruction data indicating the processing contents of the communication control unit issued by the first virtual machine. The information processing apparatus according to
(付記3)
  前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
  付記2に記載の情報処理装置。(Appendix 3)
 The information processing device according to Appendix 2, wherein the communication control unit transmits the transmission data to the second virtual machine based on the determination result of the data determination unit.
  (付記4)
  前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として送信先を表す送信先情報を前記通信制御部に出力し、
  前記通信制御部は、前記データ判定部の出力結果に基づいて、前記送信先情報が示す前記第二仮想マシンに送信データを送信する
  付記2又は3に記載の情報処理装置。(Appendix 4)
 The data determination unit determines the identification data included in the transmission data, and outputs the destination information indicating the destination as the determination result to the communication control unit.
 The information processing deviceaccording to Appendix 2 or 3, wherein the communication control unit transmits transmission data to thesecond virtual machine indicated by the destination information based on the output result of the data determination unit.
(付記5)
  前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
  前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
  を備える付記2から4のいずれか一項に記載の情報処理装置。(Appendix 5)
 A storage unit that stores actual data indicating the contents of the data and the identification data included in the transmission data, and a storage unit.
 The information processing apparatus according to any one of Supplementary note 2 to 4, further comprising a data registration unit for registering the actual data and the identification data in the storage unit based on the determination result of the data determination unit.
(付記6)
  前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンの通信状態を表す状態情報を前記通信制御部に出力し、
  前記通信制御部は、前記データ判定部の出力結果に基づいて、前記状態情報を前記データ登録部に出力し、
  前記データ登録部は、前記状態情報を前記記憶部に登録する
  付記5に記載の情報処理装置。(Appendix 6)
 The data determination unit determines the identification data included in the transmission data, and outputs status information indicating the communication status of the plurality of virtual machines as a determination result to the communication control unit.
 The communication control unit outputs the state information to the data registration unit based on the output result of the data determination unit.
 The information processing device according to Appendix 5, wherein the data registration unit registers the state information in the storage unit.
(付記7)
  前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンに前記実データが保有されているか否かを表す保存データ情報を前記通信制御部に出力し、
  前記通信制御部は、前記データ判定部の出力結果に基づいて、前記保存データ情報を前記データ登録部に出力し、
  前記データ登録部は、前記保存データ情報を前記記憶部に登録する
  付記5又は6に記載の情報処理装置。(Appendix 7)
 The data determination unit determines the identification data included in the transmission data, and outputs stored data information indicating whether or not the actual data is possessed by the plurality of virtual machines as a determination result to the communication control unit. death,
 The communication control unit outputs the stored data information to the data registration unit based on the output result of the data determination unit.
 The information processing apparatus according to Appendix 5 or 6, wherein the data registration unit registers the stored data information in the storage unit.
(付記8)
  前記データ登録部は、前記保存データ情報に、前記実データのアドレスを対応付けて登録する
  付記7に記載の情報処理装置。(Appendix 8)
 The information processing device according to Appendix 7, wherein the data registration unit registers the stored data information in association with the address of the actual data.
(付記9)
  同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、
  前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、
  前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、
  前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、
  を有する情報処理方法。(Appendix 9)
 In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control step associated with a second storage area for communication secured in each of the first virtual machine that transmits transmission data including the identification data and the second virtual machine that receives the transmission data.
 A step in which the first virtual machine writes the transmission data to the first storage area associated with the second storage area of the first virtual machine.
 A step in which the second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
 A step of transmitting the transmission data to the second virtual machine based on the reception instruction, and
 Information processing method with.
(付記10)
  1又は複数のコンピュータを、
  同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
  前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
  前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
  前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
  前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。(Appendix 10)
 One or more computers,
 In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
 A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
 The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
 The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
 The communication control unit is a program for functioning as an information processing device that transmits the transmission data to the second virtual machine based on the reception instruction.
  1・・・情報処理装置
  100・・・制御部
  110・・・メモリ制御部
  120・・・データ判定部
  130・・・データ登録部
  140・・・通信制御部
  200・・・システムメモリ
  210・・・通信用メモリ記憶部
  220・・・通信データ記憶部
  300・・・通信用メモリドライバ
  400・・・仮想通信用メモリ
  410・・・第一仮想メモリ
  420・・・第二仮想メモリ
  500・・・第一仮想マシン
  510・・・第一アプリケーション
  520・・・第一通信用メモリ
  600・・・第二仮想マシン
  610・・・第二アプリケーション
  620・・・第二通信用メモリ1 ...
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| JP2018052740AJP7056870B2 (en) | 2018-03-20 | 2018-03-20 | Information processing equipment, information processing methods and programs | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| JP2018052740AJP7056870B2 (en) | 2018-03-20 | 2018-03-20 | Information processing equipment, information processing methods and programs | 
| Publication Number | Publication Date | 
|---|---|
| JP2019164661A JP2019164661A (en) | 2019-09-26 | 
| JP7056870B2true JP7056870B2 (en) | 2022-04-19 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| JP2018052740AActiveJP7056870B2 (en) | 2018-03-20 | 2018-03-20 | Information processing equipment, information processing methods and programs | 
| Country | Link | 
|---|---|
| JP (1) | JP7056870B2 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP6885635B1 (en)* | 2020-03-04 | 2021-06-16 | Necプラットフォームズ株式会社 | Information processing device, information processing method and program for information processing device | 
| JP7197212B2 (en)* | 2021-03-15 | 2022-12-27 | Necプラットフォームズ株式会社 | Information processing device, information processing method and program | 
| JP7708459B1 (en)* | 2024-03-06 | 2025-07-15 | Necプラットフォームズ株式会社 | Information processing device, information processing method, and program | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2011141635A (en) | 2010-01-06 | 2011-07-21 | Hitachi Ltd | Communication method of data of virtual server using iner-host communication | 
| JP2017108231A (en) | 2015-12-08 | 2017-06-15 | 富士通株式会社 | Communication control program, communication control method, and information processing device | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JPS6320541A (en)* | 1986-07-14 | 1988-01-28 | Nec Corp | Communication system between virtual computers | 
| JPH01191234A (en)* | 1988-01-26 | 1989-08-01 | Fujitsu Ltd | Communication system between virtual computers | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2011141635A (en) | 2010-01-06 | 2011-07-21 | Hitachi Ltd | Communication method of data of virtual server using iner-host communication | 
| JP2017108231A (en) | 2015-12-08 | 2017-06-15 | 富士通株式会社 | Communication control program, communication control method, and information processing device | 
| Publication number | Publication date | 
|---|---|
| JP2019164661A (en) | 2019-09-26 | 
| Publication | Publication Date | Title | 
|---|---|---|
| US20200278880A1 (en) | Method, apparatus, and system for accessing storage device | |
| EP3798835B1 (en) | Method, device, and system for implementing hardware acceleration processing | |
| JP5068108B2 (en) | Method and system for memory address translation and pinning | |
| US7756943B1 (en) | Efficient data transfer between computers in a virtual NUMA system using RDMA | |
| US7784060B2 (en) | Efficient virtual machine communication via virtual machine queues | |
| US8738890B2 (en) | Coupled symbiotic operating system | |
| US20160350261A1 (en) | Memory Deduplication Support for Remote Direct Memory Access (RDMA) | |
| JP2016513846A (en) | Memory sharing over the network | |
| JP2004326753A (en) | Management of lock in virtual computer environment | |
| JP7056870B2 (en) | Information processing equipment, information processing methods and programs | |
| JP2018022345A (en) | Information processing system | |
| TW201030623A (en) | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller | |
| CN117692416B (en) | Network message processing method, device, computer equipment and storage medium | |
| WO2025118798A1 (en) | Transparent encryption and decryption computing system based on heterogeneous computing, and method, device and medium | |
| US7694100B2 (en) | Managing system memory resident device management queues | |
| TWI412934B (en) | External direct memory access of embedded controller memory | |
| JPWO2017203645A1 (en) | Computer system and data control method | |
| US20060242258A1 (en) | File sharing system, file sharing program, management server and client terminal | |
| CN111201516A (en) | Message passing in data processing system | |
| US8234651B2 (en) | Information processing method and apparatus using the same | |
| JP7197212B2 (en) | Information processing device, information processing method and program | |
| CN115599549A (en) | Multi-process-based exception handling method | |
| JP5471677B2 (en) | Virtual disk control system, method and program | |
| JP4965456B2 (en) | Method, system, and computer program for transferring data between system and storage in shared buffer (data transfer between system and shared buffer storage) | |
| CN114489848B (en) | Task offloading method and computable storage system based on computable storage architecture | 
| Date | Code | Title | Description | 
|---|---|---|---|
| A621 | Written request for application examination | Free format text:JAPANESE INTERMEDIATE CODE: A621 Effective date:20210210 | |
| A977 | Report on retrieval | Free format text:JAPANESE INTERMEDIATE CODE: A971007 Effective date:20211216 | |
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20211221 | |
| A521 | Request for written amendment filed | Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20220221 | |
| 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:20220308 | |
| A61 | First payment of annual fees (during grant procedure) | Free format text:JAPANESE INTERMEDIATE CODE: A61 Effective date:20220329 | |
| R150 | Certificate of patent or registration of utility model | Ref document number:7056870 Country of ref document:JP Free format text:JAPANESE INTERMEDIATE CODE: R150 |