説明

情報処理装置、電力制御方法及び電力制御プログラム

【課題】効率良く消費電力を低減させる電力制御を行うことが可能な情報処理装置、電力制御方法及び電力制御プログラムを提供することである。
【解決手段】上記課題は、情報処理装置の各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有することにより達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のOSが搭載された情報処理装置、この情報処理装置による電力制御方法及び電力制御プログラムに関する。
【背景技術】
【0002】
近年では、CPU(Central Processing Unit)の高性能化に伴う仮想化技術により、一台の情報処理装置に複数のOS(Operating System)を搭載することができる。また近年の情報処理装置では、消費電力を低減させるための種々の電力制御が知られている。例えば複数のOSが搭載された情報処理装置では、一つのOSを動作させる場合と比べて処理量が増えるため、電力制御が重要となる。複数のOSが搭載された情報処理装置では、各OSが仮想的なリソースを使用するため、実際にリソースを管理しているハイパーバイザが省電力制御を行う。
【0003】
電力制御としては、例えば動的にCPUの動作周波数や電圧を変更するDVFS(Dynamic Voltage and Frequency Scaling)制御や、使用中のメモリバンクのみをリフレッシュするPASR(Partial Array Self Refresh)制御等が知られている。
【0004】
上記の制御以外にも、例えばシステム内で区画を生成し、ハイパーバイザにより少なくともいくつかの物理リソースを区画に割り当て、区画に割り当てられなかった物理リソースの電力消費を低減させること等が知られている。また、アプリケーションの使用状態における各デバイスの動作状態を標準的な動作状態に合わせることにより消費電力の低減が可能なデバイスを求め、該当するデバイスがあれば省電力モードを促すメッセージを表示させること等が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−192612号公報
【特許文献2】特開2007−179242号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来の複数のOSが搭載された情報処理装置では、ハイパーバイザが情報処理装置全体としての電力制御を行い、各OSによる省電力制御は行わない。このためCPUやメモリが無駄に使用される状況が想定され、効率的に省電力制御が行われていない可能性がある。またOS毎に省電力制御を実行した場合、各OSがCPUやメモリを解放すべく操作対象でないアプリケーションを終了させる処理等を行うため、アプリケーションの再起動が頻繁に発生し、消費電力が増加する場合がある。
【0007】
このように従来の複数のOSが搭載された情報処理装置では、各OSによる省電力制御をそのまま適用することができず、効率的な電力制御が行われていなかった。
【0008】
本発明の実施の態様では、効率良く消費電力を低減させる電力制御を行うことが可能な情報処理装置、電力制御方法及び電力制御プログラムを提供することである。
【課題を解決するための手段】
【0009】
開示の技術における情報処理装置の一態様によれば、当該情報処理装置の各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する。
【0010】
上記各手段を手順としてコンピュータにより実行させる方法、上記各手段を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【0011】
開示の情報処理装置によれば、効率良く消費電力を低減させる電力制御を行うことができる。
【図面の簡単な説明】
【0012】
【図1】第一実施例における情報処理装置のハードウェア構成例を示す図である。
【図2】第一実施例における情報処理装置の機能構成例を示すブロック図である。
【図3】第一実施例のリソース解放部の処理を説明するフローチャートである。
【図4】第一実施例の解放リソース特定部の処理を説明するフローチャートである。
【図5】第一実施例のリソース管理部の処理を説明するフローチャートである。
【図6】第一実施例のユーザ提示部の処理を説明するフローチャートである。
【図7】第一実施例の電力制御部の処理を説明するフローチャートである。
【図8】第一実施例のリソース情報の例を示す図である。
【図9】第一実施例の省電力判断閾値と解放要求閾値を説明する図である。
【図10】第一実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図11】第二実施例における情報処理装置の機能構成例を示すブロック図である。
【図12】第二実施例のリソース情報の例を示す図である。
【図13】第二実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図14】第三実施例における情報処理装置のハードウェア構成例を示す図である。
【図15】第三実施例における情報処理装置の機能構成例を示すブロック図である。
【図16】第三実施例のリソース情報の例を示す図である。
【図17】第三実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図18】第四実施例における情報処理装置のハードウェア構成例を示す図である。
【図19】第四実施例における情報処理装置の機能構成例を示すブロック図である。
【図20】第四実施例のリソース情報の例を示す図である。
【図21】第四実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図22】第五実施例における情報処理装置の機能構成例を示すブロック図である。
【図23】第五実施例のリソース情報の例を示す図である。
【図24】第五実施例のリソース解放部の処理を説明するフローチャートである。
【図25】第五実施例の解放リソース特定部の処理を説明するフローチャートである。
【図26】リソースの置換を説明する図である。
【発明を実施するための形態】
【0013】
(第一実施例)
以下、本発明の実施例を図面に基づいて説明する。本実施例では、電力制御としてDVFS制御を用いた場合について説明する。
【0014】
図1は、第一実施例における情報処理装置のハードウェア構成例を示す図である。
【0015】
情報処理装置100では、入力装置11、表示装置12、主記憶装置13、CPU14、インターフェース装置15、補助記憶装置16及びドライバ装置17がバスBで相互に接続されている。
【0016】
バスBで相互に接続されている入力装置11、表示装置12、主記憶装置13、CPU14、インターフェース装置15、補助記憶装置16及びドライバ装置17は、CPU14による管理下で相互にデータの送受を行うことができる。CPU14は、情報処理装置100全体の動作制御を司る中央処理装置である。
【0017】
インターフェース装置15は他の情報処理装置からのデータを受信し、そのデータの内容をCPU14に渡す。さらに、インターフェース装置15はCPU14からの指示に応じて他の情報処理装置にデータを送信する。
【0018】
補助記憶装置16には、情報処理装置100の機能を発揮させるプログラムの一部として、少なくとも情報処理装置100に電力制御を実行させる電力制御プログラムが記憶されている。
【0019】
そして情報処理装置100は、CPU14が電力制御プログラムを補助記憶装置16から読み出して実行することで、電力制御機能を有する装置となる。電力制御プログラムはCPU14とアクセス可能な主記憶装置13に格納されていても良い。入力装置11はCPU14の管理下でデータの入力を受付ける。電力制御プログラムは情報処理装置100が読み取り可能な記録媒体18に記録しておくことができる。
【0020】
情報処理装置100で読み取り可能な記録媒体18には、磁気記録媒体、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録媒体には、HDD(Hard Disk Drive)、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。また、光磁気記録媒体には、MO(Magneto − Optical disk)などがある。電力制御プログラムを流通させる場合には、例えば電力制御プログラムが記録されたDVD、CD−ROM等の可搬型の記録媒体18を販売することが考えられる。
【0021】
そして電力制御プログラムを実行する情報処理装置100は、例えばドライバ装置17が電力制御プログラムを記録した記録媒体18から、電力制御プログラムを読み出す。CPU14は、読み出された電力制御プログラムを主記憶装置13若しくは補助記憶装置16に格納する。
【0022】
そして情報処理装置100は、自己の記憶装置である主記憶装置13若しくは補助記憶装置16から電力制御プログラムを読み取り、電力制御プログラムに従った処理を実行する。
【0023】
図2は、第一実施例における情報処理装置の機能構成例を示すブロック図である。
【0024】
本実施例の情報処理装置100は、例えばバッテリー等の二次電池により駆動される携帯端末等である。情報処理装置100は、仮想マシンVM1と仮想マシンVM2とに分割することで、異なるOS110とOS120とを並列に実行させることができる。OS110は仮想マシンVM1上で動作するOSであり、OS120は仮想マシンVM2上で動作するOSである。ハイパーバイザ130は、仮想マシンVM1、VM2を実現するための制御プログラムであり、仮想マシンVM1、VM2上でそれぞれのOS110、120を動作させる。すなわちハイパーバイザ130は、情報処理装置100において、複数のOSを動作させるための制御手段である。
【0025】
OS110、OS120は、それぞれがリソース解放部111、リソース解放部121を有する。リソース解放部111は、後述するリソース解放要求に基づきOS110が使用しているリソースを解放する。リソース解放部121も同様に、後述するリソース解放要求に基づきOS120が使用しているリソースを解放する。リソース解放部111、121は、リソースを解放すると、リソースを解放したことを示す解放通知をリソース管理部132へ通知する。
【0026】
尚リソースとは、記憶装置やCPU等の情報処理装置100を満足に動作させるためのハードウェア資源の総称であり、本実施例ではCPU14を示す。
【0027】
ハイパーバイザ130は、解放リソース特定部131、リソース管理部132、ユーザ提示部133、電力制御部134、リソース情報記憶部140を有する。
【0028】
解放リソース特定部131は、リソース情報記憶部140に記憶されたDVFS制御用のリソース情報141に基づき、リソース解放要求を通知するOSを特定する。そして解放リソース特定部131は、特定されたOSのリソース解放部へリソース解放要求を通知する。
【0029】
リソース管理部132は、リソース情報記憶部140に記憶されたリソース情報141に基づきリソースの管理を行う。またリソース管理部132は、リソース情報140を更新する。ユーザ提示部133は、リソースの解放に係る情報をユーザへ提示する。電力制御部134は、リソースの消費電力に関する制御を行うものであり、本実施例ではDVFS制御によりCPU14の消費電力を低減させる電力制御を行う。以下の説明では、リソースの消費電力を低減させる電力制御を省電力制御と呼ぶ。
【0030】
リソース情報記憶部140は、主記憶装置13及び/又は補助記憶装置16から構成される記憶部であり、リソース情報141が格納される。リソース情報141の詳細は後述する。
【0031】
以下に本実施例の情報処理装置100の有する各部の処理をさらに説明する。図3は、第一実施例のリソース解放部の処理を説明するフローチャートである。尚本実施例のリソース解放部111とリソース解放部121とは、同様の機能構成を有する。したがって図3では、例としてリソース解放部111の処理を説明し、リソース解放部121の処理の説明は省略する。
【0032】
本実施例のリソース解放部111は、リソースを解放する際に、リソース解放要求の通知によるリソースの解放か、又はOS110の通常動作によるリソースの解放かを判断する。
【0033】
まず本実施例のリソース解放部111は、解放リソース特定部131からリソース解放要求を通知されたか否かを判断する(ステップS31)。ステップS31でリソース解放要求を通知されていない場合、リソース解放部111は、OS110の通常動作によるリソースの解放と判断し、後述するステップS33へ進む。
【0034】
ステップS31においてリソース解放要求を通知された場合、リソース解放部111はリソースの解放が可能か否かを判断する(ステップS32)。ステップS32においてリソースの解放が可能と判断された場合、リソース解放部111はリソースを解放する(ステップS33)。続いてリソース解放部111は、リソース解放を示す解放通知をリソース管理部132へ通知し(ステップS34)、処理を終了する。
【0035】
ステップS32においてリソースの解放が不可能と判断された場合、リソース解放部111は、リソースを使用しているアプリケーションが存在するか否かを判断する(ステップS35)。ステップS35において該当するアプリケーションが存在する場合、リソース解放部111は、ユーザ提示部133に対して該当するアプリケーションを通知する(ステップS36)。ステップS35において該当するアプリケーションが存在しない場合、リソース解放部111は処理を終了する。
【0036】
仮想マシンには、OSを修正することなくそのまま動作可能な完全仮想化と、特権命令をハイパーバイザへの呼び出し(ハイパーコール)に修正してOSを動作させる準仮想化の二種類が存在する。仮想マシンが完全仮想化の場合、仮想マシン上で特権命令が実行されたときにCPUが例外を発生させることにより、OSからハイパーバイザへの通知が可能となる。また完全仮想化の場合には、ハイパーコールによってもOSからハイパーバイザへの通知が可能である。
【0037】
仮想マシンが準仮想化の場合、ハイパーコールによりOSからハイパーバイザへの通知が可能である。ハイパーコールはソフトウェア割り込みなどのCPUの機能を利用して実現される。本実施例の仮想マシンVM1、VM2は、これらの通知機能によりハイパーバイザ130へリソースの解放等を通知する。
【0038】
ハイパーバイザから仮想マシンへの通知は、OSのハンドラから処理を開始させることで実現可能である。ハイパーバイザは、実行する仮想マシンを切り替える機能を有しており、仮想マシンを切り替える際にCPUのレジスタを保存・復元する。レジスタには実行アドレスを保持するプログラムカウンタも含まれている。よってハイパーバイザは、プログラムカウンタをOSのハンドラに設定することで、OSのハンドラを実行させることができる。本実施例のハイパーバイザ130は、これらの通知機能によりOS110、120へリソース解放要求等を通知する。
【0039】
次に、本実施例の解放リソース特定部131の処理について説明する。図4は、第一実施例の解放リソース特定部の処理を説明するフローチャートである。
【0040】
本実施例の解放リソース特定部131は、リソース情報141を読み出す(ステップS41)。続いて解放リソース特定部131は、リソース情報141から、リソース解放要求の通知を行う対象となるリソースが存在するか否かを判断する(ステップS42)。ステップS42において該当するリソースが存在しない場合、解放リソース特定部131は処理を終了する。ステップS42において該当するリソースが存在する場合、解放リソース特定部131は、該当するリソースを使用しているOSのリソース解放部へ該当するリソース解放要求を通知する(ステップS43)。本実施例の解放リソース特定部131は、リソース管理部132によりリソース情報141が更新される度にステップS41〜ステップS43の処理を行う。
【0041】
次に、本実施例のリソース管理部132の処理について説明する。図5は、第一実施例のリソース管理部の処理を説明するフローチャートである。
【0042】
本実施例のリソース管理部132は、予め設定された所定周期毎にリソースの使用状況情報を取得し、リソース情報記憶部140に記憶されたリソース情報141を更新する(ステップS51)。例えばリソース管理部132は、リソース解放であれば、リソースが解放されたことをリソース情報141に反映させ、リソース取得であれば、リソースが使用中になったことをリソース情報141に反映させる。
【0043】
続いてリソース管理部132は、リソース情報141から省電力制御が必要か否かを判断する(ステップS52)。ステップS52において省電力制御が不要と判断された場合、リソース管理部132は処理を終了する。ステップS52において省電力制御が必要と判断されると、リソース管理部132は電力制御部134へ省電力制御要求を通知し(ステップS53)、処理を終了する。
【0044】
次に、本実施例のユーザ提示部133の処理について説明する。図6は、第一実施例のユーザ提示部の処理を説明するフローチャートである。
【0045】
本実施例のユーザ提示部133は、リソース解放部111及び/またはリソース解放部121からの通知を受けて動作を開始する。ユーザ提示部133は、リソース解放部111及び/またはリソース解放部121から通知されたアプリケーションの情報をユーザへ提示して(ステップS61)、処理を終了する。ユーザ提示部133は、表示装置12にリソースを解放するためのユーザの操作を表示させても良い。具体的には例えば、実行中のアプリケーションの終了を促すメッセージ等を表示させても良い。またユーザ提示部133は、表示装置12にダイアログ等を表示させ、終了させるアプリケーションの選択を促してもよい。さらにユーザ提示部133は、音声出力によりユーザへリソースを解放するための操作を通知しても良い。
【0046】
次に、本実施例の電力制御部134の処理について説明する。図7は、第一実施例の電力制御部の処理を説明するフローチャートである。
【0047】
本実施例の電力制御部134は、リソース管理部132からの通知を受けて動作を開始する。電力制御部134は、リソース管理部132から通知を受けて実際のハードウェアに対して省電力制御を行い(ステップS71)、処理を終了する。本実施例の電力制御部134は、CPU14の動作周波数を下げる。尚本実施例の電力制御部134は、CPU14の動作電圧を下げても良い。
【0048】
次に、本実施例のリソース情報141について説明する。図8は、第一実施例のリソース情報の例を示す図である。
【0049】
本実施例のリソース情報141は、個別リソース情報1411と、省電力判断閾値1412と、解放要求閾値1413とが含まれる。
【0050】
個別リソース情報1411は、OS毎のCPU14の使用状況を示す情報を含んでおり、OS毎に記憶される情報である。よって本実施例のリソース情報141には、OS110の個別リソース情報1411とOS120の個別リソース情報1411とが含まれる。
【0051】
個別リソース情報1411は、OSが搭載された仮想マシンの識別情報(ID)、OSによるCPU14の使用率、リソース解放要求を通知するための要求通知条件を含む。
【0052】
要求通知条件は、OS毎に予め設定された条件である。要求通知条件は、例えば所定のCPU使用率を示す値であっても良いし、所定範囲のCPU使用率の値であっても良い。例えばOS110によるCPU14の使用率が、要求通知条件に設定された値となった場合、OS110はリソース解放要求を通知するOSとして選択される。また例えばOS110によるCPU14の使用率が、要求通知条件に設定された所定範囲内となった場合、OS110はリソース解放要求を通知するOSとして選択される。
【0053】
省電力判断閾値1412は、省電力制御を行うか否かを判断するための閾値である。
【0054】
解放要求閾値1413は、リソース解放要求の通知を行うか否かの決定に用いる閾値である。尚リソース情報141に含まれる各閾値は、予め設定された値である。
【0055】
以下に図9を参照して省電力判断閾値1412、解放要求閾値1413について説明する。図9は、第一実施例の省電力判断閾値と解放要求閾値を説明する図である。図9(A)は、仮想マシン毎のCPU14の使用率を示しており、図9(B)は情報処理装置100全体におけるCPU14の使用率を示している。
【0056】
本実施例の省電力判断閾値1412は、電力制御部134による省電力制御を行うか否かを決定するためのCPU使用率の閾値である。本実施例では、情報処理装置100全体でのCPU14のCPU使用率が省電力判断閾値1412以下となったら、電力制御部134によりCPU14の動作周波数を予め設定された所定値まで下げる。
【0057】
尚本実施例では、CPU使用率が所定値まで上がってきたら、CPU14の動作周波数を上げても良い。CPU14による処理量が多い場合には、CPU14の動作周波数を上げることで、処理速度の低下を抑えることができる。
【0058】
本実施例の解放要求閾値1413は、解放リソース特定部131によるリソース解放要求の通知を行うか否かを決定するためのCPU使用率の閾値である。より具体的には、解放要求閾値1413は、CPU14の動作周波数が省電力判断閾値1412より大きく且つ所定範囲内であるか否かを判断するための閾値である。本実施例では、情報処理装置100全体でのCPU使用率が省電力判断閾値1412より大きく且つ解放要求閾値1413未満となったとき、解放リソース特定部131によるリソース解放要求の通知を行う。
【0059】
例えば省電力判断閾値1412が10%であり、解放要求閾値1413が5%である場合には、情報処理装置100全体でのCPU使用率が10%より大きく15%未満のときリソース解放要求の通知を行う。
【0060】
以下に本実施例の情報処理装置100において、リソース情報141を参照したときの省電力制御について説明する。図10は、第一実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【0061】
本実施例では、所定周期毎に以下のステップS1001以降の処理を繰り返す。リソース管理部132は、リソース情報141を更新する(ステップS1001)。具体的にはリソース管理部132は、OS110、120へのCPU14の割り当てと、OS毎のCPU使用率の測定を行い、リソース情報141のOS毎のCPU使用率を更新する。
【0062】
続いてリソース管理部132は、省電力制御か可能か否かを判断する(ステップS1002)。具体的にはリソース管理部132は、更新後のリソース情報141に基づき、全体のCPU使用率が省電力判断閾値1412以下であるか否かを判断する。
【0063】
ステップS1002において全体のCPU使用率が省電力判断閾値1412以下である場合、リソース管理部132は電力制御部134へ省電力制御要求を通知する(ステップS1003)。電力制御部134は、通知を受けて、CPU14の動作周波数を下げる(ステップS1004)。電力制御部134は処理を終了する。
【0064】
ステップS1002において全体のCPU使用率が省電力判断閾値1412より大きい場合、解放リソース特定部131は、リソース情報記憶部140からリソース情報141を読み出す(ステップS1005)。続いて解放リソース特定部131は、OS毎の個別リソース情報1411に含まれるOS毎のCPU使用率から、情報処理装置100全体のCPU使用率を取得する(ステップS1006)。
【0065】
続いて解放リソース特定部131は、全体のCPU使用率が省電力判断閾値1412より大きく且つ解放要求閾値1413未満であるか否かを判断する(ステップS1007)。ステップS1007において、CPU使用率が電力判断閾値1412より大きく且つ解放要求閾値1413未満である場合、解放リソース特定部131は、OS毎の個別リソース情報1411に含まれる要求通知条件からリソース解放要求を通知するOSを特定する(ステップS1008)。
【0066】
具体的には例えば、OS120の要求通知条件がCPU使用率50%以上のときとし、OS120のCPU使用率が30%であった場合、解放リソース特定部131はOS120へはリソース解放要求は通知しない。以下の説明では、OS110がリソース解放要求を通知するOSとして特定されたものとする。
【0067】
ステップS1007において、CPU使用率が省電力判断閾値1412より大きく且つ解放要求閾値1413未満でない場合、解放リソース特定部131は処理を終了する。
【0068】
ステップS1008においてリソース解放要求を通知するOSを特定すると、解放リソース特定部131はOS110のリソース解放部111へリソース解放要求を通知する(ステップS1009)。尚解放リソース特定部131は、このときリソース解放部111へ、低下させるCPU使用率の値を通知する。
【0069】
OS110においてリソース解放部111は、OS110の有する電力制御機能によりリソースの解放が可能か否かを判断する(ステップS1010)。具体的にはリソース解放部111は、解放リソース特定部131より通知されたCPU使用率の値だけ、CPU使用率を下げられるか判断する。
【0070】
OS110の有する省電力制御としては、例えばOS110は、アプリケーションを統括している管理アプリケーションに削減を依頼しても良い。管理アプリケーションが実行中のアプリケーションを終了すれば、CPU使用率を低減できる。尚本実施例では、CPU使用率を通知された値まで削減できなくても良い。本実施例では、例えば通知された値の何割かを削減できれば、リソースの解放が可能と判断しても良い。何割かは、予め設定された値であっても良い。また他のOS110の有する省電力制御としては、スケジューラにおけるスケジューリングの調整や周期的な処理の周期延長等がある。
【0071】
ステップS1010においてリソースの解放が可能と判断された場合、リソース解放部111はリソースを解放し、リソースを解放したことを示す解放通知をリソース管理部132へ通知する(ステップS1011)。CPU使用率は、周期的にハイパーバイザ130にて測定するため、リソースを解放した場合でも、リソース解放部111からリソース管理部132へ通知は行わない。
【0072】
またステップS1010においてリソースの解放が不可能と判断された場合、リソース解放部111はユーザ提示部133へその旨を通知する(ステップS1012)。ユーザ提示部133は、この通知を受けて、ユーザへリソースの解放を促す(ステップS1013)。具体的にはユーザ提示部133は、例えば表示装置12へ、実行中のアプリケーションを終了させるように促すメッセージや、バックグラウンドで行っている処理を停止するように設定の変更を促すメッセージ等を表示させても良い。
【0073】
以上のように本実施例では、CPU14の使用率を低下させることができそうなOSに対してCPU使用率の低下を要求する通知を行う。本実施例では、この通知によりOSの有する電力制御機能を効果的に用いることができ、情報処理装置100全体の消費電力の削減に貢献できる。
【0074】
(第二実施例)
以下に図面に基づいて第二実施例について説明する。第二実施例では、電力制御として、PASR制御を用いる点が第一実施例と相違する。よって以下の第二実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【0075】
第二実施例の情報処理装置100Aのハードウェア構成は、第一実施例と同様であるので説明を省略する。
【0076】
図11は、第二実施例における情報処理装置の機能構成例を示すブロック図である。
【0077】
本実施例の情報処理装置100Aは、ハイパーバイザ130Aを有する。ハイパーバイザ130Aは、解放リソース特定部131A、リソース管理部132A、電力制御部134Aを有する。また本実施例では、リソース情報記憶部140にリソース情報141Aが記憶されている。
【0078】
解放リソース特定部131Aは、リソース情報記憶部140に記憶されたPASR制御用のリソース情報141Aに基づき、リソース解放要求を通知するOSを特定する。そして解放リソース特定部131Aは、特定したOSのリソース解放部へリソース解放要求を通知する。尚本実施例では、リソースはメモリを示す。本実施例のメモリは、主記憶装置13及び補助記憶装置16である。リソース管理部132Aは、リソース情報141Aを管理する。電力制御部134Aは、PASR制御による情報処理装置100Aの省電力制御を行う。
【0079】
次に本実施例のリソース情報141Aについて説明する。図12は、第二実施例のリソース情報の例を示す図である。
【0080】
本実施例のリソース情報141Aは、個別リソース情報1411Aと、解放要求閾値1413Aとが含まれる。
【0081】
本実施例の個別リソース情報1411Aは、メモリバンク毎の使用状況を示す情報である。個別リソース情報1411Aは、メモリバンクのID、メモリの使用ページ数、ページを使用しているOSを動作させている仮想マシンのID、使用されているページ番号が含まれる。個別リソース情報1411Aは、使用ページ数の数だけ、仮想マシンのIDとページ番号の組が存在する。
【0082】
本実施例の解放要求閾値1413Aは、リソース解放要求を通知するか否かの決定に用いる閾値である。より具体的には解放要求閾値1413Aは、メモリを解放してメモリバンクを未使用とするか否かを判断するための閾値であり、使用ページ数の値である。
【0083】
本実施例では、使用ページ数が解放要求閾値1413A以下であるメモリバンクを使用しているOSに対して、リソース解放要求の通知を行う。尚解放要求閾値1413Aは、全てのメモリバンクに共通の値として設定されても良いし、メモリバンク毎に異なる値としても良い。尚リソース情報141Aに含まれる各閾値は、予め設定された値である。
【0084】
以下に本実施例の情報処理装置100Aにおいて、リソース情報141Aを参照したときの電力制御について説明する。図13は、第二実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【0085】
本実施例のリソース管理部132Aは、リソース情報141Aが更新されると、以下の処理を実行する。
【0086】
解放リソース特定部131Aは、リソース情報記憶部140からリソース情報141Aを読み出す(ステップS1301)。続いて解放リソース特定部131Aは、個別リソース情報1411Aにおいて、使用ページ数が解放要求閾値1413A以下であるメモリバンクが存在するか否かを判断する(ステップS1302)。
【0087】
ステップS1302において使用ページ数が解放要求閾値1413A以下であるメモリバンクが存在する場合、解放リソース特定部131Aは、個別リソース情報1411Aの仮想マシンのIDから該当するメモリバンクを使用しているOSを特定する(ステップS1303)。以下の説明では、OS120が特定されるものとする。
【0088】
ステップS1302において使用ページ数が解放要求閾値1413A以下であるメモリバンクが存在しない場合、解放リソース特定部131Aは後述するステップS1308へ進む。
【0089】
OS120が特定されると、解放リソース特定部131Aは、OS120のリソース解放部121へリソース解放要求を通知する(ステップS1304)。尚解放リソース特定部131Aは、リソース解放要求の通知と共に解放対象のメモリページ番号もリソース解放部121へ通知する。メモリページ番号は、実際の物理ページ番号であってもよいし、ハイパーバイザ130Aにより仮想化されてVM1に提供されている仮想物理ページ番号であってもよい。
【0090】
OS120においてリソース解放部121は、通知を受けて、OS120の有する電力制御機能によりリソースの解放が可能か否かを判断する(ステップS1305)。具体的にはリソース解放部121は、指定されたメモリページを空けることができるか否かを判断する。
【0091】
ステップS1305においてリソースの解放が可能と判断された場合、リソース解放部121はリソースを解放し、リソース管理部132Aへリソースを解放したことを通知する(ステップS1306)。
【0092】
本実施例ではリソース解放部121は、例えば指定されたメモリページを使用しているアプリケーションを終了させて、メモリページを空けても良い。この場合リソース解放部121は、アプリケーションを統括している管理アプリケーションにアプリケーション終了を依頼しても良い。またリソース解放部121は、例えばメモリの片寄せや、バッファやキャッシュの解放などによりメモリページを空けても良い。メモリの片寄せとは、あるページで使用している領域を別のページへと移動させることである。
【0093】
リソース管理部132Aは、リソース解放の通知を受けて、メモリの割り当てと解放を行い、リソース情報141Aの個別リソース情報1411Aを更新する(ステップS1307)。続いてリソース管理部132Aは、省電力制御が可能か否かを判断する(ステップS1308)。具体的にはリソース管理部132Aは、未使用となったメモリバンクがあるか否かを判断する。
【0094】
ステップS1308において省電力制御が可能と判断された場合、リソース管理部132Aは電力制御部134Aへ省電力制御要求を通知する(ステップS1309)。電力制御部134Aは、通知を受けて、未使用となったメモリバンクのリフレッシュを停止する(ステップS1310)。
【0095】
ステップS1306においてリソースの解放が不可能と判断された場合、リソース解放部121は、その旨をユーザ提示部133へ通知する(ステップS1311)。ステップS1312の処理は、図10のステップS1013と同様であるから説明を省略する。
【0096】
尚本実施例では、リソース管理部132Aによるメモリの片寄せによりメモリバンクを未使用にすることも可能である。またリソース管理部132Aは、使用ページ数が低いメモリバンクから使用ページ数が多いメモリバンクへ片寄せすることで、解放リソース特定部131Aでリソース解放要求を行わせるように制御可能である。
【0097】
以上のように本実施例では、使用ページ数が所定数以下のメモリバンクを使用しているOSに対してメモリページを空にする要求を通知する。本実施例では、この通知によりOSの有する電力制御機能を効果的に用いることができ、情報処理装置100A全体の消費電力の削減に貢献できる。
【0098】
(第三実施例)
以下に図面に基づいて第三実施例について説明する。第三実施例では、マルチコアのCPUを有する点で第一実施例と相違する。よって以下の第三実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【0099】
図14は、第三実施例における情報処理装置のハードウェア構成例を示す図である。
【0100】
本実施例の情報処理装置100BのCPU14Aは、1つのプロセッサ・パッケージ内に複数のプロセッサ・コアが封入されているマルチコアプロセッサである。本実施例のCPU14Aは、コア1、コア2を有する。尚本実施例ではCPU14Aの有するコアを2つとしたが、CPU14Aの有するコアは2つでなくても良く、4つであっても8つであっても良い。
【0101】
本実施例では、電力制御として、CPU14Aの有するコアの何れかの電源をオフさせる制御を行う。
【0102】
図15は、第三実施例における情報処理装置の機能構成例を示すブロック図である。本実施例の情報処理装置100Bは、ハイパーバイザ130Bを有する。ハイパーバイザ130Bは、解放リソース特定部131B、リソース管理部132B、電力制御部134Bを有する。また本実施例では、リソース情報記憶部140にリソース情報141Bが記憶されている。
【0103】
本実施例の解放リソース特定部131Bは、リソース情報141Bに基づき、リソース解放要求を通知するOSを特定する。そして解放リソース特定部131Bは、特定したOSのリソース解放部へリソース解放要求を通知する。本実施例のリソースは、CPU14Aである。
【0104】
リソース管理部132Bは、リソース情報141Bを管理する。電力制御部134Bは、CPU14Aの有するコアの少なくとも一つをオフさせる。
【0105】
次に、本実施例のリソース情報141Bについて説明する。図16は、第三実施例のリソース情報の例を示す図である。
【0106】
本実施例のリソース情報141Bは、個別リソース情報1411Bと、コア別リソース情報1412Bと、解放要求閾値1413Bとが含まれる。
【0107】
個別リソース情報1411Bは、リソースとなるCPU14Aがマルチコアプロセッサである点以外は、第一実施例の個別リソース情報1411と同様である。個別リソース情報1411Bは、CPU14Aの使用状況を示す情報を含んでおり、OS毎に記憶される情報である。個別リソース情報1411Bは、仮想マシンのID、OSによるCPU14Aの使用率、リソース解放要求を通知するための要求通知条件を含む。尚ここでのCPU14Aの使用率は、各OSによるCPU14A全体の使用率を示している。
【0108】
コア別リソース情報1412Bは、コア毎に記憶される情報である。本実施例のコア別リソース情報1412Bは、コアを識別するコア番号と、コア毎の稼働率とが含まれる。
【0109】
解放要求閾値1413Bは、リソース解放要求を通知するか否かを決定するために用いる閾値である。本実施例では、コア1とコア2の最大の稼働率を100%とした場合に、コア毎の稼働率の合計を100で割った余りが解放要求閾値1413Bよりも小さいときリソース解放要求の通知を行う。以下の説明では、コア毎の稼働率の合計をコアの最大稼働率で割ったときの余りを解放決定比較値と呼ぶ。尚リソース情報141Bに含まれる各閾値は、予め設定された値である。本実施例ではコアの稼働率を100%として説明するが、コアの稼働率は80%や70%とすることも可能である。その場合は、コア毎の稼働率の合計を80もしくは70で割った余りが解放決定比較値となる。
【0110】
以下に本実施例の情報処理装置100Bにおいて、リソース情報141Bを参照したときの電力制御について説明する。図17は、第三実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【0111】
本実施例では、所定周期毎に以下のステップS1701以降の処理を繰り返す。
【0112】
本実施例の情報処理装置100Bにおいて、リソース管理部132Bは、リソース情報141Bを更新する(ステップS1701)。具体的にはリソース管理部132Bは、OS毎へのCPU14Aの割り当てとOS毎のCPU使用率の測定を行い、個別リソース情報1411Bを更新する。また、コア別リソース情報1412Bのコア毎の稼働率も更新する。
【0113】
続いてリソース管理部132Bは、省電力制御が可能か否かを判断する(ステップS1702)。具体的にはリソース管理部132Bは、コア毎の稼働率の合計値が、n個のコア以内、つまりn×100%以内であれば、省電力制御が可能と判断する。尚nは、CPU14Aの有するコアの数より小さい数である。
【0114】
ステップS1702において省電力制御が可能と判断された場合、リソース管理部132Bは電力制御部134Bへ省電力制御要求を通知する(ステップS1703)。具体的にはリソース管理部132Bは、n個以外のコアの電源をオフするよう電力制御部134Bへ通知する。このときリソース管理部132Bは、電源をオフさせるコアを選択し、省電力制御要求と共にコア番号を電力制御部134Bへ通知しても良い。
【0115】
電源をオフとするコアの選択は、コア別リソース情報1412Bの稼働率に基づき行っても良い。例えばリソース管理部134Bは、コア別リソース情報1412Bにおいて稼働率が低いコアから順に電源をオフするコアを選択しても良い。このようにすれば、実行中の処理を別のコアで実行させるための移動による影響を小さくすることができる。
【0116】
電力制御部134Bは、通知を受けて選択されたコアの電源をオフとする(ステップS1704)。
【0117】
ステップS1702において、省電力制御が可能でないと判断された場合、解放リソース特定部131Bはリソース情報記憶部140からリソース情報141Bを読み出す(ステップS1705)。続いて解放リソース特定部131Bは、リソース情報141Bのコア別リソース情報1412Bから解放決定比較値を算出する(ステップS1706)。
【0118】
続いて解放リソース特定部131Bは、解放決定比較値と解放要求閾値1413Bとを比較し、解放決定比較値が解放要求閾値1413B未満か否かを判断する(ステップS1707)。
【0119】
例えば本実施例の最大稼働率が100%のコアを4つ有するCPUの場合について説明する。尚この場合、解放要求閾値1413Bは5%とする。CPUの有する各コアの稼働率が76%とすると、解放決定比較値は、各コアの稼働率の合計値304%を各コアの最大稼働率100%で割ったときの余り4%となる。よって解放決定比較値は解放要求閾値1413B未満と判断される。
【0120】
ステップS1707において解放決定比較値が解放要求閾値1413B未満の場合、解放リソース特定部131Bは、個別リソース情報1411Bに含まれる要求通知条件からリソース解放要求を通知するOSを特定する(ステップS1708)。ここではOS110が特定されたものする。
【0121】
ステップS1707において、解放決定比較値が解放要求閾値1413B未満でない場合、解放リソース特定部131は処理を終了する。
【0122】
ステップS1708においてリソース解放要求を通知するOS110を特定すると、解放リソース特定部131Bは、OS110のリソース解放部111へリソース解放要求を通知する(ステップS1709)。尚解放リソース特定部131Bは、このときリソース解放部111へ、解放決定比較値を低下させるCPU使用率の値としてリソース解放部111へ通知する。
【0123】
図17のステップS1710とステップS1711の処理は、図10のステップS1010とステップS1011の処理と同様であるから説明を省略する。
【0124】
ステップS1710においてリソースの解放が不可能と判断された場合のステップS1712の処理とステップS1713の処理は、図10のステップS1012とステップS1013の処理と同様であるから説明を省略する。
【0125】
以上のように本実施例では、ハイパーバイザ130BがCPU14Aの有する複数のコアのうち、一部のコアの電源をオフさせるための制御の要求をOSへ通知する。本実施例では、この通知によりOSの有する電力制御機能を効果的に用いることができ、情報処理装置100B全体の消費電力の削減に貢献できる。
【0126】
(第四実施例)
以下に図面に基づいて第四実施例について説明する。第四実施例では、解放対象のリソースをデバイスとする点で第一実施例と相違する。よって以下の第四実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【0127】
図18は、第四実施例における情報処理装置のハードウェア構成例を示す図である。
【0128】
本実施例の情報処理装置100Cは、撮影装置21、音声出力装置22、音声入力装置23、GPS(Global Positioning System)装置24等を有する。撮影装置21、音声出力装置22、音声入力装置23、GPS装置24等は、情報処理装置100Cの有する他の各装置とバスBを介して接続されており、CPU14による管理下で相互にデータの送受を行うことができる。
【0129】
本実施例の情報処理装置100Cでは、CPU14、主記憶装置13、補助記憶装置16以外の全ての装置をデバイスとして扱い、解放対象のリソースとみなす。
【0130】
本実施例では、電力制御として、情報処理装置100Cの有するデバイスの何れかの電源をオフさせる制御を行う。
【0131】
図19は、第四実施例における情報処理装置の機能構成例を示すブロック図である。本実施例の情報処理装置100Cは、ハイパーバイザ130Cを有する。ハイパーバイザ130Cは、解放リソース特定部131C、リソース管理部132C、電力制御部134Cを有する。また本実施例では、リソース情報記憶部140にリソース情報141Cが記憶されている。
【0132】
本実施例の解放リソース特定部131Cは、リソース解放要求を通知するOSを特定する。そして解放リソース特定部131Cは、特定したOSのリソース解放部へリソース解放要求を通知する。
【0133】
リソース管理部132Cは、リソース情報141Cを管理する。電力制御部134Cは、選択されたデバイスの電源をオフさせる。
【0134】
次に、本実施例のリソース情報141Cについて説明する。図20は、第四実施例のリソース情報の例を示す図である。
【0135】
本実施例のリソース情報141Cは、個別リソース情報1411Cと、解放要求閾値1413Cとが含まれる。
【0136】
個別リソース情報1411Cは、デバイスの使用状況を示す情報を含んでおり、OS毎に記憶される情報である。個別リソース情報1411Cは、仮想マシンのID、デバイスID、OSによるデバイス使用率を含む。デバイスIDは、デバイス毎に一意に設定される識別情報である。デバイス使用率は、OSがデバイスをどれだけ使用しているかを示す割合であり、単位時間あたりのアクセス数等から算出される。デバイス使用率は、例えば1秒間に100回アクセスされた場合を100%として計算しても良い。この場合、1秒間に5回アクセスされたときのデバイス使用率は5%となる。
【0137】
解放要求閾値1413Cは、リソース解放要求を通知するか否かを決定するために用いる閾値である。本実施例では、デバイス使用率が解放要求閾値1413C未満であるデバイスを使用しているOSに対して、リソース解放要求を通知する。尚解放要求閾値1413Cは予め設定された値である。
【0138】
以下に本実施例の情報処理装置100Cにおいて、リソース情報141Cを参照したときの電力制御について説明する。図21は、第四実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【0139】
本実施例では、リソース情報141Cが更新されると、以下のステップS2101以降の処理を実行する。
【0140】
本実施例の情報処理装置100Cにおいて、解放リソース特定部131Cはリソース情報記憶部140からリソース情報141Cを読み出す(ステップS2101)。続いて解放リソース特定部131Cは、リソース情報141Cの個別リソース情報1411Cから、各OSにおけるデバイス使用率の合計値をデバイス毎に算出する(ステップS2102)。
【0141】
続いて解放リソース特定部131Cは、デバイス毎のデバイス使用率の合計値と解放要求閾値1413Cとを比較し、合計値が解放要求閾値1413C未満のデバイスが存在するか否かを判断する(ステップS2103)。
【0142】
ステップS2103においてデバイス使用率の合計値が解放要求閾値1413C未満のデバイスが存在する場合、解放リソース特定部131Cは、デバイス使用率の合計値が解放要求閾値1413C未満のデバイスを使用しているOSを特定する(ステップS2104)。
【0143】
例えばOS110による撮影装置21のデバイス使用率が5%であり、OS120による撮影装置21のデバイス使用率が15%である場合、撮影装置21のデバイス使用率は20%となる。このとき解放要求閾値1413Cが25%に設定されていた場合、撮影装置21は解放対象として選択され、撮影装置21を使用しているOS110とOS120とがリソース解放要求を通知するOSとして特定される。尚ステップS2104では、OS110が特定されたものする。
【0144】
リソース解放要求を通知するOS110を特定すると、解放リソース特定部131Cは、OS110のリソース解放部111へリソース解放要求を通知する(ステップS2105)。尚解放リソース特定部131Cは、解放対象のデバイスIDも共にリソース解放部111へ通知する。
【0145】
リソース解放部111は、リソース解放要求が通知されると、OS110の有する電力制御機能によりリソースの解放が可能か否かを判断する(ステップS2106)。
ステップS2106において、リソースの解放が可能と判断された場合、リソース解放部111は、リソースを解放し、リソースの解放をリソース管理部132Cへ通知する(ステップS2107)。
【0146】
具体的にはリソース解放部111は、通知されたデバイスIDに対応するデバイスを制御するためのドライバを使用しているアプリケーションを特定し、アプリケーションを統括している管理アプリケーションにアプリケーションを終了するよう依頼する。管理アプリケーションは、アプリケーションの終了が可能であれば、該当するアプリケーションを終了させてドライバの使用を終了する。
【0147】
リソース管理部132Cは、リソースの解放が通知されると、この通知を受けてリソース情報141Cを更新する(ステップS2108)。具体的にはリソース管理部132Cは各OSからの要求に従い、デバイスの割り当てと解放を行い、リソース情報141Cの個別リソース情報1411Cにデバイスの登録と削除を行う。また本実施例のリソース管理部132Cは、デバイスへのアクセスをカウントしておき、一定期間毎にデバイス使用率を算出してリソース情報141Cを更新しても良い。
【0148】
続いてリソース管理部132Cは、省電力制御が可能か否かを判断する(ステップS2109)。ステップS2109において省電力制御が可能と判断された場合、リソース管理部132Cは電力制御部134Cへ省電力制御要求を通知する(ステップS2110)。具体的にはリソース管理部132Cは、デバイスIDに対応したデバイスがどのOSにも使用されておらず、未使用となっていた場合に省電力制御が可能と判断する。そしてリソース管理部Cは、省電力制御要求と共に制御対象となるデバイスIDを電力制御部134Cへ通知する。
【0149】
電力制御部134Cは、通知を受けてデバイスIDに対応するデバイスの電源をオフとする(ステップS2111)。
【0150】
ステップS2106においてリソースの解放が不可能と判断された場合のステップS2112の処理とステップS2113の処理は、図10のステップS1012とステップS1013の処理と同様であるから説明を省略する。
【0151】
以上のように本実施例では、ハイパーバイザ130Cにより使用頻度の低いデバイスの使用を停止する要求をOSへ通知する。本実施例では、この通知によりOSの有する電力制御機能を効果的に用いることができ、情報処理装置100C全体の消費電力の削減に貢献できる。
【0152】
(第五実施例)
以下に図面に基づいて第五実施例について説明する。第五実施例では、リソースを解放する代わりにリソースを置換する点で第一実施例と相違する。よって以下の第五実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【0153】
第五実施例の情報処理装置100Dのハードウェア構成は、第一実施例と同様であるので説明を省略する。
【0154】
図22は、第五実施例における情報処理装置の機能構成例を示すブロック図である。
【0155】
本実施例の情報処理装置100Dにおいて、OS110はリソース解放部111Aを有し、OS120はリソース解放部121Aを有する。また本実施例の情報処理装置100Dは、ハイパーバイザ130Dを有する。ハイパーバイザ130Dは、解放リソース特定部131D、リソース管理部132D、電力制御部134Aを有する。また本実施例では、リソース情報記憶部140にリソース情報141Dが記憶されている。
【0156】
本実施例の解放リソース特定部131Dは、OS110、120に対し、リソース解放要求の通知の他にリソース置換要求の通知を行う。OS110、120のリソース解放部111A、121Aは、リソース置換要求を通知されると、それぞれのOSの有する制御機能により、リソースの置換を行う。
【0157】
リソース管理部132Dは、リソース情報141Dを管理する。電力制御部134Aは、第二実施例と同様の電力制御を行う。
【0158】
次に本実施例のリソース情報141Dについて説明する。図23は、第五実施例のリソース情報の例を示す図である。本実施例では、リソースはメモリである。
【0159】
本実施例のリソース情報141Dは、第二実施例と同様の個別リソース情報1411Aと解放要求閾値1413Aの他に、置換要求条件1414を含む。本実施例の置換要求条件1414は、リソース交換要求を通知するための条件であり、OS毎に記憶される条件である。
【0160】
交換通知条件1414では、OSを動作させる仮想マシンの仮想マシンIDと、OSが使用している使用ページ数と、OSにとって必要最低限のページ数である最小ページ数とが含まれる。
【0161】
次に本実施例のOS110、120がそれぞれ有するリソース解放部111A、121Aについてさらに説明する。図24は、第五実施例のリソース解放部の処理を説明するフローチャートである。尚本実施例のリソース解放部111Aとリソース解放部121Aとは、同様の機能構成を有する。したがって図24では、例としてリソース解放部111Aの処理を説明し、リソース解放部121Aの処理の説明は省略する。
【0162】
図24のステップS2401からステップS2406までの処理は、図3のステップS31からステップS36までの処理と同様であるから説明を省略する。
【0163】
ステップS2401において、リソース解放要求を通知されていない場合、リソース解放部111Aは、リソース置換要求を通知されたか否かを判断する(ステップS2407)。ステップS2407においてリソース置換要求を通知されていない場合、リソース解放部111Aは、OS110の通常動作によるリソースの解放と判断し、ステップS2403へ進む。
【0164】
ステップS2407においてリソースの置換要求を通知されていた場合、リソース解放部111Aは、リソースの置換が可能か否かを判断する(ステップS2408)。リソースの置換とは、指定されたリソースを他のリソースで代替することを示す。
【0165】
ステップS2408においてリソースの置換が可能と判断されると、リソース解放部111Aは、代替用のリソースとして、新たなリソースの取得をリソース管理部132Dへ通知する(ステップS2409)。続いてリソース解放部111Aは、新たに取得したリソースと解放するリソースとを置換し、その後リソースの解放をリソース管理部132Dへ通知し(ステップS2410)、処理を終了する。尚ステップS2408でリソースの置換が不可能と判断されると、リソース解放部111Aは処理を終了する。
【0166】
次に本実施例の解放リソース特定部131Dについてさらに説明する。図25は、第五実施例の解放リソース特定部の処理を説明するフローチャートである。
【0167】
図25のステップS2501とステップS2502の処理は、図4のステップS41とステップS42の処理と同様であるから説明を省略する。
【0168】
ステップS2502において該当するリソースが存在しない場合、解放リソース特定部131Dは処理を終了する。ステップS2502において該当するリソースが存在する場合、解放リソース特定部131Dは、リソース情報141Dを参照し、該当するリソースが解放される可能性が有るか否かを判断する(ステップS2503)。
【0169】
本実施例では、リソースはメモリである。本実施例の解放リソース特定部131Dは、具体的にはステップS2502において使用ページ数が解放要求閾値1413A以下の解放対象となるメモリバンクが存在するか否かを判断している。ステップS2502で該当するメモリバンクが存在した場合、解放リソース特定部131Dは、解放対象のメモリバンクを使用しているOSを特定し、置換要求条件1414を参照する。解放リソース特定部131Dは、置換要求条件1414において使用ページ数と最小ページ数とが同じ値である場合、解放対象のメモリバンクの解放の可能性はなしと判断する。また解放リソース特定部131Dは、置換要求条件1414において使用ページ数が最小ページ数より大きい場合、解放対象のメモリバンクの解放の可能性ありと判断する。
【0170】
ステップS2503において可能性がある場合、解放リソース特定部131Dは該当するリソースを使用しているOSのリソース解放部へリソース解放要求を通知する(ステップS2504)。
【0171】
ステップS2503において可能性がない場合、解放リソース特定部131Dは、該当するリソースを置換するためのリソースを用意するために、置換対象となる他のリソースを使用しているOSのリソース解放部へリソース解放要求を通知する(ステップS2505)。
【0172】
本実施例では、各OSで使用されているメモリは、物理的に連続したメモリとは限らない。本実施例では、物理的に連続したメモリでない場合には、他のメモリバンクに置換可能と判断する。
【0173】
置換対象となる他のリソースが解放されると、解放リソース特定部131Dは、ステップS2502で解放不可能と判断されたリソースを使用しているOSへリソース置換要求を通知する(ステップS2506)。
【0174】
以下に図26を参照してステップS2506の処理を説明する。図26は、リソースの置換を説明する図である。図26(A)は、置換前のメモリの状態を説明する図であり、図26(B)は置換後のメモリの状態を説明する図である。
【0175】
図26では、メモリバンクM2は使用ページ数が解放要求閾値1413A以下の解放対象メモリバンクであり、OS110の使用ページ数は最小ページ数と同数であり、OS120の使用ページ数は最小ページ数より大きい状態を示している。
【0176】
図26(A)では、OS110により使用されているメモリバンクはメモリバンクM0とメモリバンクM2であり、OS120により使用されているメモリバンクはメモリバンクM1である。
【0177】
本実施例の解放リソース特定部131Dは、OS110によるメモリバンクM2の解放は不可能と判断し、OS120のリソース解放部121Aに対してリソース解放要求とメモリバンクM1のページ番号とを通知する。OS120によりメモリバンクM1の領域1Aが解放されると、解放リソース特定部131Dは、OS110のリソース解放部111Aに対してリソース置換要求を通知する。このとき解放リソース特定部131Dは、リソース置換要求と共に、置換対象であるメモリバンクM2のページ番号と、置換先であるメモリバンクM1のページ番号とを通知する。リソース解放部111Aは、通知を受けてメモリバンクM1の領域1Aを取得し、メモリバンクM2のページを解放する。
【0178】
すると図26(B)に示すように、OS110は最小ページ数を確保しつつ、メモリバンクM2を未使用とすることができる。
【0179】
したがって本実施例の電力制御部134Aは、メモリバンクM2に対するリフレッシュを停止することができ、電力削減に貢献することができる。
【0180】
尚第一実施例から第五実施例の各情報処理装置は、一台の情報処理装置内で実現されても良い。すなわち一台の情報処理装置に対して第一実施例から第五実施例を適用しても良い。
【0181】
本発明の実施の形態について、以下の付記のような構成を記載する。
(付記1)
複数のOSを搭載した情報処理装置であって、
当該情報処理装置の各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、
前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する情報処理装置。
(付記2)
前記リソース情報は、前記解放要求の通知を行うか否かの決定に用いる解放要求閾値を含み、
前記制御手段は、
前記使用状況を示す情報と前記解放要求閾値との比較により前記解放要求を通知する前記OSを特定する解放リソース特定手段と、
前記ハードウェア資源の消費電力を低減させる制御を行う電力制御手段と、を有する付記1記載の情報処理装置。
(付記3)
前記制御手段は、
特定された前記OSから前記ハードウェア資源の解放通知を受けて、前記複数の前記OSに対する前記ハードウェア資源の割り当てと前記リソース情報の更新を行うリソース管理手段を有する付記1又は2記載の情報処理装置。
(付記4)
前記リソース管理手段は、
前記ハードウェア資源の割り当てを行った後に前記電力制御手段へ電力制御要求を行う付記3記載の情報処理装置。
(付記5)
前記制御手段は、
特定された前記OSから前記ハードウェア資源の解放が不可能である通知を受けたとき、その旨をユーザに提示するユーザ提示手段を有する付記1乃至付記4の何れか一項に記載の情報処理装置。
(付記6)
前記使用状況を示す情報は、前記OS毎の前記OSによる前記ハードウェア資源の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源を使用している前記OSの使用率の合計が前記解放要求閾値未満である場合に、前記ハードウェア資源の解放要求を通知する前記OSを特定する付記2乃至5の何れか一項に記載の情報処理装置。
(付記7)
前記リソース情報は、前記電力制御手段による制御を行うか否かの判断に用いる省電力判断閾値を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記省電力判断閾値以上であり且つ前記解放要求閾値未満である場合に解放要求を行うと決定する付記3乃至5の何れか一項に記載の情報処理装置。
(付記8)
前記使用状況を示す情報は、前記解放要求の通知を行うための通知要求条件を含み、
前記解放リソース特定手段は、
前記使用状況を示す情報が前記通知要求条件を満たす前記OSを特定する付記3乃至6の何れか一項に記載の情報処理装置。
(付記9)
前記ハードウェア資源の使用率は、CPUの使用率である付記3ないし8の何れか一項に記載の情報処理装置。
(付記10)
前記CPUは複数のコアを有し、
前記リソース情報は前記コア毎の稼働率を示す情報を含み、
前記解放リソース特定手段は、
前記複数のコアの稼働率の合計値と前記コアの最大稼働率とにより算出された解放比較値が前記解放要求閾値未満のとき、前記通知要求条件を満たす前記OSを特定する付記9記載の情報処理装置。
(付記11)
前記ハードウェア資源の使用率は、デバイスの使用率であり、
前記解放リソース特定手段は、
前記OS毎の前記OSによる前記デバイスの使用率が前記解放要求閾値未満のデバイスを使用している前記OSを特定する付記3乃至5の何れか一項に記載の情報処理装置。
(付記12)
前記使用状況を示す情報は、前記ハードウェア資源毎の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記解放要求閾値以下の前記ハードウェア資源を選択し、選択された前記ハードウェア資源を使用しているOSを特定する付記2乃至5の何れか一項に記載の情報処理装置。
(付記13)
前記ハードウェア資源毎の使用率は、当該情報処理装置の有する記憶装置のメモリバンク毎の使用ページ数である付記12記載の情報処理装置。
(付記14)
前記リソース情報は、前記ハードウェア資源の置換を行うか否かを判断する置換要求条件を含み、
前記解放リソース特定手段は、
前記置換要求条件に基づき前記特定されたOSによる前記ハードウェア資源の解放が不可能と判断したとき、前記特定されたOS以外の他のOSに前記他のOSが使用しているハードウェア資源の解放要求を通知し、前記特定されたOSに前記ハードウェア資源の置換要求を通知する付記12又は13記載の情報処理装置。
(付記15)
コンピュータにより実行される電力制御方法であって、該コンピュータが、
当該コンピュータの有する各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
当該コンピュータに搭載された複数のOSから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う電力制御方法。
(付記16)
ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
複数のOSから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御する処理をコンピュータに実行させる電力制御プログラム。
【0182】
本発明の実施例は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0183】
100、100A、100B、100C、100D 情報処理装置
110、120 OS
111、111A、121、121A リソース解放部
130、130A、130B、130C、130D ハイパーバイザ
131、131A、131B、131C、131D 解放リソース特定部
132、132A、132B、132C、132D リソース管理部
133 ユーザ提示部
134、134A、134B、134C 電力制御部
140 リソース情報記憶部
141、141A、141B、141C、141D リソース情報

【特許請求の範囲】
【請求項1】
複数のOSを搭載した情報処理装置であって、
当該情報処理装置の各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、
前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する情報処理装置。
【請求項2】
前記リソース情報は、前記解放要求の通知を行うか否かの決定に用いる解放要求閾値を含み、
前記制御手段は、
前記使用状況を示す情報と前記解放要求閾値との比較により前記解放要求を通知する前記OSを特定する解放リソース特定手段と、
前記ハードウェア資源の消費電力を低減させる制御を行う電力制御手段と、を有する請求項1記載の情報処理装置。
【請求項3】
前記制御手段は、
特定された前記OSから前記ハードウェア資源の解放通知を受けて、前記複数の前記OSに対する前記ハードウェア資源の割り当てと前記リソース情報の更新を行うリソース管理手段を有する請求項1又は2記載の情報処理装置。
【請求項4】
前記使用状況を示す情報は、前記ハードウェア資源毎の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記解放要求閾値以下の前記ハードウェア資源を選択し、選択された前記ハードウェア資源を使用しているOSを特定する請求項2又は3記載の情報処理装置。
【請求項5】
コンピュータにより実行される電力制御方法であって、該コンピュータが、
各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
該コンピュータに搭載された複数のOSから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う電力制御方法。
【請求項6】
ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
複数のOSから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するOSを特定して前記通知を行い、特定された前記OSから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御する処理をコンピュータに実行させる電力制御プログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate