説明

計算機システム、計算機システムの電力制御方法およびプログラム

【課題】ユーザー操作に対する処理の応答性を高めつつ省電力化できること。
【解決手段】計算機システム10上で動作する複数の仮想マシン11と、仮想マシン11を管理する仮想マシンモニタ20と、仮想マシンモニタ20に設けられ、複数の仮想マシン11のうち、ユーザー操作に関連する仮想マシン11の動作履歴に基づき、ユーザー操作のタイミングを解析するVM動作履歴解析部22と、VM動作履歴解析部22の解析に基づき、CPU30の動作周波数を制御するCPU周波数変更制御部23とを備え、VM動作履歴解析部22は、仮想マシン11の切り替えの際、直近に連続動作していた仮想マシン11の動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、CPU周波数変更制御部23に対しCPU30の動作周波数を上昇させる制御をおこなう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想化された計算機システムの電力を制御する計算機システム、計算機システムの電力制御方法およびプログラムに関する。
【背景技術】
【0002】
CPU性能の向上によって、このCPUが組み込まれる組み込み機器や端末は、1台で複数のオペレーティングシステム(OS)を動かす仮想化技術が実装できるようになってきている。携帯電話機のような端末においては、複数のOSを1台に搭載し、画面を切り替えることによって操作OSを変更する方式が導入されており、1台の端末に要求される性能が増大してきている。このため、端末の利用者の操作性能を確保しつつ、限られた電力で効率的に動作するための制御が要求されてきている。この要求に対応して、組み込み機器に搭載されるCPUは、複数の動作周波数、動作電圧の切り替えが可能で、動作速度、消費電力を制御できるようになっている。
【0003】
このような従来技術として、たとえば、第1OSが動作履歴を記録し、第2OSの解析記録アプリケーションが第1OSの動作履歴を解析することにより、障害発生前に障害の兆候を検知し、事前に障害に対処する処理を実行し、障害による影響を抑える技術がある(たとえば、下記特許文献1参照。)。また、指定タスクのイベント実行開始を契機として情報収集ルーチンを起動させ、イベント実行の処理結果等を記録することにより、オンライン性能への影響を少なくし、後にオフラインで解析できるようにした技術がある(たとえば、下記特許文献2参照。)。また、キーボード等からの入力を第1ブロックで検知し、メモリ効果を有する第2ブロックを起動させて表示を変更した後に、第1,第2ブロックの電源供給を停止させることにより、消費電力を削減する技術がある(たとえば、下記特許文献3参照。)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−115751号公報
【特許文献2】特開平4−76639号公報
【特許文献3】特開2000−148315号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来の特許文献では、仮想化された計算機システムのCPUの電力制御と、処理速度を両立させた制御を実行することができなかった。仮想化システムでは、複数の仮想マシン(VM)が動作し、ユーザーの操作等により、仮想マシンモニタが仮想マシンの動作を切り替え、各VMへのCPU資源の割り当てやCPUの動作周波数を変更する。たとえば、ユーザーが携帯端末の操作を開始することにより、操作に関連するゲストVMとドライバVMとを交互に切り替えて動作させる。これにより、システムのCPU負荷が上昇するが、CPU負荷をしきい値等を用いて定期的に検出する構成とすると、CPU負荷がしきい値を超えなければCPU周波数を上昇させない。このため、ユーザー操作がなされても、CPU周波数を上げるつぎの検出タイミングまで、低いCPU周波数のまま実行する時間が長くなり、ユーザー操作に対する処理の応答に遅延を発生させてしまう。
【0006】
仮想マシンモニタは、上記のユーザー操作以外にもバックグラウンドで動作する処理、たとえば、サービスVMで動作するウイルスチェック等、応答速度を重視しない処理もあり、これらについては、CPU負荷に応じてCPU周波数を下げて端末の消費電力を削減させている。特に携帯端末はバッテリー駆動のため、消費電力の削減が求められている。一方、ユーザーによる端末の操作時には、CPU周波数が操作の開始を素早く検出してCPU周波数を上昇させ、処理速度を優先させる必要がある。従来技術では、CPUの省電力化とユーザー操作に対する処理の応答性の向上との両立ができなかった。
【0007】
開示の計算機システム、計算機システムの電力制御方法およびプログラムは、上述した問題点を解消するものであり、ユーザー操作に対する処理の応答性を高めつつ省電力化できることを目的とする。
【課題を解決するための手段】
【0008】
開示技術は、計算機システム上で動作する複数の仮想マシンと、仮想マシンを管理する仮想マシンモニタと、仮想マシンモニタに設けられ、複数の仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴に基づき、ユーザー操作のタイミングを解析する動作履歴解析部と、動作履歴解析部の解析に基づき、CPUの動作周波数を制御する周波数制御部とを備え、動作履歴解析部は、仮想マシンの切り替えの際、直近に連続動作していた仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、周波数制御部に対しCPUの動作周波数を上昇させる制御をおこなう。
【発明の効果】
【0009】
ユーザー操作に対する処理の応答性を高めつつ省電力化できるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、実施の形態にかかる計算機システムの機能ブロック図である。
【図2】図2は、実施の形態にかかる計算機システムのハードウェア構成図である。
【図3】図3は、実施の形態にかかる計算機システムを携帯電話機に適用した機能ブロック図である。
【図4】図4は、仮想マシンの動作履歴であるVM動作履歴表を示す図表である。
【図5】図5は、ユーザー操作検出を判断するためのユーザー操作検出制御表を示す図表である。
【図6】図6は、実施の形態にかかる計算機システムのユーザー操作検出の処理内容を示すフローチャートである。
【図7】図7は、実施の形態にかかる計算機システムのCPU周波数下降処理の処理内容を示すフローチャートである。
【図8】図8は、仮想マシンの動作とCPU周波数の変動を時系列で表したタイムチャートである。
【図9】図9は、図8の動作に対応して作成されるVM動作履歴表である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、仮想化された計算機システムを管理する仮想マシンモニタにて複数の仮想マシン(VM)のCPU動作履歴を記録し、解析するVM動作履歴解析部を設ける。VM動作履歴解析部は、ユーザー操作に関連するVMの動作を解析し、ユーザー操作がおこなわれたかどうかを検出する。ユーザー操作がおこなわれたことを検出した場合は、CPU周波数を上昇させることにより、ユーザー操作の応答速度を短縮させる。ユーザー操作を検出しなかった場合は、負荷に応じてCPU周波数を下降させ、消費電力の削減をおこなう。ここで、ユーザー操作がおこなわれたか否かは、単にCPU負荷の変動に基づき判断するのではなく、仮想マシンのCPU動作履歴が示す直近に動作した仮想マシンの動作時間に基づいて判断するため、ユーザー操作に対する応答時間を短縮させる。
【0012】
この仮想化された計算機システムは、たとえば、携帯電話機等のバッテリー駆動の携帯端末に適用され、ユーザー操作に対する処理の応答性を高めつつ、省電力化を図ることができるものであるが、適用される計算機システムは、携帯端末に限らない。
【0013】
・計算機システムの概要
図1は、実施の形態にかかる計算機システムの機能ブロック図である。仮想化された計算機システム10では、複数の仮想マシン(VM)11が動作する。このように、仮想化された複数のOSを搭載した計算機システム10では、搭載される各種のデバイスを操作するためのドライバVMを仮想化マシンとして実装している。
【0014】
図1に示す各仮想マシン11のうち、ゲストVM−A,ゲストVM−Bは、ユーザーが使用するアプリケーションを動作させるための仮想マシン(たとえば、オペレーティングシステム:OS)である。ユーザーによる切り替えボタン等の操作により、異なるOSが切り替えられ起動する。使用形態に応じて複数起動することもできる。仮想マシン11のうち、ゲストVM−A,ゲストVM−Bには、それぞれFrontendドライバ12が実装されている。また、仮想マシン11のうち、ドライバVM−Cには、Backendドライバ13が実装されている。このドライバVM−Cは、ゲストVM−A,ゲストVM−Bに実装されているFrontendドライバ12からのデバイス操作要求を受け付けて各種のデバイス15を制御する。このドライバVM−Cは、デバイス15の種別毎に複数起動されることが多い。
【0015】
また、仮想マシン11のうち、サービスVM−Dには、システムに必要な補助的なサービス処理、たとえば、ウイルスチェック等が実装される。このサービスVM−Dは、ユーザー操作に直接関連するものではなく、実行しているユーザープログラムのバックグラウンド処理としてサービスが実行され、迅速な処理、応答が必要とされないことが多い。
【0016】
仮想マシンモニタ(VMM:Virtual Machine Monitor)20は、一つの計算機システム10を複数の仮想マシン11として利用するための制御をおこなう。この仮想マシンモニタ20は、CPUスケジューラ21と、VM動作履歴解析部22と、CPU周波数変更制御部23とを含む。
【0017】
CPUスケジューラ21は、各VM11を動作させるためのCPU30の割り当て(スケジューリング)を制御する。また、動作する仮想マシン11の切り替えに合わせてVM動作履歴解析部22を呼び出す。
【0018】
VM動作履歴解析部22は、CPUスケジューラ21により仮想マシン11を切り替える時点で呼び出され、動作した仮想マシン11の動作履歴を逐次記録し、そのたびに動作履歴に基づき解析処理をおこなってユーザー操作の開始を検出する。また、CPUスケジューラ21が記録した動作履歴の解析結果によって、CPU30のCPU利用率を算出し、CPUの動作周波数の変更を実施するか否かを判断する。
【0019】
CPU周波数変更制御部23は、VM動作履歴解析部22による判断結果に対応して、CPU30の動作周波数の変更制御をおこなう。具体的には、CPU30の動作周波数を上げたり、下げたりする制御をおこなう。
【0020】
図2は、実施の形態にかかる計算機システムのハードウェア構成図である。図1に記載の計算機システム10を携帯電話機に適用した場合における構成例を示した。CPU30は、フラッシュメモリ40に格納されたOS、およびアプリケーションをメモリ41に読み込み、実行する。そして、図1に記載された仮想マシン11、および仮想マシンモニタ20は、CPU30におけるプログラム実行により、上述した各機能を得ることができる。
【0021】
このCPU30は、アプリケーションの実行時に、必要なデバイス15に対してアクセスをおこなう。このデバイス15の種類としては、ユーザーが操作入力するためのキー(KEY)15a、音出力するオーディオ(AUDIO)15b、無線LAN15c、3G規格等の基地局と通信をおこなう通信部15d、現在位置を測位するGPS15e、写真撮影をおこなうカメラ15f、各種情報を表示する表示部15g、ユーザーの操作入力用のタッチパネル15h等を含む。また、バッテリー42は、各部の動作用の電源を供給する。上記の各部は、バス43を介して信号をやりとりする。
【0022】
たとえば、各種デバイスである、キー15aの操作入力や通信部15dにおけるデータ受信等のイベント発生時には、これらキー15a、通信部15dは、CPU30に割り込み通知をおこない、CPU30は、割り込みに対応した処理をおこなう。
【0023】
・VM動作履歴解析部の処理概要
VM動作履歴解析部22は、ユーザー操作に関連するVMの動作を下記の手順に沿って解析し、ユーザー操作がおこなわれたかどうかを検出する。
(1)ユーザー操作に関連する仮想マシン11(ゲストVM−A,VM−B,ドライバVM−C)毎にユーザー操作を検出するためのユーザー操作検出時間を予め制御表に登録しておき、該当する仮想マシン11のVM動作時間がユーザー操作検出時間を超えた場合に、ユーザー操作検出であると判断する。
(2)ユーザー操作に関係する仮想マシン11(ゲストVM−A,VM−B,ドライバVM−C)の組み合わせによるユーザー操作検出時間についても予め制御表に登録しておき、該当する仮想マシン11を組み合わせたVM実行時間がユーザー操作検出時間を超えた場合に、ユーザー操作検出と判断する。
(3)ユーザー操作であると判断した場合には、CPU周波数を上昇させることにより、ユーザー操作の応答速度を短縮させる。ユーザー操作ではないと判断した場合には、負荷に応じてCPU周波数を下降させ、消費電力を低減させる。
【0024】
・携帯電話機への適用例
図3は、実施の形態にかかる計算機システムを携帯電話機に適用した機能ブロック図である。本開示技術の実施の一例として、仮想化された携帯電話システム上で複数の仮想マシン11(仮想マシン)が動作している場合の構成について説明する。図3において、図1および図2と同じ構成には同じ符号を付してある。
【0025】
図3に示すように、一つのCPU30を搭載した携帯電話機上で、仮想マシンモニタ20が動作する。搭載されているCPU30は、動作周波数、電圧を動的に変更する等により、消費する電力を制御できるものが用いられる。デバイス15としては、キー15aと、タッチパネル15hが設けられている。この携帯電話機は、仮想化されたシステム上で仮想マシン11であるゲストVM−A(11a)がゲストOSを実行する。たとえば、ユーザーは、ゲストVM−A(11a)の実行により、表示される操作画面にしたがい操作をおこなう。また、ゲストVM−A(11a)からの操作要求に応じて、デバイス15(キー15a、タッチパネル15h)を操作するための仮想マシン11として、およびドライバVM−B(11b)と、ドライバVM−C(11c)が動作する。また、外部ネットワークからのウイルスチェック等をおこなう仮想マシン11(サービスVM−D(11d))も動作する。
【0026】
図4は、仮想マシンの動作履歴であるVM動作履歴表を示す図表である。VM動作履歴解析部22がメモリ41等に記録するVM動作履歴表50の例を示す。VM動作履歴表50は、図の上から下へ向けた時系列順に、仮想マシン11の識別子(VM ID)と、仮想マシン毎に動作した際のCPU30の動作周波数と、仮想マシン11の動作時間と、の項目を含む。VM動作履歴解析部22は、CPUスケジューラ21によって動作する仮想マシン11が切り替えられた際に呼び出される。そして、VM動作履歴解析部22は、直前に動作した仮想マシン11に関する動作履歴として、VM IDと、動作周波数と、動作時間とをVM動作履歴表50の最終行に新たなエントリとして追加する。
【0027】
図5は、ユーザー操作検出を判断するためのユーザー操作検出制御表を示す図表である。このユーザー操作検出制御表55は、VM動作履歴解析部22がメモリ41等に保持するものであり、予めユーザー操作に関連する仮想マシン11について保持する。図5に示す例では、ユーザー操作に関連する仮想マシン11に該当するものとして、ゲストVM−A(11a)、ドライバVM−B(11b)、ドライバVM−C(11c)であり、ゲストVM−A(11a)からみた単独、および連続動作する複数の仮想マシン11の組み合わせ毎の識別子(VM ID)と、各識別子毎のユーザー操作検出時間、直近動作時間のエントリの例を示している。
【0028】
ユーザー操作検出時間のエントリは、ユーザー操作開始を判断するためのしきい値として、予め携帯電話機の設計時に固定値として設定される。直近動作時間は、仮想マシン11の切り替え時にVM動作履歴解析部22が呼び出された直前までの間、連続動作した仮想マシン11の時間であり、仮想マシン11の動作終了毎に上書きで記録される。VM動作履歴解析部22は、仮想マシン11毎の直近動作時間をユーザー操作検出時間と比較し、直近動作時間がユーザー操作検出時間を上回った場合、ユーザー操作が開始されたと判断する。
【0029】
また、CPU30は、動作周波数を複数の周波数段階に切り替え可能であり、動作した仮想マシン11毎に動作周波数が異なる。これに対応して、エントリに記録する直近動作時間は、一つの基準周波数に換算した時間に統一して格納する。図5に示す例では、CPU30の基準周波数を500MHzとしている。この場合、
記録する直近動作時間=直近の実際の動作時間×(直近の実際の動作時間における動作周波数/基準周波数)
となる。
【0030】
たとえば、CPU30の動作周波数が500MHzで動作した仮想マシン11の直近の実際の動作時間が4msであれば、直近動作時間としてそのまま4msとして記録される。また、CPU30の動作周波数が基準周波数の半分である250MHzで動作した仮想マシン11の直近の実際の動作時間が4msであれば、基準周波数に換算すると直近動作時間が2msとして記録される。
【0031】
このように、ユーザーによる操作開始の判断は、仮想マシン11の切り替えにより直近に連続動作した一つあるいは複数の仮想マシン11の動作時間(直近動作時間)に基づきおこなっている。この時間の概念を判断することにより、CPU30の負荷変動に対応してユーザーによる操作開始のタイミングを適切に判断し、速やかに検出できるようになる。加えて、CPU30の動作周波数の変更にも対応して、ユーザーによる操作開始のタイミングを適切に判断できるようになる。
【0032】
・ユーザー操作検出の処理の説明
図6は、実施の形態にかかる計算機システムのユーザー操作検出の処理内容を示すフローチャートである。この図6に示す処理は、VM動作履歴解析部22がCPUスケジューラ21による仮想マシン11の切り替え毎の呼び出し時に実行する。
【0033】
はじめに、VM動作履歴解析部22は、直前まで動作していた仮想マシン11の動作履歴の情報(VM ID、CPU動作周波数、動作時間)をVM動作履歴表50のエントリに追加する(ステップS1)。つぎに、直前まで動作していた仮想マシン11はユーザー操作に関連している仮想マシン(VM)であるか判断する(ステップS2)。具体的には、図5のユーザー操作検出制御表55を参照し、このユーザー操作検出制御表55にVM IDが登録されている仮想マシン11であれば、ユーザー操作関連VMであると判断し(ステップS2:Yes)、登録されていなければ、ユーザー操作関連VMでないと判断する(ステップS2:No)。
【0034】
ユーザー操作関連VMでなければ(ステップS2:No)、CPU周波数下降制御をおこない(ステップS8)、処理を終了する。ユーザー操作関連VMであれば(ステップS2:Yes)、この仮想マシン11の直近動作時間を算出する(ステップS3)。この直近動作時間は、図4のVM動作履歴表50を参照して算出する。具体的には、アイドル時間をはさまずに、該当の仮想マシン11が直近に連続動作した時間の合計を、基準周波数に換算して求める。そして、求めた直近動作時間をユーザー操作検出制御表55のエントリに記録する。
【0035】
つぎに、ステップS3で算出した直近動作時間を、ユーザー操作検出制御表55に設定されている同じVM IDのユーザー操作検出時間と比較する(ステップS4)。比較の結果、直近動作時間がユーザー操作検出時間を超えている場合は(ステップS4:Yes)、ユーザー操作開始と判断し、CPU周波数を上昇させ(ステップS7)、処理を終了する。このCPU周波数上昇の制御は、VM動作履歴解析部22がCPU周波数変更制御部23に指示し、CPU周波数変更制御部23がCPU30の周波数を上昇させる。この実施形態では、CPU周波数変更制御部23は、ユーザー操作されたときの応答時間を短縮するために、CPU30の周波数をCPU30固有の最大の周波数に上昇させる。
【0036】
直近動作時間がユーザー操作検出時間を超えていない場合は(ステップS4:No)、つぎに、ユーザー操作検出制御表55に設定されている他の仮想マシン11と組み合わせた直近動作時間を算出する(ステップS5)。図5に示す例では、該当するVM IDがAであれば、VM IDがA+Bと、A+Cと、A+B+Cのそれぞれの組み合わせの直近動作時間を算出している。そして、ステップS5で算出した直近動作時間を、該当する組み合わせのユーザー操作検出時間と比較する(ステップS6)。
【0037】
比較の結果、直近動作時間が該当する組み合わせのユーザー操作検出時間のいずれかを超えている場合は(ステップS6:Yes)、ユーザー操作開始と判断し、CPU周波数を上昇させ(ステップS7)、処理を終了する。一方、直近動作時間が該当する組み合わせのユーザー操作検出時間のいずれかを超えていない場合は(ステップS6:No)、ユーザーの操作開始ではないと判断し、CPU周波数下降処理(ステップS8)をおこない、処理を終了する。
【0038】
・CPU周波数下降処理について
図7は、実施の形態にかかる計算機システムのCPU周波数下降制御の処理内容を示すフローチャートである。図6のステップS8に示す処理内容を説明する。この処理は、直近に動作した仮想マシン11がユーザー操作開始に関連しない仮想マシンであると判断されたときに実行する。
【0039】
はじめに、VM動作履歴解析部22は、図4に示すVM動作履歴表50から直近のシステム(仮想マシン11動作時)のCPU利用率を算出する(ステップS11)。つぎに、直近のCPU利用率が予め設定されたしきい値を下回ったか判断する(ステップS12)。直近のCPU利用率が予め設定されたしきい値を下回っていれば(ステップS12:Yes)、CPU30の周波数を下降させ(ステップS13)、消費電力を削減させて、処理を終了する。直近のCPU利用率が予め設定されたしきい値を下回っていなければ(ステップS12:No)、処理を終了する。
【0040】
ここで、しきい値を一つだけ設定したときには、予め定めた1段低い動作周波数に下降させる。この場合、図7に示した複数回の下降処理の実行毎に少しずつCPUの動作周波数が下がることになる。また、異なるCPU利用率毎にしきい値を複数段階設定することもでき、この場合には、各しきい値の段階にそれぞれ対応した周波数に直接下降させることができる。
【0041】
(実施例)
以下、上記構成による仮想マシンの動作とCPU周波数の変動の例について説明する。図8は、仮想マシンの動作とCPU周波数の変動を時系列で表したタイムチャートである。また、図9は、図8の動作に対応して作成されるVM動作履歴表である。図9のVM動作履歴表50は図8の時期t1における時点のVM動作履歴を示している。図8に示す例では、最初はシステムの負荷が低く、低いCPU周波数(250MHz)で動作し、時期t0の時点でユーザーが端末の操作を開始し、その後操作に関連する仮想マシン11(VM−A,VM−B)が交互に動作し、システムのCPU負荷が上昇していく様子を示している。
【0042】
時期t1の時点で、CPUスケジューラ21は、仮想マシン11をVM−B(11b)からVM−A(11a)へスケジュールを切り替え、VM動作履歴解析部22を呼び出す。VM動作履歴解析部22は、直近に動作していた仮想マシン11であるVM−B(11b)が連続して動作した直近動作時間を求める。この際、図9のVM動作履歴表50から直近に連続動作していた仮想マシン11は、アイドル以降の仮想マシン11であるため、単独のVM−B(11b)と、このVM−B(11b)とVM−A(11a)の組み合わせ(A+B)であることを検出している。
【0043】
したがって、VM動作履歴解析部22は、単独の仮想マシン11であるB、および組み合わせの仮想マシン(A+B)の直近動作時間を求めて、図5のユーザー操作検出制御表55に登録されている検出時間と比較する。
【0044】
仮想マシンVM−Bの直近動作時間については、図5のユーザー操作検出制御表55から、アイドル以降で連続した動作時間が(5+8)/2=6.5msであり(2で割るのは500MHz換算のため)、ユーザー操作検出制御表55の該当するVM ID=Bに設定されているユーザー操作検出時間の9msを下回っている。この処理だけではCPU30の周波数を上昇させる制御はおこなわない。
【0045】
しかし、仮想マシンVM(A+B)の直近動作時間についても同様に求めると、アイドル以降における仮想マシン11の動作がB,A,Bであるため、(5+8+8)/2=10.5msであり、ユーザー操作検出制御表55の該当するVM ID=(A+B)に設定されているユーザー操作検出時間の10msを超えている。したがって、VM動作履歴解析部22は、この時期t1でユーザー操作開始であることを検出し、この時期t1でCPU30の周波数をただちに上昇(500MHz)させることができる。
【0046】
ここで、対比のために、一定間隔T0でCPU負荷率に基づき制御する従来の技術を説明する。時期t1でユーザーが操作を開始した時点では、まだ一定間隔T0の検出時点ではないため、CPU30の周波数制御はおこなわない。この後、つぎの時期t1’までの区間におけるCPU利用率は70%であるため、しきい値(たとえば95%)を超えておらず、まだCPU30の周波数を上昇させる制御はおこなわない。この後、つぎの時期t2までの区間におけるCPU利用率が100%と算出されると、はじめてしきい値を超えたと判断され、CPU30の周波数を上昇させる制御をおこなう。このように、従来は、ユーザー操作を開始して負荷が上昇をはじめても、一定間隔T0の区間におけるCPU利用率がしきい値に達しなければCPU30の周波数を上昇させる必要はないと判断してしまい、CPU30の周波数を上昇させるタイミングが遅延している。これにより、上記実施形態であれば、従来に比して時間T1分だけ早くCPU30の周波数を上昇させることができ、ユーザー操作の実行処理時間を短縮することができる。
【0047】
以上説明した実施の形態によれば、複数の仮想マシンが動作する仮想化された計算機システムにおいて、CPUの省電力制御をおこないつつ、ユーザー操作については、仮想マシンの動作時間に基づき判断するため、ユーザー操作に対する応答時間を短縮することができるようになる。ここで、仮想マシンの動作時間に関係なく、単にユーザー操作されたことで直ぐにCPUの周波数を上昇させる制御にすると、実際のCPU負荷が低くても頻繁にCPUの周波数が上昇することとなる。しかし、開示技術のように、直近に動作した仮想マシンのうちユーザー操作に関連する仮想マシンの連続動作時間に基づきCPUの周波数を上昇させることにより、ユーザー操作があったときにおける実際のCPUの負荷に素早く対応させることができるようになる。
【0048】
そして、本開示技術は、特に仮想化された携帯電話機等のバッテリーで動作する携帯機器に用いて効果的である。携帯機器ではバッテリーで供給可能な電力に限界があり、CPUの省電力制御が必須であるが、同時に利用者が携帯画面を操作する際にシステムが迅速に反応し、快適な操作速度を確保することが求められる。本開示技術によれば、仮想化携帯電話機上で各仮想マシンの動作履歴からユーザー操作の実行の開始を検出し、操作速度の確保が必要な際に迅速にCPU周波数を上昇させ、システムの応答性を確保することができるようになる。
【0049】
なお、この実施の形態で説明した電力制御方法は、予め用意されたプログラムをパーソナル・コンピュータを含む計算機システムを構成するコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【0050】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【0051】
(付記1)計算機システム上で動作する複数の仮想マシンと、
前記仮想マシンを管理する仮想マシンモニタと、
前記仮想マシンモニタに設けられ、複数の前記仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴に基づき、ユーザー操作のタイミングを解析する動作履歴解析部と、
前記動作履歴解析部の解析に基づき、CPUの動作周波数を制御する周波数制御部とを備え、
前記動作履歴解析部は、
仮想マシンの切り替えの際、直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を上昇させる制御をおこなうことを特徴とする計算機システム。
【0052】
(付記2)前記動作履歴解析部は、
仮想マシンの切り替えの際、直近に連続動作していた前記仮想マシンが複数の場合には、これら複数の仮想マシンの合計の動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を上昇させる制御をおこなうことを特徴とする付記1に記載の計算機システム。
【0053】
(付記3)前記動作履歴解析部は、
ユーザー操作されたものではないと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を下降させることを特徴とする付記1または2に記載の計算機システム。
【0054】
(付記4)前記動作履歴解析部は、
アイドル後から連続動作している仮想マシンを、前記直近に連続動作していた前記仮想マシンと判断することを特徴とする付記1〜3のいずれか一つに記載の計算機システム。
【0055】
(付記5)前記動作履歴解析部は、
ユーザー操作に関連する仮想マシンの動作履歴として、動作した仮想マシンの識別子と、動作周波数と、動作時間を動作履歴表に時間経過順に記録することを特徴とする付記1〜4のいずれか一つに記載の計算機システム。
【0056】
(付記6)前記動作履歴解析部は、
ユーザー操作に関連する仮想化マシン毎にユーザー操作を検出するためのユーザー操作検出時間が予めユーザー操作検出制御表に設定され、前記動作履歴表に記録された直近に連続動作していた前記仮想マシンの動作時間が前記ユーザー操作検出時間を超えた場合に、ユーザー操作されたものと判断することを特徴とする付記5に記載の計算機システム。
【0057】
(付記7)前記動作履歴解析部は、
前記動作履歴表に記録された直近に連続動作していた前記仮想マシンの動作時間について、動作していた動作周波数を予め定めた基準周波数に換算したときの動作時間に換算することを特徴とする付記6に記載の計算機システム。
【0058】
(付記8)前記周波数制御部は、
前記動作履歴解析部により、前記CPUの動作周波数を上昇させる指示があったときには、前記CPU固有の最大の動作周波数に制御することを特徴とする付記1〜7のいずれか一つに記載の計算機システム。
【0059】
(付記9)前記周波数制御部は、
前記動作履歴解析部により、前記CPUの動作周波数を下降させる指示があったときには、CPU利用率に基づき前記CPUの動作周波数を下降させる制御をおこなうことを特徴とする付記1〜8のいずれか一つに記載の計算機システム。
【0060】
(付記10)計算機システム上で動作する複数の仮想マシンと、前記仮想マシンを管理する仮想マシンモニタと、を備えた計算機システムにおける電力制御方法であって、
前記仮想マシンモニタは、
複数の前記仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴を記録する記録工程と、
前記仮想マシンの切り替えの際、前記記録工程に記録されて直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断する判断工程と、
前記判断工程により、ユーザー操作されたと判断したときには、前記CPUの動作周波数を上昇させる周波数制御工程と、
を含むことを特徴とする計算機システムの電力制御方法。
【0061】
(付記11)コンピュータ上で動作する複数の仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴を記録し、
前記仮想マシンの切り替えの際、前記記録されて直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、
ユーザー操作されたと判断したときには、前記CPUの動作周波数を上昇させる、
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【0062】
10 計算機システム
11 仮想マシン
15 デバイス
15a キー
15h タッチパネル
20 仮想マシンモニタ
21 CPUスケジューラ
22 VM動作履歴解析部
23 CPU周波数変更制御部
30 CPU
40 フラッシュメモリ
41 メモリ
42 バッテリー
50 VM動作履歴表
55 ユーザー操作検出制御表

