"ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムであって、当該プロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得工程と、前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、を前記プロセッサに実行させることを特徴とするプロファイリングプログラム。前記取得工程は、少なくとも、前記プロセッサが実行中のプログラムの識別情報と、前記プロセッサの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする請求項1に記載のプロファイリングプログラム。プロセッサが、ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得工程と、前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、を実行することを特徴とするプロファイリング方法。ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得手段と、前記取得手段によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存手段と、を備えたことを特徴とするコンピュータ。しかしながら、上記従来技術にあっては、各プロファイリングプログラムとハイパーバイザ1040とのデータのやり取りが必要であり、これがオーバーヘッドとなっていたため、プロファイリング処理にかかる処理効率やデータ精度が低下するといった問題が生じていた。また、上記データのやり取りをおこなうためのインターフェースを、ハイパーバイザ1040および各プロファイリングプログラムに作り込む必要があるため、仮想マシンシステム1000の構築管理にかかる作業期間が長期化するうえ、コストが増加するといった問題が生じていた。また、上述した特許文献1の技術は、特権レベルに応じて割込みアドレスを切り替える機能を備えたCPUを実装する必要があり、この場合、仮想マシンシステムの開発期間が長期化したり、開発コストが増加するといった問題が生じるため、容易に実現できるものではなかった。この発明は、上述した従来技術による問題点を解消するため、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築管理にかかる作業期間の短期化、およびコスト削減を図ることができるプロファイリングプログラム、プロファイリング方法、およびコンピュータを提供することを目的とする。本発明の一側面では、ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得し、取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存するプロファイリングプログラム、プロファイリング方法、およびコンピュータが提案される。本発明にかかるプロファイリングプログラム、プロファイリング方法、およびコンピュータによれば、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築管理にかかる作業期間の短期化、およびコスト削減を図ることができるという効果を奏する。実施の形態以下に添付図面を参照して、この発明にかかるプロファイリング支援プログラム、該プログラムを記録した記録媒体、プロファイリングプログラム、該プログラムを記録した記録媒体、プロファイリング方法、およびコンピュータの好適な実施の形態を詳細に説明する。コンピュータのハードウェア構成まず、この発明の実施の形態にかかるコンピュータのハードウェア構成について説明する。図1は、この発明の実施の形態にかかるコンピュータのハードウェア構成を示す説明図である。図1において、コンピュータ100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、コンピュータ100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ132は、効果音や読み上げ音などの音声を出力する。また、プリンタ133は、画像データや文書データを印刷する。仮想マシンシステムのシステム構成つぎに、この発明の実施の形態にかかる仮想マシンシステムのシステム構成について説明する。図2は、この発明の実施の形態にかかる仮想マシンシステムのシステム構成を示す説明図である。図2に示す、仮想マシンシステム200は、図1に示したコンピュータ100に構成され、1台の物理マシン上で複数の論理マシン仮想マシンを動作させるシステムであり、仮想マシン210~230、ハイパーバイザ240、プロファイリング支援機構250、およびログデータベース260を備えて構成されている。仮想マシン210~230は、それぞれ、各種アプリケーション、OS、およびプロファイリングプログラムを備える。このうち、プロファイリングプログラムは、当該プロファイリングプログラムが搭載された仮想マシンのベンチマークスコアを取得し、取得されたベンチマークスコアを、ハイパーバイザ240を介さずにログデータベース260に出力する。ここで、プロファイリングプログラムは、少なくとも、CPUが実行中のプログラムの識別情報と、CPUの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、ベンチマークスコアとして取得する。ハイパーバイザ240は、各仮想マシン210~230をCPUに割り当てる。ここで、ある時点において、CPUに割り当てられている仮想マシンの数は、コンピュータ本体110図1参照に搭載されているCPUの数と等しい。このため、CPUの数が仮想マシンの数よりも少ない場合、ハイパーバイザ240は、適時たとえば、一定時間経過後、仮想マシンが実行権を放棄した時などCPUに割り当てる仮想マシンを切り替える。プロファイリング支援機構250は、ハイパーバイザ240が仮想マシン210~230のいずれかをCPUに割り当てる際に、CPUに割り当てられる仮想マシン上のプロファイリングプログラムが、直接、CPUからの性能モニタリング割込みを受けるように、CPUを制御するプログラムである。ここで、プロファイリング支援機構250は、ソフトウェアプログラムに限らず、安価なハードウェアデジタル回路等によりその機能を実現してもよい。なお、本実施の形態において、プロファイリング支援機構250は、便宜上、ハイパーバイザ240と別構成としたが、これに限らず、たとえば、ハイパーバイザ240の一機能であってもよい。ログデータベース260は、プロファイリングプログラムから出力されたログを格納するデータベースである。プロファイリング支援機構250の機能的構成つぎに、この発明の実施の形態にかかるプロファイリング支援機構250の機能的構成について説明する。図3は、この発明の実施の形態にかかるプロファイリング支援機構250の機能的構成を示すブロック図である。図3において、プロファイリング支援機構250は、記憶部301と、取得部302と、設定部303と、から構成されている。記憶部301は、各仮想マシン210~230のプロファイリングプログラムのアドレスを記憶する。取得部302は、CPUに割り当てられる仮想マシン上のプロファイリングプログラムのアドレスを取得する。たとえば、取得部302は、仮想マシン上にプロファイリングプログラムが組み込まれる際に、上記プロファイリングプログラムのアドレスを取得して、記憶部301に格納する。また、取得部302は、図5を用いて後述するプロファイリング支援処理にて、記憶部301から、上記プロファイリングプログラムのアドレスを取得する。設定部303は、CPUの性能モニタリング割込みベクタに、取得部302によって取得されたプロファイリングプログラムのアドレスを設定する。また、設定部303は、CPUの性能モニタリング割込みベクタに、CPUに割り当てられる仮想マシン上で稼動するOSと同一の特権レベルを設定する。なお、上述した各機能構成部のうち、取得部302および設定部303は、具体的には、たとえば図1に示したコンピュータ本体110が有するメモリに記憶されたプログラムをCPUが実行することによってその機能を実現する。また、記憶部301は、具体的には、たとえば図1に示したコンピュータ本体110が有するメモリによってその機能を実現する。記憶部301に記憶されているプロファイリングプログラムのアドレスの一例つぎに、記憶部301に記憶されているプロファイリングプログラムのアドレスの一例について説明する。図4は、記憶部301に記憶されているプロファイリングプログラムのアドレスの一例を示す説明図である。図4に示すように、記憶部301には、プロファイリングプログラムのアドレスを示すハンドラアドレスと、制御レジスタ1および制御レジスタ2とが、各仮想マシン210~230を一意に識別するための仮想マシン番号と関連付けられて記憶されている。記憶部301に記憶されたこれらの情報は、たとえば、仮想マシン上にプロファイリングプログラムが組み込まれる際に、取得部302によって取得され、記憶部301に格納されたものである。なお、別の方法として、たとえば、ユーザが手作業でおこなってもよく、プロファイリングプログラムに送信機能を組み込み、プロファイリングプログラムから送信された情報を、プロファイリング支援機構250が自動的に記憶部301に登録するようにしてもよい。プロファイリング支援処理の手順つぎに、この発明の実施の形態にかかるプロファイリング支援機構250によるプロファイリング支援処理の手順について説明する。図5は、この発明の実施の形態にかかるプロファイリング支援機構250によるプロファイリング支援処理の手順を示すフローチャートである。まず、取得部302によって、CPUに割り当てられる仮想マシン上のプロファイリングプログラムのアドレスを取得するステップS501。つぎに、設定部303によって、CPUの性能モニタリング割込みベクタに、取得部302によって取得されたプロファイリングプログラムのアドレスを設定するステップS502。そして、設定部303によって、CPUの性能モニタリング割込みベクタに、CPUに割り当てられる仮想マシン上で稼動するOSと同一の特権レベルを設定してステップS503、一連の処理を終了する。性能モニタリング割込みベクタの一例つぎに、プロファイリングプログラムのアドレスが設定された性能モニタリング割込みベクタの一例について説明する。図6は、プロファイリングプログラムのアドレスが設定された性能モニタリング割込みベクタの一例を示す説明図である。図6に示す例では、CPUの割込みベクタテーブルレジスタに80000000が設定されており、メモリアドレス80000000に割込みベクタテーブルがあることを示す。そして、割込みベクタテーブルの3番地が、性能モニタリング割込みベクタとして使用されており、割込みハンドラアドレス領域と特権レベル領域とによって構成されている。割込みハンドラアドレス領域には、プロファイリング支援機構250によって、プロファイリングプログラムのアドレスが設定される。また、特権レベル領域には、プロファイリング支援機構250によって、CPUに割り当てられる仮想マシン上で稼動するOSと同一の特権レベルが設定される。たとえば、図6に示す例では、プロファイリング支援機構250によって、割込みハンドラアドレス領域に、プロファイリングプログラムのアドレス80900500が設定され、特権レベル領域に、特権レベル1が設定されている。プロファイリング処理の概要つぎに、この発明の実施の形態にかかる仮想マシンシステム200によるプロファイリング処理の概要について説明する。図7は、この発明の実施の形態にかかる仮想マシンシステム200によるプロファイリング処理の概要を示す説明図である。1まず、ハイパーバイザ240によって、仮想マシン210~230のいずれか本例では仮想マシン210がCPUに割り当てられ、割り当てられた仮想マシンの識別情報がプロファイリング支援機構250に送信される。2プロファイリング支援機構250は、記憶部301に記憶されているプロファイリングプログラムのアドレスの中から、割り当てられた仮想マシンに関連付けられているプロファイリングプログラムのアドレスを取得し、取得したプロファイリングプログラムのアドレスをCPUの性能モニタリング割込みベクタに設定する。同時に、CPUに割り当てられる仮想マシン上で稼動するOSと同一の特権レベルをCPUの性能モニタリング割込みベクタに設定する。3CPUは、タイマーやイベントなどをトリガーとした性能モニタリング割込みにより、ハイパーバイザ240を介さず、仮想マシン上の、上記2で設定されたプロファイリングプログラムのアドレスによって特定されるプロファイリングプログラムを直接呼び出す。4性能モニタリング割込みによって呼び出されたプロファイリングプログラムは、プロファイリング処理をおこない、5その結果として、ハイパーバイザ240を介さず、ログをログデータベース260に直接出力する。プロファイリングプログラムの処理概要つぎに、仮想マシン210~230に備えられたプロファイリングプログラムの処理概要について説明する。図8は、仮想マシン210~230に備えられたプロファイリングプログラムの処理概要を示す説明図である。図8は、タイマーにより周期的に割込みが発生する例を示したものでありプロファイリングプログラムは、所定周期ごとに発生するCPUからの割込みを受けるたび、対象プログラムに対するプロファイリングをおこない、その結果として、ログをログデータベース260に出力する。ログの一例つぎに、プロファイリングプログラムによって出力されたログの一例について説明する。図9は、プロファイリングプログラムによって出力されたログの一例を示す説明図である。図9に示すように、各仮想マシンから出力されたログは、仮想マシンごとにログデータベース260に蓄積されており、タイムスタンプ、プロセスID、およびアドレスが、CPUを一意に識別するためのCPU番号に関連付けられて構成されている。たとえば、CPU番号によって、複数のCPUが搭載されている場合であっても、どのCPUで仮想マシンが稼動したかを特定することができる。また、タイムスタンプ、プロセスID、およびアドレスによって、どのアプリケーションが、いつ、どれくらい実行されていたかを特定することができる。このように、仮想マシンごとにログが蓄積されたことにより、仮想マシンごとの詳細動作を把握することができるようになっている。また、図9に示すように、ログをCPU番号ごとに集計し、タイムスタンプ順にソートすることにより、仮想マシンシステム200全体の詳細動作を、時系列で把握することができるようになっている。以上説明したように、この発明の実施の形態にかかるプロファイリング支援プログラム、該プログラムを記録した記録媒体、プロファイリングプログラム、該プログラムを記録した記録媒体、プロファイリング方法、およびコンピュータによれば、仮想マシンにCPUが割り当てられた際に、CPUの性能モニタリング割込みベクタに、CPUが割り当てられた仮想マシン上のプロファイリングプログラムのアドレスを設定する構成としたため、CPUが割り当てられた仮想マシンは、割込みハンドラをCPUから直接受け取り、プロファイリングプログラムのアドレスを実行することができる。また、上記構成に加え、ハイパーバイザを介さずにログをデータベースに直接出力することが可能なプロファイリングプログラムを、各仮想マシン上に備えたことにより、ハイパーバイザと各プロファイリングプログラムとの間のインターフェースを省くことができる。すわなち、上記インターフェースに伴う、ハイパーバイザや、各プロファイリングプログラムの修正作業を省くことができる。また、上記構成に加え、CPUの識別情報およびタイムスタンプを含んだログをデータベースに出力することが可能なプロファイリングプログラムを、各仮想マシン上に備えたことにより、各仮想マシンの性能分析および仮想マシンシステム全体の性能分析を、データベースに蓄積されたログから、容易におこなわせることができる。また、上記構成に加え、仮想マシンにCPUが割り当てられた際に、CPUの性能モニタリング割込みベクタに、CPUが割り当てられた仮想マシン上のOSと同一の特権レベルを設定する構成としたため、問題発生時の影響をCPUが割り当てられた仮想マシンに限定することができるうえ、セキュリティホールを防ぐことができる。以上のことから、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築管理にかかる作業期間の短期化、およびコスト削減を図ることができる。なお、本実施の形態で説明したプロファイリング方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。付記1ハイパーバイザによりCPUに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得させる取得工程と、前記CPUの性能モニタリング割込みベクタに、前記取得工程によって取得されたプロファイリングプログラムのアドレスを設定させる設定工程と、を前記CPUに実行させることを特徴とするプロファイリング支援プログラム。付記2前記設定工程は、前記CPUの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたOSと同一の特権レベルを設定させることを特徴とする付記1に記載のプロファイリング支援プログラム。付記3付記1または2に記載のプロファイリング支援プログラムを記録したコンピュータ読み取り可能な記録媒体。付記4ハイパーバイザによりCPUに割り当てられた仮想マシン上に実装されるプロファイリングプログラムであって、当該プロファイリングプログラムのアドレスが、前記CPUの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得させる取得工程と、前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存させる保存工程と、を前記CPUに実行させることを特徴とするプロファイリングプログラム。付記5前記取得工程は、少なくとも、前記CPUが実行中のプログラムの識別情報と、前記CPUの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得させることを特徴とする付記4に記載のプロファイリングプログラム。付記6付記4または5に記載のプロファイリングプログラムを記録したコンピュータ読み取り可能な記録媒体。付記7ハイパーバイザによりCPUに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得する取得工程と、前記CPUの性能モニタリング割込みベクタに、前記取得工程によって取得されたプロファイリングプログラムのアドレスを設定する設定工程と、を含んだことを特徴とするプロファイリング方法。付記8前記設定工程は、前記CPUの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたOSと同一の特権レベルを設定することを特徴とする付記7に記載のプロファイリング方法。付記9前記仮想マシンのベンチマークスコアを取得するベンチマークスコア取得工程と、前記ベンチマークスコア取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、をさらに含んだことを特徴とする付記7または8に記載のプロファイリング方法。付記10前記ベンチマークスコア取得工程は、少なくとも、前記CPUが実行中のプログラムの識別情報と、前記CPUの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする付記9に記載のプロファイリング方法。付記11ハイパーバイザによりCPUに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得する取得手段と、前記CPUの性能モニタリング割込みベクタに、前記取得手段によって取得されたプロファイリングプログラムのアドレスを設定する設定手段と、を備えたことを特徴とするコンピュータ。付記12前記設定手段は、前記CPUの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたOSと同一の特権レベルを設定することを特徴とする付記11に記載のコンピュータ。付記13前記仮想マシンのベンチマークスコアを取得するベンチマークスコア取得手段と、前記ベンチマークスコア取得手段によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存手段と、をさらに備えたことを特徴とする付記11または12に記載のコンピュータ。付記14前記ベンチマークスコア取得手段は、少なくとも、前記CPUが実行中のプログラムの識別情報と、前記CPUの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする付記13に記載のコンピュータ。"