JP6036504B2 - Information processing apparatus, control program, and control method - Google Patents

Information processing apparatus, control program, and control method Download PDF

Info

Publication number
JP6036504B2
JP6036504B2 JP2013083335A JP2013083335A JP6036504B2 JP 6036504 B2 JP6036504 B2 JP 6036504B2 JP 2013083335 A JP2013083335 A JP 2013083335A JP 2013083335 A JP2013083335 A JP 2013083335A JP 6036504 B2 JP6036504 B2 JP 6036504B2
Authority
JP
Japan
Prior art keywords
data
unit
transfer
transferred
amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013083335A
Other languages
Japanese (ja)
Other versions
JP2014206832A (en
Inventor
昌生 山本
昌生 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013083335A priority Critical patent/JP6036504B2/en
Publication of JP2014206832A publication Critical patent/JP2014206832A/en
Application granted granted Critical
Publication of JP6036504B2 publication Critical patent/JP6036504B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は完全仮想化環境においてホストOS(Operating System)及びゲストOS間でデータ転送を行う情報処理装置、制御プログラム、制御方法に関する。   The present invention relates to an information processing apparatus, a control program, and a control method for transferring data between a host OS (Operating System) and a guest OS in a fully virtualized environment.

従来、OS間のメッセージ通信を実現する方法として、共有バッファを用いて行う方法や、メッセージ通信用のAPI(Application Program Interface)を設けて行う方法が知られている(特許文献1、特許文献2)。   Conventionally, as a method for realizing message communication between OSs, a method using a shared buffer and a method using an API (Application Program Interface) for message communication are known (Patent Documents 1 and 2). ).

特開2001−282558号公報JP 2001-282558 A 特開2006−164111号公報JP 2006-164111 A

しかし、従来技術ではホストOSとゲストOS間のメッセージ通信を共有バッファにより実現しているため、ホストOSとゲストOS間で共有バッファを持てない完全仮想化環境では、従来技術は適用できない。また、他の従来技術ではソフトウェア・ライブラリにAPIを設けることが必要であるため、ゲストOS、アプリケーションに何ら変更を加えないことが前提の完全仮想化環境において、従来技術は適用できない。さらにまた、完全仮想化環境ではセキュリティを確保するため、ホストOSからゲストOSへのアクセスは許可されていない。本発明は完全仮想化環境においてホストOSとゲストOS間でデータ転送を行う情報処理装置、制御プログラム、制御方法を提供することにある。   However, since the message communication between the host OS and the guest OS is realized by a shared buffer in the conventional technology, the conventional technology cannot be applied in a fully virtualized environment where the host OS and the guest OS cannot have a shared buffer. In addition, since it is necessary to provide an API in the software library in another conventional technique, the conventional technique cannot be applied in a fully virtualized environment on the premise that no changes are made to the guest OS and applications. Furthermore, in a fully virtualized environment, access from the host OS to the guest OS is not permitted in order to ensure security. An object of the present invention is to provide an information processing apparatus, a control program, and a control method for transferring data between a host OS and a guest OS in a fully virtualized environment.

本発明に係る情報処理装置は、複数の仮想計算機を動作させる情報処理装置において、例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、転送するデータを記憶するデータ記憶部と、戻り値を記憶する戻り値記憶部とを備え、前記仮想計算機は転送するデータを前記データ記憶部に書き込む書込部と、例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、転送済データのデータ量から未転送データのデータ量を算出する算出部と、前記戻り値記憶部より、戻り値を読み出す読出部と、前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第2書込部とを有し、前記収集部は前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、前記記憶部から状況情報を読み出す第2読出部と、読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第3読出部と、該第3読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第3書込部とを有する構成とする。   An information processing apparatus according to the present invention, in an information processing apparatus that operates a plurality of virtual machines, performs exception processing and collects data from the plurality of virtual machines, and between the collection unit and the virtual machines Specific information indicating the data transfer, status information indicating the status of the data transfer and a storage unit for storing the data amount of the data to be transferred, a data storage unit for storing the data to be transferred, and a return value storage for storing the return value A write unit that writes data to be transferred to the data storage unit, an execution unit that executes an instruction that generates an exception, and causes the collection unit to execute an exception process, and a transfer data A calculation unit that calculates a data amount of untransferred data from a data amount; a reading unit that reads a return value from the return value storage unit; and a data amount of untransferred data calculated by the calculation unit The status information indicating the status of data transfer and the data amount of the data to be transferred are determined from the return value read by the reading unit, and the specific information, the determined status information and the data amount of the data to be transferred are stored in the storage unit A second writing unit for writing information, and the collection unit determines whether or not the specific information is stored in the storage unit, and a second reading unit that reads status information from the storage unit When the read status information is being transferred, a third reading unit for reading data from the data storage unit, and a data amount of data read by the third reading unit from the data storage unit are stored in the storage unit. And a third writing unit that writes a predetermined return value in the return value storage unit when the data amount matches the data amount.

本願の一観点によれば、完全仮想化環境においてホストOSとゲストOS間でデータ転送を行うことが可能となる。   According to one aspect of the present application, data transfer can be performed between a host OS and a guest OS in a fully virtualized environment.

実施の形態1に係る計算機システムのハードウェア構成の一例を示すブロック図である。2 is a block diagram illustrating an example of a hardware configuration of a computer system according to Embodiment 1. FIG. サーバ装置が有する機能を示すブロック図である。It is a block diagram which shows the function which a server apparatus has. 汎用レジスタR0のフォーマット例を示す説明図である。It is explanatory drawing which shows the example of a format of general purpose register R0. 転送状況の一例を示す一覧表である。It is a list which shows an example of a transfer condition. 戻り値の一例を示す一覧表である。It is a list which shows an example of a return value. VMM、VMで行うデータ転送の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the data transfer performed by VMM and VM. VMM、VMで行うデータ転送の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the data transfer performed by VMM and VM. VMM、VMで行うデータ転送の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the data transfer performed by VMM and VM. 実施の形態2に係るサーバ装置が有する機能を示すブロック図である。It is a block diagram which shows the function which the server apparatus which concerns on Embodiment 2 has. 実施の形態2に係るVMM、VMで行うデータ転送の処理手順を示すフローチャートである。10 is a flowchart illustrating a processing procedure of data transfer performed by the VMM and VM according to the second embodiment. 実施の形態3に係る汎用レジスタR0のフォーマット例を示す説明図である。10 is an explanatory diagram illustrating a format example of a general purpose register R0 according to Embodiment 3. FIG. 実施の形態4に係る転送状況の一例を示す一覧表である。10 is a table showing an example of a transfer status according to the fourth embodiment. 実施の形態4に係るサーバ装置が有する機能を示すブロック図である。It is a block diagram which shows the function which the server apparatus which concerns on Embodiment 4 has. 実施の形態4に係るVMM、VMで行うデータ転送の処理手順を示すフローチャートである。14 is a flowchart illustrating a processing procedure of data transfer performed by the VMM and the VM according to the fourth embodiment. 実施の形態4に係るVMM、VMで行うデータ転送の処理手順を示すフローチャートである。14 is a flowchart illustrating a processing procedure of data transfer performed by the VMM and the VM according to the fourth embodiment. 実施の形態4に係るVMM、VMで行うデータ転送の処理手順を示すフローチャートである。14 is a flowchart illustrating a processing procedure of data transfer performed by the VMM and the VM according to the fourth embodiment.

実施の形態1
図1は実施の形態1に係る計算機システムのハードウェア構成の一例を示すブロック図である。計算機システムはサーバ装置(情報処理装置)1、端末装置2を含む。サーバ装置1と端末装置2とはネットワークNを介して通信を行う。端末装置2は計算機システムのユーザが使用する端末装置である。ユーザは端末装置2を用いてサーバ装置が提供する各種の情報処理サービスを利用する。
Embodiment 1
FIG. 1 is a block diagram illustrating an example of a hardware configuration of a computer system according to the first embodiment. The computer system includes a server device (information processing device) 1 and a terminal device 2. The server device 1 and the terminal device 2 communicate via the network N. The terminal device 2 is a terminal device used by a user of the computer system. The user uses various information processing services provided by the server device using the terminal device 2.

サーバ装置1はCPU(Central Processing Unit)30、ROM(Read Only Memory)31、RAM(Read Only Memory)32、大容量記憶装置33、通信部34、読み取り部35を含む。CPU30はROM31又は大容量記憶装置33に記憶された制御プログラム31aに従いハードウェア各部を制御する。RAM32は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM32はCPU30によるプログラムの実行時に発生する種々のデータを一時的に記憶する。大容量記憶装置33は例えばハードディスク、SSD(Solid State Drive)である。大容量記憶装置33はVMM(Virtual Machine Monitor)プログラム、ゲストOS、アプリケーションや、各種のデータを格納している。各プログラムはCPU30が読み出して実行する制御プログラム31aであって、CPU30によりRAM32に読み出されて実行される。なお、各プログラムはROM31に格納されていても良い。通信部34はネットワークNを介して端末装置2と通信を行う。読み取り部35はCD(Compact Disk)−ROM、DVD(Digital Versatile Disc)−ROM等の記憶媒体41を読み取る。制御プログラム31aは記憶媒体41より読み取り部35が読み取り、大容量記憶装置33に記憶することとしても良い。また、ネットワークNを介して他のコンピュータから制御プログラム31aをダウンロードしても良い。さらにまた、半導体メモリ51から制御プログラム31aを読み込むこととしても良い。   The server device 1 includes a central processing unit (CPU) 30, a read only memory (ROM) 31, a read only memory (RAM) 32, a mass storage device 33, a communication unit 34, and a reading unit 35. The CPU 30 controls each part of the hardware according to the control program 31 a stored in the ROM 31 or the large capacity storage device 33. The RAM 32 is, for example, SRAM (Static RAM), DRAM (Dynamic RAM), flash memory, or the like. The RAM 32 temporarily stores various data generated when the CPU 30 executes the program. The mass storage device 33 is, for example, a hard disk or an SSD (Solid State Drive). The mass storage device 33 stores a VMM (Virtual Machine Monitor) program, a guest OS, applications, and various data. Each program is a control program 31a read and executed by the CPU 30, and is read by the CPU 30 into the RAM 32 and executed. Each program may be stored in the ROM 31. The communication unit 34 communicates with the terminal device 2 via the network N. The reading unit 35 reads a storage medium 41 such as a CD (Compact Disk) -ROM and a DVD (Digital Versatile Disc) -ROM. The control program 31 a may be read by the reading unit 35 from the storage medium 41 and stored in the mass storage device 33. Further, the control program 31a may be downloaded from another computer via the network N. Furthermore, the control program 31a may be read from the semiconductor memory 51.

端末装置2はCPU20、ROM21、RAM22、通信部23、読み取り部24を含む。CPU20はROM21に記憶された制御プログラム21aに従いハードウェア各部を制御する。RAM22は例えばSRAM、DRAM、フラッシュメモリ等である。RAM22はCPU20によるプログラムの実行時に発生する種々のデータを一時的に記憶する。通信部23はネットワークNを介してサーバ装置1と通信を行う。読み取り部24はCD−ROM、DVD−ROM等の記憶媒体42を読み取る。制御プログラム21aは記憶媒体42より読み取り部24が読み取り、RAM22に記憶して実行することとしても良い。また、ネットワークNを介して他のコンピュータから制御プログラム21aをダウンロードしても良い。さらにまた、半導体メモリ52から制御プログラム21aを読み込むこととしても良い。   The terminal device 2 includes a CPU 20, a ROM 21, a RAM 22, a communication unit 23, and a reading unit 24. The CPU 20 controls each part of the hardware according to the control program 21 a stored in the ROM 21. The RAM 22 is, for example, SRAM, DRAM, flash memory or the like. The RAM 22 temporarily stores various data generated when the CPU 20 executes the program. The communication unit 23 communicates with the server device 1 via the network N. The reading unit 24 reads a storage medium 42 such as a CD-ROM or a DVD-ROM. The control program 21a may be read by the reading unit 24 from the storage medium 42, stored in the RAM 22, and executed. Further, the control program 21a may be downloaded from another computer via the network N. Furthermore, the control program 21a may be read from the semiconductor memory 52.

VMMプログラムは、サーバ装置1でVM(Virtual Machine)の動作を可能にする仮想化環境を提供するためのソフトウェアプログラムである。CPU30がVMMプログラムを実行することにより、VMMとしての動作が開始する。CPU30がVMMプログラムをVMMとして動作させることにより、サーバ装置1には、複数のVMが独立して動作が可能な仮想化環境が提供される。   The VMM program is a software program for providing a virtual environment that enables the server device 1 to operate a VM (Virtual Machine). When the CPU 30 executes the VMM program, the operation as the VMM starts. When the CPU 30 operates the VMM program as a VMM, the server apparatus 1 is provided with a virtual environment in which a plurality of VMs can operate independently.

ゲストOSプログラムは、VM上でOSを実行させるソフトウェアプログラムである。ゲストOSプログラムは、VMが起動した後、CPU30がゲストOSプログラムを実行することによりOS(以下、「ゲストOS」と記す。)としての動作を開始する。   The guest OS program is a software program that executes the OS on the VM. The guest OS program starts an operation as an OS (hereinafter referred to as “guest OS”) by the CPU 30 executing the guest OS program after the VM is activated.

アプリケーションプログラムは、ゲストOSのそれぞれによって実行されるソフトウェアプログラムである。   The application program is a software program executed by each guest OS.

本実施の形態に係るサーバ装置1においては、VMMは完全仮想化環境を提供する。完全仮想化環境とはハードウェアを完全にエミュレートする仮想化環境である。ハードウェアを完全にエミュレートしているため、VMで動作するゲストOSは仮想化環境のための改変が不要という利点がある。しかしながら、一部の命令は直接物理CPU上では実行できないため、VMMの介在が必要となる。この一部の命令のことをセンシティブ命令という。センシティブ命令はVM上のプログラムが実行すると実計算機の動作に影響を与えてしまう命令や、VM上で実行すると、実計算機上で実行した時と結果が異なるため、不都合が生じる命令である。そこで、完全仮想化環境においては、VMによるセンシティブ命令の実行をCPUが検知し、VMMに処理を渡す仕組みとなっている。処理を渡されたVMMはセンシティブ命令をCPUに実行させ、VMに処理を戻す。本実施の形態ではセンシティブ命令の検知による例外の発生と、それに対するVMMでの例外処理の仕組みを利用してVM(ゲストOS)からVMM(ホストOS)へのデータ転送を実現する。   In the server device 1 according to the present embodiment, the VMM provides a fully virtualized environment. A fully virtualized environment is a virtualized environment that completely emulates hardware. Since the hardware is completely emulated, there is an advantage that the guest OS operating in the VM does not need to be modified for the virtual environment. However, since some instructions cannot be directly executed on the physical CPU, it is necessary to intervene VMM. Some of these instructions are called sensitive instructions. A sensitive instruction is an instruction that affects the operation of a real computer when a program on the VM is executed, or an instruction that causes inconvenience when executed on a VM because the result differs from that executed on the real computer. Therefore, in a fully virtualized environment, the CPU detects the execution of a sensitive instruction by the VM and passes the processing to the VMM. The VMM to which the process is passed causes the CPU to execute a sensitive instruction and returns the process to the VM. In the present embodiment, data is transferred from the VM (guest OS) to the VMM (host OS) using an exception generated by detection of a sensitive instruction and the exception handling mechanism in the VMM corresponding to the occurrence of the exception.

図2はサーバ装置1が有する機能を示すブロック図である。CPU30が各プログラムを実行することにより、サーバ装置1ではVMM10(収集部)が動作し、VMM10上ではVM11(仮想計算機)が動作する。VMM10は起動したVM11にサーバ装置1のリソース(CPU30、ROM31、RAM32等)を割り当てる。リソースが割り当てられた後、VM11上ではゲストOSの動作が開始する。なお、図2においてVM11は2つしか記載していないが、3つ以上起動しても良いし、1つのみ起動するのでも良い。   FIG. 2 is a block diagram illustrating functions of the server device 1. When the CPU 30 executes each program, the VMM 10 (collection unit) operates in the server device 1, and the VM 11 (virtual computer) operates on the VMM 10. The VMM 10 allocates resources (CPU 30, ROM 31, RAM 32, etc.) of the server device 1 to the activated VM 11. After the resource is allocated, the operation of the guest OS starts on the VM 11. Although only two VMs 11 are illustrated in FIG. 2, three or more VMs may be activated, or only one may be activated.

VM11ではゲストOS120上で転送プログラム110が動作し、VMM10とのデータ転送を実現する。VM11は設定記憶部130(記憶部)、データ記憶部140、戻り値記憶部150を含む。これらの記憶部はVMM10から割り当てられたリソース(CPU30のレジスタ)により実現される。転送プログラム110は記憶部111(書込部)、設定部112(決定部、第2書込部)、実行部113、算出部114、判定部115(読出部)、生成部116の各機能部を有している。   In the VM 11, the transfer program 110 operates on the guest OS 120 to realize data transfer with the VMM 10. The VM 11 includes a setting storage unit 130 (storage unit), a data storage unit 140, and a return value storage unit 150. These storage units are realized by resources (CPU 30 registers) allocated from the VMM 10. The transfer program 110 includes functional units of a storage unit 111 (writing unit), a setting unit 112 (determination unit, second writing unit), an execution unit 113, a calculation unit 114, a determination unit 115 (reading unit), and a generation unit 116. have.

記憶部111はデータ転送を行うデータをデータ記憶部140に書き込む。設定部112はデータ転送を行う際の設定情報(データ転送を示す特定値、転送状況、転送データ量)を設定記憶部130に書き込む。実行部113はVMM10に処理を渡すためにセンシティブ命令を実行する。算出部114はデータ転送実行時に転送済データのデータ量、未転送データのデータ量の算出を行う。判定部115は戻り値記憶部150に記憶されたVMM10から戻り値を読み出し、データ転送が正常に行われたか否かを判定する。生成部116は算出部114が算出した未転送データのデータ量、判定部115の判定結果から、転送状況(転送中、終了など)を生成する。   The storage unit 111 writes data to be transferred to the data storage unit 140. The setting unit 112 writes setting information (specific value indicating data transfer, transfer status, transfer data amount) in the setting storage unit 130 when performing data transfer. The execution unit 113 executes a sensitive instruction to pass processing to the VMM 10. The calculation unit 114 calculates the amount of transferred data and the amount of untransferred data when executing data transfer. The determination unit 115 reads the return value from the VMM 10 stored in the return value storage unit 150 and determines whether or not the data transfer has been performed normally. The generation unit 116 generates a transfer status (during transfer, completion, etc.) from the amount of untransferred data calculated by the calculation unit 114 and the determination result of the determination unit 115.

VMM10はVM11を管理する機能に加えて、VM11とデータ転送を実現するための各種の機能部、特定値判定部10a(判定部)、状況判定部10b(第2読出部)、取得部10c(第3読出部)、結果設定部10d(第3書込部)、終了部10eを備える。特定値判定部10aは設定記憶部130より特定値を読み出し、データ転送のためにVM11より処理が渡されたのか否かを判定する。状況判定部10bは設定記憶部130に記憶された転送状況を読み出し、データ転送の状況を判定する。取得部10cはデータ記憶部140に記憶された転送データを取得する。結果設定部10dはVMM10でのデータ転送処理の結果を示す戻り値を戻り値記憶部150に書き込む。終了部10eは例外処理を終了する命令を実行し、処理をVM11に戻す。   In addition to the function of managing the VM 11, the VMM 10 has various functional units for realizing data transfer with the VM 11, a specific value determination unit 10 a (determination unit), a situation determination unit 10 b (second reading unit), and an acquisition unit 10 c ( A third reading unit), a result setting unit 10d (third writing unit), and an end unit 10e. The specific value determination unit 10a reads the specific value from the setting storage unit 130, and determines whether or not processing has been passed from the VM 11 for data transfer. The status determination unit 10b reads the transfer status stored in the setting storage unit 130 and determines the status of data transfer. The acquisition unit 10c acquires the transfer data stored in the data storage unit 140. The result setting unit 10 d writes a return value indicating the result of the data transfer process in the VMM 10 in the return value storage unit 150. The end unit 10e executes an instruction to end the exception process, and returns the process to the VM 11.

次に転送プログラム110を用いて行うVMM10、VM11間でのデータ転送処理について説明する。以下に述べる例では、VM11よりVMM10へデータを送信する場合について述べる。   Next, data transfer processing between the VMM 10 and the VM 11 performed using the transfer program 110 will be described. In the example described below, a case where data is transmitted from the VM 11 to the VMM 10 will be described.

