JP2012164032A - 計算機、制御方法及びプログラム - Google Patents

計算機、制御方法及びプログラム Download PDF

Info

Publication number
JP2012164032A
JP2012164032A JP2011022149A JP2011022149A JP2012164032A JP 2012164032 A JP2012164032 A JP 2012164032A JP 2011022149 A JP2011022149 A JP 2011022149A JP 2011022149 A JP2011022149 A JP 2011022149A JP 2012164032 A JP2012164032 A JP 2012164032A
Authority
JP
Japan
Prior art keywords
cpu
virtual machine
guest
frequency
clock frequency
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.)
Granted
Application number
JP2011022149A
Other languages
English (en)
Other versions
JP5703799B2 (ja
Inventor
Takeo Murakami
岳生 村上
Masahide Noda
政秀 野田
Masatomo Yazaki
昌朋 矢崎
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 JP2011022149A priority Critical patent/JP5703799B2/ja
Publication of JP2012164032A publication Critical patent/JP2012164032A/ja
Application granted granted Critical
Publication of JP5703799B2 publication Critical patent/JP5703799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】計算機の消費電力を削減すること。
【解決手段】計算機は、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

Description

この発明は、計算機、制御方法及びプログラムに関する。
従来、計算機において、一つの物理的なCPU(Central Processing Unit、中央処理装置)上で複数のOS(Operating System、オペレーティングシステム)を動作させて複数の仮想マシンを実行する仮想化システムがある。仮想化システムにおいて、各仮想マシンへ仮想バッテリを提供し、仮想マシンが駆動中であればCPU使用時間を放電量に換算し、仮想マシンが停止中であれば停止時間を充電量に換算して、仮想バッテリの残量を制御する技術がある。また、物理的なCPUに割り当てられている仮想マシンを削除した結果、仮想マシンの割り当てがなくなった物理的なCPUをスリープ状態に移行させることによって、消費電力の低減を図る技術がある。また、データ処理システム内に生成された区画に、物理リソースのセットのうちの少なくともいくつかの物理リソースを割り当て、割り当てられなかった物理リソースの電力消費を低減する技術がある。また、物理リソースに供給するクロック周波数を低くすることにより、電力消費量を低減する技術がある。
特開2010−33207号公報 特開2009−140157号公報 特開2004−192612号公報
しかしながら、従来の技術では、物理的なCPUの負荷の状態にかかわらず、各仮想マシンは、予め設定されているクロック周波数で動作する。そのため、物理的なCPUが負荷の低い状態にあるため、各仮想マシンを低速で実行することができる状態であるにもかかわらず、仮想マシンに高いクロック周波数が設定されている場合には、物理的なCPUが高いクロック周波数で動作することがある。また、物理的なCPUの負荷に応じて物理的なCPUのクロック周波数の上げ下げを行う場合、クロック周波数が低くてもかまわない仮想マシンが物理的なCPUに割り当てられているときでも、物理的なCPUの負荷が高い状態のときには、物理的なCPUが高いクロック周波数で動作することがある。このように、物理的なCPUが低いクロック周波数で動作することができる状況のときでも、それよりも高いクロック周波数で物理的なCPUが動作することがあるため、無駄な電力を消費してしまうという問題点がある。
消費電力を削減することができる計算機、制御方法及びプログラムを提供することを目的とする。
計算機は、1個以上の物理的なプロセッサ、管理表、決定部及び変更部を備えている。管理表は、複数の仮想マシンごとに、クロック周波数を制御する制御情報を管理する。仮想マシンは、物理的なプロセッサで実行されることによって実現される。制御情報は、仮想マシンの種別に応じて設定されている。決定部は、仮想マシンごとに、管理表の制御情報に基づいてしきい値を求める。決定部は、仮想マシンごとに、しきい値と物理的なプロセッサの利用率とに基づいてクロック周波数を決定する。変更部は、決定部により決定されたクロック周波数に基づいて物理的なプロセッサのクロック周波数を変更する。
この計算機、制御方法及びプログラムによれば、消費電力を削減することができる。
図1は、実施例1にかかる計算機を示すブロック図である。 図2は、実施例2にかかる計算機のハードウェア構成を示すブロック図である。 図3は、実施例2にかかる計算機の機能的な構成を示すブロック図である。 図4は、実施例2にかかる計算機の管理表の一例を示す図表である。 図5は、実施例2にかかる制御方法におけるCPU周波数定期更新処理を示すフローチャートである。 図6は、実施例2にかかる制御方法における仮想マシン割り当て処理を示すフローチャートである。 図7は、実施例2にかかる制御方法におけるCPU周波数切り替え処理を示すフローチャートである。 図8は、実施例2にかかる制御方法におけるフロント係数設定変更処理を示すフローチャートである。 図9は、CPUの利用率が下降していく例における各種情報の一例を示す図表である。 図10は、CPUの利用率が下降していく例におけるCPU周波数の一例を示す模式図である。 図11は、CPUの利用率が上昇していく例における各種情報の一例を示す図表である。 図12は、CPUの利用率が上昇していく例におけるCPU周波数の一例を示す模式図である。 図13は、フォアグラウンドで動作する仮想マシンを切り替える例における各種情報の一例を示す図表である。 図14は、フォアグラウンドで動作する仮想マシンを切り替える例におけるCPU周波数の一例を示す模式図である。 図15は、新たに仮想マシンが起動する例における各種情報の一例を示す図表である。 図16は、新たに仮想マシンが起動する例におけるCPU周波数の一例を示す模式図である。
以下に添付図面を参照して、この計算機、制御方法及びプログラムの好適な実施の形態を詳細に説明する。計算機、制御方法及びプログラムは、仮想マシンごとに、仮想マシンの種別に応じた制御情報に基づいてしきい値を求め、しきい値とプロセッサの利用率(負荷)とに基づいてクロック周波数を決定し、プロセッサのクロック周波数を決定したクロック周波数に変更するものである。以下の各実施例の説明においては、同様の構成要素には同一の符号を付して、重複する説明を省略する。
(実施例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及びNAND(Not AND)メモリ15を備えている。CPU11、表示部12、キー13、メインメモリ14及びNANDメモリ15は、バス16に接続されている。
CPU11は、計算機全体の制御を司る。CPU11は、後述するプログラムを実行し、後述する種々の仮想マシン(VM:Virtual Machine)や仮想マシンモニタを実現する。CPU11は、クロック周波数(CPU周波数)や駆動電圧を動的に変更することができるものである。表示部12は、例えば液晶パネルを備えている。キー13は、例えば数字や文字を入力するためのキーやボタンを備えている。キー13は、表示部12と一体化されたタッチパネルを備えており、表示部12に表示されたキーの画像に触れることにより数字や文字を入力することができるようになっていてもよい。
メインメモリ14は、CPU11の作業領域として用いられる。メインメモリ14には、例えばOSやアプリケーションのプログラムが展開されてもよい。CPU11は、メインメモリ14に展開されたOSやアプリケーションのプログラムを実行してもよい。メインメモリ14は、例えばRAM(Random Access Memory)を備えている。
NANDメモリ15は、例えばOSやアプリケーションのプログラムを格納している。OSやアプリケーションのプログラムは、NANDメモリ15から読み出されてメインメモリ14に展開されてもよい。NANDメモリ15は、不揮発性のメモリとして、例えばNAND型のフラッシュメモリを備えていてもよい。計算機は、NANDメモリ15の代わりに、他の不揮発性メモリを備えていてもよい。
なお、計算機が携帯電話機などの無線通信端末である場合には、計算機は無線通信部を備えている。また、計算機は、画像処理や音声処理を行うDSP(Digital Signal Processor)や、外部メモリとのインタフェースなどを備えていてもよい。
・機能的な構成の説明
図3は、実施例2にかかる計算機の機能的な構成を示すブロック図である。図3に示すように、計算機は、複数の仮想マシン21〜25及び仮想マシンモニタ26を備えている。仮想マシン21〜25及び仮想マシンモニタ26は、CPU11が仮想マシン及び仮想マシンモニタを実現するプログラムを実行することにより実現されてもよい。例えば各仮想マシン21〜25では、独立してOSが実行されてもよい。以下の説明では、仮想マシン21〜25のID(Identifier、識別子)を例えば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やSEDF(Simple Earliest Deadline First)やBVT(Borrowed Virtual Time)などのポリシーがある。また、複数のポリシーの中から適宜選択して割り当てるようにしてもよい。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デフォルト値は、それぞれ、しきい値の最大値及び最小値のデフォルト値であり、予め設定されていてもよい。
Figure 2012164032
Figure 2012164032
(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のしきい値Max(80%)を超えているので、ゲスト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に関し、さらに以下の付記を開示する。
(付記1)1個以上の物理的なプロセッサと、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、前記仮想マシンごとに、前記管理表の制御情報に基づいてしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する決定部と、前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、を備えることを特徴とする計算機。
(付記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のいずれか一つに記載のプログラム。
1,2,21〜25 仮想マシン
3,11 プロセッサ
4,32 管理表
5,31 決定部
6,35 変更部

Claims (5)

  1. 1個以上の物理的なプロセッサと、
    前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、
    前記仮想マシンごとに、前記管理表の制御情報に基づいてしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する決定部と、
    前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、
    を備えることを特徴とする計算機。
  2. 前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする請求項1に記載の計算機。
  3. 前記決定部は、前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする請求項1または2に記載の計算機。
  4. 物理的なプロセッサの利用率を求め、
    前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報に基づいてしきい値を求め、
    前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定することを特徴とする制御方法。
  5. 物理的なプロセッサの利用率を求め、
    前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報をメモリから読み出して前記制御情報に基づいてしきい値を求め、
    前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する、
    処理をコンピュータに実行させるプログラム。
JP2011022149A 2011-02-03 2011-02-03 計算機、制御方法及びプログラム Active JP5703799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011022149A JP5703799B2 (ja) 2011-02-03 2011-02-03 計算機、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011022149A JP5703799B2 (ja) 2011-02-03 2011-02-03 計算機、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012164032A true JP2012164032A (ja) 2012-08-30
JP5703799B2 JP5703799B2 (ja) 2015-04-22

Family

ID=46843379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011022149A Active JP5703799B2 (ja) 2011-02-03 2011-02-03 計算機、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5703799B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160145783A (ko) * 2014-06-24 2016-12-20 인텔 코포레이션 가상 머신 전력 관리
WO2020008468A1 (en) * 2018-07-02 2020-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150893A1 (en) * 2004-06-07 2007-06-28 Grobman Steven L Method, apparatus and system for enhanced CPU frequency governers
JP2009110404A (ja) * 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
JP2009175788A (ja) * 2008-01-21 2009-08-06 Hitachi Ltd サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム
WO2010097885A1 (ja) * 2009-02-24 2010-09-02 株式会社東芝 携帯端末

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150893A1 (en) * 2004-06-07 2007-06-28 Grobman Steven L Method, apparatus and system for enhanced CPU frequency governers
JP2009110404A (ja) * 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
JP2009175788A (ja) * 2008-01-21 2009-08-06 Hitachi Ltd サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム
WO2010097885A1 (ja) * 2009-02-24 2010-09-02 株式会社東芝 携帯端末

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160145783A (ko) * 2014-06-24 2016-12-20 인텔 코포레이션 가상 머신 전력 관리
CN106415498A (zh) * 2014-06-24 2017-02-15 英特尔公司 虚拟机功率管理
JP2017517812A (ja) * 2014-06-24 2017-06-29 インテル コーポレイション 仮想マシン電力管理
US9921862B2 (en) 2014-06-24 2018-03-20 Intel Corporation Virtual machine power management
KR101864980B1 (ko) * 2014-06-24 2018-06-05 인텔 코포레이션 가상 머신 전력 관리
CN106415498B (zh) * 2014-06-24 2020-09-29 英特尔公司 虚拟机功率管理
WO2020008468A1 (en) * 2018-07-02 2020-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein
US11579678B2 (en) 2018-07-02 2023-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein

Also Published As

Publication number Publication date
JP5703799B2 (ja) 2015-04-22

Similar Documents

Publication Publication Date Title
CN109906421B (zh) 基于线程重要性的处理器核划分
JP5839119B2 (ja) 情報処理装置、電池残量通知方法および電池残量通知プログラム
JP5433837B2 (ja) 仮想計算機システム、仮想計算機の制御方法及びプログラム
KR20200111295A (ko) 메모리 리클레임 방법 및 장치
US9146761B2 (en) Virtualization system and resource allocation method thereof
EP2823373B1 (en) Virtualizing battery across a group of personal mobile devices
JP4697805B2 (ja) データ処理装置
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
US20130081016A1 (en) Virtual computer system, virtual computer control method and accumulation circuit
KR20170093234A (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
JP5696603B2 (ja) 計算機システム、計算機システムの電力制御方法およびプログラム
EP2361405A1 (en) Energy based time scheduler for parallel computing system
US9696787B2 (en) Dynamic control of processors to reduce thermal and power costs
CN107870792B (zh) 一种移动终端的启动方法及移动终端和介质产品
JPWO2011161782A1 (ja) マルチコアシステムおよび外部入出力バス制御方法
JP5703799B2 (ja) 計算機、制御方法及びプログラム
CN113535251A (zh) 一种线程管理方法及装置
US20130298132A1 (en) Multi-core processor system and scheduling method
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
JP2012181578A (ja) 更新制御装置及びプログラム
JP4409568B2 (ja) 帯域制御プログラム及びマルチプロセッサシステム
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JP5505517B2 (ja) 情報処理装置、電力制御方法、および電力制御プログラム
JP2011209846A (ja) マルチプロセッサシステムとそのタスク割り当て方法
JP2014032621A (ja) スケジューリング方法、及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150209

R150 Certificate of patent or registration of utility model

Ref document number: 5703799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150