"1個以上の物理的なプロセッサと、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、前記仮想マシンごとに、前記管理表の制御情報に基づいてしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する決定部と、前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、を備えることを特徴とする計算機。前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする請求項1に記載の計算機。前記決定部は、前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする請求項1または2に記載の計算機。物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定することを特徴とする制御方法。物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報をメモリから読み出して前記制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する、処理をコンピュータに実行させるプログラム。しかしながら、従来の技術では、物理的なCPUの負荷の状態にかかわらず、各仮想マシンは、予め設定されているクロック周波数で動作する。そのため、物理的なCPUが負荷の低い状態にあるため、各仮想マシンを低速で実行することができる状態であるにもかかわらず、仮想マシンに高いクロック周波数が設定されている場合には、物理的なCPUが高いクロック周波数で動作することがある。また、物理的なCPUの負荷に応じて物理的なCPUのクロック周波数の上げ下げを行う場合、クロック周波数が低くてもかまわない仮想マシンが物理的なCPUに割り当てられているときでも、物理的なCPUの負荷が高い状態のときには、物理的なCPUが高いクロック周波数で動作することがある。このように、物理的なCPUが低いクロック周波数で動作することができる状況のときでも、それよりも高いクロック周波数で物理的なCPUが動作することがあるため、無駄な電力を消費してしまうという問題点がある。消費電力を削減することができる計算機、制御方法及びプログラムを提供することを目的とする。計算機は、1個以上の物理的なプロセッサ、管理表、決定部及び変更部を備えている。管理表は、複数の仮想マシンごとに、クロック周波数を制御する制御情報を管理する。仮想マシンは、物理的なプロセッサで実行されることによって実現される。制御情報は、仮想マシンの種別に応じて設定されている。決定部は、仮想マシンごとに、管理表の制御情報に基づいてしきい値を求める。決定部は、仮想マシンごとに、しきい値と物理的なプロセッサの利用率とに基づいてクロック周波数を決定する。変更部は、決定部により決定されたクロック周波数に基づいて物理的なプロセッサのクロック周波数を変更する。この計算機、制御方法及びプログラムによれば、消費電力を削減することができる。以下に添付図面を参照して、この計算機、制御方法及びプログラムの好適な実施の形態を詳細に説明する。計算機、制御方法及びプログラムは、仮想マシンごとに、仮想マシンの種別に応じた制御情報に基づいてしきい値を求め、しきい値とプロセッサの利用率負荷とに基づいてクロック周波数を決定し、プロセッサのクロック周波数を決定したクロック周波数に変更するものである。以下の各実施例の説明においては、同様の構成要素には同一の符号を付して、重複する説明を省略する。実施例1図1は、実施例1にかかる計算機を示すブロック図である。図1に示すように、計算機は、1個以上の物理的なプロセッサ3、管理表4、決定部5及び変更部6を備えている。管理表4は、複数の仮想マシン1,2ごとに、クロック周波数を制御する制御情報を管理する。仮想マシン1,2は、物理的なプロセッサ3で実行されることによって実現される。制御情報は、仮想マシン1,2の種別に応じて設定されている。決定部5は、仮想マシン1,2ごとに、管理表4の制御情報に基づいてしきい値を求める。決定部5は、仮想マシン1,2ごとに、しきい値と物理的なプロセッサ3の利用率とに基づいてクロック周波数を決定する。変更部6は、決定部5により決定されたクロック周波数に基づいて物理的なプロセッサ3のクロック周波数を変更する。実施例1によれば、仮想マシン1,2の種別に応じて仮想マシン1,2のクロック周波数が決まり、それに応じて物理的なプロセッサ3のクロック周波数が変更される。例えば、物理的なプロセッサ3の利用率に連動してクロック周波数が変動する仮想マシン1,2の場合には、物理的なプロセッサ3の利用率に連動したクロック周波数で物理的なプロセッサ3が動作する。物理的なプロセッサ3の利用率に連動し、かつ重み付けされてクロック周波数が変動する仮想マシン1,2の場合には、物理的なプロセッサ3の利用率に連動し、かつ重み付けされたクロック周波数で物理的なプロセッサ3が動作する。一定のクロック周波数で動作する仮想マシン1,2の場合には、一定のクロック周波数で物理的なプロセッサ3が動作する。つまり、物理的なプロセッサ3が低いクロック周波数で動作することができる状況のときには、物理的なプロセッサ3が低いクロック周波数で動作するので、計算機の消費電力を削減することができる。実施例2ハードウェア構成の説明図2は、実施例2にかかる計算機のハードウェア構成を示すブロック図である。図2に示すように、計算機は、物理的なプロセッサとして例えばCPU11、表示部12、キー13、メインメモリ14及びNANDNotANDメモリ15を備えている。CPU11、表示部12、キー13、メインメモリ14及びNANDメモリ15は、バス16に接続されている。CPU11は、計算機全体の制御を司る。CPU11は、後述するプログラムを実行し、後述する種々の仮想マシンVM:VirtualMachineや仮想マシンモニタを実現する。CPU11は、クロック周波数CPU周波数や駆動電圧を動的に変更することができるものである。表示部12は、例えば液晶パネルを備えている。キー13は、例えば数字や文字を入力するためのキーやボタンを備えている。キー13は、表示部12と一体化されたタッチパネルを備えており、表示部12に表示されたキーの画像に触れることにより数字や文字を入力することができるようになっていてもよい。メインメモリ14は、CPU11の作業領域として用いられる。メインメモリ14には、例えばOSやアプリケーションのプログラムが展開されてもよい。CPU11は、メインメモリ14に展開されたOSやアプリケーションのプログラムを実行してもよい。メインメモリ14は、例えばRAMRandomAccessMemoryを備えている。NANDメモリ15は、例えばOSやアプリケーションのプログラムを格納している。OSやアプリケーションのプログラムは、NANDメモリ15から読み出されてメインメモリ14に展開されてもよい。NANDメモリ15は、不揮発性のメモリとして、例えばNAND型のフラッシュメモリを備えていてもよい。計算機は、NANDメモリ15の代わりに、他の不揮発性メモリを備えていてもよい。なお、計算機が携帯電話機などの無線通信端末である場合には、計算機は無線通信部を備えている。また、計算機は、画像処理や音声処理を行うDSPDigitalSignalProcessorや、外部メモリとのインタフェースなどを備えていてもよい。機能的な構成の説明図3は、実施例2にかかる計算機の機能的な構成を示すブロック図である。図3に示すように、計算機は、複数の仮想マシン21~25及び仮想マシンモニタ26を備えている。仮想マシン21~25及び仮想マシンモニタ26は、CPU11が仮想マシン及び仮想マシンモニタを実現するプログラムを実行することにより実現されてもよい。例えば各仮想マシン21~25では、独立してOSが実行されてもよい。以下の説明では、仮想マシン21~25のIDIdentifier、識別子を例えばA、B、C、D及びEとする。仮想マシン21,22は、ゲスト仮想マシン以下、ゲストVMと表記するである。ゲスト仮想マシン21及びゲスト仮想マシン22を、それぞれ、ゲストVM-A21及びゲストVM-B22と表記することがある。ゲストVM-A21及びゲストVM-B22は、ユーザーが使用するアプリケーションを動作させる仮想マシンである。ゲストVMは、使用形態に応じて、一つだけ起動されてもよいし、複数起動されてもよい。ゲストVMは、例えばフロントエンドドライバ27,28を備えている。フロントエンドドライバ27,28は、ゲストVMがデバイスを操作する際に利用されるモジュールである。フロントエンドドライバ27,28は、後述するドライバ仮想マシンと連携して、デバイスを操作する処理を行う。仮想マシン23,24は、ドライバ仮想マシン以下、ドライバVMと表記するである。ドライバ仮想マシン23及びドライバ仮想マシン24を、それぞれ、ドライバVM-C23及びドライバVM-D24と表記することがある。ドライバVM-C23及びドライバVM-D24は、デバイスを制御するデバイスドライバを動作させる仮想マシンである。デバイス種別ごとにドライバVMが起動されることがあるので、複数のドライバVMが起動されることがある。ドライバVMは、例えばバックエンドドライバ29,30を備えている。バックエンドドライバ29,30は、ゲストVMのフロントエンドドライバ27,28からの要求を受けて、デバイスの操作を行う。図示例では、例えばドライバVM-C23のバックエンドドライバ29は、キー13の操作を行う。例えばドライバVM-D24のバックエンドドライバ30は、NANDメモリ15の操作を行う。仮想マシン25は、サービス仮想マシン以下、サービスVMと表記するである。サービス仮想マシン25をサービスVM-E25と表記することがある。サービスVM-E25は、ユーザーにより直接操作されるわけではなく、バックグラウンドで動作する。サービスVM-E25は、例えばウイルスチェックなどシステムに必要な補助的なサービスを実施する。仮想マシンモニタ26は、一つのCPU11を複数の仮想マシンとして利用する制御を行う。それによって、一つのCPU11を複数の仮想マシンとして利用することができる。仮想マシンモニタ26は、決定部として例えばゲスト電力制御モジュール31を備えている。ゲスト電力制御モジュール31は、例えば管理表としてゲスト電力制御管理表32を備えている。ゲスト電力制御モジュール31は、一定間隔またはゲストVMの切り替え時に動作して、ゲスト電力制御管理表32を参照し、更新の必要があるときにはゲスト電力制御管理表32を更新する。ゲスト電力制御モジュール31は、各仮想マシンのCPU周波数を変更する必要があるか否かを判断し、変更の必要がある場合には後述するCPU周波数切り替え処理を行う。ゲスト電力制御管理表32は、仮想マシンごとに、仮想マシンの種別や動作状態に応じて電力制御を行うのに必要な情報を保持する。ゲスト電力制御管理表32は、例えばメインメモリ14やNANDメモリ15に記憶される。仮想マシンの種別には、例えば上述したゲストVMやドライバVMやサービスVMなどがある。仮想マシンの動作状態には、例えばフォアグラウンドで動作している状態とバックグラウンドで動作している状態がある。また、ゲスト電力制御管理表32の一部として、あるいはゲスト電力制御管理表32とは別に、後述するMaxデフォルト値及びMinデフォルト値、並びにフロント係数のデフォルト値が、例えばメインメモリ14やNANDメモリ15に記憶されていてもよい。仮想マシンモニタ26は、画面切り替え制御モジュール33、CPUスケジューラ34、及び変更部として例えばCPU周波数変更処理モジュール35を備えている。画面切り替え制御モジュール33は、ユーザーが、計算機の図示しない画面切り替えキーを押下するなどの画面の切り替え操作を行ったときに呼び出される。画面切り替え制御モジュール33は、新規にフロント画面で操作されるゲストVM、すなわちフォアグラウンドで動作するゲストVMを決定し、フロント画面で操作されるゲストVMを切り替える。CPUスケジューラ34は、CPU11に仮想マシンを割り当てる制御を行う。割り当て方の一例として、例えばCREDITやSEDFSimpleEarliestDeadlineFirstやBVTBorrowedVirtualTimeなどのポリシーがある。また、複数のポリシーの中から適宜選択して割り当てるようにしてもよい。CPUスケジューラ34は、CPU11で動作させる仮想マシンの切り替えに合わせてゲスト電力制御モジュール31のCPU周波数切り替え処理を呼び出す。CPU周波数変更処理モジュール35は、CPU11のCPU周波数を変更する処理を実行する。ゲスト電力制御管理表の一例図4は、実施例2にかかる計算機の管理表の一例を示す図表である。図4に示すように、ゲスト電力制御管理表32は、例えばVM_IDフィールド、VMタイプ係数フィールド、フロント係数フィールド及びCPU周波数フィールドを有する。VM_IDフィールドには、仮想マシンのIDが格納される。VMタイプ係数フィールドには、仮想マシンの種別に関する制御情報としてVMタイプ係数の値が格納される。仮想マシンの種別に関する制御情報は、仮想マシンの種別に応じて予め設定されていてもよい。フロント係数フィールドには、仮想マシンの動作状態に関する制御情報としてフロント係数の値が格納される。仮想マシンの動作状態に関する制御情報は、仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、によって動的に変化してもよい。CPU周波数フィールドには、仮想マシンが動作する際にCPU11に設定されるCPU周波数が格納される。仮想マシンのCPU周波数の決定方法の一例VMタイプ係数の値及びフロント係数の値は、例えば次の1式及び2式において用いられる。1式及び2式において、しきい値Max及びしきい値Minは、それぞれ、CPU11の利用率と比較されるしきい値の最大値及び最小値である。ゲスト電力制御モジュール31は、CPU11の利用率がしきい値Maxよりも大きい場合には仮想マシンのCPU周波数を高くし、CPU11の利用率がしきい値Minよりも小さい場合には仮想マシンのCPU周波数を低くするように、制御する。Maxデフォルト値及びMinデフォルト値は、それぞれ、しきい値の最大値及び最小値のデフォルト値であり、予め設定されていてもよい。1式及び2式によれば、VMタイプ係数の値が大きいと、しきい値Max及びしきい値Minがともに大きくなるので、仮想マシンのCPU周波数は、CPU11の利用率が大きくなっても高くなりにくく、かつCPU11の利用率が小さくなると低くなりやすい。つまり、VMタイプ係数の値が大きい仮想マシンは、できるだけ低いCPU周波数で動作するように制御される。それに対して、VMタイプ係数の値が小さいと、しきい値Max及びしきい値Minがともに小さくなるので、仮想マシンのCPU周波数は、CPU11の利用率が大きくなると高くなりやすく、かつCPU11の利用率が小さくなっても低くなりにくい。つまり、VMタイプ係数の値が小さい仮想マシンは、できるだけ高いCPU周波数で動作するように制御される。例えば図4に示す例では、VMタイプ係数の標準値は例えば1である。仮想マシンのIDがA及びBであるゲストVMのVMタイプ係数は標準値に設定されている。ゲストVMは、CPU11の利用率に連動してCPU周波数が変動する仮想マシンである。仮想マシンのIDがC及びDであるドライバVMのVMタイプ係数は標準値や標準値と異なる値、例えば1や1.2に設定されている。ドライバVMは、CPU11の利用率に連動し、かつ重み付けされてCPU周波数が変動する仮想マシンである。例えば、ドライバVM-CのVMタイプ係数の値は1であり、ドライバVM-DのVMタイプ係数の値は1.2であるので、ドライバVM-CはドライバVM-Dよりも高いCPU周波数で動作しやすいように設定されていることになる。仮想マシンのIDがEであるサービスVMのVMタイプ係数の値は例えば0に設定されている。VMタイプ係数の値が例えば0に設定されている仮想マシンは、CPU11の利用率に連動しないで、一定のCPU周波数で動作する仮想マシンである。また、フロント係数の値についても同様であり、フロント係数の値が大きい仮想マシンは、できるだけ低いCPU周波数で動作するように制御される。フロント係数の値が小さい仮想マシンは、できるだけ高いCPU周波数で動作するように制御される。例えば図4に示す例では、フロント係数のデフォルト値は例えば0.9である。仮想マシンのIDがAであるゲストVMのフロント係数はデフォルト値に設定されている。仮想マシンのIDがBであるゲストVMのフロント係数はデフォルト値よりも大きい値、例えば1に設定されている。従って、ゲストVM-AはゲストVM-Bよりも高いCPU周波数で動作しやすいように設定されていることになり、ゲストVM-Aがフォアグラウンドで動作し、ゲストVM-Bがバックグラウンドで動作していることになる。制御方法の説明[CPU周波数定期更新処理]図5は、実施例2にかかる制御方法におけるCPU周波数定期更新処理を示すフローチャートである。CPU周波数定期更新処理は、ゲスト電力制御モジュール31により一定間隔で定期的に実施される。図5に示すように、CPU周波数定期更新処理は、例えば計算機に内蔵されたタイマーの割り込みにより一定間隔おきに起動される。CPU周波数定期更新処理が開始されると、ゲスト電力制御モジュール31は、まず、例えばCPUスケジューラ34のCPU負荷計測モジュール図3において図示省略を呼び出し、直近の計算機全体でのCPU11の利用率を算出するステップS1。次いで、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、一番目の仮想マシンのVMタイプ係数の値が0であるか否かを判断するステップS2。なお、ステップS2をステップS1の前に行ってもよい。VMタイプ係数の値が0でない場合ステップS2:No、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、例えば上述した1式及び2式に基づいて、しきい値Max及びしきい値Minを計算するステップS3。なお、ステップS1の前にステップS2及びステップS3を行ってもよい。次いで、ゲスト電力制御モジュール31は、ステップS1で算出したCPU11の利用率がしきい値Maxよりも大きいか否か、またはしきい値Minよりも小さいか否か、を判断するステップS4。しきい値Maxよりも大きいか、またはしきい値Minよりも小さい場合ステップS4:Yes、ゲスト電力制御モジュール31は、当該仮想マシンのCPU周波数を決定する。そして、ゲスト電力制御モジュール31は、決定したCPU周波数が現在の設定値と異なる場合には、ゲスト電力制御管理表32のCPU周波数フィールドの、当該仮想マシンに対応する格納値を更新するステップS5。ステップS5では、例えば、CPU11の利用率がしきい値Maxよりも大きい場合には、当該仮想マシンのCPU周波数を現在の設定値よりも高くしてもよい。CPU周波数を現在の設定値よりも高くする場合には、例えば複数段階に設定可能なCPU周波数の最も高い周波数が設定されてもよい。例えばCPU周波数が600MHz、500MHz、250MHz及び125MHzの4段階に設定可能である場合、最も高い600MHzが設定されてもよい。また、例えば、CPU11の利用率がしきい値Minよりも小さい場合には、当該仮想マシンのCPU周波数を現在の設定値よりも低くしてもよい。CPU周波数を現在の設定値よりも低くする場合には、例えば複数段階に設定可能なCPU周波数の一段低い周波数が設定されてもよい。例えばCPU周波数が600MHz、500MHz、250MHz及び125MHzの4段階に設定可能であり、現在の設定値が500MHzである場合、一段低い250MHzが設定されてもよい。次いで、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32のCPU周波数フィールドの格納値が更新された仮想マシンが現在、CPU11で動作中である場合には、CPU周波数変更処理モジュール35を呼び出す。呼び出されたCPU周波数変更処理モジュール35は、CPU11のCPU周波数の設定を、ステップS5で決定された周波数に更新するステップS6。そして、ステップS7へ進む。一方、仮想マシンのVMタイプ係数の値が0である場合ステップS2:Yes、またはCPU11の利用率がしきい値Min以上で、かつしきい値Max以下である場合ステップS4:Noも、ステップS7へ進む。ゲスト電力制御モジュール31は、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて上述した一連の更新処理が終了したか否かを判断するステップS7。終了していればステップS7:Yes、一連のCPU周波数定期更新処理が終了となる。終了していなければステップS7:No、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、次の仮想マシンについてステップS2~ステップS7の処理を行う。ゲスト電力制御モジュール31は、以上の一連の処理を、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて終了するまで、繰り返す。[仮想マシン割り当て処理]図6は、実施例2にかかる制御方法における仮想マシン割り当て処理を示すフローチャートである。仮想マシン割り当て処理は、CPUスケジューラ34により実施される。図6に示すように、仮想マシン割り当て処理は、例えば計算機に内蔵されたタイマーの割り込みにより起動される。CPU11にある仮想マシンが割り当てられて動作しているときに仮想マシン割り当て処理が開始されると、CPUスケジューラ34は、それまでCPU11で動作していた仮想マシンの状態をメインメモリ14やNANDメモリ15に保存するステップS11。CPU11で動作していた仮想マシンの状態は、CPU11のレジスタから得られる。次いで、CPUスケジューラ34は、ポリシーに従って、次に動作させる仮想マシンを選択し、選択した仮想マシンの動作時間を決定するステップS12。次いで、CPUスケジューラ34は、ステップS12で選択した仮想マシンの動作が開始された後の次のタイマーの割り込みタイミング、すなわちCPUスケジューラ34の起動タイミングを設定するステップS13。次いで、CPUスケジューラ34は、CPU11のCPU周波数を切り替える処理を行うステップS14。CPU11のCPU周波数を切り替える処理CPU周波数切り替え処理については後述する。次いで、CPUスケジューラ34は、ステップS12で選択した仮想マシンの状態を、以前に保存したメモリ領域から読み出し、CPU11のレジスタに仮想マシンの状態を設定して復元するステップS15。これによって、CPUスケジューラ34によって新たにスケジューリングされた仮想マシンの実行が開始される。そして、CPUスケジューラ34は、仮想マシン割り当て処理を終了する。[仮想マシン切り替え時のCPU周波数切り替え処理]図7は、実施例2にかかる制御方法におけるCPU周波数切り替え処理を示すフローチャートである。仮想マシン切り替え時のCPU周波数切り替え処理は、上述した仮想マシンの切り替え時にCPUスケジューラ34から呼び出される。図7に示すように、CPU周波数切り替え処理では、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32から、切り替え前の仮想マシンのCPU周波数、及び切り替え後の仮想マシンのCPU周波数を参照するステップS21。切り替え前の仮想マシンは、現在CPU11で動作中の仮想マシンである。切り替え後の仮想マシンは、次に動作する仮想マシンである。次いで、ゲスト電力制御モジュール31は、切り替え前の仮想マシンのCPU周波数と、切り替え後の仮想マシンのCPU周波数とが異なるか否かを判断するステップS22。異なる場合ステップS22:Yes、ゲスト電力制御モジュール31は、CPU周波数変更処理モジュール35を呼び出す。呼び出されたCPU周波数変更処理モジュール35は、CPU11のCPU周波数の設定を、次に動作する仮想マシンのCPU周波数に更新するステップS23。そして、CPUスケジューラ34による仮想マシン割り当て処理に戻る。一方、切り替え前の仮想マシンのCPU周波数と、切り替え後の仮想マシンのCPU周波数とが同じである場合もステップS22:No、CPUスケジューラ34による仮想マシン割り当て処理に戻る。[フロント係数設定変更処理]図8は、実施例2にかかる制御方法におけるフロント係数設定変更処理を示すフローチャートである。ユーザーによる画面の切り替え操作によって画面切り替え制御モジュール33が呼び出されると、画面切り替え制御モジュール33によってフロント係数設定変更処理が呼び出される。図8に示すように、フロント係数設定変更処理が開始されると、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、一番目の仮想マシンがフォアグラウンドで動作しているか否かを判断するステップS31。フォアグラウンドで動作している場合ステップS31:Yes、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32のフロント係数フィールドの、当該仮想マシンに対応する格納値をデフォルト値に設定するステップS32。そして、ステップS34へ進む。一方、仮想マシンがフォアグラウンドで動作していない場合ステップS31:No、ゲスト電力制御管理表32のフロント係数フィールドの、当該仮想マシンに対応する格納値をデフォルト値よりも大きい値に設定するステップS33。そして、ステップS34へ進む。ゲスト電力制御モジュール31は、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて上述した一連の変更処理が終了したか否かを判断するステップS34。終了していればステップS34:Yes、一連のフロント係数設定変更処理が終了となる。終了していなければステップS34:No、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、次の仮想マシンについてステップS31~ステップS34の処理を行う。ゲスト電力制御モジュール31は、以上の一連の処理を、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて終了するまで、繰り返す。動作の具体例以下の各具体例では、図3に示す構成を例にして説明する。例えば、設定可能なCPU周波数を600MHz、500MHz、250MHz及び125MHzとして説明する。例えば、Maxデフォルト値を80とし、Minデフォルト値を75として説明する。また、CPU周波数を現在の設定値よりも高くする場合には、設定可能なCPU周波数の最も高い周波数が設定され、CPU周波数を現在の設定値よりも低くする場合には、設定可能なCPU周波数の一段低い周波数が設定されるとして説明する。なお、設定可能なCPU周波数、Maxデフォルト値及びMinデフォルト値は、これに限らないし、CPU周波数の設定値を変更する場合もこの例に限らない。[具体例1.CPUの利用率が下降していく例]図9は、CPUの利用率が下降していく例における各種情報の一例を示す図表である。図9に示す図表において、各仮想マシンのしきい値Max及びしきい値Minは、上述した1式及び2式から算出したものである図11、図13及び図15においても同じ。具体例1では、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24のCPU周波数が600MHzであり、サービスVM-E25のCPU周波数が250MHzである状態から説明する。図10は、CPUの利用率が下降していく例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が100である場合、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。サービスVM-E25は、しきい値Max及びしきい値Minがともに0である。しきい値Max及びしきい値Minがともに0である仮想マシンのCPU周波数は、CPU利用率に関係なく、一定のままである。従って、サービスVM-E25のCPU周波数は、250MHzのままである。直近のCPU利用率が85になると、ドライバVM-D24については、CPU利用率がしきい値Minよりも小さいので、一段低い周波数である500MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ドライバVM-D24に対応する格納値が500MHzとなる。直近のCPU利用率が70になると、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、500MHz及び250MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24に対応する格納値は、それぞれ500MHz、500MHz及び250MHzとなる。直近のCPU利用率が65になると、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、250MHz、250MHz及び125MHzが設定される。サービスVM-E25のCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24に対応する格納値は、それぞれ500MHz、250MHz、250MHz及び125MHzとなる。このように、CPUの利用率が下降していく場合、バックグラウンドで動作しているゲストVM-BのCPU周波数が、フォアグラウンドで動作しているゲストVM-AのCPU周波数よりも優先的に低くなっていく。また、同じドライバVMでも、VMタイプ係数の値が大きい仮想マシンのCPU周波数が、優先的に低くなっていく。[具体例2.CPUの利用率が上昇していく例]図11は、CPUの利用率が上昇していく例における各種情報の一例を示す図表である。具体例2では、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24のCPU周波数が125MHzであり、サービスVM-E25のCPU周波数が250MHzである状態から説明する。図12は、CPUの利用率が上昇していく例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が65である場合、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、CPU利用率がしきい値Minよりも小さいので、一段低い周波数が設定される。ここでは、現在の設定値が最も低い125MHzであるので、125MHzが設定される。サービスVM-E25のCPU周波数は、250MHzのままである。直近のCPU利用率が75になると、ゲストVM-A21については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-A21に対応する格納値が600MHzとなる。直近のCPU利用率が85になると、ゲストVM-A21、ゲストVM-B22及びドライバVM-C23については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-A21、ゲストVM-B22及びドライバVM-C23に対応する格納値が600MHzとなる。直近のCPU利用率が95になった場合も同様である。このように、CPUの利用率が上昇していく場合、フォアグラウンドで動作しているゲストVM-A21のCPU周波数が、バックグラウンドで動作しているゲストVM-B22のCPU周波数よりも優先的に高くなっていく。また、同じドライバVMでも、VMタイプ係数の値が小さい仮想マシンのCPU周波数が、優先的に高くなっていく。[具体例3.フォアグラウンドで動作する仮想マシンを切り替える例]図13は、フォアグラウンドで動作する仮想マシンを切り替える例における各種情報の一例を示す図表である。具体例3では、具体例2の図11と同様に、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24のCPU周波数が125MHzであり、サービスVM-E25のCPU周波数が250MHzである状態から説明する。図13に示す各種情報は、フォアグラウンドで動作する仮想マシンを切り替えた後の情報である。図14は、フォアグラウンドで動作する仮想マシンを切り替える例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が65である場合、具体例2と同様に、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、125MHzのCPU周波数が設定される。サービスVM-E25のCPU周波数は、250MHzのままである。直近のCPU利用率が75になると、具体例2と同様に、ゲストVM-A21のCPU周波数は、600MHzに設定される。他の仮想マシンのCPU周波数は、変化しない。CPU利用率が75のままであるが、フォアグラウンドで動作する仮想マシンがゲストVM-A21からゲストVM-B22に切り替わると、ゲストVM-A21はバックグラウンドでの動作に切り替わる。それによって、図13に示すように、ゲストVM-A21のフロント係数が1に更新され、ゲストVM-B22のフロント係数が0.9に更新される。そして、ゲストVM-A21のしきい値Max及びしきい値Minは、それぞれ80及び75に更新される。また、ゲストVM-B22のしきい値Max及びしきい値Minは、それぞれ72及び68に更新される。従って、ゲストVM-B22については、CPU利用率がしきい値Maxを超えることになるので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、図13に示すように、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-B22に対応する格納値が600MHzとなる。直近のCPU利用率が70になると、ゲストVM-A21、ドライバVM-C23及びドライバVM-D24については、CPU利用率がしきい値Minよりも小さくなるので、一段低い周波数が設定される。ゲストVM-A21のCPU周波数は、500MHzに設定される。ドライバVM-C23及びドライバVM-D24については、現在の設定値が最も低い125MHzであるので、125MHzが設定される図14には現れていない。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-A21に対応する格納値が500MHzとなる。このように、CPU利用率が上昇していくと、フォアグラウンドで動作しているゲストVM-A21のCPU周波数が、バックグラウンドで動作しているゲストVM-B22のCPU周波数よりも優先的に高くなっていく。そして、フォアグラウンドで動作する仮想マシンが切り替わると、新たにフォアグラウンドで動作することになったゲストVM-B22のCPU周波数が、新たにバックグラウンドで動作することになったゲストVM-A21のCPU周波数よりも優先的に高くなっていく。また、CPU利用率が下降してきたとき、バックグラウンドで動作するゲストVM-A21のCPU周波数が、フォアグラウンドで動作しているゲストVM-B22のCPU周波数よりも優先的に低くなっていく。[具体例4.新たに仮想マシンが起動する例]図15は、新たに仮想マシンが起動する例における各種情報の一例を示す図表である。具体例4では、具体例1の図9と同様に、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24のCPU周波数が600MHzであり、サービスVM-E25のCPU周波数が250MHzである状態から説明する。図15に示す各種情報は、新たにVM_IDがFである仮想マシンゲストVM-Fとするが起動した後の情報である。図16は、新たに仮想マシンが起動する例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が100である場合、具体例1と同様に、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23及びドライバVM-D24については、600MHzのCPU周波数が設定される。サービスVM-E25のCPU周波数は、250MHzのままである。直近のCPU利用率が85になると、具体例1と同様に、ドライバVM-D24のCPU周波数が500MHzに設定される。他の仮想マシンのCPU周波数は、変化しない。ここで、CPU利用率が85のままであるが、新たにゲストVM-Fが起動されたとする。ゲストVM-Fがバックグラウンドで動作すると、図15に示すように、CPU利用率がゲストVM-Fのしきい値Max80を超えているので、ゲストVM-FのCPU周波数は、最も高い周波数である600MHzに設定される。直近のCPU利用率が70になると、ゲストVM-B22、ドライバVM-C23、ドライバVM-D24及びゲストVM-Fについては、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、500MHz、250MHz及び500MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-B22、ドライバVM-C23、ドライバVM-D24及びゲストVM-Fに対応する格納値は、それぞれ500MHz、500MHz、250MHz及び500MHzとなる。直近のCPU利用率が65になると、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23、ドライバVM-D24及びゲストVM-Fについては、CPU利用率がしきい値Minよりも小さくなるので、一段低い周波数が設定される。ゲストVM-A21のCPU周波数は、500MHzに設定される。ゲストVM-B22、ドライバVM-C23及びゲストVM-FのCPU周波数は、250MHzに設定される。ドライバVM-D24のCPU周波数は、125MHzに設定される。サービスVM-E25のCPU周波数は、250MHzのままである。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM-A21、ゲストVM-B22、ドライバVM-C23、ドライバVM-D24及びゲストVM-Fに対応する格納値は、それぞれ500MHz、250MHz、250MHz、125MHz及び250MHzとなる。このように、新たに仮想マシンが起動しても、既に起動している仮想マシンと同様にCPU周波数が制御される。実施例2によれば、実施例1と同様の効果が得られる。上述した実施例1、2に関し、さらに以下の付記を開示する。付記11個以上の物理的なプロセッサと、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、前記仮想マシンごとに、前記管理表の制御情報に基づいてしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する決定部と、前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、を備えることを特徴とする計算機。付記2前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記1に記載の計算機。付記3前記決定部は、前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記1または2に記載の計算機。付記4前記決定部は、前記仮想マシンごとに、決定したクロック周波数に基づいて前記管理表を更新することを特徴とする付記1~3のいずれか一つに記載の計算機。付記5前記仮想マシンの種別の一つは、前記物理的なプロセッサの利用率に連動してクロック周波数が変動する仮想マシンであることを特徴とする付記1~4のいずれか一つに記載の計算機。付記6前記仮想マシンの種別の一つは、前記物理的なプロセッサの利用率に連動し、かつ重み付けされてクロック周波数が変動する仮想マシンであることを特徴とする付記1~5のいずれか一つに記載の計算機。付記7前記仮想マシンの種別の一つは、一定のクロック周波数で動作する仮想マシンであることを特徴とする付記1~6のいずれか一つに記載の計算機。付記8物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定することを特徴とする制御方法。付記9前記決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更することを特徴とする付記8に記載の制御方法。付記10前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記8または9に記載の制御方法。付記11前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記8~10のいずれか一つに記載の制御方法。付記12物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報をメモリから読み出して前記制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する、処理をコンピュータに実行させるプログラム。付記13前記決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更することを特徴とする付記12に記載のプログラム。付記14前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記12または13に記載のプログラム。付記15前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記12~14のいずれか一つに記載のプログラム。"