また、設定記憶部130、データ記憶部140、戻り値記憶部150はCPU30の汎用レジスタを用いて実現するものとする。例外発生によりVM11からVMM10に処理が移る場合、CPU30の汎用レジスタの状態は保たれている。あるいは、汎用レジスタの状態は退避領域に退避される。退避された値はVMM10からアクセス可能である。以下の説明において、汎用レジスタはR0からR15まで16個あるものとし、R0を設定記憶部130(記憶部)として、R1からR14までの14個をデータ記憶部140、R15を戻り値記憶部150として利用するものとする。   The setting storage unit 130, the data storage unit 140, and the return value storage unit 150 are realized by using general-purpose registers of the CPU 30. When processing shifts from the VM 11 to the VMM 10 due to the occurrence of an exception, the state of the general-purpose register of the CPU 30 is maintained. Alternatively, the state of the general-purpose register is saved in the save area. The saved value can be accessed from the VMM 10. In the following description, it is assumed that there are 16 general purpose registers from R0 to R15, R0 is the setting storage unit 130 (storage unit), 14 from R1 to R14 are the data storage unit 140, and R15 is the return value storage unit 150. It shall be used as

図3は汎用レジスタR0のフォーマット例を示す説明図である。図4は転送状況の一例を示す一覧表である。図5は戻り値の一例を示す一覧表である。図3に示すように設定記憶部130であるR0は3つの領域R00、R01、R02に分けて用いる。特定値領域R00はデータ転送を示す値である特定値(マジックナンバー、特定情報)を記憶する。CPU30で実行される命令で設定されない値とし、予め定めておく。転送状況領域R01はデータ転送の状況(index、状況情報)を記憶する。使用レジスタ数領域R02は転送に用いるレジスタの個数(転送するデータのデータ量)を記憶する。汎用レジスタR1からR14までを用いることとしたので、レジスタ個数は0から14までのいずれかの値が記憶される。図4に示すようにデータ転送の状況は転送中を1、完了を0で表すものとする。図5に示すように正常を示す戻り値は1、異常を示す戻り値0とする。   FIG. 3 is an explanatory diagram showing a format example of the general-purpose register R0. FIG. 4 is a list showing an example of the transfer status. FIG. 5 is a list showing examples of return values. As shown in FIG. 3, R0, which is the setting storage unit 130, is divided into three regions R00, R01, and R02. The specific value area R00 stores a specific value (magic number, specific information) that is a value indicating data transfer. A value that is not set by an instruction executed by the CPU 30 is set in advance. The transfer status area R01 stores data transfer status (index, status information). The used register number area R02 stores the number of registers used for transfer (data amount of data to be transferred). Since the general-purpose registers R1 to R14 are used, any value from 0 to 14 is stored as the number of registers. As shown in FIG. 4, the data transfer status is represented as 1 during transfer and 0 as completion. As shown in FIG. 5, the return value indicating normality is 1, and the return value 0 indicating abnormality is 0.

図6から図8はVMM10、VM11で行うデータ転送の処理手順を示すフローチャートである。VM11は転送するデータの準備を行う(ステップS1)。準備の処理は転送プログラム110が行なっても良いし、転送プログラム110を呼び出す他のアプリケーションプログラムが行なっても良い。VM11(記憶部111)は転送するデータを汎用レジスタR1からRx(x=2〜14)に設定する(ステップS2)。VM11(設定部112)は汎用レジスタR0の特定値領域R00にデータ転送を示す特定値(マジックナンバーともいう)、汎用レジスタR0の転送状況領域R01に転送中を示す値1、使用レジスタ数領域R02に使用するデータ記憶の用いる汎用レジスタの個数(x)を設定する(ステップS3)。VM11(実行部113)はセンシティブ命令を発行し、例外を発生させる(ステップS4)。なお、実行するセンシティブ命令は予め定めておくものとする。ここではhalt命令であるとする。処理がVM11からVMM10に移る。   FIG. 6 to FIG. 8 are flowcharts showing a processing procedure of data transfer performed by the VMM 10 and the VM 11. The VM 11 prepares data to be transferred (step S1). The preparation process may be performed by the transfer program 110 or may be performed by another application program that calls the transfer program 110. The VM 11 (storage unit 111) sets data to be transferred to the general-purpose registers R1 to Rx (x = 2 to 14) (step S2). The VM 11 (setting unit 112) has a specific value (also referred to as a magic number) indicating data transfer in the specific value area R00 of the general-purpose register R0, a value 1 indicating transfer in the transfer status area R01 of the general-purpose register R0, and a used register number area R02. The number (x) of general-purpose registers used for data storage used in is set (step S3). The VM 11 (execution unit 113) issues a sensitive instruction and generates an exception (step S4). Note that the sensitive instruction to be executed is determined in advance. Here, it is assumed that the instruction is a halt instruction. Processing moves from VM 11 to VMM 10.

VMM10(特定値判定部10a)は例外要因が予め定めた要因(halt命令実行)によるものかを調べる(ステップS5)。例外要因が予め定めたものである場合(ステップS5でYES)、VMM10(特定値判定部10a)は汎用レジスタR0の特定値領域R00に設定されている値を読み出し、その値が特定値であるか否かを判定する(ステップS6)。特定値が設定されている場合(ステップS6でYES)、VMM10(状況判定部10b)は汎用レジスタR0の転送状況領域R01に設定されている値を読み出し、その値が転送中を示す値であるか否かを判定する(ステップS7)。転送中を示す値である場合(ステップS7でYES)、VMM10(取得部10c)は汎用レジスタR0の使用レジスタ領域R02に設定されている値(使用レジスタ数)を読み出し、その値に従って汎用レジスタR1からR14に設定されているデータを取得する(ステップS8)。例えば、使用レジスタ数が14であれば、VMM10(取得部10c)は汎用レジスタR1からR14までの14個のレジスタから値を取得する。使用レジスタ数が5であれば、VMM10(取得部10c)は汎用レジスタR1からR5までの5個のレジスタから値を取得する。VMM10(結果設定部10d)は戻り値記憶部150としての汎用レジスタR15に正常を示す戻り値を設定する(ステップS9)。VMM10(終了部10e)は例外処理終了命令を実行する(ステップS10)。処理がVMM10からVM11に戻る。   The VMM 10 (specific value determination unit 10a) checks whether the exception factor is due to a predetermined factor (halt instruction execution) (step S5). When the exception factor is predetermined (YES in step S5), the VMM 10 (specific value determination unit 10a) reads the value set in the specific value region R00 of the general-purpose register R0, and the value is the specific value. Whether or not (step S6). When a specific value is set (YES in step S6), the VMM 10 (situation determination unit 10b) reads the value set in the transfer status area R01 of the general-purpose register R0, and that value is a value indicating that transfer is in progress. Whether or not (step S7). When the value indicates that the data is being transferred (YES in step S7), the VMM 10 (acquiring unit 10c) reads the value (number of used registers) set in the used register area R02 of the general purpose register R0, and the general purpose register R1 according to the value. To R14 is acquired (step S8). For example, if the number of registers used is 14, the VMM 10 (acquisition unit 10c) acquires values from 14 registers from the general-purpose registers R1 to R14. If the number of registers used is 5, the VMM 10 (acquisition unit 10c) acquires values from five registers from the general-purpose registers R1 to R5. The VMM 10 (result setting unit 10d) sets a return value indicating normality in the general-purpose register R15 serving as the return value storage unit 150 (step S9). The VMM 10 (end unit 10e) executes an exception process end instruction (step S10). The process returns from the VMM 10 to the VM 11.

例外要因が予め定めた要因ではない場合(ステップS5でNO)、VMM10は要因別に定められた例外処理を実行する(ステップS11)。例外要因が予め定めたものであるが特定値領域R00に格納された値が特定値ではない場合(ステップS6でNO)、データ転送処理による例外ではないので、VMM10は要因別に定められた例外処理を行う(ステップS11)。転送状況領域R01に設定されている値が転送中を示す値ではない場合(ステップS7でNO)、VMM10(状況判定部10b)は送信完了を示す値であるか否かを判定する(ステップS12)。送信完了を示す値である場合(ステップS12でYES)、VMM10(状況判定部10b)は処理をステップS9に移す。送信完了を示す値ではない場合(ステップS12でNO)、VMM10(結果設定部10d)は汎用レジスタR15にエラーを示す戻り値を設定する(ステップS13)。VMM10(結果設定部10d)は処理をステップS10に移す。処理がVMM10からVM11に戻る。   If the exception factor is not a predetermined factor (NO in step S5), the VMM 10 executes an exception process determined for each factor (step S11). If the exception factor is predetermined but the value stored in the specific value area R00 is not a specific value (NO in step S6), the exception is not an exception caused by the data transfer process. Is performed (step S11). If the value set in the transfer status area R01 is not a value indicating that transfer is in progress (NO in step S7), the VMM 10 (status determination unit 10b) determines whether or not the value indicates completion of transmission (step S12). ). If the value indicates the completion of transmission (YES in step S12), the VMM 10 (situation determination unit 10b) moves the process to step S9. If the value is not a value indicating completion of transmission (NO in step S12), the VMM 10 (result setting unit 10d) sets a return value indicating an error in the general-purpose register R15 (step S13). The VMM 10 (result setting unit 10d) moves the process to step S10. The process returns from the VMM 10 to the VM 11.

VM11(判定部115)は戻り値記憶部150としての汎用レジスタR15に設定された値を読み取り、その値(戻り値)が正常を示す値であるか否か判定する(ステップS14)。戻り値が正常である場合(ステップS14でYES)、VM11(算出部114)は未転送データがあるか否か判定する(ステップS16)。この判定は例えば、次のように行う。転送対象となっているデータの全データ量を算出しておく。データ転送を行う度に、転送済データのデータ量を加算しておき、加算した転送済データのデータ量が全データ量と等しいか、それを超える値になったかを判定する。等しいかそれを超える値になれば未転送データはない。または、汎用レジスタを用いてデータ転送をしていることから、汎用レジスタ単位で管理しても良い。転送開始時に転送するデータは汎用レジスタ何個分のデータ量かを算出しておく。データ転送をするたびに転送データを設定したレジスタの個数を減算していき、その値が0になれば未転送データはないこととなる。未転送データがある場合(ステップS16でYES)、VM11(算出部114)は処理をステップS2に戻す。ステップS2以降の処理は上述のとおりである。   The VM 11 (determination unit 115) reads the value set in the general-purpose register R15 as the return value storage unit 150 and determines whether or not the value (return value) is a value indicating normality (step S14). If the return value is normal (YES in step S14), the VM 11 (calculation unit 114) determines whether there is untransferred data (step S16). This determination is performed as follows, for example. Calculate the total amount of data to be transferred. Each time data transfer is performed, the data amount of the transferred data is added, and it is determined whether the added data amount of the transferred data is equal to or exceeds the total data amount. If the value is equal to or exceeded, there is no untransferred data. Alternatively, since data transfer is performed using a general-purpose register, management may be performed in units of general-purpose registers. It is calculated how many general-purpose registers the data to be transferred at the start of the transfer. Each time data transfer is performed, the number of registers in which transfer data is set is subtracted, and if the value becomes 0, there is no untransferred data. When there is untransferred data (YES in step S16), the VM 11 (calculation unit 114) returns the process to step S2. The processing after step S2 is as described above.

VMM10からの戻り値が正常ではない場合(ステップS14でNO)、VM11(判定部115)は転送が完了しているか否かを判定する(ステップS15)。転送が完了したか否かの判定は、すでに転送完了をVMM10に送信したか否かで判定する。例えば、フラグ領域を設けておき、フラグが立っていれば転送完了と判定し、フラグがクリアされていれば転送完了でないと判定する。転送が完了していない場合(ステップS15でNO)、VM11(判定部115)は処理をステップS2に戻し、データの再送を行う。転送が完了している場合(ステップS15でYES)、VM11(判定部115)は処理をステップS18へ移す。VM11(設定部112)は汎用レジスタR0の特定値領域R00にデータ転送を示す特定値、汎用レジスタR0の転送状況領域R01に転送完了を示す値0を設定する(ステップS18)。VM11(設定部112)は処理をステップS4へ移す。ステップS4以降の処理は上述したとおりである。   When the return value from the VMM 10 is not normal (NO in step S14), the VM 11 (determination unit 115) determines whether or not the transfer is complete (step S15). Whether or not the transfer has been completed is determined by whether or not the transfer completion has already been transmitted to the VMM 10. For example, a flag area is provided, and if the flag is set, it is determined that the transfer is complete, and if the flag is cleared, it is determined that the transfer is not complete. If the transfer has not been completed (NO in step S15), the VM 11 (determination unit 115) returns the process to step S2 to retransmit the data. If the transfer has been completed (YES in step S15), the VM 11 (determination unit 115) moves the process to step S18. The VM 11 (setting unit 112) sets a specific value indicating data transfer in the specific value area R00 of the general-purpose register R0 and a value 0 indicating transfer completion in the transfer status area R01 of the general-purpose register R0 (step S18). The VM 11 (setting unit 112) moves the process to step S4. The processing after step S4 is as described above.

未転送データがない場合(ステップS16でNO)、VM11(判定部115)は転送完了をVMM10に送信済みか否かを判定する(ステップS17)。この判定は例えば、上述したようにフラグを用いて行う。転送完了をVMM10に送信済みである場合(ステップS17でYES)、VM11(判定部115)はデータ転送処理を終了する。転送完了を送信済みでない場合(ステップS17でNO)、VM11(判定部115)は処理をステップS18へ移す。ステップS18以降の処理は上述したとおりである。   If there is no untransferred data (NO in step S16), the VM 11 (determination unit 115) determines whether transfer completion has been transmitted to the VMM 10 (step S17). This determination is performed using a flag as described above, for example. When the transfer completion has been transmitted to the VMM 10 (YES in step S17), the VM 11 (determination unit 115) ends the data transfer process. If the transfer completion has not been transmitted (NO in step S17), the VM 11 (determination unit 115) moves the process to step S18. The processing after step S18 is as described above.

本実施の形態においては、例外処理を用いてVM11からVMM10へのデータ転送を行うこととし、VM11に転送プログラム110をインストールする。データ転送のためにVM11はVMM10に管理者権限を開放する必要がないので、VM11のセキュリティを保ちつつ、データ転送が可能となる。
また、VM11に転送プログラム110をインストールという軽微な変更で済むので、サーバ装置1が運用開始した後でも、データ転送機能を実現することが可能となる。
In this embodiment, data transfer from the VM 11 to the VMM 10 is performed using exception processing, and the transfer program 110 is installed in the VM 11. Since the VM 11 does not need to release administrator authority to the VMM 10 for data transfer, data transfer is possible while maintaining the VM 11 security.
Further, since a slight change of installing the transfer program 110 in the VM 11 is sufficient, the data transfer function can be realized even after the server apparatus 1 starts operation.

実施の形態1において、VM11からVMM10へ転送するデータの例としては、性能情報、リソース情報、環境情報などが考えられる。それらの情報を分析することにより、運用管理精度、キャパシティ管理精度を上げることが可能となる。また、動作ログを収集しておくことにより、障害発生時の調査が容易となる。   In the first embodiment, performance information, resource information, environment information, and the like can be considered as examples of data transferred from the VM 11 to the VMM 10. By analyzing such information, it becomes possible to improve operational management accuracy and capacity management accuracy. Also, by collecting the operation log, it becomes easy to investigate when a failure occurs.

なお、転送プログラム110が起動するタイミングは転送するデータの性質に応じて定めれば良い。定期的に収集が必要なデータについては、タイマにより所定時間毎(週に一回、日に一回、一時間に一回)に転送プログラム110を起動する。イベントが発生した場合に収集が必要となるデータは、イベント監視プログラムがイベントを検知した場合に、転送プログラム110を起動するようにすれば良い。   The timing at which the transfer program 110 is activated may be determined according to the nature of the data to be transferred. For data that needs to be collected regularly, the transfer program 110 is activated every predetermined time (once a week, once a day, once an hour) by a timer. For data that needs to be collected when an event occurs, the transfer program 110 may be activated when the event monitoring program detects the event.

実施の形態2
実施の形態1ではセンシティブ命令の実行による例外処理についてデータ転送を実現する。そのため、データ転送処理を行なっている場合に、関係のない他の処理により同じ要因の例外が発生すると不都合である。本実施の形態ではその点を考慮する。なお、ハードウェア構成は実施の形態1と同様であるので、説明を省略する。
Embodiment 2
In the first embodiment, data transfer is realized for exception handling by execution of a sensitive instruction. Therefore, when data transfer processing is performed, it is inconvenient if an exception with the same factor occurs due to other unrelated processing. This point is considered in the present embodiment. Since the hardware configuration is the same as that of the first embodiment, description thereof is omitted.

図9は実施の形態2に係るサーバ装置1が有する機能を示すブロック図である。VMM10の備える機能部に例外管理部10f(許可部)が含まれている。例外管理部10fは例外処理をマスクするか否かを管理する機能を担う。図9に示すその他の構成は実施の形態1と同様であるから、説明を省略する。   FIG. 9 is a block diagram illustrating functions of the server device 1 according to the second embodiment. The function unit included in the VMM 10 includes an exception management unit 10f (permission unit). The exception management unit 10f has a function of managing whether to mask exception processing. The other configuration shown in FIG. 9 is the same as that of the first embodiment, and a description thereof will be omitted.

図10は実施の形態2に係るVMM10、VM11で行うデータ転送の処理手順を示すフローチャートである。本実施の形態におけるデータ転送の処理は、一部を除き図6、図7又は図8で示した処理と同様であるので、図10は異なるVMM10での処理を記載し、他の部分は記載を省略している。図10において、図6、図7又は図8と同様な処理については同じ符号を付している。   FIG. 10 is a flowchart showing a data transfer processing procedure performed by the VMM 10 and the VM 11 according to the second embodiment. The data transfer process in this embodiment is the same as the process shown in FIG. 6, 7 or 8 except for a part, so FIG. 10 describes the process in a different VMM 10, and other parts are described. Is omitted. 10, processes similar to those in FIG. 6, FIG. 7, or FIG.

データ転送処理において、VM11はセンシティブ命令を発行し(ステップS4)、例外を発生させる。例外の発生により、処理がVMM10に移る。VMM10は、例外の発正要因がデータ転送のために予め定めた要因であるか否かを判定する(ステップS5)。発生要因が予め定めたものであり(ステップS5でYES)、汎用レジスタR0の特定値領域R00に特定値が設定されていた場合(ステップS6でYES)、同一の要因による例外(ここではhalt命令実行による例外)が多重に発生しないように、VMM10(例外管理部10f)は例外をマスクする(ステップS21)。例外をマスクするには例えば次のように行う。例外の要因毎にマスクが設定可能となっているマスクレジスタの所定のビット(ここではhalt命令に対応するビット)を1にすることにより、マスクが設定される。例外をマスクした以降の処理、ステップS7、S8、S9、S12、S13については実施の形態1と同様であるから、説明を省略する。ステップS11についても同様であるので、説明を省略する。ステップS9又はステップS13で戻り値を設定した後に、VMM10(例外管理部10f)は例外のマスクを解除する(ステップS22)。上述の例ではhalt命令に対応するマスクビットを0に設定する。VMM10は例外処理を終了する(ステップS10)。処理がVM11へ戻る。その後の処理ステップS14以降は、実施の形態1と同様であるから、説明を省略する。   In the data transfer process, the VM 11 issues a sensitive instruction (step S4) and generates an exception. When an exception occurs, the process moves to the VMM 10. The VMM 10 determines whether or not the exception correction factor is a factor determined in advance for data transfer (step S5). If the generation factor is predetermined (YES in step S5) and a specific value is set in the specific value region R00 of the general register R0 (YES in step S6), an exception (here, a halt instruction) due to the same factor The VMM 10 (exception management unit 10f) masks the exception so that multiple exceptions due to execution do not occur (step S21). To mask exceptions, for example: A mask is set by setting a predetermined bit (a bit corresponding to a halt instruction in this case) of a mask register in which a mask can be set for each exception factor to 1. Since the processes after masking the exception, steps S7, S8, S9, S12, and S13 are the same as those in the first embodiment, the description thereof is omitted. Since the same applies to step S11, the description thereof is omitted. After setting the return value in step S9 or step S13, the VMM 10 (exception management unit 10f) cancels the exception mask (step S22). In the above example, the mask bit corresponding to the halt instruction is set to 0. The VMM 10 ends the exception process (step S10). The process returns to the VM 11. Subsequent processing step S14 and subsequent steps are the same as those in the first embodiment, and thus description thereof is omitted.

実施の形態3
上述の実施の形態1及び2においては、VMM10とデータ転送を行うVM11は単一であることを前提としている。本実施の形態においては、複数のVM11とVMM10とがデータ転送処理を行う場合について述べる。サーバ装置1のハードウェア構成、サーバ装置1が有する機能は実施の形態1及び2と同様であるので、説明を省略する。
Embodiment 3
In the first and second embodiments described above, it is assumed that the VMM 10 and the VM 11 that performs data transfer are single. In the present embodiment, a case will be described in which a plurality of VMs 11 and VMM 10 perform data transfer processing. Since the hardware configuration of the server apparatus 1 and the functions of the server apparatus 1 are the same as those in the first and second embodiments, the description thereof is omitted.

図11は実施の形態3に係る汎用レジスタR0のフォーマット例を示す説明図である。汎用レジスタR0を4つの領域に分けている。特定値領域R00、転送状況領域R01、使用レジスタ数領域R02は実施の形態1と同様の役割を果たすので、説明を省略する。実施の形態3に係る汎用レジスタR0ではVMID領域R03が追加されている。VMID領域R03はVM11毎に付与された識別情報を記憶するための領域である。VMIDR03を設けることにより、VMM10は同時に複数のVM11とデータ転送処理を行うことが可能となる。   FIG. 11 is an explanatory diagram showing a format example of the general-purpose register R0 according to the third embodiment. The general-purpose register R0 is divided into four areas. Since the specific value area R00, the transfer status area R01, and the used register number area R02 play the same role as in the first embodiment, the description thereof is omitted. In the general-purpose register R0 according to the third embodiment, a VMID region R03 is added. The VMID area R03 is an area for storing identification information given to each VM 11. By providing the VMIDR03, the VMM 10 can simultaneously perform data transfer processing with a plurality of VMs 11.

VMM10、VM11で実行されるデータ転送処理は一部を除き、図6、図7、図8、又は図10に示した処理と同様であるので、ここでは相違する点を主に説明する。
VM11のゲストOS120が起動する際、VMM10はVM11を一位に識別するID(識別情報)を発行し、VM11に付与する。ゲストOS120はRAM32等の記憶領域にIDを書き込む。
The data transfer process executed by the VMM 10 and VM 11 is the same as the process shown in FIG. 6, FIG. 7, FIG. 8, or FIG.
When the guest OS 120 of the VM 11 is activated, the VMM 10 issues an ID (identification information) that uniquely identifies the VM 11 and assigns it to the VM 11. The guest OS 120 writes the ID in a storage area such as the RAM 32.

データ転送処理において、IDを用いることより、VMM10は同時に複数のVM11とやり取りを行なっていても、どのVM11からデータが転送されてきたか識別することが可能となる。VM11(設定部112)はステップS3において、特定値、状況、個数の設定に加えて、汎用レジスタR0のVMID領域R03に自らのIDを設定する。VMM10(取得部10c)はステップS8において、データを取得する際に汎用レジスタR0のVM識別IDR03に設定されているVM11のIDを取得する。取得したVM11のIDと汎用レジスタR1からRx(x=2〜14)より取得したデータとを紐付けてVMM10は管理する。それにより、データ解析などを行う場合に、VM11毎に解析を行うことが可能となる。   By using the ID in the data transfer process, the VMM 10 can identify the VM 11 from which the data has been transferred even if the VMM 10 exchanges data with a plurality of VMs 11 at the same time. In step S3, the VM 11 (setting unit 112) sets its own ID in the VMID region R03 of the general-purpose register R0 in addition to setting the specific value, the situation, and the number. In step S8, the VMM 10 (acquisition unit 10c) acquires the ID of the VM 11 set in the VM identification ID R03 of the general-purpose register R0 when acquiring data. The VMM 10 manages the acquired ID of the VM 11 by associating the acquired ID from the general-purpose register R1 with the data acquired from Rx (x = 2 to 14). Accordingly, when performing data analysis or the like, it is possible to perform analysis for each VM 11.

また、VM11(設定部112)はステップS3において、特定値、状況に加えて、汎用レジスタR0のVM識別領域R03に自らのIDを設定する。VMM10(取得部10c)はステップS12で送信完了したか否かを判定する際、汎用レジスタR0のVM識別領域R03に設定されているVM11のIDを取得する。取得したIDによりどのVM11とのデータ転送処理が終了したのか、VMM10(状況判定10b)は判定することが可能となる。   In step S3, the VM 11 (setting unit 112) sets its own ID in the VM identification area R03 of the general-purpose register R0 in addition to the specific value and the situation. When determining whether or not the transmission is completed in step S12, the VMM 10 (acquiring unit 10c) acquires the VM 11 ID set in the VM identification area R03 of the general-purpose register R0. With the acquired ID, the VMM 10 (situation determination 10b) can determine which VM 11 has completed the data transfer processing.

上述したように実施の形態3においては、設定記憶部130であるところの汎用レジスタR0にVMID領域R03を設けることしたので、VMM10は、データ転送処理にて取得したデータがどのVM11からのデータなのか容易に識別可能となる。また、識別可能となるので、VMM10は同時にVM11とデータ転送処理を行うことが可能となる。   As described above, in the third embodiment, since the VMID area R03 is provided in the general-purpose register R0 that is the setting storage unit 130, the VMM 10 is the data from which VM 11 the data acquired in the data transfer process is Can be easily identified. Further, since the VMM 10 can be identified, the VMM 10 can simultaneously perform data transfer processing with the VM 11.

実施の形態4
上述の実施の形態1から3におけるデータ転送処理では、データ記憶部140として用いる汎用レジスタのビット数と、汎用レジスタの数により、一回の例外処理により転送できるデータ量が規定される。したがって、転送するデータの総量が一回の例外処理で転送可能なデータ量が規定より大きい場合、例外処理の実行回数が多くなるため、サーバ装置1のCPU30に係る負荷が大きくなる。本実施の形態では転送データ総量に関わらず、例外処理の発生回数を一定とする処理を実現する。
Embodiment 4
In the data transfer process in the first to third embodiments described above, the amount of data that can be transferred by one exception process is defined by the number of bits of the general-purpose register used as the data storage unit 140 and the number of general-purpose registers. Therefore, when the total amount of data to be transferred is larger than the specified amount of data that can be transferred in one exception process, the number of exception process executions increases, and the load on the CPU 30 of the server device 1 increases. In the present embodiment, processing is performed that makes the number of exception processing occurrences constant regardless of the total amount of transfer data.

図12は実施の形態4に係る転送状況の一例を示す一覧表である。図12に示すように本実施の形態においては、転送状況に「転送開始」が追加されている。
図13は実施の形態4に係るサーバ装置1が有する機能を示すブロック図である。実施の形態4に係るサーバ装置1は上述した実施の形態1から3のサーバ装置1が備える機能部以外に、VM11に第2判定部117、転送部118が追加されている。VMM10に発行部10g、削除部10hが追加されている。第2判定部117は転送データ全体の容量からデータ転送の方式を判定する。転送部118はファイル転送コマンドでデータの転送を行う。発行部10gはデータ転送用の一時アカウントを発行する機能を持つ。削除部10hは発行部10gが発行した一時アカウントを削除する機能を持つ。
FIG. 12 is a list showing an example of the transfer status according to the fourth embodiment. As shown in FIG. 12, in this embodiment, “transfer start” is added to the transfer status.
FIG. 13 is a block diagram illustrating functions of the server device 1 according to the fourth embodiment. In the server device 1 according to the fourth embodiment, a second determination unit 117 and a transfer unit 118 are added to the VM 11 in addition to the functional units included in the server device 1 according to the first to third embodiments. An issuing unit 10g and a deleting unit 10h are added to the VMM10. The second determination unit 117 determines the data transfer method from the capacity of the entire transfer data. The transfer unit 118 transfers data using a file transfer command. The issuing unit 10g has a function of issuing a temporary account for data transfer. The deleting unit 10h has a function of deleting the temporary account issued by the issuing unit 10g.

図14から図16は実施の形態4に係るVMM10、VM11で行うデータ転送の処理手順を示すフローチャートである。VM11は転送するデータの準備を行う(ステップS31)。準備の処理は転送プログラム110が行なっても良いし、転送プログラム110を呼び出す他のアプリケーションプログラムが行なっても良い。VM11(第2判定部)は転送データ全体の容量が予め定めた所定量(閾値)以上であるか否かを判定する(ステップS32)。転送データの全体容量が所定量未満である場合(ステップS32でNO)、繰返し転送を行う(ステップS33)。繰返し転送とは実施の形態1から3に示した転送方式である。その処理の内容は図6、図7、図8又は図10に示した内容と同様であるので、説明を省略する。転送データの全体容量が所定量以上である場合(ステップS32でYES)、VM11(設定部112)は転送用一時アカウントの請求を行うための設定を行う。すなわち、VM11(設定部112)は汎用レジスタR0の特定値領域R00にデータ転送を示す特定値、汎用レジスタR0の転送状況領域R01に転送開始を示す値2、汎用レジスタR0のVMID領域R03に自らのIDを設定する(ステップS34)。VM11(実行部113)はセンシティブ命令を実行し、例外を発生させる(ステップS34)。処理がVM11からVMM10に移る。   FIG. 14 to FIG. 16 are flowcharts showing a data transfer processing procedure performed by the VMM 10 and the VM 11 according to the fourth embodiment. The VM 11 prepares data to be transferred (step S31). The preparation process may be performed by the transfer program 110 or may be performed by another application program that calls the transfer program 110. The VM 11 (second determination unit) determines whether or not the capacity of the entire transfer data is equal to or larger than a predetermined amount (threshold value) determined in advance (step S32). If the total capacity of the transfer data is less than the predetermined amount (NO in step S32), the transfer is repeated (step S33). Repeat transfer is the transfer method shown in the first to third embodiments. The contents of the processing are the same as the contents shown in FIG. 6, FIG. 7, FIG. 8, or FIG. If the total capacity of the transfer data is equal to or greater than the predetermined amount (YES in step S32), the VM 11 (setting unit 112) performs setting for charging a temporary account for transfer. That is, the VM 11 (setting unit 112) has a specific value indicating data transfer in the specific value area R00 of the general register R0, a value 2 indicating transfer start in the transfer status area R01 of the general register R0, and a VMID area R03 of the general register R0. Is set (step S34). The VM 11 (execution unit 113) executes a sensitive instruction and generates an exception (step S34). Processing moves from VM 11 to VMM 10.

VMM10(特定値判定部10a)は例外要因が予め定めた要因によるものか調べる(ステップS36)。VMM10例外要因が予め定めたものである場合(ステップS36でYES)、VMM10(特定値判定部10a)は汎用レジスタR0の特定値領域R00に設定されている値を読み出し、その値が特定値であるか否かを判定する(ステップS37)。特定値が設定されている場合(ステップS37でYES)、VMM10(例外管理部10f)は例外をマスクする(ステップS38)。VMM10(状況判定部10b)は汎用レジスタR0の転送状況領域R01に設定されている値を読み出し、その値が転送中を示す値であるか否かを判定する(ステップS39)。転送中を示す値でない場合(ステップS39でNO)、VMM10(状況判定部10b)は転送状況領域R01に設定されている値が転送開始を示す値であるか否かを判定する(ステップS40)。転送開始である場合(ステップS40でYES)、VMM10(発行部10g)は一時アカウントを発行する(ステップS41)。すなわち、ユーザ名とパスワード(接続情報)を発行し、汎用レジスタRx(接続情報記憶部)に設定する。例えば、ユーザ名を汎用レジスタR1に、パスワードを汎用レジスタR2に設定する。どの汎用レジスタに設定するかについては、予め定めておくものとする。VM11(結果設定部10d)は戻り値に正常を設定する(ステップS42)。   The VMM 10 (specific value determination unit 10a) checks whether the exception factor is due to a predetermined factor (step S36). When the VMM10 exception factor is predetermined (YES in step S36), the VMM10 (specific value determination unit 10a) reads a value set in the specific value region R00 of the general-purpose register R0, and the value is a specific value. It is determined whether or not there is (step S37). When the specific value is set (YES in step S37), the VMM 10 (exception management unit 10f) masks the exception (step S38). The VMM 10 (status determination unit 10b) reads the value set in the transfer status area R01 of the general-purpose register R0, and determines whether or not the value is a value indicating that transfer is in progress (step S39). If it is not a value indicating that the transfer is in progress (NO in step S39), the VMM 10 (situation determination unit 10b) determines whether or not the value set in the transfer state region R01 is a value indicating the start of transfer (step S40). . When the transfer is started (YES in step S40), the VMM 10 (issuing unit 10g) issues a temporary account (step S41). That is, the user name and password (connection information) are issued and set in the general-purpose register Rx (connection information storage unit). For example, the user name is set in the general-purpose register R1, and the password is set in the general-purpose register R2. The general-purpose register to be set is determined in advance. The VM 11 (result setting unit 10d) sets normal to the return value (step S42).

転送開始でないと判定された場合(ステップS40でNO)、VMM10(状況判定部10b)は転送状況領域R01に設定されている値が転送完了を示す値であるか否かを判定する(ステップS45)。転送完了である場合(ステップS45でYES)、VMM10(削除部10h)は一時アカウントを削除する(ステップS46)。転送完了でない場合(ステップS45でNO)、VMM10(結果設定部10d)は戻り値にエラーを設定する(ステップS47)。   When it is determined that the transfer is not started (NO in step S40), the VMM 10 (situation determination unit 10b) determines whether or not the value set in the transfer state region R01 is a value indicating completion of transfer (step S45). ). If the transfer is complete (YES in step S45), the VMM 10 (deleting unit 10h) deletes the temporary account (step S46). If the transfer is not complete (NO in step S45), the VMM 10 (result setting unit 10d) sets an error in the return value (step S47).

汎用レジスタR0の転送状況領域R01に設定されている値が転送中を示す値である場合(ステップS39でYES)、VMM10(取得部10c)は汎用レジスタRxからデータを取得する(ステップS44)。上述したステップS8と同様の処理である。VM11(結果設定部10d)は戻り値に正常を設定する(ステップS42)。   When the value set in the transfer status area R01 of the general-purpose register R0 is a value indicating that transfer is in progress (YES in step S39), the VMM 10 (acquiring unit 10c) acquires data from the general-purpose register Rx (step S44). This is the same processing as step S8 described above. The VM 11 (result setting unit 10d) sets normal to the return value (step S42).

例外要因が予め定めた要因ではない場合(ステップS36でNO)、VMM10は要因別に定められた例外処理を実行する(ステップS43)。例外要因が予め定めたものであるが特定値領域R00に格納された値が特定値ではない場合(ステップS37でNO)、データ転送処理による例外ではないので、VMM10は要因別に定められた例外処理を行う(ステップS43)。VM11(結果設定部10d)は戻り値に正常を設定する(ステップS42)。   If the exception factor is not a predetermined factor (NO in step S36), the VMM 10 executes an exception process determined for each factor (step S43). If the exception factor is predetermined but the value stored in the specific value area R00 is not a specific value (NO in step S37), the VMM 10 does not generate an exception due to the data transfer process. Is performed (step S43). The VM 11 (result setting unit 10d) sets normal to the return value (step S42).

VMM10(例外管理部10f)は例外のマスクを解除する(ステップS48)。VMM10(終了部10e)は例外処理を終了する(ステップS49)。処理がVM11へ戻る。   The VMM 10 (exception management unit 10f) releases the exception mask (step S48). The VMM 10 (end unit 10e) ends the exception process (step S49). The process returns to the VM 11.

VM11(判定部115)は戻り値が正常であるか否かを判定する(ステップS50)。戻り値が正常でない場合(ステップ50でNO)、VM11(判定部115)は処理をステップS34に戻し、データの再送を行う。戻り値が正常である場合(ステップS50でYES)、VM11(判定部115)はデータ転送が完了済みであるか否かを判定する(ステップS51)。転送済みか否かはフラグ等により管理すれば良い。データ転送が完了済みである場合(ステップS51でYES)、VM11は処理を終了する。データ転送が完了済みでない場合(ステップS51でNO)、VM11(転送部119)は汎用レジスタRxに設定されたアカウント(ユーザ名、パスワード)を取得する(ステップS52)。VM11(転送部119)は取得したアカウントを用いてVMM11にデータ転送を行う(ステップS53)。例えば、ftp(file transfer protocol)コマンドを用いる。VM11(転送部119)はデータ転送が正常に終了したか否かを判定する(ステップS54)。正常終了していない場合(ステップS54でNO)、VM11(転送部119)は再度、データ転送を行う(ステップS53)。正常終了した場合(ステップS54でYES)、VM11(設定部112)は汎用レジスタR0の特定値領域R00にデータ転送を示す特定値、汎用レジスタR0の転送状況領域R01に転送完了を示す値0を設定する(ステップS55)。VM11(設定部112)は処理をステップS35へ移す。ステップS35以降の処理は上述したとおりである。   The VM 11 (determination unit 115) determines whether or not the return value is normal (step S50). If the return value is not normal (NO in step 50), the VM 11 (determination unit 115) returns the process to step S34 to retransmit the data. When the return value is normal (YES in step S50), the VM 11 (determination unit 115) determines whether or not the data transfer has been completed (step S51). Whether or not the transfer has been completed may be managed by a flag or the like. If the data transfer has been completed (YES in step S51), the VM 11 ends the process. If the data transfer has not been completed (NO in step S51), the VM 11 (transfer unit 119) acquires an account (user name, password) set in the general-purpose register Rx (step S52). The VM 11 (transfer unit 119) transfers data to the VMM 11 using the acquired account (step S53). For example, an ftp (file transfer protocol) command is used. The VM 11 (transfer unit 119) determines whether or not the data transfer is normally completed (step S54). If not completed normally (NO in step S54), the VM 11 (transfer unit 119) performs data transfer again (step S53). When the process ends normally (YES in step S54), the VM 11 (setting unit 112) sets a specific value indicating data transfer in the specific value area R00 of the general register R0 and a value 0 indicating transfer completion in the transfer status area R01 of the general register R0. Set (step S55). The VM 11 (setting unit 112) moves the process to step S35. The processing after step S35 is as described above.

上述したように、実施の形態4ではデータ転送のアカウント取得時と、データ転送の完了時の2回のみ例外処理を発生させれば良い。データの転送自体は取得したアカウントを用いて、ftpなどを用いて行うので、転送データの総量が大きい場合であっても、例外処理の回数が一定となるので、効率的にデータ転送が可能となる。
また、実施の形態1と同様に、VM11に転送プログラム110をインストールという軽微な変更で済むので、サーバ装置1が運用開始した後でも、データ転送機能を実現することが可能となる。データ転送に用いるアカウントはデータ転送開始時に発行し、データ転送完了後に削除するので、VM11のセキュリティを保ちつつ、データ転送が可能となる。
As described above, in the fourth embodiment, it is only necessary to generate exception processing only twice when an account for data transfer is acquired and when data transfer is completed. Since the data transfer itself is performed using ftp etc. using the acquired account, even if the total amount of transfer data is large, the number of exception processing is constant, so that the data can be transferred efficiently. Become.
Further, as in the first embodiment, since a slight change of installing the transfer program 110 in the VM 11 is sufficient, the data transfer function can be realized even after the server apparatus 1 starts operation. An account used for data transfer is issued at the start of data transfer, and is deleted after the data transfer is completed. Therefore, data transfer is possible while maintaining the security of the VM 11.

上述の実施の形態1から実施の形態4において、VM11からVMM10に転送されるデータの例を以下に述べる。図2に示したようにVM11は一台のサーバ装置1を共有し、切り替わって動作している。そのため、各VM11の単体で性能解析を行っても有効な結果は得られない。そこで、サーバ装置1単位で一元的に集約したデータ採取や俯瞰的な解析が必要となる。上述の実施の形態1から実施の形態4に示したデータ転送方法により、VMM10が各VM11より性能解析に必要なデータ(性能情報、リソース情報、環境情報など)を収集することにより、サーバ装置1全体、サーバ装置1で動作する各VM11の性能解析を正しく行うことが可能となる。   An example of data transferred from the VM 11 to the VMM 10 in the first to fourth embodiments will be described below. As shown in FIG. 2, the VM 11 shares one server device 1 and operates by switching. Therefore, effective results cannot be obtained even if performance analysis is performed for each VM 11 alone. Therefore, data collection and bird's-eye analysis that are centralized in one server device are required. The VMM 10 collects data (performance information, resource information, environment information, etc.) necessary for performance analysis from each VM 11 by the data transfer method described in the first to fourth embodiments described above. Overall, the performance analysis of each VM 11 operating on the server device 1 can be performed correctly.

そして、各VM11より収集したリソース情報や環境情報と、サーバ装置1で測定したリソース変化や性能イベントの測定データとを突き合わせることにより、一元的に正確な性能解析や挙動把握、リソース状況把握が可能となる。それにより、予兆監視、性能管理、プロビジョニング、VMのライブマイグレーション先の決定、キャパシティプランニングといった運用管理に非常に有用なデータが得られることが可能となる。   Then, by matching the resource information and environment information collected from each VM 11 with the measurement data of the resource change and performance event measured by the server device 1, centralized accurate performance analysis, behavior grasp, resource status grasp It becomes possible. This makes it possible to obtain data that is very useful for operation management such as predictive monitoring, performance management, provisioning, VM live migration destination determination, and capacity planning.

各実施の形態で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
The technical features (components) described in each embodiment can be combined with each other, and a new technical feature can be formed by combining them.
The embodiments disclosed herein are illustrative in all respects and should not be considered as restrictive. The scope of the present invention is defined not by the above-mentioned meaning but by the scope of the claims, and is intended to include all modifications within the meaning and scope equivalent to the scope of the claims.

以上の実施の形態に関し、更に以下の付記を開示する。   Regarding the above embodiment, the following additional notes are disclosed.

(付記1)
複数の仮想計算機を動作させる情報処理装置において、
例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、
該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、
転送するデータを記憶するデータ記憶部と、
戻り値を記憶する戻り値記憶部とを備え、
前記仮想計算機は
転送するデータを前記データ記憶部に書き込む書込部と、
例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、
転送済データのデータ量から未転送データのデータ量を算出する算出部と、
前記戻り値記憶部より、戻り値を読み出す読出部と、
前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、
前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第2書込部と
を有し、
前記収集部は
前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、
前記記憶部から状況情報を読み出す第2読出部と、
読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第3読出部と、
該第3読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第3書込部とを有する
ことを特徴とする情報処理装置。
(Appendix 1)
In an information processing apparatus that operates a plurality of virtual machines,
A collection unit that executes exception processing and collects data from the plurality of virtual machines;
Specific information indicating data transfer between the collection unit and the virtual machine, status information indicating the status of the data transfer, and a storage unit for storing the amount of data to be transferred;
A data storage unit for storing data to be transferred;
A return value storage unit for storing the return value,
The virtual machine has a writing unit for writing data to be transferred to the data storage unit;
An execution unit that executes an instruction that generates an exception, and causes the collection unit to execute an exception process;
A calculation unit that calculates the amount of untransferred data from the amount of transferred data;
A reading unit for reading a return value from the return value storage unit;
A determination unit for determining the status information indicating the status of data transfer and the data amount of data to be transferred from the data amount of the untransferred data calculated by the calculation unit and the return value read by the reading unit;
A second writing unit that writes the specific information, the determined status information, and the amount of data to be transferred to the storage unit, and
The collection unit determines whether or not the specific information is stored in the storage unit; and
A second reading unit for reading status information from the storage unit;
A third reading unit that reads data from the data storage unit when the read status information is being transferred;
A third write for writing a predetermined return value in the return value storage unit when the data amount of the data read from the data storage unit by the third reading unit matches the data amount stored in the storage unit And an information processing apparatus.

(付記2)
前記収集部は
前記判定部が前記記憶部に前記特定情報が記憶されていると判定した場合に、新たな例外の発生を不許可にし、
前記第3書込部が処理結果を戻り値記憶部に書き込んだ後に、新たな例外の発生を許可する許可部を有する
ことを特徴とする付記1に記載の情報処理装置。
(Appendix 2)
When the determination unit determines that the specific information is stored in the storage unit, the collection unit disallows the generation of a new exception,
The information processing apparatus according to claim 1, further comprising: a permission unit that permits generation of a new exception after the third writing unit writes the processing result in the return value storage unit.

(付記3)
前記記憶部には前記仮想計算機を識別する識別情報が記憶されており、
前記第2書込部は前記記憶部に前記特定情報、前記識別情報、前記状況情報及び前記転送するデータのデータ量を記憶し、
前記第3読出部は前記記憶部から前記識別情報を読み出す
ことを特徴とする付記1又は2に記載の情報処理装置。
(Appendix 3)
Identification information for identifying the virtual machine is stored in the storage unit,
The second writing unit stores the specific information, the identification information, the situation information, and a data amount of the data to be transferred in the storage unit,
The information processing apparatus according to appendix 1 or 2, wherein the third reading unit reads the identification information from the storage unit.

(付記4)
前記情報処理装置は
前記収集部に接続しデータ転送命令を実行するための接続情報を記憶する接続情報記憶部を備え、
前記仮想計算機は
前記転送データの全体量が予め定めた閾値以上であると判定した場合、前記決定部に転送開始を示す転送状況を生成させる第2判定部と、
前記接続情報記憶部から前記アカウント情報を読み出し、読み出した接続情報を用いて前記収集部に接続しデータ転送を行い、データ転送が終了した場合、前記決定部に状況情報を転送終了と決定させる転送部とを有し、
前記収集部は
前記第2読出部が読み出した状況情報が転送開始である場合、前記接続情報を発行し、発行した接続情報を接続情報記憶部に記憶する発行部と、
前記第2読出部が読み出した転送状況が転送終了であると判定した場合、前記接続情報を削除する削除部とを有する
ことを特徴とする情報処理装置。
(Appendix 4)
The information processing apparatus includes a connection information storage unit that stores connection information for connecting to the collection unit and executing a data transfer command,
When the virtual computer determines that the total amount of the transfer data is equal to or greater than a predetermined threshold, the second determination unit causes the determination unit to generate a transfer status indicating transfer start; and
Transfer that reads the account information from the connection information storage unit, connects to the collection unit using the read connection information, performs data transfer, and when the data transfer is completed, causes the determination unit to determine that transfer of the status information is complete And
The collection unit, when the status information read by the second reading unit is a transfer start, issues the connection information, and stores the issued connection information in a connection information storage unit;
An information processing apparatus comprising: a deletion unit that deletes the connection information when it is determined that the transfer status read by the second reading unit is transfer end.

(付記5)
前記情報処理装置はCPUを備え、
前記仮想計算機は完全仮想化環境において動作するものであり、
前記仮想計算機が発生させた例外を前記CPUが検出し、
前記収集部に前記例外処理を行わせる
ことを特徴とする付記1から付記4のいずれか1つに記載の情報処理装置。
(Appendix 5)
The information processing apparatus includes a CPU,
The virtual machine operates in a fully virtualized environment;
The CPU detects an exception generated by the virtual machine,
The information processing apparatus according to any one of appendix 1 to appendix 4, wherein the collection unit performs the exception processing.

(付記6)
複数の仮想計算機を動作させ、
前記仮想計算機が発生させた例外に係る例外処理において、前記仮想計算機とのデータ転送を示す特定情報が記憶されているか否か判定し、
特定情報が記憶されている場合、前記仮想計算機が記憶した転送データを読み出し、
転送データを読み出せたとき、所定の戻り値を記憶し、
前記複数の仮想計算機からデータを収集する収集部を備える情報処理装置の制御プログラムにおいて、
前記仮想計算機として動作する前記情報処理装置が転送済データのデータ量から未転送データのデータ量を算出し、
前記仮想計算機として動作する前記情報処理装置が、前記収集部が記憶した戻り値を読み出し、
前記仮想計算機として動作する前記情報処理装置が算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
前記仮想計算機として動作する前記情報処理装置がデータ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
前記仮想計算機として動作する前記情報処理装置が転送する転送データを記憶し、
前記仮想計算機として動作する前記情報処理装置が例外を引き起こす命令を実行し、前記収集部に例外処理を実行させる
ことを特徴とする制御プログラム。
(Appendix 6)
Operate multiple virtual machines,
In the exception handling related to the exception generated by the virtual machine, it is determined whether specific information indicating data transfer with the virtual machine is stored,
If the specific information is stored, read the transfer data stored by the virtual machine,
When the transfer data can be read, a predetermined return value is stored,
In a control program for an information processing apparatus including a collection unit that collects data from the plurality of virtual machines,
The information processing device operating as the virtual computer calculates the amount of untransferred data from the amount of transferred data,
The information processing apparatus operating as the virtual computer reads a return value stored by the collection unit,
From the data amount of the untransferred data calculated by the information processing apparatus operating as the virtual computer and the read return value, the status information indicating the data transfer status and the data amount of the data to be transferred are determined,
The information processing apparatus operating as the virtual computer stores specific information indicating data transfer, determined status information, and data amount of data to be transferred,
Storing transfer data transferred by the information processing apparatus operating as the virtual machine;
A control program, wherein the information processing apparatus operating as the virtual computer executes an instruction that causes an exception, and causes the collection unit to execute an exception process.

(付記7)
複数の仮想計算機が動作し、例外処理を行い、該複数の仮想計算機からデータを収集する収集部を備えた情報処理装置の制御方法において、
前記仮想計算機は
前記収集部へ転送済のデータのデータ量から未転送データのデータ量を算出し、
前記収集部が記憶した戻り値を読み出し、
算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
データ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
転送するデータを記憶し、
例外を発生する命令を実行し、前記収集部に例外処理を実行させ、
前記収集部は
前記特定情報が記憶されている場合、
記憶された状況情報が転送中であり、読み出したデータのデータ量が前記転送するデータのデータ量と一致したとき、所定の戻り値を記憶し、
前記仮想計算機は
記憶された戻り値が所定の値であり、未転送データがある場合、上記の処理を繰り返し行うこと
を特徴とする情報処理装置の制御方法。
(Appendix 7)
In a control method of an information processing apparatus including a collection unit that operates a plurality of virtual machines, performs exception processing, and collects data from the plurality of virtual machines,
The virtual machine calculates the amount of untransferred data from the amount of data transferred to the collection unit,
Read the return value stored by the collection unit,
From the calculated amount of untransferred data and the read return value, status information indicating the status of data transfer and the amount of data to be transferred are determined.
Stores the specific information indicating the data transfer, the determined status information and the data amount of the data to be transferred,
Remember the data to transfer,
Execute an instruction that generates an exception, and cause the collection unit to execute an exception process;
When the specific information is stored in the collection unit,
When the stored status information is being transferred and the data amount of the read data matches the data amount of the data to be transferred, a predetermined return value is stored,
The information processing apparatus control method, wherein the virtual computer repeatedly performs the above process when the stored return value is a predetermined value and there is untransferred data.

1 サーバ装置
10 VMM(収集部)
10a 特定値判定部(判定部)
10b 状況判定部(第2読出部)
10c 取得部(第3読出部)
10d 結果設定部(第3書込部)
10e 終了部
10f 例外管理部(許可部)
10g 発行部
10h 削除部
11 VM(仮想計算機)
110 転送プログラム
111 記憶部(書込部)
112 設定部(決定部、第2書込部)
113 実行部
114 算出部
115 判定部(読出部)
116 生成部
117 第2判定部
118 転送部
120 ゲストOS
130 設定記憶部(記憶部)
140 データ記憶部
150 戻り値記憶部
30 CPU
31 ROM
32 RAM
33 大容量記憶装置
34 通信部
35 読み取り部
2 端末装置
41,42 記憶媒体
1 Server device 10 VMM (collecting unit)
10a Specific value determination unit (determination unit)
10b Situation determination unit (second reading unit)
10c Acquisition unit (third reading unit)
10d result setting unit (third writing unit)
10e Ending part 10f Exception management part (permission part)
10g issuing part 10h deleting part 11 VM (virtual computer)
110 Transfer program 111 Storage unit (writing unit)
112 Setting unit (decision unit, second writing unit)
113 execution unit 114 calculation unit 115 determination unit (reading unit)
116 Generation Unit 117 Second Determination Unit 118 Transfer Unit 120 Guest OS
130 Setting storage unit (storage unit)
140 Data storage unit 150 Return value storage unit 30 CPU
31 ROM
32 RAM
33 Mass storage device 34 Communication unit 35 Reading unit 2 Terminal device 41, 42 Storage medium

Claims (6)

複数の仮想計算機を動作させる情報処理装置において、
例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、
該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、
転送するデータを記憶するデータ記憶部と、
戻り値を記憶する戻り値記憶部とを備え、
前記仮想計算機は
転送するデータを前記データ記憶部に書き込む書込部と、
例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、
転送済データのデータ量から未転送データのデータ量を算出する算出部と、
前記戻り値記憶部より、戻り値を読み出す読出部と、
前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、
前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第2書込部と
を有し、
前記収集部は
前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、
前記記憶部から状況情報を読み出す第2読出部と、
読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第3読出部と、
該第3読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第3書込部とを有する
ことを特徴とする情報処理装置。
In an information processing apparatus that operates a plurality of virtual machines,
A collection unit that executes exception processing and collects data from the plurality of virtual machines;
Specific information indicating data transfer between the collection unit and the virtual machine, status information indicating the status of the data transfer, and a storage unit for storing the amount of data to be transferred;
A data storage unit for storing data to be transferred;
A return value storage unit for storing the return value,
The virtual machine has a writing unit for writing data to be transferred to the data storage unit;
An execution unit that executes an instruction that generates an exception, and causes the collection unit to execute an exception process;
A calculation unit that calculates the amount of untransferred data from the amount of transferred data;
A reading unit for reading a return value from the return value storage unit;
A determination unit for determining the status information indicating the status of data transfer and the data amount of data to be transferred from the data amount of the untransferred data calculated by the calculation unit and the return value read by the reading unit;
A second writing unit that writes the specific information, the determined status information, and the amount of data to be transferred to the storage unit, and
The collection unit determines whether or not the specific information is stored in the storage unit; and
A second reading unit for reading status information from the storage unit;
A third reading unit that reads data from the data storage unit when the read status information is being transferred;
A third write for writing a predetermined return value in the return value storage unit when the data amount of the data read from the data storage unit by the third reading unit matches the data amount stored in the storage unit And an information processing apparatus.
前記収集部は
前記判定部が前記記憶部に前記特定情報が記憶されていると判定した場合に、新たな例外の発生を不許可にし、
前記第3書込部が処理結果を戻り値記憶部に書き込んだ後に、新たな例外の発生を許可する許可部を有する
ことを特徴とする請求項1に記載の情報処理装置。
When the determination unit determines that the specific information is stored in the storage unit, the collection unit disallows the generation of a new exception,
The information processing apparatus according to claim 1, further comprising: a permission unit that permits generation of a new exception after the third writing unit writes the processing result in the return value storage unit.
前記記憶部には前記仮想計算機を識別する識別情報が記憶されており、
前記第2書込部は前記記憶部に前記特定情報、前記識別情報、前記状況情報及び前記転送するデータのデータ量を記憶し、
前記第3読出部は前記記憶部から前記識別情報を読み出す
ことを特徴とする請求項1又は請求項2に記載の情報処理装置。
Identification information for identifying the virtual machine is stored in the storage unit,
The second writing unit stores the specific information, the identification information, the situation information, and a data amount of the data to be transferred in the storage unit,
The information processing apparatus according to claim 1, wherein the third reading unit reads the identification information from the storage unit.
前記情報処理装置はCPUを備え、
前記仮想計算機は完全仮想化環境において動作するものであり、
前記仮想計算機が発生させた例外を前記CPUが検出し、
前記収集部に前記例外処理を行わせる
ことを特徴とする請求項1から請求項3のいずれか1項に記載の情報処理装置。
The information processing apparatus includes a CPU,
The virtual machine operates in a fully virtualized environment;
The CPU detects an exception generated by the virtual machine,
The information processing apparatus according to claim 1, wherein the collection unit performs the exception processing.
複数の仮想計算機を動作させ、
前記仮想計算機が発生させた例外に係る例外処理において、前記仮想計算機とのデータ転送を示す特定情報が記憶されているか否か判定し、
特定情報が記憶されている場合、前記仮想計算機が記憶した転送データを読み出し、
転送データを読み出せたとき、所定の戻り値を記憶し、
前記複数の仮想計算機からデータを収集する収集部を備える情報処理装置の制御プログラムにおいて、
前記仮想計算機として動作する前記情報処理装置が転送済データのデータ量から未転送データのデータ量を算出し、
前記仮想計算機として動作する前記情報処理装置が、前記収集部が記憶した戻り値を読み出し、
前記仮想計算機として動作する前記情報処理装置が算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
前記仮想計算機として動作する前記情報処理装置がデータ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
前記仮想計算機として動作する前記情報処理装置が転送する転送データを記憶し、
前記仮想計算機として動作する前記情報処理装置が例外を引き起こす命令を実行し、前記収集部に例外処理を実行させる
ことを特徴とする制御プログラム。
Operate multiple virtual machines,
In the exception handling related to the exception generated by the virtual machine, it is determined whether specific information indicating data transfer with the virtual machine is stored,
If the specific information is stored, read the transfer data stored by the virtual machine,
When the transfer data can be read, a predetermined return value is stored,
In a control program for an information processing apparatus including a collection unit that collects data from the plurality of virtual machines,
The information processing device operating as the virtual computer calculates the amount of untransferred data from the amount of transferred data,
The information processing apparatus operating as the virtual computer reads a return value stored by the collection unit,
From the data amount of the untransferred data calculated by the information processing apparatus operating as the virtual computer and the read return value, the status information indicating the data transfer status and the data amount of the data to be transferred are determined,
The information processing apparatus operating as the virtual computer stores specific information indicating data transfer, determined status information, and data amount of data to be transferred,
Storing transfer data transferred by the information processing apparatus operating as the virtual machine;
A control program, wherein the information processing apparatus operating as the virtual computer executes an instruction that causes an exception, and causes the collection unit to execute an exception process.
複数の仮想計算機が動作し、例外処理を行い、該複数の仮想計算機からデータを収集する収集部を備えた情報処理装置の制御方法において、
前記仮想計算機は
前記収集部へ転送済のデータのデータ量から未転送データのデータ量を算出し、
前記収集部が記憶した戻り値を読み出し、
算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
データ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
転送するデータを記憶し、
例外を発生する命令を実行し、前記収集部に例外処理を実行させ、
前記収集部は
前記特定情報が記憶されている場合、
記憶された状況情報が転送中であり、読み出したデータのデータ量が前記転送するデータのデータ量と一致したとき、所定の戻り値を記憶し、
前記仮想計算機は
記憶された戻り値が所定の値であり、未転送データがある場合、上記の処理を繰り返し行うこと
を特徴とする情報処理装置の制御方法。
In a control method of an information processing apparatus including a collection unit that operates a plurality of virtual machines, performs exception processing, and collects data from the plurality of virtual machines,
The virtual machine calculates the amount of untransferred data from the amount of data transferred to the collection unit,
Read the return value stored by the collection unit,
From the calculated amount of untransferred data and the read return value, status information indicating the status of data transfer and the amount of data to be transferred are determined.
Stores the specific information indicating the data transfer, the determined status information and the data amount of the data to be transferred,
Remember the data to transfer,
Execute an instruction that generates an exception, and cause the collection unit to execute an exception process;
When the specific information is stored in the collection unit,
When the stored status information is being transferred and the data amount of the read data matches the data amount of the data to be transferred, a predetermined return value is stored,
The information processing apparatus control method, wherein the virtual computer repeatedly performs the above process when the stored return value is a predetermined value and there is untransferred data.
JP2013083335A 2013-04-11 2013-04-11 Information processing apparatus, control program, and control method Active JP6036504B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013083335A JP6036504B2 (en) 2013-04-11 2013-04-11 Information processing apparatus, control program, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013083335A JP6036504B2 (en) 2013-04-11 2013-04-11 Information processing apparatus, control program, and control method

Publications (2)

Publication Number Publication Date
JP2014206832A JP2014206832A (en) 2014-10-30
JP6036504B2 true JP6036504B2 (en) 2016-11-30

Family

ID=52120345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013083335A Active JP6036504B2 (en) 2013-04-11 2013-04-11 Information processing apparatus, control program, and control method

Country Status (1)

Country Link
JP (1) JP6036504B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292753A (en) * 1985-06-20 1986-12-23 Fujitsu Ltd Data processing system for vertural computer

Also Published As

Publication number Publication date
JP2014206832A (en) 2014-10-30

Similar Documents

Publication Publication Date Title
JP7007425B2 (en) Memory allocation technology for partially offloaded virtualization managers
AU2017290741B2 (en) Secure booting of virtualization managers
JP6845264B2 (en) Reducing performance variability with an opportunistic hypervisor
CN107209705B (en) Activity rollback for a computing environment
US9449314B2 (en) Virtualization of a central processing unit measurement facility
US10620877B2 (en) Managing a collection of data
RU2571726C2 (en) System and method of checking expediency of installing updates
US20200026446A1 (en) Establishing and maintaining data apportioning for availability domain fault tolerance
US20150212848A1 (en) Security management device and method
JP2017201470A (en) Setting support program, setting support method, and setting support device
US10353786B2 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
CN107368426B (en) Test method and test device
JP2007133544A (en) Failure information analysis method and its implementation device
US20130185763A1 (en) Distributed processing system, distributed processing method and computer-readable recording medium
JP6036504B2 (en) Information processing apparatus, control program, and control method
JP5565187B2 (en) Information processing apparatus and interrupt control program
Shi et al. A cloud service cache system based on memory template of virtual machine
Hermenier et al. Hotspot Mitigations for the Masses
US11163461B1 (en) Lockless method for writing updated versions of a configuration data file for a distributed file system using directory renaming
JP5540890B2 (en) Fault processing program, control method, and information processing apparatus
CN117917646A (en) Process management and control method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6036504

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150