(57)【要約】【課題】完全仮想化環境においてホストＯＳとゲストＯＳ間でデータ転送を行う情報処理装置、制御プログラム、制御方法を提供する。【解決手段】情報処理装置において、仮想計算機は転送するデータをデータ記憶部１４０に書き込む書込部と、例外を発生する命令を実行し、収集部に例外処理を実行させる実行部１１３とを有し、収集部は記憶部に特定情報が記憶されているか否かを判定する判定部と、記憶部から状況情報を読み出す第２読出部と、読み出した状況情報が転送中である場合、データ記憶部よりデータを読み出す第３読出部とを有する構成とする。【選択図】図２
2014206832.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想計算機を動作させる情報処理装置において、
例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、
該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、
転送するデータを記憶するデータ記憶部と、
戻り値を記憶する戻り値記憶部とを備え、
前記仮想計算機は
転送するデータを前記データ記憶部に書き込む書込部と、
例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、
転送済データのデータ量から未転送データのデータ量を算出する算出部と、
前記戻り値記憶部より、戻り値を読み出す読出部と、
前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、
前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第２書込部と
を有し、
前記収集部は
前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、
前記記憶部から状況情報を読み出す第２読出部と、
読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第３読出部と、
該第３読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第３書込部とを有する
ことを特徴とする情報処理装置。
【請求項２】
前記収集部は
前記判定部が前記記憶部に前記特定情報が記憶されていると判定した場合に、新たな例外の発生を不許可にし、
前記第３書込部が処理結果を戻り値記憶部に書き込んだ後に、新たな例外の発生を許可する許可部を有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶部には前記仮想計算機を識別する識別情報が記憶されており、
前記第２書込部は前記記憶部に前記特定情報、前記識別情報、前記状況情報及び前記転送するデータのデータ量を記憶し、
前記第３読出部は前記記憶部から前記識別情報を読み出す
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置はＣＰＵを備え、
前記仮想計算機は完全仮想化環境において動作するものであり、
前記仮想計算機が発生させた例外を前記ＣＰＵが検出し、
前記収集部に前記例外処理を行わせる
ことを特徴とする請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
複数の仮想計算機を動作させ、
前記仮想計算機が発生させた例外に係る例外処理において、前記仮想計算機とのデータ転送を示す特定情報が記憶されているか否か判定し、
特定情報が記憶されている場合、前記仮想計算機が記憶した転送データを読み出し、
転送データを読み出せたとき、所定の戻り値を記憶し、
前記複数の仮想計算機からデータを収集する収集部を備える情報処理装置の制御プログラムにおいて、
前記仮想計算機として動作する前記情報処理装置が転送済データのデータ量から未転送データのデータ量を算出し、
前記仮想計算機として動作する前記情報処理装置が、前記収集部が記憶した戻り値を読み出し、
前記仮想計算機として動作する前記情報処理装置が算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
前記仮想計算機として動作する前記情報処理装置がデータ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
前記仮想計算機として動作する前記情報処理装置が転送する転送データを記憶し、
前記仮想計算機として動作する前記情報処理装置が例外を引き起こす命令を実行し、前記収集部に例外処理を実行させる
ことを特徴とする制御プログラム。
【請求項６】
複数の仮想計算機が動作し、例外処理を行い、該複数の仮想計算機からデータを収集する収集部を備えた情報処理装置の制御方法において、
前記仮想計算機は
前記収集部へ転送済のデータのデータ量から未転送データのデータ量を算出し、
前記収集部が記憶した戻り値を読み出し、
算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
データ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
転送するデータを記憶し、
例外を発生する命令を実行し、前記収集部に例外処理を実行させ、
前記収集部は
前記特定情報が記憶されている場合、
記憶された状況情報が転送中であり、読み出したデータのデータ量が前記転送するデータのデータ量と一致したとき、所定の戻り値を記憶し、
前記仮想計算機は
記憶された戻り値が所定の値であり、未転送データがある場合、上記の処理を繰り返し行うこと
を特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は完全仮想化環境においてホストＯＳ（Operating System）及びゲストＯＳ間でデータ転送を行う情報処理装置、制御プログラム、制御方法に関する。
【背景技術】
【０００２】
従来、ＯＳ間のメッセージ通信を実現する方法として、共有バッファを用いて行う方法や、メッセージ通信用のＡＰＩ（Application Program Interface）を設けて行う方法が知られている（特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２８２５５８号公報
【特許文献２】特開２００６−１６４１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術ではホストＯＳとゲストＯＳ間のメッセージ通信を共有バッファにより実現しているため、ホストＯＳとゲストＯＳ間で共有バッファを持てない完全仮想化環境では、従来技術は適用できない。また、他の従来技術ではソフトウェア・ライブラリにＡＰＩを設けることが必要であるため、ゲストＯＳ、アプリケーションに何ら変更を加えないことが前提の完全仮想化環境において、従来技術は適用できない。さらにまた、完全仮想化環境ではセキュリティを確保するため、ホストＯＳからゲストＯＳへのアクセスは許可されていない。本発明は完全仮想化環境においてホストＯＳとゲストＯＳ間でデータ転送を行う情報処理装置、制御プログラム、制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る情報処理装置は、複数の仮想計算機を動作させる情報処理装置において、例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、転送するデータを記憶するデータ記憶部と、戻り値を記憶する戻り値記憶部とを備え、前記仮想計算機は転送するデータを前記データ記憶部に書き込む書込部と、例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、転送済データのデータ量から未転送データのデータ量を算出する算出部と、前記戻り値記憶部より、戻り値を読み出す読出部と、前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第２書込部とを有し、前記収集部は前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、前記記憶部から状況情報を読み出す第２読出部と、読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第３読出部と、該第３読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第３書込部とを有する構成とする。
【発明の効果】
【０００６】
本願の一観点によれば、完全仮想化環境においてホストＯＳとゲストＯＳ間でデータ転送を行うことが可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係る計算機システムのハードウェア構成の一例を示すブロック図である。
【図２】サーバ装置が有する機能を示すブロック図である。
【図３】汎用レジスタＲ０のフォーマット例を示す説明図である。
【図４】転送状況の一例を示す一覧表である。
【図５】戻り値の一例を示す一覧表である。
【図６】ＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図７】ＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図８】ＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図９】実施の形態２に係るサーバ装置が有する機能を示すブロック図である。
【図１０】実施の形態２に係るＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図１１】実施の形態３に係る汎用レジスタＲ０のフォーマット例を示す説明図である。
【図１２】実施の形態４に係る転送状況の一例を示す一覧表である。
【図１３】実施の形態４に係るサーバ装置が有する機能を示すブロック図である。
【図１４】実施の形態４に係るＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図１５】実施の形態４に係るＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【図１６】実施の形態４に係るＶＭＭ、ＶＭで行うデータ転送の処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００８】
実施の形態１
図１は実施の形態１に係る計算機システムのハードウェア構成の一例を示すブロック図である。計算機システムはサーバ装置（情報処理装置）１、端末装置２を含む。サーバ装置１と端末装置２とはネットワークＮを介して通信を行う。端末装置２は計算機システムのユーザが使用する端末装置である。ユーザは端末装置２を用いてサーバ装置が提供する各種の情報処理サービスを利用する。
【０００９】
サーバ装置１はＣＰＵ（Central Processing Unit）３０、ＲＯＭ（Read Only Memory）３１、ＲＡＭ（Read Only Memory）３２、大容量記憶装置３３、通信部３４、読み取り部３５を含む。ＣＰＵ３０はＲＯＭ３１又は大容量記憶装置３３に記憶された制御プログラム３１ａに従いハードウェア各部を制御する。ＲＡＭ３２は例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）、フラッシュメモリ等である。ＲＡＭ３２はＣＰＵ３０によるプログラムの実行時に発生する種々のデータを一時的に記憶する。大容量記憶装置３３は例えばハードディスク、ＳＳＤ（Solid State Drive）である。大容量記憶装置３３はＶＭＭ（Virtual Machine Monitor）プログラム、ゲストＯＳ、アプリケーションや、各種のデータを格納している。各プログラムはＣＰＵ３０が読み出して実行する制御プログラム３１ａであって、ＣＰＵ３０によりＲＡＭ３２に読み出されて実行される。なお、各プログラムはＲＯＭ３１に格納されていても良い。通信部３４はネットワークＮを介して端末装置２と通信を行う。読み取り部３５はＣＤ（Compact Disk）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ等の記憶媒体４１を読み取る。制御プログラム３１ａは記憶媒体４１より読み取り部３５が読み取り、大容量記憶装置３３に記憶することとしても良い。また、ネットワークＮを介して他のコンピュータから制御プログラム３１ａをダウンロードしても良い。さらにまた、半導体メモリ５１から制御プログラム３１ａを読み込むこととしても良い。
【００１０】
端末装置２はＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２、通信部２３、読み取り部２４を含む。ＣＰＵ２０はＲＯＭ２１に記憶された制御プログラム２１ａに従いハードウェア各部を制御する。ＲＡＭ２２は例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等である。ＲＡＭ２２はＣＰＵ２０によるプログラムの実行時に発生する種々のデータを一時的に記憶する。通信部２３はネットワークＮを介してサーバ装置１と通信を行う。読み取り部２４はＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記憶媒体４２を読み取る。制御プログラム２１ａは記憶媒体４２より読み取り部２４が読み取り、ＲＡＭ２２に記憶して実行することとしても良い。また、ネットワークＮを介して他のコンピュータから制御プログラム２１ａをダウンロードしても良い。さらにまた、半導体メモリ５２から制御プログラム２１ａを読み込むこととしても良い。
【００１１】
ＶＭＭプログラムは、サーバ装置１でＶＭ（Virtual Machine）の動作を可能にする仮想化環境を提供するためのソフトウェアプログラムである。ＣＰＵ３０がＶＭＭプログラムを実行することにより、ＶＭＭとしての動作が開始する。ＣＰＵ３０がＶＭＭプログラムをＶＭＭとして動作させることにより、サーバ装置１には、複数のＶＭが独立して動作が可能な仮想化環境が提供される。
【００１２】
ゲストＯＳプログラムは、ＶＭ上でＯＳを実行させるソフトウェアプログラムである。ゲストＯＳプログラムは、ＶＭが起動した後、ＣＰＵ３０がゲストＯＳプログラムを実行することによりＯＳ（以下、「ゲストＯＳ」と記す。）としての動作を開始する。
【００１３】
アプリケーションプログラムは、ゲストＯＳのそれぞれによって実行されるソフトウェアプログラムである。
【００１４】
本実施の形態に係るサーバ装置１においては、ＶＭＭは完全仮想化環境を提供する。完全仮想化環境とはハードウェアを完全にエミュレートする仮想化環境である。ハードウェアを完全にエミュレートしているため、ＶＭで動作するゲストＯＳは仮想化環境のための改変が不要という利点がある。しかしながら、一部の命令は直接物理ＣＰＵ上では実行できないため、ＶＭＭの介在が必要となる。この一部の命令のことをセンシティブ命令という。センシティブ命令はＶＭ上のプログラムが実行すると実計算機の動作に影響を与えてしまう命令や、ＶＭ上で実行すると、実計算機上で実行した時と結果が異なるため、不都合が生じる命令である。そこで、完全仮想化環境においては、ＶＭによるセンシティブ命令の実行をＣＰＵが検知し、ＶＭＭに処理を渡す仕組みとなっている。処理を渡されたＶＭＭはセンシティブ命令をＣＰＵに実行させ、ＶＭに処理を戻す。本実施の形態ではセンシティブ命令の検知による例外の発生と、それに対するＶＭＭでの例外処理の仕組みを利用してＶＭ（ゲストＯＳ）からＶＭＭ（ホストＯＳ）へのデータ転送を実現する。
【００１５】
図２はサーバ装置１が有する機能を示すブロック図である。ＣＰＵ３０が各プログラムを実行することにより、サーバ装置１ではＶＭＭ１０（収集部）が動作し、ＶＭＭ１０上ではＶＭ１１（仮想計算機）が動作する。ＶＭＭ１０は起動したＶＭ１１にサーバ装置１のリソース（ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２等）を割り当てる。リソースが割り当てられた後、ＶＭ１１上ではゲストＯＳの動作が開始する。なお、図２においてＶＭ１１は２つしか記載していないが、３つ以上起動しても良いし、１つのみ起動するのでも良い。
【００１６】
ＶＭ１１ではゲストＯＳ１２０上で転送プログラム１１０が動作し、ＶＭＭ１０とのデータ転送を実現する。ＶＭ１１は設定記憶部１３０（記憶部）、データ記憶部１４０、戻り値記憶部１５０を含む。これらの記憶部はＶＭＭ１０から割り当てられたリソース（ＣＰＵ３０のレジスタ）により実現される。転送プログラム１１０は記憶部１１１（書込部）、設定部１１２（決定部、第２書込部）、実行部１１３、算出部１１４、判定部１１５（読出部）、生成部１１６の各機能部を有している。
【００１７】
記憶部１１１はデータ転送を行うデータをデータ記憶部１４０に書き込む。設定部１１２はデータ転送を行う際の設定情報（データ転送を示す特定値、転送状況、転送データ量）を設定記憶部１３０に書き込む。実行部１１３はＶＭＭ１０に処理を渡すためにセンシティブ命令を実行する。算出部１１４はデータ転送実行時に転送済データのデータ量、未転送データのデータ量の算出を行う。判定部１１５は戻り値記憶部１５０に記憶されたＶＭＭ１０から戻り値を読み出し、データ転送が正常に行われたか否かを判定する。生成部１１６は算出部１１４が算出した未転送データのデータ量、判定部１１５の判定結果から、転送状況（転送中、終了など）を生成する。
【００１８】
ＶＭＭ１０はＶＭ１１を管理する機能に加えて、ＶＭ１１とデータ転送を実現するための各種の機能部、特定値判定部１０ａ（判定部）、状況判定部１０ｂ（第２読出部）、取得部１０ｃ（第３読出部）、結果設定部１０ｄ（第３書込部）、終了部１０ｅを備える。特定値判定部１０ａは設定記憶部１３０より特定値を読み出し、データ転送のためにＶＭ１１より処理が渡されたのか否かを判定する。状況判定部１０ｂは設定記憶部１３０に記憶された転送状況を読み出し、データ転送の状況を判定する。取得部１０ｃはデータ記憶部１４０に記憶された転送データを取得する。結果設定部１０ｄはＶＭＭ１０でのデータ転送処理の結果を示す戻り値を戻り値記憶部１５０に書き込む。終了部１０ｅは例外処理を終了する命令を実行し、処理をＶＭ１１に戻す。
【００１９】
次に転送プログラム１１０を用いて行うＶＭＭ１０、ＶＭ１１間でのデータ転送処理について説明する。以下に述べる例では、ＶＭ１１よりＶＭＭ１０へデータを送信する場合について述べる。
【００２０】
また、設定記憶部１３０、データ記憶部１４０、戻り値記憶部１５０はＣＰＵ３０の汎用レジスタを用いて実現するものとする。例外発生によりＶＭ１１からＶＭＭ１０に処理が移る場合、ＣＰＵ３０の汎用レジスタの状態は保たれている。あるいは、汎用レジスタの状態は退避領域に退避される。退避された値はＶＭＭ１０からアクセス可能である。以下の説明において、汎用レジスタはＲ０からＲ１５まで１６個あるものとし、Ｒ０を設定記憶部１３０（記憶部）として、Ｒ１からＲ１４までの１４個をデータ記憶部１４０、Ｒ１５を戻り値記憶部１５０として利用するものとする。
【００２１】
図３は汎用レジスタＲ０のフォーマット例を示す説明図である。図４は転送状況の一例を示す一覧表である。図５は戻り値の一例を示す一覧表である。図３に示すように設定記憶部１３０であるＲ０は３つの領域Ｒ００、Ｒ０１、Ｒ０２に分けて用いる。特定値領域Ｒ００はデータ転送を示す値である特定値（マジックナンバー、特定情報）を記憶する。ＣＰＵ３０で実行される命令で設定されない値とし、予め定めておく。転送状況領域Ｒ０１はデータ転送の状況（index、状況情報）を記憶する。使用レジスタ数領域Ｒ０２は転送に用いるレジスタの個数（転送するデータのデータ量）を記憶する。汎用レジスタＲ１からＲ１４までを用いることとしたので、レジスタ個数は０から１４までのいずれかの値が記憶される。図４に示すようにデータ転送の状況は転送中を１、完了を０で表すものとする。図５に示すように正常を示す戻り値は１、異常を示す戻り値０とする。
【００２２】
図６から図８はＶＭＭ１０、ＶＭ１１で行うデータ転送の処理手順を示すフローチャートである。ＶＭ１１は転送するデータの準備を行う（ステップＳ１）。準備の処理は転送プログラム１１０が行なっても良いし、転送プログラム１１０を呼び出す他のアプリケーションプログラムが行なっても良い。ＶＭ１１（記憶部１１１）は転送するデータを汎用レジスタＲ１からＲｘ（ｘ＝２〜１４）に設定する（ステップＳ２）。ＶＭ１１（設定部１１２）は汎用レジスタＲ０の特定値領域Ｒ００にデータ転送を示す特定値（マジックナンバーともいう）、汎用レジスタＲ０の転送状況領域Ｒ０１に転送中を示す値１、使用レジスタ数領域Ｒ０２に使用するデータ記憶の用いる汎用レジスタの個数（ｘ）を設定する（ステップＳ３）。ＶＭ１１（実行部１１３）はセンシティブ命令を発行し、例外を発生させる（ステップＳ４）。なお、実行するセンシティブ命令は予め定めておくものとする。ここではhalt命令であるとする。処理がＶＭ１１からＶＭＭ１０に移る。
【００２３】
ＶＭＭ１０（特定値判定部１０ａ）は例外要因が予め定めた要因（halt命令実行）によるものかを調べる（ステップＳ５）。例外要因が予め定めたものである場合（ステップＳ５でＹＥＳ）、ＶＭＭ１０（特定値判定部１０ａ）は汎用レジスタＲ０の特定値領域Ｒ００に設定されている値を読み出し、その値が特定値であるか否かを判定する（ステップＳ６）。特定値が設定されている場合（ステップＳ６でＹＥＳ）、ＶＭＭ１０（状況判定部１０ｂ）は汎用レジスタＲ０の転送状況領域Ｒ０１に設定されている値を読み出し、その値が転送中を示す値であるか否かを判定する（ステップＳ７）。転送中を示す値である場合（ステップＳ７でＹＥＳ）、ＶＭＭ１０（取得部１０ｃ）は汎用レジスタＲ０の使用レジスタ領域Ｒ０２に設定されている値（使用レジスタ数）を読み出し、その値に従って汎用レジスタＲ１からＲ１４に設定されているデータを取得する（ステップＳ８）。例えば、使用レジスタ数が１４であれば、ＶＭＭ１０（取得部１０ｃ）は汎用レジスタＲ１からＲ１４までの１４個のレジスタから値を取得する。使用レジスタ数が５であれば、ＶＭＭ１０（取得部１０ｃ）は汎用レジスタＲ１からＲ５までの５個のレジスタから値を取得する。ＶＭＭ１０（結果設定部１０ｄ）は戻り値記憶部１５０としての汎用レジスタＲ１５に正常を示す戻り値を設定する（ステップＳ９）。ＶＭＭ１０（終了部１０ｅ）は例外処理終了命令を実行する（ステップＳ１０）。処理がＶＭＭ１０からＶＭ１１に戻る。
【００２４】
例外要因が予め定めた要因ではない場合（ステップＳ５でＮＯ）、ＶＭＭ１０は要因別に定められた例外処理を実行する（ステップＳ１１）。例外要因が予め定めたものであるが特定値領域Ｒ００に格納された値が特定値ではない場合（ステップＳ６でＮＯ）、データ転送処理による例外ではないので、ＶＭＭ１０は要因別に定められた例外処理を行う（ステップＳ１１）。転送状況領域Ｒ０１に設定されている値が転送中を示す値ではない場合（ステップＳ７でＮＯ）、ＶＭＭ１０（状況判定部１０ｂ）は送信完了を示す値であるか否かを判定する（ステップＳ１２）。送信完了を示す値である場合（ステップＳ１２でＹＥＳ）、ＶＭＭ１０（状況判定部１０ｂ）は処理をステップＳ９に移す。送信完了を示す値ではない場合（ステップＳ１２でＮＯ）、ＶＭＭ１０（結果設定部１０ｄ）は汎用レジスタＲ１５にエラーを示す戻り値を設定する（ステップＳ１３）。ＶＭＭ１０（結果設定部１０ｄ）は処理をステップＳ１０に移す。処理がＶＭＭ１０からＶＭ１１に戻る。
【００２５】
ＶＭ１１（判定部１１５）は戻り値記憶部１５０としての汎用レジスタＲ１５に設定された値を読み取り、その値（戻り値）が正常を示す値であるか否か判定する（ステップＳ１４）。戻り値が正常である場合（ステップＳ１４でＹＥＳ）、ＶＭ１１（算出部１１４）は未転送データがあるか否か判定する（ステップＳ１６）。この判定は例えば、次のように行う。転送対象となっているデータの全データ量を算出しておく。データ転送を行う度に、転送済データのデータ量を加算しておき、加算した転送済データのデータ量が全データ量と等しいか、それを超える値になったかを判定する。等しいかそれを超える値になれば未転送データはない。または、汎用レジスタを用いてデータ転送をしていることから、汎用レジスタ単位で管理しても良い。転送開始時に転送するデータは汎用レジスタ何個分のデータ量かを算出しておく。データ転送をするたびに転送データを設定したレジスタの個数を減算していき、その値が０になれば未転送データはないこととなる。未転送データがある場合（ステップＳ１６でＹＥＳ）、ＶＭ１１（算出部１１４）は処理をステップＳ２に戻す。ステップＳ２以降の処理は上述のとおりである。
【００２６】
ＶＭＭ１０からの戻り値が正常ではない場合（ステップＳ１４でＮＯ）、ＶＭ１１（判定部１１５）は転送が完了しているか否かを判定する（ステップＳ１５）。転送が完了したか否かの判定は、すでに転送完了をＶＭＭ１０に送信したか否かで判定する。例えば、フラグ領域を設けておき、フラグが立っていれば転送完了と判定し、フラグがクリアされていれば転送完了でないと判定する。転送が完了していない場合（ステップＳ１５でＮＯ）、ＶＭ１１（判定部１１５）は処理をステップＳ２に戻し、データの再送を行う。転送が完了している場合（ステップＳ１５でＹＥＳ）、ＶＭ１１（判定部１１５）は処理をステップＳ１８へ移す。ＶＭ１１（設定部１１２）は汎用レジスタＲ０の特定値領域Ｒ００にデータ転送を示す特定値、汎用レジスタＲ０の転送状況領域Ｒ０１に転送完了を示す値０を設定する（ステップＳ１８）。ＶＭ１１（設定部１１２）は処理をステップＳ４へ移す。ステップＳ４以降の処理は上述したとおりである。
【００２７】
未転送データがない場合（ステップＳ１６でＮＯ）、ＶＭ１１（判定部１１５）は転送完了をＶＭＭ１０に送信済みか否かを判定する（ステップＳ１７）。この判定は例えば、上述したようにフラグを用いて行う。転送完了をＶＭＭ１０に送信済みである場合（ステップＳ１７でＹＥＳ）、ＶＭ１１（判定部１１５）はデータ転送処理を終了する。転送完了を送信済みでない場合（ステップＳ１７でＮＯ）、ＶＭ１１（判定部１１５）は処理をステップＳ１８へ移す。ステップＳ１８以降の処理は上述したとおりである。
【００２８】
本実施の形態においては、例外処理を用いてＶＭ１１からＶＭＭ１０へのデータ転送を行うこととし、ＶＭ１１に転送プログラム１１０をインストールする。データ転送のためにＶＭ１１はＶＭＭ１０に管理者権限を開放する必要がないので、ＶＭ１１のセキュリティを保ちつつ、データ転送が可能となる。
また、ＶＭ１１に転送プログラム１１０をインストールという軽微な変更で済むので、サーバ装置１が運用開始した後でも、データ転送機能を実現することが可能となる。
【００２９】
実施の形態１において、ＶＭ１１からＶＭＭ１０へ転送するデータの例としては、性能情報、リソース情報、環境情報などが考えられる。それらの情報を分析することにより、運用管理精度、キャパシティ管理精度を上げることが可能となる。また、動作ログを収集しておくことにより、障害発生時の調査が容易となる。
【００３０】
なお、転送プログラム１１０が起動するタイミングは転送するデータの性質に応じて定めれば良い。定期的に収集が必要なデータについては、タイマにより所定時間毎（週に一回、日に一回、一時間に一回）に転送プログラム１１０を起動する。イベントが発生した場合に収集が必要となるデータは、イベント監視プログラムがイベントを検知した場合に、転送プログラム１１０を起動するようにすれば良い。
【００３１】
実施の形態２
実施の形態１ではセンシティブ命令の実行による例外処理についてデータ転送を実現する。そのため、データ転送処理を行なっている場合に、関係のない他の処理により同じ要因の例外が発生すると不都合である。本実施の形態ではその点を考慮する。なお、ハードウェア構成は実施の形態１と同様であるので、説明を省略する。
【００３２】
図９は実施の形態２に係るサーバ装置１が有する機能を示すブロック図である。ＶＭＭ１０の備える機能部に例外管理部１０ｆ（許可部）が含まれている。例外管理部１０ｆは例外処理をマスクするか否かを管理する機能を担う。図９に示すその他の構成は実施の形態１と同様であるから、説明を省略する。
【００３３】
図１０は実施の形態２に係るＶＭＭ１０、ＶＭ１１で行うデータ転送の処理手順を示すフローチャートである。本実施の形態におけるデータ転送の処理は、一部を除き図６、図７又は図８で示した処理と同様であるので、図１０は異なるＶＭＭ１０での処理を記載し、他の部分は記載を省略している。図１０において、図６、図７又は図８と同様な処理については同じ符号を付している。
【００３４】
データ転送処理において、ＶＭ１１はセンシティブ命令を発行し（ステップＳ４）、例外を発生させる。例外の発生により、処理がＶＭＭ１０に移る。ＶＭＭ１０は、例外の発正要因がデータ転送のために予め定めた要因であるか否かを判定する（ステップＳ５）。発生要因が予め定めたものであり（ステップＳ５でＹＥＳ）、汎用レジスタＲ０の特定値領域Ｒ００に特定値が設定されていた場合（ステップＳ６でＹＥＳ）、同一の要因による例外（ここではhalt命令実行による例外）が多重に発生しないように、ＶＭＭ１０（例外管理部１０ｆ）は例外をマスクする（ステップＳ２１）。例外をマスクするには例えば次のように行う。例外の要因毎にマスクが設定可能となっているマスクレジスタの所定のビット（ここではhalt命令に対応するビット）を１にすることにより、マスクが設定される。例外をマスクした以降の処理、ステップＳ７、Ｓ８、Ｓ９、Ｓ１２、Ｓ１３については実施の形態１と同様であるから、説明を省略する。ステップＳ１１についても同様であるので、説明を省略する。ステップＳ９又はステップＳ１３で戻り値を設定した後に、ＶＭＭ１０（例外管理部１０ｆ）は例外のマスクを解除する（ステップＳ２２）。上述の例ではhalt命令に対応するマスクビットを０に設定する。ＶＭＭ１０は例外処理を終了する（ステップＳ１０）。処理がＶＭ１１へ戻る。その後の処理ステップＳ１４以降は、実施の形態１と同様であるから、説明を省略する。
【００３５】
実施の形態３
上述の実施の形態１及び２においては、ＶＭＭ１０とデータ転送を行うＶＭ１１は単一であることを前提としている。本実施の形態においては、複数のＶＭ１１とＶＭＭ１０とがデータ転送処理を行う場合について述べる。サーバ装置１のハードウェア構成、サーバ装置１が有する機能は実施の形態１及び２と同様であるので、説明を省略する。
【００３６】
図１１は実施の形態３に係る汎用レジスタＲ０のフォーマット例を示す説明図である。汎用レジスタＲ０を４つの領域に分けている。特定値領域Ｒ００、転送状況領域Ｒ０１、使用レジスタ数領域Ｒ０２は実施の形態１と同様の役割を果たすので、説明を省略する。実施の形態３に係る汎用レジスタＲ０ではＶＭＩＤ領域Ｒ０３が追加されている。ＶＭＩＤ領域Ｒ０３はＶＭ１１毎に付与された識別情報を記憶するための領域である。ＶＭＩＤＲ０３を設けることにより、ＶＭＭ１０は同時に複数のＶＭ１１とデータ転送処理を行うことが可能となる。
【００３７】
ＶＭＭ１０、ＶＭ１１で実行されるデータ転送処理は一部を除き、図６、図７、図８、又は図１０に示した処理と同様であるので、ここでは相違する点を主に説明する。
ＶＭ１１のゲストＯＳ１２０が起動する際、ＶＭＭ１０はＶＭ１１を一位に識別するＩＤ（識別情報）を発行し、ＶＭ１１に付与する。ゲストＯＳ１２０はＲＡＭ３２等の記憶領域にＩＤを書き込む。
【００３８】
データ転送処理において、ＩＤを用いることより、ＶＭＭ１０は同時に複数のＶＭ１１とやり取りを行なっていても、どのＶＭ１１からデータが転送されてきたか識別することが可能となる。ＶＭ１１（設定部１１２）はステップＳ３において、特定値、状況、個数の設定に加えて、汎用レジスタＲ０のＶＭＩＤ領域Ｒ０３に自らのＩＤを設定する。ＶＭＭ１０（取得部１０ｃ）はステップＳ８において、データを取得する際に汎用レジスタＲ０のＶＭ識別ＩＤＲ０３に設定されているＶＭ１１のＩＤを取得する。取得したＶＭ１１のＩＤと汎用レジスタＲ１からＲｘ（ｘ＝２〜１４）より取得したデータとを紐付けてＶＭＭ１０は管理する。それにより、データ解析などを行う場合に、ＶＭ１１毎に解析を行うことが可能となる。
【００３９】
また、ＶＭ１１（設定部１１２）はステップＳ３において、特定値、状況に加えて、汎用レジスタＲ０のＶＭ識別領域Ｒ０３に自らのＩＤを設定する。ＶＭＭ１０（取得部１０ｃ）はステップＳ１２で送信完了したか否かを判定する際、汎用レジスタＲ０のＶＭ識別領域Ｒ０３に設定されているＶＭ１１のＩＤを取得する。取得したＩＤによりどのＶＭ１１とのデータ転送処理が終了したのか、ＶＭＭ１０（状況判定１０ｂ）は判定することが可能となる。
【００４０】
上述したように実施の形態３においては、設定記憶部１３０であるところの汎用レジスタＲ０にＶＭＩＤ領域Ｒ０３を設けることしたので、ＶＭＭ１０は、データ転送処理にて取得したデータがどのＶＭ１１からのデータなのか容易に識別可能となる。また、識別可能となるので、ＶＭＭ１０は同時にＶＭ１１とデータ転送処理を行うことが可能となる。
【００４１】
実施の形態４
上述の実施の形態１から３におけるデータ転送処理では、データ記憶部１４０として用いる汎用レジスタのビット数と、汎用レジスタの数により、一回の例外処理により転送できるデータ量が規定される。したがって、転送するデータの総量が一回の例外処理で転送可能なデータ量が規定より大きい場合、例外処理の実行回数が多くなるため、サーバ装置１のＣＰＵ３０に係る負荷が大きくなる。本実施の形態では転送データ総量に関わらず、例外処理の発生回数を一定とする処理を実現する。
【００４２】
図１２は実施の形態４に係る転送状況の一例を示す一覧表である。図１２に示すように本実施の形態においては、転送状況に「転送開始」が追加されている。
図１３は実施の形態４に係るサーバ装置１が有する機能を示すブロック図である。実施の形態４に係るサーバ装置１は上述した実施の形態１から３のサーバ装置１が備える機能部以外に、ＶＭ１１に第２判定部１１７、転送部１１８が追加されている。ＶＭＭ１０に発行部１０ｇ、削除部１０ｈが追加されている。第２判定部１１７は転送データ全体の容量からデータ転送の方式を判定する。転送部１１８はファイル転送コマンドでデータの転送を行う。発行部１０ｇはデータ転送用の一時アカウントを発行する機能を持つ。削除部１０ｈは発行部１０ｇが発行した一時アカウントを削除する機能を持つ。
【００４３】
図１４から図１６は実施の形態４に係るＶＭＭ１０、ＶＭ１１で行うデータ転送の処理手順を示すフローチャートである。ＶＭ１１は転送するデータの準備を行う（ステップＳ３１）。準備の処理は転送プログラム１１０が行なっても良いし、転送プログラム１１０を呼び出す他のアプリケーションプログラムが行なっても良い。ＶＭ１１（第２判定部）は転送データ全体の容量が予め定めた所定量（閾値）以上であるか否かを判定する（ステップＳ３２）。転送データの全体容量が所定量未満である場合（ステップＳ３２でＮＯ）、繰返し転送を行う（ステップＳ３３）。繰返し転送とは実施の形態１から３に示した転送方式である。その処理の内容は図６、図７、図８又は図１０に示した内容と同様であるので、説明を省略する。転送データの全体容量が所定量以上である場合（ステップＳ３２でＹＥＳ）、ＶＭ１１（設定部１１２）は転送用一時アカウントの請求を行うための設定を行う。すなわち、ＶＭ１１（設定部１１２）は汎用レジスタＲ０の特定値領域Ｒ００にデータ転送を示す特定値、汎用レジスタＲ０の転送状況領域Ｒ０１に転送開始を示す値２、汎用レジスタＲ０のＶＭＩＤ領域Ｒ０３に自らのＩＤを設定する（ステップＳ３４）。ＶＭ１１（実行部１１３）はセンシティブ命令を実行し、例外を発生させる（ステップＳ３４）。処理がＶＭ１１からＶＭＭ１０に移る。
【００４４】
ＶＭＭ１０（特定値判定部１０ａ）は例外要因が予め定めた要因によるものか調べる（ステップＳ３６）。ＶＭＭ１０例外要因が予め定めたものである場合（ステップＳ３６でＹＥＳ）、ＶＭＭ１０（特定値判定部１０ａ）は汎用レジスタＲ０の特定値領域Ｒ００に設定されている値を読み出し、その値が特定値であるか否かを判定する（ステップＳ３７）。特定値が設定されている場合（ステップＳ３７でＹＥＳ）、ＶＭＭ１０（例外管理部１０ｆ）は例外をマスクする（ステップＳ３８）。ＶＭＭ１０（状況判定部１０ｂ）は汎用レジスタＲ０の転送状況領域Ｒ０１に設定されている値を読み出し、その値が転送中を示す値であるか否かを判定する（ステップＳ３９）。転送中を示す値でない場合（ステップＳ３９でＮＯ）、ＶＭＭ１０（状況判定部１０ｂ）は転送状況領域Ｒ０１に設定されている値が転送開始を示す値であるか否かを判定する（ステップＳ４０）。転送開始である場合（ステップＳ４０でＹＥＳ）、ＶＭＭ１０（発行部１０ｇ）は一時アカウントを発行する（ステップＳ４１）。すなわち、ユーザ名とパスワード（接続情報）を発行し、汎用レジスタＲｘ（接続情報記憶部）に設定する。例えば、ユーザ名を汎用レジスタＲ１に、パスワードを汎用レジスタＲ２に設定する。どの汎用レジスタに設定するかについては、予め定めておくものとする。ＶＭ１１（結果設定部１０ｄ）は戻り値に正常を設定する（ステップＳ４２）。
【００４５】
転送開始でないと判定された場合（ステップＳ４０でＮＯ）、ＶＭＭ１０（状況判定部１０ｂ）は転送状況領域Ｒ０１に設定されている値が転送完了を示す値であるか否かを判定する（ステップＳ４５）。転送完了である場合（ステップＳ４５でＹＥＳ）、ＶＭＭ１０（削除部１０ｈ）は一時アカウントを削除する（ステップＳ４６）。転送完了でない場合（ステップＳ４５でＮＯ）、ＶＭＭ１０（結果設定部１０ｄ）は戻り値にエラーを設定する（ステップＳ４７）。
【００４６】
汎用レジスタＲ０の転送状況領域Ｒ０１に設定されている値が転送中を示す値である場合（ステップＳ３９でＹＥＳ）、ＶＭＭ１０（取得部１０ｃ）は汎用レジスタＲｘからデータを取得する（ステップＳ４４）。上述したステップＳ８と同様の処理である。ＶＭ１１（結果設定部１０ｄ）は戻り値に正常を設定する（ステップＳ４２）。
【００４７】
例外要因が予め定めた要因ではない場合（ステップＳ３６でＮＯ）、ＶＭＭ１０は要因別に定められた例外処理を実行する（ステップＳ４３）。例外要因が予め定めたものであるが特定値領域Ｒ００に格納された値が特定値ではない場合（ステップＳ３７でＮＯ）、データ転送処理による例外ではないので、ＶＭＭ１０は要因別に定められた例外処理を行う（ステップＳ４３）。ＶＭ１１（結果設定部１０ｄ）は戻り値に正常を設定する（ステップＳ４２）。
【００４８】
ＶＭＭ１０（例外管理部１０ｆ）は例外のマスクを解除する（ステップＳ４８）。ＶＭＭ１０（終了部１０ｅ）は例外処理を終了する（ステップＳ４９）。処理がＶＭ１１へ戻る。
【００４９】
ＶＭ１１（判定部１１５）は戻り値が正常であるか否かを判定する（ステップＳ５０）。戻り値が正常でない場合（ステップ５０でＮＯ）、ＶＭ１１（判定部１１５）は処理をステップＳ３４に戻し、データの再送を行う。戻り値が正常である場合（ステップＳ５０でＹＥＳ）、ＶＭ１１（判定部１１５）はデータ転送が完了済みであるか否かを判定する（ステップＳ５１）。転送済みか否かはフラグ等により管理すれば良い。データ転送が完了済みである場合（ステップＳ５１でＹＥＳ）、ＶＭ１１は処理を終了する。データ転送が完了済みでない場合（ステップＳ５１でＮＯ）、ＶＭ１１（転送部１１９）は汎用レジスタＲｘに設定されたアカウント（ユーザ名、パスワード）を取得する（ステップＳ５２）。ＶＭ１１（転送部１１９）は取得したアカウントを用いてＶＭＭ１１にデータ転送を行う（ステップＳ５３）。例えば、ｆｔｐ（file transfer protocol）コマンドを用いる。ＶＭ１１（転送部１１９）はデータ転送が正常に終了したか否かを判定する（ステップＳ５４）。正常終了していない場合（ステップＳ５４でＮＯ）、ＶＭ１１（転送部１１９）は再度、データ転送を行う（ステップＳ５３）。正常終了した場合（ステップＳ５４でＹＥＳ）、ＶＭ１１（設定部１１２）は汎用レジスタＲ０の特定値領域Ｒ００にデータ転送を示す特定値、汎用レジスタＲ０の転送状況領域Ｒ０１に転送完了を示す値０を設定する（ステップＳ５５）。ＶＭ１１（設定部１１２）は処理をステップＳ３５へ移す。ステップＳ３５以降の処理は上述したとおりである。
【００５０】
上述したように、実施の形態４ではデータ転送のアカウント取得時と、データ転送の完了時の２回のみ例外処理を発生させれば良い。データの転送自体は取得したアカウントを用いて、ｆｔｐなどを用いて行うので、転送データの総量が大きい場合であっても、例外処理の回数が一定となるので、効率的にデータ転送が可能となる。
また、実施の形態１と同様に、ＶＭ１１に転送プログラム１１０をインストールという軽微な変更で済むので、サーバ装置１が運用開始した後でも、データ転送機能を実現することが可能となる。データ転送に用いるアカウントはデータ転送開始時に発行し、データ転送完了後に削除するので、ＶＭ１１のセキュリティを保ちつつ、データ転送が可能となる。
【００５１】
上述の実施の形態１から実施の形態４において、ＶＭ１１からＶＭＭ１０に転送されるデータの例を以下に述べる。図２に示したようにＶＭ１１は一台のサーバ装置１を共有し、切り替わって動作している。そのため、各ＶＭ１１の単体で性能解析を行っても有効な結果は得られない。そこで、サーバ装置１単位で一元的に集約したデータ採取や俯瞰的な解析が必要となる。上述の実施の形態１から実施の形態４に示したデータ転送方法により、ＶＭＭ１０が各ＶＭ１１より性能解析に必要なデータ（性能情報、リソース情報、環境情報など）を収集することにより、サーバ装置１全体、サーバ装置１で動作する各ＶＭ１１の性能解析を正しく行うことが可能となる。
【００５２】
そして、各ＶＭ１１より収集したリソース情報や環境情報と、サーバ装置１で測定したリソース変化や性能イベントの測定データとを突き合わせることにより、一元的に正確な性能解析や挙動把握、リソース状況把握が可能となる。それにより、予兆監視、性能管理、プロビジョニング、ＶＭのライブマイグレーション先の決定、キャパシティプランニングといった運用管理に非常に有用なデータが得られることが可能となる。
【００５３】
各実施の形態で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００５４】
以上の実施の形態に関し、更に以下の付記を開示する。
【００５５】
（付記１）
複数の仮想計算機を動作させる情報処理装置において、
例外処理を実行し、前記複数の仮想計算機からデータを収集する収集部と、
該収集部及び前記仮想計算機の間のデータ転送を示す特定情報、前記データ転送の状況を示す状況情報及び転送するデータのデータ量を記憶する記憶部と、
転送するデータを記憶するデータ記憶部と、
戻り値を記憶する戻り値記憶部とを備え、
前記仮想計算機は
転送するデータを前記データ記憶部に書き込む書込部と、
例外を発生する命令を実行し、前記収集部に例外処理を実行させる実行部と、
転送済データのデータ量から未転送データのデータ量を算出する算出部と、
前記戻り値記憶部より、戻り値を読み出す読出部と、
前記算出部が算出した未転送データのデータ量及び前記読出部により読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定する決定部と、
前記記憶部に前記特定情報、決定した状況情報及び転送するデータのデータ量を書き込む第２書込部と
を有し、
前記収集部は
前記記憶部に前記特定情報が記憶されているか否かを判定する判定部と、
前記記憶部から状況情報を読み出す第２読出部と、
読み出した状況情報が転送中である場合、前記データ記憶部よりデータを読み出す第３読出部と、
該第３読出部が前記データ記憶部より読み出したデータのデータ量が前記記憶部に記憶されているデータ量と一致している場合、所定の戻り値を戻り値記憶部に書き込む第３書込部とを有する
ことを特徴とする情報処理装置。
【００５６】
（付記２）
前記収集部は
前記判定部が前記記憶部に前記特定情報が記憶されていると判定した場合に、新たな例外の発生を不許可にし、
前記第３書込部が処理結果を戻り値記憶部に書き込んだ後に、新たな例外の発生を許可する許可部を有する
ことを特徴とする付記１に記載の情報処理装置。
【００５７】
（付記３）
前記記憶部には前記仮想計算機を識別する識別情報が記憶されており、
前記第２書込部は前記記憶部に前記特定情報、前記識別情報、前記状況情報及び前記転送するデータのデータ量を記憶し、
前記第３読出部は前記記憶部から前記識別情報を読み出す
ことを特徴とする付記１又は２に記載の情報処理装置。
【００５８】
（付記４）
前記情報処理装置は
前記収集部に接続しデータ転送命令を実行するための接続情報を記憶する接続情報記憶部を備え、
前記仮想計算機は
前記転送データの全体量が予め定めた閾値以上であると判定した場合、前記決定部に転送開始を示す転送状況を生成させる第２判定部と、
前記接続情報記憶部から前記アカウント情報を読み出し、読み出した接続情報を用いて前記収集部に接続しデータ転送を行い、データ転送が終了した場合、前記決定部に状況情報を転送終了と決定させる転送部とを有し、
前記収集部は
前記第２読出部が読み出した状況情報が転送開始である場合、前記接続情報を発行し、発行した接続情報を接続情報記憶部に記憶する発行部と、
前記第２読出部が読み出した転送状況が転送終了であると判定した場合、前記接続情報を削除する削除部とを有する
ことを特徴とする情報処理装置。
【００５９】
（付記５）
前記情報処理装置はＣＰＵを備え、
前記仮想計算機は完全仮想化環境において動作するものであり、
前記仮想計算機が発生させた例外を前記ＣＰＵが検出し、
前記収集部に前記例外処理を行わせる
ことを特徴とする付記１から付記４のいずれか１つに記載の情報処理装置。
【００６０】
（付記６）
複数の仮想計算機を動作させ、
前記仮想計算機が発生させた例外に係る例外処理において、前記仮想計算機とのデータ転送を示す特定情報が記憶されているか否か判定し、
特定情報が記憶されている場合、前記仮想計算機が記憶した転送データを読み出し、
転送データを読み出せたとき、所定の戻り値を記憶し、
前記複数の仮想計算機からデータを収集する収集部を備える情報処理装置の制御プログラムにおいて、
前記仮想計算機として動作する前記情報処理装置が転送済データのデータ量から未転送データのデータ量を算出し、
前記仮想計算機として動作する前記情報処理装置が、前記収集部が記憶した戻り値を読み出し、
前記仮想計算機として動作する前記情報処理装置が算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
前記仮想計算機として動作する前記情報処理装置がデータ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
前記仮想計算機として動作する前記情報処理装置が転送する転送データを記憶し、
前記仮想計算機として動作する前記情報処理装置が例外を引き起こす命令を実行し、前記収集部に例外処理を実行させる
ことを特徴とする制御プログラム。
【００６１】
（付記７）
複数の仮想計算機が動作し、例外処理を行い、該複数の仮想計算機からデータを収集する収集部を備えた情報処理装置の制御方法において、
前記仮想計算機は
前記収集部へ転送済のデータのデータ量から未転送データのデータ量を算出し、
前記収集部が記憶した戻り値を読み出し、
算出した未転送データのデータ量及び読み出した戻り値より、データ転送の状況を示す状況情報及び転送するデータのデータ量を決定し、
データ転送を示す特定情報、決定した状況情報及び転送するデータのデータ量を記憶し、
転送するデータを記憶し、
例外を発生する命令を実行し、前記収集部に例外処理を実行させ、
前記収集部は
前記特定情報が記憶されている場合、
記憶された状況情報が転送中であり、読み出したデータのデータ量が前記転送するデータのデータ量と一致したとき、所定の戻り値を記憶し、
前記仮想計算機は
記憶された戻り値が所定の値であり、未転送データがある場合、上記の処理を繰り返し行うこと
を特徴とする情報処理装置の制御方法。
【符号の説明】
【００６２】
１  サーバ装置
１０  ＶＭＭ（収集部）
１０ａ  特定値判定部（判定部）
１０ｂ  状況判定部（第２読出部）
１０ｃ  取得部（第３読出部）
１０ｄ  結果設定部（第３書込部）
１０ｅ  終了部
１０ｆ  例外管理部（許可部）
１０ｇ  発行部
１０ｈ  削除部
１１  ＶＭ（仮想計算機）
１１０  転送プログラム
１１１  記憶部（書込部）
１１２  設定部（決定部、第２書込部）
１１３  実行部
１１４  算出部
１１５  判定部（読出部）
１１６  生成部
１１７  第２判定部
１１８  転送部
１２０  ゲストＯＳ
１３０  設定記憶部（記憶部）
１４０  データ記憶部
１５０  戻り値記憶部
３０  ＣＰＵ
３１  ＲＯＭ
３２  ＲＡＭ
３３  大容量記憶装置
３４  通信部
３５  読み取り部
２  端末装置
４１，４２  記憶媒体
【図１】
2014206832.tif 000003
【図２】
2014206832.tif 000004
【図３】
2014206832.tif 000005
【図４】
2014206832.tif 000006
【図５】
2014206832.tif 000007
【図６】
2014206832.tif 000008
【図７】
2014206832.tif 000009
【図８】
2014206832.tif 000010
【図９】
2014206832.tif 000011
【図１０】
2014206832.tif 000012
【図１１】
2014206832.tif 000013
【図１２】
2014206832.tif 000014
【図１３】
2014206832.tif 000015
【図１４】
2014206832.tif 000016
【図１５】
2014206832.tif 000017
【図１６】
2014206832.tif 000018