【特許請求の範囲】
【請求項1】
計算機システム上で動作する複数の仮想マシンと、
前記仮想マシンを管理する仮想マシンモニタと、
前記仮想マシンモニタに設けられ、複数の前記仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴に基づき、ユーザー操作のタイミングを解析する動作履歴解析部と、
前記動作履歴解析部の解析に基づき、CPUの動作周波数を制御する周波数制御部とを備え、
前記動作履歴解析部は、
仮想マシンの切り替えの際、直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を上昇させる制御をおこなうことを特徴とする計算機システム。
【請求項2】
前記動作履歴解析部は、
仮想マシンの切り替えの際、直近に連続動作していた前記仮想マシンが複数の場合には、これら複数の仮想マシンの合計の動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、ユーザー操作されたと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を上昇させる制御をおこなうことを特徴とする請求項1に記載の計算機システム。
【請求項3】
前記動作履歴解析部は、
ユーザー操作されたものではないと判断したときには、前記周波数制御部に対し前記CPUの動作周波数を下降させる制御をおこなうことを特徴とする請求項1または2に記載の計算機システム。
【請求項4】
前記動作履歴解析部は、
アイドル後から連続動作している仮想マシンを、前記直近に連続動作していた前記仮想マシンと判断することを特徴とする請求項1〜3のいずれか一つに記載の計算機システム。
【請求項5】
前記動作履歴解析部は、
ユーザー操作に関連する仮想マシンの動作履歴として、動作した仮想マシンの識別子と、動作周波数と、動作時間を動作履歴表に時間経過順に記録することを特徴とする請求項1〜4のいずれか一つに記載の計算機システム。
【請求項6】
前記動作履歴解析部は、
ユーザー操作に関連する仮想化マシン毎にユーザー操作を検出するためのユーザー操作検出時間が予めユーザー操作検出制御表に設定され、前記動作履歴表に記録された直近に連続動作していた前記仮想マシンの動作時間が前記ユーザー操作検出時間を超えた場合に、ユーザー操作されたものと判断することを特徴とする請求項5に記載の計算機システム。
【請求項7】
前記動作履歴解析部は、
前記動作履歴表に記録された直近に連続動作していた前記仮想マシンの動作時間について、動作していた動作周波数を予め定めた基準周波数に換算したときの動作時間に換算することを特徴とする請求項6に記載の計算機システム。
【請求項8】
前記周波数制御部は、
前記動作履歴解析部により、前記CPUの動作周波数を上昇させる指示があったときには、前記CPU固有の最大の動作周波数に制御することを特徴とする請求項1〜7のいずれか一つに記載の計算機システム。
【請求項9】
計算機システム上で動作する複数の仮想マシンと、前記仮想マシンを管理する仮想マシンモニタと、を備えた計算機システムにおける電力制御方法であって、
前記仮想マシンモニタは、
複数の前記仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴を記録する記録工程と、
前記仮想マシンの切り替えの際、前記記録工程に記録されて直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断する判断工程と、
前記判断工程により、ユーザー操作されたと判断したときには、前記CPUの動作周波数を上昇させる周波数制御工程と、
を含むことを特徴とする計算機システムの電力制御方法。
【請求項10】
コンピュータ上で動作する複数の仮想マシンのうち、ユーザー操作に関連する仮想マシンの動作履歴を記録し、
前記仮想マシンの切り替えの際、前記記録されて直近に連続動作していた前記仮想マシンの動作時間に基づき、ユーザー操作がおこなわれたか否かを判断し、
ユーザー操作されたと判断したときには、前記CPUの動作周波数を上昇させる、
処理をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate