(57)【特許請求の範囲】
【請求項１】
複数のＯＳを搭載した情報処理装置であって、
当該情報処理装置のハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、
前記リソース情報に含まれる前記複数のＯＳ毎の要求通知条件に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する情報処理装置。
【請求項２】
前記リソース情報は、前記解放要求の通知を行うか否かの決定に用いる解放要求閾値を含み、
前記制御手段は、
前記使用状況を示す情報と前記解放要求閾値との比較により前記解放要求を通知するか否かを決定する解放リソース特定手段と、
前記ハードウェア資源の消費電力を低減させる制御を行う電力制御手段と、を有する請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、
特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて、前記複数の前記ＯＳに対する前記ハードウェア資源の割り当てと前記リソース情報の更新を行うリソース管理手段を有する請求項２記載の情報処理装置。
【請求項４】
前記使用状況を示す情報は、前記ハードウェア資源毎の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記解放要求閾値以下の前記ハードウェア資源を選択し、選択された前記ハードウェア資源を使用しているＯＳを特定する請求項２又は３記載の情報処理装置。
【請求項５】
コンピュータにより実行される電力制御方法であって、該コンピュータが、
ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
該コンピュータに搭載された複数のＯＳから前記リソース情報に含まれる前記複数のＯＳ毎の要求通知条件に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う電力制御方法。
【請求項６】
ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
複数のＯＳから前記リソース情報に含まれる前記複数のＯＳ毎の要求通知条件に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う処理をコンピュータに実行させる電力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＯＳが搭載された情報処理装置、この情報処理装置による電力制御方法及び電力制御プログラムに関する。
【背景技術】
【０００２】
近年では、ＣＰＵ（Central Processing Unit）の高性能化に伴う仮想化技術により、一台の情報処理装置に複数のＯＳ（Operating System）を搭載することができる。また近年の情報処理装置では、消費電力を低減させるための種々の電力制御が知られている。例えば複数のＯＳが搭載された情報処理装置では、一つのＯＳを動作させる場合と比べて処理量が増えるため、電力制御が重要となる。複数のＯＳが搭載された情報処理装置では、各ＯＳが仮想的なリソースを使用するため、実際にリソースを管理しているハイパーバイザが省電力制御を行う。
【０００３】
電力制御としては、例えば動的にＣＰＵの動作周波数や電圧を変更するＤＶＦＳ（Dynamic Voltage and Frequency Scaling）制御や、使用中のメモリバンクのみをリフレッシュするＰＡＳＲ（Partial Array Self Refresh）制御等が知られている。
【０００４】
上記の制御以外にも、例えばシステム内で区画を生成し、ハイパーバイザにより少なくともいくつかの物理リソースを区画に割り当て、区画に割り当てられなかった物理リソースの電力消費を低減させること等が知られている。また、アプリケーションの使用状態における各デバイスの動作状態を標準的な動作状態に合わせることにより消費電力の低減が可能なデバイスを求め、該当するデバイスがあれば省電力モードを促すメッセージを表示させること等が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１９２６１２号公報
【特許文献２】特開２００７−１７９２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の複数のＯＳが搭載された情報処理装置では、ハイパーバイザが情報処理装置全体としての電力制御を行い、各ＯＳによる省電力制御は行わない。このためＣＰＵやメモリが無駄に使用される状況が想定され、効率的に省電力制御が行われていない可能性がある。またＯＳ毎に省電力制御を実行した場合、各ＯＳがＣＰＵやメモリを解放すべく操作対象でないアプリケーションを終了させる処理等を行うため、アプリケーションの再起動が頻繁に発生し、消費電力が増加する場合がある。
【０００７】
このように従来の複数のＯＳが搭載された情報処理装置では、各ＯＳによる省電力制御をそのまま適用することができず、効率的な電力制御が行われていなかった。
【０００８】
本発明の実施の態様では、効率良く消費電力を低減させる電力制御を行うことが可能な情報処理装置、電力制御方法及び電力制御プログラムを提供することである。
【課題を解決するための手段】
【０００９】
開示の技術における情報処理装置の一態様によれば、当該情報処理装置のハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、前記リソース情報に含まれる前記複数のＯＳ毎の要求通知条件に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する。
【００１０】
上記各手段を手順としてコンピュータにより実行させる方法、上記各手段を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１１】
開示の情報処理装置によれば、効率良く消費電力を低減させる電力制御を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】第一実施例における情報処理装置のハードウェア構成例を示す図である。
【図２】第一実施例における情報処理装置の機能構成例を示すブロック図である。
【図３】第一実施例のリソース解放部の処理を説明するフローチャートである。
【図４】第一実施例の解放リソース特定部の処理を説明するフローチャートである。
【図５】第一実施例のリソース管理部の処理を説明するフローチャートである。
【図６】第一実施例のユーザ提示部の処理を説明するフローチャートである。
【図７】第一実施例の電力制御部の処理を説明するフローチャートである。
【図８】第一実施例のリソース情報の例を示す図である。
【図９】第一実施例の省電力判断閾値と解放要求閾値を説明する図である。
【図１０】第一実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図１１】第二実施例における情報処理装置の機能構成例を示すブロック図である。
【図１２】第二実施例のリソース情報の例を示す図である。
【図１３】第二実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図１４】第三実施例における情報処理装置のハードウェア構成例を示す図である。
【図１５】第三実施例における情報処理装置の機能構成例を示すブロック図である。
【図１６】第三実施例のリソース情報の例を示す図である。
【図１７】第三実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図１８】第四実施例における情報処理装置のハードウェア構成例を示す図である。
【図１９】第四実施例における情報処理装置の機能構成例を示すブロック図である。
【図２０】第四実施例のリソース情報の例を示す図である。
【図２１】第四実施例のリソース情報を参照した省電力制御を説明するフローチャートである。
【図２２】第五実施例における情報処理装置の機能構成例を示すブロック図である。
【図２３】第五実施例のリソース情報の例を示す図である。
【図２４】第五実施例のリソース解放部の処理を説明するフローチャートである。
【図２５】第五実施例の解放リソース特定部の処理を説明するフローチャートである。
【図２６】リソースの置換を説明する図である。
【発明を実施するための形態】
【００１３】
（第一実施例）
以下、本発明の実施例を図面に基づいて説明する。本実施例では、電力制御としてＤＶＦＳ制御を用いた場合について説明する。
【００１４】
図１は、第一実施例における情報処理装置のハードウェア構成例を示す図である。
【００１５】
情報処理装置１００では、入力装置１１、表示装置１２、主記憶装置１３、ＣＰＵ１４、インターフェース装置１５、補助記憶装置１６及びドライバ装置１７がバスＢで相互に接続されている。
【００１６】
バスＢで相互に接続されている入力装置１１、表示装置１２、主記憶装置１３、ＣＰＵ１４、インターフェース装置１５、補助記憶装置１６及びドライバ装置１７は、ＣＰＵ１４による管理下で相互にデータの送受を行うことができる。ＣＰＵ１４は、情報処理装置１００全体の動作制御を司る中央処理装置である。
【００１７】
インターフェース装置１５は他の情報処理装置からのデータを受信し、そのデータの内容をＣＰＵ１４に渡す。さらに、インターフェース装置１５はＣＰＵ１４からの指示に応じて他の情報処理装置にデータを送信する。
【００１８】
補助記憶装置１６には、情報処理装置１００の機能を発揮させるプログラムの一部として、少なくとも情報処理装置１００に電力制御を実行させる電力制御プログラムが記憶されている。
【００１９】
そして情報処理装置１００は、ＣＰＵ１４が電力制御プログラムを補助記憶装置１６から読み出して実行することで、電力制御機能を有する装置となる。電力制御プログラムはＣＰＵ１４とアクセス可能な主記憶装置１３に格納されていても良い。入力装置１１はＣＰＵ１４の管理下でデータの入力を受付ける。電力制御プログラムは情報処理装置１００が読み取り可能な記録媒体１８に記録しておくことができる。
【００２０】
情報処理装置１００で読み取り可能な記録媒体１８には、磁気記録媒体、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録媒体には、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。また、光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ  −  Ｏｐｔｉｃａｌ  ｄｉｓｋ）などがある。電力制御プログラムを流通させる場合には、例えば電力制御プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型の記録媒体１８を販売することが考えられる。
【００２１】
そして電力制御プログラムを実行する情報処理装置１００は、例えばドライバ装置１７が電力制御プログラムを記録した記録媒体１８から、電力制御プログラムを読み出す。ＣＰＵ１４は、読み出された電力制御プログラムを主記憶装置１３若しくは補助記憶装置１６に格納する。
【００２２】
そして情報処理装置１００は、自己の記憶装置である主記憶装置１３若しくは補助記憶装置１６から電力制御プログラムを読み取り、電力制御プログラムに従った処理を実行する。
【００２３】
図２は、第一実施例における情報処理装置の機能構成例を示すブロック図である。
【００２４】
本実施例の情報処理装置１００は、例えばバッテリー等の二次電池により駆動される携帯端末等である。情報処理装置１００は、仮想マシンＶＭ１と仮想マシンＶＭ２とに分割することで、異なるＯＳ１１０とＯＳ１２０とを並列に実行させることができる。ＯＳ１１０は仮想マシンＶＭ１上で動作するＯＳであり、ＯＳ１２０は仮想マシンＶＭ２上で動作するＯＳである。ハイパーバイザ１３０は、仮想マシンＶＭ１、ＶＭ２を実現するための制御プログラムであり、仮想マシンＶＭ１、ＶＭ２上でそれぞれのＯＳ１１０、１２０を動作させる。すなわちハイパーバイザ１３０は、情報処理装置１００において、複数のＯＳを動作させるための制御手段である。
【００２５】
ＯＳ１１０、ＯＳ１２０は、それぞれがリソース解放部１１１、リソース解放部１２１を有する。リソース解放部１１１は、後述するリソース解放要求に基づきＯＳ１１０が使用しているリソースを解放する。リソース解放部１２１も同様に、後述するリソース解放要求に基づきＯＳ１２０が使用しているリソースを解放する。リソース解放部１１１、１２１は、リソースを解放すると、リソースを解放したことを示す解放通知をリソース管理部１３２へ通知する。
【００２６】
尚リソースとは、記憶装置やＣＰＵ等の情報処理装置１００を満足に動作させるためのハードウェア資源の総称であり、本実施例ではＣＰＵ１４を示す。
【００２７】
ハイパーバイザ１３０は、解放リソース特定部１３１、リソース管理部１３２、ユーザ提示部１３３、電力制御部１３４、リソース情報記憶部１４０を有する。
【００２８】
解放リソース特定部１３１は、リソース情報記憶部１４０に記憶されたＤＶＦＳ制御用のリソース情報１４１に基づき、リソース解放要求を通知するＯＳを特定する。そして解放リソース特定部１３１は、特定されたＯＳのリソース解放部へリソース解放要求を通知する。
【００２９】
リソース管理部１３２は、リソース情報記憶部１４０に記憶されたリソース情報１４１に基づきリソースの管理を行う。またリソース管理部１３２は、リソース情報１４０を更新する。ユーザ提示部１３３は、リソースの解放に係る情報をユーザへ提示する。電力制御部１３４は、リソースの消費電力に関する制御を行うものであり、本実施例ではＤＶＦＳ制御によりＣＰＵ１４の消費電力を低減させる電力制御を行う。以下の説明では、リソースの消費電力を低減させる電力制御を省電力制御と呼ぶ。
【００３０】
リソース情報記憶部１４０は、主記憶装置１３及び／又は補助記憶装置１６から構成される記憶部であり、リソース情報１４１が格納される。リソース情報１４１の詳細は後述する。
【００３１】
以下に本実施例の情報処理装置１００の有する各部の処理をさらに説明する。図３は、第一実施例のリソース解放部の処理を説明するフローチャートである。尚本実施例のリソース解放部１１１とリソース解放部１２１とは、同様の機能構成を有する。したがって図３では、例としてリソース解放部１１１の処理を説明し、リソース解放部１２１の処理の説明は省略する。
【００３２】
本実施例のリソース解放部１１１は、リソースを解放する際に、リソース解放要求の通知によるリソースの解放か、又はＯＳ１１０の通常動作によるリソースの解放かを判断する。
【００３３】
まず本実施例のリソース解放部１１１は、解放リソース特定部１３１からリソース解放要求を通知されたか否かを判断する（ステップＳ３１）。ステップＳ３１でリソース解放要求を通知されていない場合、リソース解放部１１１は、ＯＳ１１０の通常動作によるリソースの解放と判断し、後述するステップＳ３３へ進む。
【００３４】
ステップＳ３１においてリソース解放要求を通知された場合、リソース解放部１１１はリソースの解放が可能か否かを判断する（ステップＳ３２）。ステップＳ３２においてリソースの解放が可能と判断された場合、リソース解放部１１１はリソースを解放する（ステップＳ３３）。続いてリソース解放部１１１は、リソース解放を示す解放通知をリソース管理部１３２へ通知し（ステップＳ３４）、処理を終了する。
【００３５】
ステップＳ３２においてリソースの解放が不可能と判断された場合、リソース解放部１１１は、リソースを使用しているアプリケーションが存在するか否かを判断する（ステップＳ３５）。ステップＳ３５において該当するアプリケーションが存在する場合、リソース解放部１１１は、ユーザ提示部１３３に対して該当するアプリケーションを通知する（ステップＳ３６）。ステップＳ３５において該当するアプリケーションが存在しない場合、リソース解放部１１１は処理を終了する。
【００３６】
仮想マシンには、ＯＳを修正することなくそのまま動作可能な完全仮想化と、特権命令をハイパーバイザへの呼び出し（ハイパーコール）に修正してＯＳを動作させる準仮想化の二種類が存在する。仮想マシンが完全仮想化の場合、仮想マシン上で特権命令が実行されたときにＣＰＵが例外を発生させることにより、ＯＳからハイパーバイザへの通知が可能となる。また完全仮想化の場合には、ハイパーコールによってもＯＳからハイパーバイザへの通知が可能である。
【００３７】
仮想マシンが準仮想化の場合、ハイパーコールによりＯＳからハイパーバイザへの通知が可能である。ハイパーコールはソフトウェア割り込みなどのＣＰＵの機能を利用して実現される。本実施例の仮想マシンＶＭ１、ＶＭ２は、これらの通知機能によりハイパーバイザ１３０へリソースの解放等を通知する。
【００３８】
ハイパーバイザから仮想マシンへの通知は、ＯＳのハンドラから処理を開始させることで実現可能である。ハイパーバイザは、実行する仮想マシンを切り替える機能を有しており、仮想マシンを切り替える際にＣＰＵのレジスタを保存・復元する。レジスタには実行アドレスを保持するプログラムカウンタも含まれている。よってハイパーバイザは、プログラムカウンタをＯＳのハンドラに設定することで、ＯＳのハンドラを実行させることができる。本実施例のハイパーバイザ１３０は、これらの通知機能によりＯＳ１１０、１２０へリソース解放要求等を通知する。
【００３９】
次に、本実施例の解放リソース特定部１３１の処理について説明する。図４は、第一実施例の解放リソース特定部の処理を説明するフローチャートである。
【００４０】
本実施例の解放リソース特定部１３１は、リソース情報１４１を読み出す（ステップＳ４１）。続いて解放リソース特定部１３１は、リソース情報１４１から、リソース解放要求の通知を行う対象となるリソースが存在するか否かを判断する（ステップＳ４２）。ステップＳ４２において該当するリソースが存在しない場合、解放リソース特定部１３１は処理を終了する。ステップＳ４２において該当するリソースが存在する場合、解放リソース特定部１３１は、該当するリソースを使用しているＯＳのリソース解放部へ該当するリソース解放要求を通知する（ステップＳ４３）。本実施例の解放リソース特定部１３１は、リソース管理部１３２によりリソース情報１４１が更新される度にステップＳ４１〜ステップＳ４３の処理を行う。
【００４１】
次に、本実施例のリソース管理部１３２の処理について説明する。図５は、第一実施例のリソース管理部の処理を説明するフローチャートである。
【００４２】
本実施例のリソース管理部１３２は、予め設定された所定周期毎にリソースの使用状況情報を取得し、リソース情報記憶部１４０に記憶されたリソース情報１４１を更新する（ステップＳ５１）。例えばリソース管理部１３２は、リソース解放であれば、リソースが解放されたことをリソース情報１４１に反映させ、リソース取得であれば、リソースが使用中になったことをリソース情報１４１に反映させる。
【００４３】
続いてリソース管理部１３２は、リソース情報１４１から省電力制御が必要か否かを判断する（ステップＳ５２）。ステップＳ５２において省電力制御が不要と判断された場合、リソース管理部１３２は処理を終了する。ステップＳ５２において省電力制御が必要と判断されると、リソース管理部１３２は電力制御部１３４へ省電力制御要求を通知し（ステップＳ５３）、処理を終了する。
【００４４】
次に、本実施例のユーザ提示部１３３の処理について説明する。図６は、第一実施例のユーザ提示部の処理を説明するフローチャートである。
【００４５】
本実施例のユーザ提示部１３３は、リソース解放部１１１及び／またはリソース解放部１２１からの通知を受けて動作を開始する。ユーザ提示部１３３は、リソース解放部１１１及び／またはリソース解放部１２１から通知されたアプリケーションの情報をユーザへ提示して（ステップＳ６１）、処理を終了する。ユーザ提示部１３３は、表示装置１２にリソースを解放するためのユーザの操作を表示させても良い。具体的には例えば、実行中のアプリケーションの終了を促すメッセージ等を表示させても良い。またユーザ提示部１３３は、表示装置１２にダイアログ等を表示させ、終了させるアプリケーションの選択を促してもよい。さらにユーザ提示部１３３は、音声出力によりユーザへリソースを解放するための操作を通知しても良い。
【００４６】
次に、本実施例の電力制御部１３４の処理について説明する。図７は、第一実施例の電力制御部の処理を説明するフローチャートである。
【００４７】
本実施例の電力制御部１３４は、リソース管理部１３２からの通知を受けて動作を開始する。電力制御部１３４は、リソース管理部１３２から通知を受けて実際のハードウェアに対して省電力制御を行い（ステップＳ７１）、処理を終了する。本実施例の電力制御部１３４は、ＣＰＵ１４の動作周波数を下げる。尚本実施例の電力制御部１３４は、ＣＰＵ１４の動作電圧を下げても良い。
【００４８】
次に、本実施例のリソース情報１４１について説明する。図８は、第一実施例のリソース情報の例を示す図である。
【００４９】
本実施例のリソース情報１４１は、個別リソース情報１４１１と、省電力判断閾値１４１２と、解放要求閾値１４１３とが含まれる。
【００５０】
個別リソース情報１４１１は、ＯＳ毎のＣＰＵ１４の使用状況を示す情報を含んでおり、ＯＳ毎に記憶される情報である。よって本実施例のリソース情報１４１には、ＯＳ１１０の個別リソース情報１４１１とＯＳ１２０の個別リソース情報１４１１とが含まれる。
【００５１】
個別リソース情報１４１１は、ＯＳが搭載された仮想マシンの識別情報（ＩＤ）、ＯＳによるＣＰＵ１４の使用率、リソース解放要求を通知するための要求通知条件を含む。
【００５２】
要求通知条件は、ＯＳ毎に予め設定された条件である。要求通知条件は、例えば所定のＣＰＵ使用率を示す値であっても良いし、所定範囲のＣＰＵ使用率の値であっても良い。例えばＯＳ１１０によるＣＰＵ１４の使用率が、要求通知条件に設定された値となった場合、ＯＳ１１０はリソース解放要求を通知するＯＳとして選択される。また例えばＯＳ１１０によるＣＰＵ１４の使用率が、要求通知条件に設定された所定範囲内となった場合、ＯＳ１１０はリソース解放要求を通知するＯＳとして選択される。
【００５３】
省電力判断閾値１４１２は、省電力制御を行うか否かを判断するための閾値である。
【００５４】
解放要求閾値１４１３は、リソース解放要求の通知を行うか否かの決定に用いる閾値である。尚リソース情報１４１に含まれる各閾値は、予め設定された値である。
【００５５】
以下に図９を参照して省電力判断閾値１４１２、解放要求閾値１４１３について説明する。図９は、第一実施例の省電力判断閾値と解放要求閾値を説明する図である。図９（Ａ）は、仮想マシン毎のＣＰＵ１４の使用率を示しており、図９（Ｂ）は情報処理装置１００全体におけるＣＰＵ１４の使用率を示している。
【００５６】
本実施例の省電力判断閾値１４１２は、電力制御部１３４による省電力制御を行うか否かを決定するためのＣＰＵ使用率の閾値である。本実施例では、情報処理装置１００全体でのＣＰＵ１４のＣＰＵ使用率が省電力判断閾値１４１２以下となったら、電力制御部１３４によりＣＰＵ１４の動作周波数を予め設定された所定値まで下げる。
【００５７】
尚本実施例では、ＣＰＵ使用率が所定値まで上がってきたら、ＣＰＵ１４の動作周波数を上げても良い。ＣＰＵ１４による処理量が多い場合には、ＣＰＵ１４の動作周波数を上げることで、処理速度の低下を抑えることができる。
【００５８】
本実施例の解放要求閾値１４１３は、解放リソース特定部１３１によるリソース解放要求の通知を行うか否かを決定するためのＣＰＵ使用率の閾値である。より具体的には、解放要求閾値１４１３は、ＣＰＵ１４の動作周波数が省電力判断閾値１４１２より大きく且つ所定範囲内であるか否かを判断するための閾値である。本実施例では、情報処理装置１００全体でのＣＰＵ使用率が省電力判断閾値１４１２より大きく且つ解放要求閾値１４１３未満となったとき、解放リソース特定部１３１によるリソース解放要求の通知を行う。
【００５９】
例えば省電力判断閾値１４１２が１０％であり、解放要求閾値１４１３が５％である場合には、情報処理装置１００全体でのＣＰＵ使用率が１０％より大きく１５％未満のときリソース解放要求の通知を行う。
【００６０】
以下に本実施例の情報処理装置１００において、リソース情報１４１を参照したときの省電力制御について説明する。図１０は、第一実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【００６１】
本実施例では、所定周期毎に以下のステップＳ１００１以降の処理を繰り返す。リソース管理部１３２は、リソース情報１４１を更新する（ステップＳ１００１）。具体的にはリソース管理部１３２は、ＯＳ１１０、１２０へのＣＰＵ１４の割り当てと、ＯＳ毎のＣＰＵ使用率の測定を行い、リソース情報１４１のＯＳ毎のＣＰＵ使用率を更新する。
【００６２】
続いてリソース管理部１３２は、省電力制御か可能か否かを判断する（ステップＳ１００２）。具体的にはリソース管理部１３２は、更新後のリソース情報１４１に基づき、全体のＣＰＵ使用率が省電力判断閾値１４１２以下であるか否かを判断する。
【００６３】
ステップＳ１００２において全体のＣＰＵ使用率が省電力判断閾値１４１２以下である場合、リソース管理部１３２は電力制御部１３４へ省電力制御要求を通知する（ステップＳ１００３）。電力制御部１３４は、通知を受けて、ＣＰＵ１４の動作周波数を下げる（ステップＳ１００４）。電力制御部１３４は処理を終了する。
【００６４】
ステップＳ１００２において全体のＣＰＵ使用率が省電力判断閾値１４１２より大きい場合、解放リソース特定部１３１は、リソース情報記憶部１４０からリソース情報１４１を読み出す（ステップＳ１００５）。続いて解放リソース特定部１３１は、ＯＳ毎の個別リソース情報１４１１に含まれるＯＳ毎のＣＰＵ使用率から、情報処理装置１００全体のＣＰＵ使用率を取得する（ステップＳ１００６）。
【００６５】
続いて解放リソース特定部１３１は、全体のＣＰＵ使用率が省電力判断閾値１４１２より大きく且つ解放要求閾値１４１３未満であるか否かを判断する（ステップＳ１００７）。ステップＳ１００７において、ＣＰＵ使用率が電力判断閾値１４１２より大きく且つ解放要求閾値１４１３未満である場合、解放リソース特定部１３１は、ＯＳ毎の個別リソース情報１４１１に含まれる要求通知条件からリソース解放要求を通知するＯＳを特定する（ステップＳ１００８）。
【００６６】
具体的には例えば、ＯＳ１２０の要求通知条件がＣＰＵ使用率５０％以上のときとし、ＯＳ１２０のＣＰＵ使用率が３０％であった場合、解放リソース特定部１３１はＯＳ１２０へはリソース解放要求は通知しない。以下の説明では、ＯＳ１１０がリソース解放要求を通知するＯＳとして特定されたものとする。
【００６７】
ステップＳ１００７において、ＣＰＵ使用率が省電力判断閾値１４１２より大きく且つ解放要求閾値１４１３未満でない場合、解放リソース特定部１３１は処理を終了する。
【００６８】
ステップＳ１００８においてリソース解放要求を通知するＯＳを特定すると、解放リソース特定部１３１はＯＳ１１０のリソース解放部１１１へリソース解放要求を通知する（ステップＳ１００９）。尚解放リソース特定部１３１は、このときリソース解放部１１１へ、低下させるＣＰＵ使用率の値を通知する。
【００６９】
ＯＳ１１０においてリソース解放部１１１は、ＯＳ１１０の有する電力制御機能によりリソースの解放が可能か否かを判断する（ステップＳ１０１０）。具体的にはリソース解放部１１１は、解放リソース特定部１３１より通知されたＣＰＵ使用率の値だけ、ＣＰＵ使用率を下げられるか判断する。
【００７０】
ＯＳ１１０の有する省電力制御としては、例えばＯＳ１１０は、アプリケーションを統括している管理アプリケーションに削減を依頼しても良い。管理アプリケーションが実行中のアプリケーションを終了すれば、ＣＰＵ使用率を低減できる。尚本実施例では、ＣＰＵ使用率を通知された値まで削減できなくても良い。本実施例では、例えば通知された値の何割かを削減できれば、リソースの解放が可能と判断しても良い。何割かは、予め設定された値であっても良い。また他のＯＳ１１０の有する省電力制御としては、スケジューラにおけるスケジューリングの調整や周期的な処理の周期延長等がある。
【００７１】
ステップＳ１０１０においてリソースの解放が可能と判断された場合、リソース解放部１１１はリソースを解放し、リソースを解放したことを示す解放通知をリソース管理部１３２へ通知する（ステップＳ１０１１）。ＣＰＵ使用率は、周期的にハイパーバイザ１３０にて測定するため、リソースを解放した場合でも、リソース解放部１１１からリソース管理部１３２へ通知は行わない。
【００７２】
またステップＳ１０１０においてリソースの解放が不可能と判断された場合、リソース解放部１１１はユーザ提示部１３３へその旨を通知する（ステップＳ１０１２）。ユーザ提示部１３３は、この通知を受けて、ユーザへリソースの解放を促す（ステップＳ１０１３）。具体的にはユーザ提示部１３３は、例えば表示装置１２へ、実行中のアプリケーションを終了させるように促すメッセージや、バックグラウンドで行っている処理を停止するように設定の変更を促すメッセージ等を表示させても良い。
【００７３】
以上のように本実施例では、ＣＰＵ１４の使用率を低下させることができそうなＯＳに対してＣＰＵ使用率の低下を要求する通知を行う。本実施例では、この通知によりＯＳの有する電力制御機能を効果的に用いることができ、情報処理装置１００全体の消費電力の削減に貢献できる。
【００７４】
（第二実施例）
以下に図面に基づいて第二実施例について説明する。第二実施例では、電力制御として、ＰＡＳＲ制御を用いる点が第一実施例と相違する。よって以下の第二実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００７５】
第二実施例の情報処理装置１００Ａのハードウェア構成は、第一実施例と同様であるので説明を省略する。
【００７６】
図１１は、第二実施例における情報処理装置の機能構成例を示すブロック図である。
【００７７】
本実施例の情報処理装置１００Ａは、ハイパーバイザ１３０Ａを有する。ハイパーバイザ１３０Ａは、解放リソース特定部１３１Ａ、リソース管理部１３２Ａ、電力制御部１３４Ａを有する。また本実施例では、リソース情報記憶部１４０にリソース情報１４１Ａが記憶されている。
【００７８】
解放リソース特定部１３１Ａは、リソース情報記憶部１４０に記憶されたＰＡＳＲ制御用のリソース情報１４１Ａに基づき、リソース解放要求を通知するＯＳを特定する。そして解放リソース特定部１３１Ａは、特定したＯＳのリソース解放部へリソース解放要求を通知する。尚本実施例では、リソースはメモリを示す。本実施例のメモリは、主記憶装置１３及び補助記憶装置１６である。リソース管理部１３２Ａは、リソース情報１４１Ａを管理する。電力制御部１３４Ａは、ＰＡＳＲ制御による情報処理装置１００Ａの省電力制御を行う。
【００７９】
次に本実施例のリソース情報１４１Ａについて説明する。図１２は、第二実施例のリソース情報の例を示す図である。
【００８０】
本実施例のリソース情報１４１Ａは、個別リソース情報１４１１Ａと、解放要求閾値１４１３Ａとが含まれる。
【００８１】
本実施例の個別リソース情報１４１１Ａは、メモリバンク毎の使用状況を示す情報である。個別リソース情報１４１１Ａは、メモリバンクのＩＤ、メモリの使用ページ数、ページを使用しているＯＳを動作させている仮想マシンのＩＤ、使用されているページ番号が含まれる。個別リソース情報１４１１Ａは、使用ページ数の数だけ、仮想マシンのＩＤとページ番号の組が存在する。
【００８２】
本実施例の解放要求閾値１４１３Ａは、リソース解放要求を通知するか否かの決定に用いる閾値である。より具体的には解放要求閾値１４１３Ａは、メモリを解放してメモリバンクを未使用とするか否かを判断するための閾値であり、使用ページ数の値である。
【００８３】
本実施例では、使用ページ数が解放要求閾値１４１３Ａ以下であるメモリバンクを使用しているＯＳに対して、リソース解放要求の通知を行う。尚解放要求閾値１４１３Ａは、全てのメモリバンクに共通の値として設定されても良いし、メモリバンク毎に異なる値としても良い。尚リソース情報１４１Ａに含まれる各閾値は、予め設定された値である。
【００８４】
以下に本実施例の情報処理装置１００Ａにおいて、リソース情報１４１Ａを参照したときの電力制御について説明する。図１３は、第二実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【００８５】
本実施例のリソース管理部１３２Ａは、リソース情報１４１Ａが更新されると、以下の処理を実行する。
【００８６】
解放リソース特定部１３１Ａは、リソース情報記憶部１４０からリソース情報１４１Ａを読み出す（ステップＳ１３０１）。続いて解放リソース特定部１３１Ａは、個別リソース情報１４１１Ａにおいて、使用ページ数が解放要求閾値１４１３Ａ以下であるメモリバンクが存在するか否かを判断する（ステップＳ１３０２）。
【００８７】
ステップＳ１３０２において使用ページ数が解放要求閾値１４１３Ａ以下であるメモリバンクが存在する場合、解放リソース特定部１３１Ａは、個別リソース情報１４１１Ａの仮想マシンのＩＤから該当するメモリバンクを使用しているＯＳを特定する（ステップＳ１３０３）。以下の説明では、ＯＳ１２０が特定されるものとする。
【００８８】
ステップＳ１３０２において使用ページ数が解放要求閾値１４１３Ａ以下であるメモリバンクが存在しない場合、解放リソース特定部１３１Ａは後述するステップＳ１３０８へ進む。
【００８９】
ＯＳ１２０が特定されると、解放リソース特定部１３１Ａは、ＯＳ１２０のリソース解放部１２１へリソース解放要求を通知する（ステップＳ１３０４）。尚解放リソース特定部１３１Ａは、リソース解放要求の通知と共に解放対象のメモリページ番号もリソース解放部１２１へ通知する。メモリページ番号は、実際の物理ページ番号であってもよいし、ハイパーバイザ１３０Ａにより仮想化されてＶＭ１に提供されている仮想物理ページ番号であってもよい。
【００９０】
ＯＳ１２０においてリソース解放部１２１は、通知を受けて、ＯＳ１２０の有する電力制御機能によりリソースの解放が可能か否かを判断する（ステップＳ１３０５）。具体的にはリソース解放部１２１は、指定されたメモリページを空けることができるか否かを判断する。
【００９１】
ステップＳ１３０５においてリソースの解放が可能と判断された場合、リソース解放部１２１はリソースを解放し、リソース管理部１３２Ａへリソースを解放したことを通知する（ステップＳ１３０６）。
【００９２】
本実施例ではリソース解放部１２１は、例えば指定されたメモリページを使用しているアプリケーションを終了させて、メモリページを空けても良い。この場合リソース解放部１２１は、アプリケーションを統括している管理アプリケーションにアプリケーション終了を依頼しても良い。またリソース解放部１２１は、例えばメモリの片寄せや、バッファやキャッシュの解放などによりメモリページを空けても良い。メモリの片寄せとは、あるページで使用している領域を別のページへと移動させることである。
【００９３】
リソース管理部１３２Ａは、リソース解放の通知を受けて、メモリの割り当てと解放を行い、リソース情報１４１Ａの個別リソース情報１４１１Ａを更新する（ステップＳ１３０７）。続いてリソース管理部１３２Ａは、省電力制御が可能か否かを判断する（ステップＳ１３０８）。具体的にはリソース管理部１３２Ａは、未使用となったメモリバンクがあるか否かを判断する。
【００９４】
ステップＳ１３０８において省電力制御が可能と判断された場合、リソース管理部１３２Ａは電力制御部１３４Ａへ省電力制御要求を通知する（ステップＳ１３０９）。電力制御部１３４Ａは、通知を受けて、未使用となったメモリバンクのリフレッシュを停止する（ステップＳ１３１０）。
【００９５】
ステップＳ１３０６においてリソースの解放が不可能と判断された場合、リソース解放部１２１は、その旨をユーザ提示部１３３へ通知する（ステップＳ１３１１）。ステップＳ１３１２の処理は、図１０のステップＳ１０１３と同様であるから説明を省略する。
【００９６】
尚本実施例では、リソース管理部１３２Ａによるメモリの片寄せによりメモリバンクを未使用にすることも可能である。またリソース管理部１３２Ａは、使用ページ数が低いメモリバンクから使用ページ数が多いメモリバンクへ片寄せすることで、解放リソース特定部１３１Ａでリソース解放要求を行わせるように制御可能である。
【００９７】
以上のように本実施例では、使用ページ数が所定数以下のメモリバンクを使用しているＯＳに対してメモリページを空にする要求を通知する。本実施例では、この通知によりＯＳの有する電力制御機能を効果的に用いることができ、情報処理装置１００Ａ全体の消費電力の削減に貢献できる。
【００９８】
（第三実施例）
以下に図面に基づいて第三実施例について説明する。第三実施例では、マルチコアのＣＰＵを有する点で第一実施例と相違する。よって以下の第三実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００９９】
図１４は、第三実施例における情報処理装置のハードウェア構成例を示す図である。
【０１００】
本実施例の情報処理装置１００ＢのＣＰＵ１４Ａは、1つのプロセッサ・パッケージ内に複数のプロセッサ・コアが封入されているマルチコアプロセッサである。本実施例のＣＰＵ１４Ａは、コア１、コア２を有する。尚本実施例ではＣＰＵ１４Ａの有するコアを２つとしたが、ＣＰＵ１４Ａの有するコアは２つでなくても良く、４つであっても８つであっても良い。
【０１０１】
本実施例では、電力制御として、ＣＰＵ１４Ａの有するコアの何れかの電源をオフさせる制御を行う。
【０１０２】
図１５は、第三実施例における情報処理装置の機能構成例を示すブロック図である。本実施例の情報処理装置１００Ｂは、ハイパーバイザ１３０Ｂを有する。ハイパーバイザ１３０Ｂは、解放リソース特定部１３１Ｂ、リソース管理部１３２Ｂ、電力制御部１３４Ｂを有する。また本実施例では、リソース情報記憶部１４０にリソース情報１４１Ｂが記憶されている。
【０１０３】
本実施例の解放リソース特定部１３１Ｂは、リソース情報１４１Ｂに基づき、リソース解放要求を通知するＯＳを特定する。そして解放リソース特定部１３１Ｂは、特定したＯＳのリソース解放部へリソース解放要求を通知する。本実施例のリソースは、ＣＰＵ１４Ａである。
【０１０４】
リソース管理部１３２Ｂは、リソース情報１４１Ｂを管理する。電力制御部１３４Ｂは、ＣＰＵ１４Ａの有するコアの少なくとも一つをオフさせる。
【０１０５】
次に、本実施例のリソース情報１４１Ｂについて説明する。図１６は、第三実施例のリソース情報の例を示す図である。
【０１０６】
本実施例のリソース情報１４１Ｂは、個別リソース情報１４１１Ｂと、コア別リソース情報１４１２Ｂと、解放要求閾値１４１３Ｂとが含まれる。
【０１０７】
個別リソース情報１４１１Ｂは、リソースとなるＣＰＵ１４Ａがマルチコアプロセッサである点以外は、第一実施例の個別リソース情報１４１１と同様である。個別リソース情報１４１１Ｂは、ＣＰＵ１４Ａの使用状況を示す情報を含んでおり、ＯＳ毎に記憶される情報である。個別リソース情報１４１１Ｂは、仮想マシンのＩＤ、ＯＳによるＣＰＵ１４Ａの使用率、リソース解放要求を通知するための要求通知条件を含む。尚ここでのＣＰＵ１４Ａの使用率は、各ＯＳによるＣＰＵ１４Ａ全体の使用率を示している。
【０１０８】
コア別リソース情報１４１２Ｂは、コア毎に記憶される情報である。本実施例のコア別リソース情報１４１２Ｂは、コアを識別するコア番号と、コア毎の稼働率とが含まれる。
【０１０９】
解放要求閾値１４１３Ｂは、リソース解放要求を通知するか否かを決定するために用いる閾値である。本実施例では、コア１とコア２の最大の稼働率を１００％とした場合に、コア毎の稼働率の合計を１００で割った余りが解放要求閾値１４１３Ｂよりも小さいときリソース解放要求の通知を行う。以下の説明では、コア毎の稼働率の合計をコアの最大稼働率で割ったときの余りを解放決定比較値と呼ぶ。尚リソース情報１４１Ｂに含まれる各閾値は、予め設定された値である。本実施例ではコアの稼働率を１００％として説明するが、コアの稼働率は８０％や７０％とすることも可能である。その場合は、コア毎の稼働率の合計を８０もしくは７０で割った余りが解放決定比較値となる。
【０１１０】
以下に本実施例の情報処理装置１００Ｂにおいて、リソース情報１４１Ｂを参照したときの電力制御について説明する。図１７は、第三実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【０１１１】
本実施例では、所定周期毎に以下のステップＳ１７０１以降の処理を繰り返す。
【０１１２】
本実施例の情報処理装置１００Ｂにおいて、リソース管理部１３２Ｂは、リソース情報１４１Ｂを更新する（ステップＳ１７０１）。具体的にはリソース管理部１３２Ｂは、ＯＳ毎へのＣＰＵ１４Ａの割り当てとＯＳ毎のＣＰＵ使用率の測定を行い、個別リソース情報１４１１Ｂを更新する。また、コア別リソース情報１４１２Ｂのコア毎の稼働率も更新する。
【０１１３】
続いてリソース管理部１３２Ｂは、省電力制御が可能か否かを判断する（ステップＳ１７０２）。具体的にはリソース管理部１３２Ｂは、コア毎の稼働率の合計値が、ｎ個のコア以内、つまりｎ×１００％以内であれば、省電力制御が可能と判断する。尚ｎは、ＣＰＵ１４Ａの有するコアの数より小さい数である。
【０１１４】
ステップＳ１７０２において省電力制御が可能と判断された場合、リソース管理部１３２Ｂは電力制御部１３４Ｂへ省電力制御要求を通知する（ステップＳ１７０３）。具体的にはリソース管理部１３２Ｂは、ｎ個以外のコアの電源をオフするよう電力制御部１３４Ｂへ通知する。このときリソース管理部１３２Ｂは、電源をオフさせるコアを選択し、省電力制御要求と共にコア番号を電力制御部１３４Ｂへ通知しても良い。
【０１１５】
電源をオフとするコアの選択は、コア別リソース情報１４１２Ｂの稼働率に基づき行っても良い。例えばリソース管理部１３４Ｂは、コア別リソース情報１４１２Ｂにおいて稼働率が低いコアから順に電源をオフするコアを選択しても良い。このようにすれば、実行中の処理を別のコアで実行させるための移動による影響を小さくすることができる。
【０１１６】
電力制御部１３４Ｂは、通知を受けて選択されたコアの電源をオフとする（ステップＳ１７０４）。
【０１１７】
ステップＳ１７０２において、省電力制御が可能でないと判断された場合、解放リソース特定部１３１Ｂはリソース情報記憶部１４０からリソース情報１４１Ｂを読み出す（ステップＳ１７０５）。続いて解放リソース特定部１３１Ｂは、リソース情報１４１Ｂのコア別リソース情報１４１２Ｂから解放決定比較値を算出する（ステップＳ１７０６）。
【０１１８】
続いて解放リソース特定部１３１Ｂは、解放決定比較値と解放要求閾値１４１３Ｂとを比較し、解放決定比較値が解放要求閾値１４１３Ｂ未満か否かを判断する（ステップＳ１７０７）。
【０１１９】
例えば本実施例の最大稼働率が１００％のコアを４つ有するＣＰＵの場合について説明する。尚この場合、解放要求閾値１４１３Ｂは５％とする。ＣＰＵの有する各コアの稼働率が７６％とすると、解放決定比較値は、各コアの稼働率の合計値３０４％を各コアの最大稼働率１００％で割ったときの余り４％となる。よって解放決定比較値は解放要求閾値１４１３Ｂ未満と判断される。
【０１２０】
ステップＳ１７０７において解放決定比較値が解放要求閾値１４１３Ｂ未満の場合、解放リソース特定部１３１Ｂは、個別リソース情報１４１１Ｂに含まれる要求通知条件からリソース解放要求を通知するＯＳを特定する（ステップＳ１７０８）。ここではＯＳ１１０が特定されたものする。
【０１２１】
ステップＳ１７０７において、解放決定比較値が解放要求閾値１４１３Ｂ未満でない場合、解放リソース特定部１３１は処理を終了する。
【０１２２】
ステップＳ１７０８においてリソース解放要求を通知するＯＳ１１０を特定すると、解放リソース特定部１３１Ｂは、ＯＳ１１０のリソース解放部１１１へリソース解放要求を通知する（ステップＳ１７０９）。尚解放リソース特定部１３１Ｂは、このときリソース解放部１１１へ、解放決定比較値を低下させるＣＰＵ使用率の値としてリソース解放部１１１へ通知する。
【０１２３】
図１７のステップＳ１７１０とステップＳ１７１１の処理は、図１０のステップＳ１０１０とステップＳ１０１１の処理と同様であるから説明を省略する。
【０１２４】
ステップＳ１７１０においてリソースの解放が不可能と判断された場合のステップＳ１７１２の処理とステップＳ１７１３の処理は、図１０のステップＳ１０１２とステップＳ１０１３の処理と同様であるから説明を省略する。
【０１２５】
以上のように本実施例では、ハイパーバイザ１３０ＢがＣＰＵ１４Ａの有する複数のコアのうち、一部のコアの電源をオフさせるための制御の要求をＯＳへ通知する。本実施例では、この通知によりＯＳの有する電力制御機能を効果的に用いることができ、情報処理装置１００Ｂ全体の消費電力の削減に貢献できる。
【０１２６】
（第四実施例）
以下に図面に基づいて第四実施例について説明する。第四実施例では、解放対象のリソースをデバイスとする点で第一実施例と相違する。よって以下の第四実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０１２７】
図１８は、第四実施例における情報処理装置のハードウェア構成例を示す図である。
【０１２８】
本実施例の情報処理装置１００Ｃは、撮影装置２１、音声出力装置２２、音声入力装置２３、ＧＰＳ（Global Positioning System）装置２４等を有する。撮影装置２１、音声出力装置２２、音声入力装置２３、ＧＰＳ装置２４等は、情報処理装置１００Ｃの有する他の各装置とバスＢを介して接続されており、ＣＰＵ１４による管理下で相互にデータの送受を行うことができる。
【０１２９】
本実施例の情報処理装置１００Ｃでは、ＣＰＵ１４、主記憶装置１３、補助記憶装置１６以外の全ての装置をデバイスとして扱い、解放対象のリソースとみなす。
【０１３０】
本実施例では、電力制御として、情報処理装置１００Ｃの有するデバイスの何れかの電源をオフさせる制御を行う。
【０１３１】
図１９は、第四実施例における情報処理装置の機能構成例を示すブロック図である。本実施例の情報処理装置１００Ｃは、ハイパーバイザ１３０Ｃを有する。ハイパーバイザ１３０Ｃは、解放リソース特定部１３１Ｃ、リソース管理部１３２Ｃ、電力制御部１３４Ｃを有する。また本実施例では、リソース情報記憶部１４０にリソース情報１４１Ｃが記憶されている。
【０１３２】
本実施例の解放リソース特定部１３１Ｃは、リソース解放要求を通知するＯＳを特定する。そして解放リソース特定部１３１Ｃは、特定したＯＳのリソース解放部へリソース解放要求を通知する。
【０１３３】
リソース管理部１３２Ｃは、リソース情報１４１Ｃを管理する。電力制御部１３４Ｃは、選択されたデバイスの電源をオフさせる。
【０１３４】
次に、本実施例のリソース情報１４１Ｃについて説明する。図２０は、第四実施例のリソース情報の例を示す図である。
【０１３５】
本実施例のリソース情報１４１Ｃは、個別リソース情報１４１１Ｃと、解放要求閾値１４１３Ｃとが含まれる。
【０１３６】
個別リソース情報１４１１Ｃは、デバイスの使用状況を示す情報を含んでおり、ＯＳ毎に記憶される情報である。個別リソース情報１４１１Ｃは、仮想マシンのＩＤ、デバイスＩＤ、ＯＳによるデバイス使用率を含む。デバイスＩＤは、デバイス毎に一意に設定される識別情報である。デバイス使用率は、ＯＳがデバイスをどれだけ使用しているかを示す割合であり、単位時間あたりのアクセス数等から算出される。デバイス使用率は、例えば１秒間に１００回アクセスされた場合を１００％として計算しても良い。この場合、１秒間に５回アクセスされたときのデバイス使用率は５％となる。
【０１３７】
解放要求閾値１４１３Ｃは、リソース解放要求を通知するか否かを決定するために用いる閾値である。本実施例では、デバイス使用率が解放要求閾値１４１３Ｃ未満であるデバイスを使用しているＯＳに対して、リソース解放要求を通知する。尚解放要求閾値１４１３Ｃは予め設定された値である。
【０１３８】
以下に本実施例の情報処理装置１００Ｃにおいて、リソース情報１４１Ｃを参照したときの電力制御について説明する。図２１は、第四実施例のリソース情報を参照した電力制御を説明するフローチャートである。
【０１３９】
本実施例では、リソース情報１４１Ｃが更新されると、以下のステップＳ２１０１以降の処理を実行する。
【０１４０】
本実施例の情報処理装置１００Ｃにおいて、解放リソース特定部１３１Ｃはリソース情報記憶部１４０からリソース情報１４１Ｃを読み出す（ステップＳ２１０１）。続いて解放リソース特定部１３１Ｃは、リソース情報１４１Ｃの個別リソース情報１４１１Ｃから、各ＯＳにおけるデバイス使用率の合計値をデバイス毎に算出する（ステップＳ２１０２）。
【０１４１】
続いて解放リソース特定部１３１Ｃは、デバイス毎のデバイス使用率の合計値と解放要求閾値１４１３Ｃとを比較し、合計値が解放要求閾値１４１３Ｃ未満のデバイスが存在するか否かを判断する（ステップＳ２１０３）。
【０１４２】
ステップＳ２１０３においてデバイス使用率の合計値が解放要求閾値１４１３Ｃ未満のデバイスが存在する場合、解放リソース特定部１３１Ｃは、デバイス使用率の合計値が解放要求閾値１４１３Ｃ未満のデバイスを使用しているＯＳを特定する（ステップＳ２１０４）。
【０１４３】
例えばＯＳ１１０による撮影装置２１のデバイス使用率が５％であり、ＯＳ１２０による撮影装置２１のデバイス使用率が１５％である場合、撮影装置２１のデバイス使用率は２０％となる。このとき解放要求閾値１４１３Ｃが２５％に設定されていた場合、撮影装置２１は解放対象として選択され、撮影装置２１を使用しているＯＳ１１０とＯＳ１２０とがリソース解放要求を通知するＯＳとして特定される。尚ステップＳ２１０４では、ＯＳ１１０が特定されたものする。
【０１４４】
リソース解放要求を通知するＯＳ１１０を特定すると、解放リソース特定部１３１Ｃは、ＯＳ１１０のリソース解放部１１１へリソース解放要求を通知する（ステップＳ２１０５）。尚解放リソース特定部１３１Ｃは、解放対象のデバイスＩＤも共にリソース解放部１１１へ通知する。
【０１４５】
リソース解放部１１１は、リソース解放要求が通知されると、ＯＳ１１０の有する電力制御機能によりリソースの解放が可能か否かを判断する（ステップＳ２１０６）。
ステップＳ２１０６において、リソースの解放が可能と判断された場合、リソース解放部１１１は、リソースを解放し、リソースの解放をリソース管理部１３２Ｃへ通知する（ステップＳ２１０７）。
【０１４６】
具体的にはリソース解放部１１１は、通知されたデバイスＩＤに対応するデバイスを制御するためのドライバを使用しているアプリケーションを特定し、アプリケーションを統括している管理アプリケーションにアプリケーションを終了するよう依頼する。管理アプリケーションは、アプリケーションの終了が可能であれば、該当するアプリケーションを終了させてドライバの使用を終了する。
【０１４７】
リソース管理部１３２Ｃは、リソースの解放が通知されると、この通知を受けてリソース情報１４１Ｃを更新する（ステップＳ２１０８）。具体的にはリソース管理部１３２Ｃは各ＯＳからの要求に従い、デバイスの割り当てと解放を行い、リソース情報１４１Ｃの個別リソース情報１４１１Ｃにデバイスの登録と削除を行う。また本実施例のリソース管理部１３２Ｃは、デバイスへのアクセスをカウントしておき、一定期間毎にデバイス使用率を算出してリソース情報１４１Ｃを更新しても良い。
【０１４８】
続いてリソース管理部１３２Ｃは、省電力制御が可能か否かを判断する（ステップＳ２１０９）。ステップＳ２１０９において省電力制御が可能と判断された場合、リソース管理部１３２Ｃは電力制御部１３４Ｃへ省電力制御要求を通知する（ステップＳ２１１０）。具体的にはリソース管理部１３２Ｃは、デバイスＩＤに対応したデバイスがどのＯＳにも使用されておらず、未使用となっていた場合に省電力制御が可能と判断する。そしてリソース管理部Ｃは、省電力制御要求と共に制御対象となるデバイスＩＤを電力制御部１３４Ｃへ通知する。
【０１４９】
電力制御部１３４Ｃは、通知を受けてデバイスＩＤに対応するデバイスの電源をオフとする（ステップＳ２１１１）。
【０１５０】
ステップＳ２１０６においてリソースの解放が不可能と判断された場合のステップＳ２１１２の処理とステップＳ２１１３の処理は、図１０のステップＳ１０１２とステップＳ１０１３の処理と同様であるから説明を省略する。
【０１５１】
以上のように本実施例では、ハイパーバイザ１３０Ｃにより使用頻度の低いデバイスの使用を停止する要求をＯＳへ通知する。本実施例では、この通知によりＯＳの有する電力制御機能を効果的に用いることができ、情報処理装置１００Ｃ全体の消費電力の削減に貢献できる。
【０１５２】
（第五実施例）
以下に図面に基づいて第五実施例について説明する。第五実施例では、リソースを解放する代わりにリソースを置換する点で第一実施例と相違する。よって以下の第五実施例の説明では、第一実施例との相違点について説明し、第一実施例と同様の機能構成を有するものには第一実施例の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０１５３】
第五実施例の情報処理装置１００Ｄのハードウェア構成は、第一実施例と同様であるので説明を省略する。
【０１５４】
図２２は、第五実施例における情報処理装置の機能構成例を示すブロック図である。
【０１５５】
本実施例の情報処理装置１００Ｄにおいて、ＯＳ１１０はリソース解放部１１１Ａを有し、ＯＳ１２０はリソース解放部１２１Ａを有する。また本実施例の情報処理装置１００Ｄは、ハイパーバイザ１３０Ｄを有する。ハイパーバイザ１３０Ｄは、解放リソース特定部１３１Ｄ、リソース管理部１３２Ｄ、電力制御部１３４Ａを有する。また本実施例では、リソース情報記憶部１４０にリソース情報１４１Ｄが記憶されている。
【０１５６】
本実施例の解放リソース特定部１３１Ｄは、ＯＳ１１０、１２０に対し、リソース解放要求の通知の他にリソース置換要求の通知を行う。ＯＳ１１０、１２０のリソース解放部１１１Ａ、１２１Ａは、リソース置換要求を通知されると、それぞれのＯＳの有する制御機能により、リソースの置換を行う。
【０１５７】
リソース管理部１３２Ｄは、リソース情報１４１Ｄを管理する。電力制御部１３４Ａは、第二実施例と同様の電力制御を行う。
【０１５８】
次に本実施例のリソース情報１４１Ｄについて説明する。図２３は、第五実施例のリソース情報の例を示す図である。本実施例では、リソースはメモリである。
【０１５９】
本実施例のリソース情報１４１Ｄは、第二実施例と同様の個別リソース情報１４１１Ａと解放要求閾値１４１３Ａの他に、置換要求条件１４１４を含む。本実施例の置換要求条件１４１４は、リソース交換要求を通知するための条件であり、ＯＳ毎に記憶される条件である。
【０１６０】
交換通知条件１４１４では、ＯＳを動作させる仮想マシンの仮想マシンＩＤと、ＯＳが使用している使用ページ数と、ＯＳにとって必要最低限のページ数である最小ページ数とが含まれる。
【０１６１】
次に本実施例のＯＳ１１０、１２０がそれぞれ有するリソース解放部１１１Ａ、１２１Ａについてさらに説明する。図２４は、第五実施例のリソース解放部の処理を説明するフローチャートである。尚本実施例のリソース解放部１１１Ａとリソース解放部１２１Ａとは、同様の機能構成を有する。したがって図２４では、例としてリソース解放部１１１Ａの処理を説明し、リソース解放部１２１Ａの処理の説明は省略する。
【０１６２】
図２４のステップＳ２４０１からステップＳ２４０６までの処理は、図３のステップＳ３１からステップＳ３６までの処理と同様であるから説明を省略する。
【０１６３】
ステップＳ２４０１において、リソース解放要求を通知されていない場合、リソース解放部１１１Ａは、リソース置換要求を通知されたか否かを判断する（ステップＳ２４０７）。ステップＳ２４０７においてリソース置換要求を通知されていない場合、リソース解放部１１１Ａは、ＯＳ１１０の通常動作によるリソースの解放と判断し、ステップＳ２４０３へ進む。
【０１６４】
ステップＳ２４０７においてリソースの置換要求を通知されていた場合、リソース解放部１１１Ａは、リソースの置換が可能か否かを判断する（ステップＳ２４０８）。リソースの置換とは、指定されたリソースを他のリソースで代替することを示す。
【０１６５】
ステップＳ２４０８においてリソースの置換が可能と判断されると、リソース解放部１１１Ａは、代替用のリソースとして、新たなリソースの取得をリソース管理部１３２Ｄへ通知する（ステップＳ２４０９）。続いてリソース解放部１１１Ａは、新たに取得したリソースと解放するリソースとを置換し、その後リソースの解放をリソース管理部１３２Ｄへ通知し（ステップＳ２４１０）、処理を終了する。尚ステップＳ２４０８でリソースの置換が不可能と判断されると、リソース解放部１１１Ａは処理を終了する。
【０１６６】
次に本実施例の解放リソース特定部１３１Ｄについてさらに説明する。図２５は、第五実施例の解放リソース特定部の処理を説明するフローチャートである。
【０１６７】
図２５のステップＳ２５０１とステップＳ２５０２の処理は、図４のステップＳ４１とステップＳ４２の処理と同様であるから説明を省略する。
【０１６８】
ステップＳ２５０２において該当するリソースが存在しない場合、解放リソース特定部１３１Ｄは処理を終了する。ステップＳ２５０２において該当するリソースが存在する場合、解放リソース特定部１３１Ｄは、リソース情報１４１Ｄを参照し、該当するリソースが解放される可能性が有るか否かを判断する（ステップＳ２５０３）。
【０１６９】
本実施例では、リソースはメモリである。本実施例の解放リソース特定部１３１Ｄは、具体的にはステップＳ２５０２において使用ページ数が解放要求閾値１４１３Ａ以下の解放対象となるメモリバンクが存在するか否かを判断している。ステップＳ２５０２で該当するメモリバンクが存在した場合、解放リソース特定部１３１Ｄは、解放対象のメモリバンクを使用しているＯＳを特定し、置換要求条件１４１４を参照する。解放リソース特定部１３１Ｄは、置換要求条件１４１４において使用ページ数と最小ページ数とが同じ値である場合、解放対象のメモリバンクの解放の可能性はなしと判断する。また解放リソース特定部１３１Ｄは、置換要求条件１４１４において使用ページ数が最小ページ数より大きい場合、解放対象のメモリバンクの解放の可能性ありと判断する。
【０１７０】
ステップＳ２５０３において可能性がある場合、解放リソース特定部１３１Ｄは該当するリソースを使用しているＯＳのリソース解放部へリソース解放要求を通知する（ステップＳ２５０４）。
【０１７１】
ステップＳ２５０３において可能性がない場合、解放リソース特定部１３１Ｄは、該当するリソースを置換するためのリソースを用意するために、置換対象となる他のリソースを使用しているＯＳのリソース解放部へリソース解放要求を通知する（ステップＳ２５０５）。
【０１７２】
本実施例では、各ＯＳで使用されているメモリは、物理的に連続したメモリとは限らない。本実施例では、物理的に連続したメモリでない場合には、他のメモリバンクに置換可能と判断する。
【０１７３】
置換対象となる他のリソースが解放されると、解放リソース特定部１３１Ｄは、ステップＳ２５０２で解放不可能と判断されたリソースを使用しているＯＳへリソース置換要求を通知する（ステップＳ２５０６）。
【０１７４】
以下に図２６を参照してステップＳ２５０６の処理を説明する。図２６は、リソースの置換を説明する図である。図２６（Ａ）は、置換前のメモリの状態を説明する図であり、図２６（Ｂ）は置換後のメモリの状態を説明する図である。
【０１７５】
図２６では、メモリバンクＭ２は使用ページ数が解放要求閾値１４１３Ａ以下の解放対象メモリバンクであり、ＯＳ１１０の使用ページ数は最小ページ数と同数であり、ＯＳ１２０の使用ページ数は最小ページ数より大きい状態を示している。
【０１７６】
図２６（Ａ）では、ＯＳ１１０により使用されているメモリバンクはメモリバンクＭ０とメモリバンクＭ２であり、ＯＳ１２０により使用されているメモリバンクはメモリバンクＭ１である。
【０１７７】
本実施例の解放リソース特定部１３１Ｄは、ＯＳ１１０によるメモリバンクＭ２の解放は不可能と判断し、ＯＳ１２０のリソース解放部１２１Ａに対してリソース解放要求とメモリバンクＭ１のページ番号とを通知する。ＯＳ１２０によりメモリバンクＭ１の領域１Ａが解放されると、解放リソース特定部１３１Ｄは、ＯＳ１１０のリソース解放部１１１Ａに対してリソース置換要求を通知する。このとき解放リソース特定部１３１Ｄは、リソース置換要求と共に、置換対象であるメモリバンクＭ２のページ番号と、置換先であるメモリバンクＭ１のページ番号とを通知する。リソース解放部１１１Ａは、通知を受けてメモリバンクＭ１の領域１Ａを取得し、メモリバンクＭ２のページを解放する。
【０１７８】
すると図２６（Ｂ）に示すように、ＯＳ１１０は最小ページ数を確保しつつ、メモリバンクＭ２を未使用とすることができる。
【０１７９】
したがって本実施例の電力制御部１３４Ａは、メモリバンクＭ２に対するリフレッシュを停止することができ、電力削減に貢献することができる。
【０１８０】
尚第一実施例から第五実施例の各情報処理装置は、一台の情報処理装置内で実現されても良い。すなわち一台の情報処理装置に対して第一実施例から第五実施例を適用しても良い。
【０１８１】
本発明の実施の形態について、以下の付記のような構成を記載する。
（付記１）
複数のＯＳを搭載した情報処理装置であって、
当該情報処理装置の各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段と、
前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う制御手段と、を有する情報処理装置。
（付記２）
前記リソース情報は、前記解放要求の通知を行うか否かの決定に用いる解放要求閾値を含み、
前記制御手段は、
前記使用状況を示す情報と前記解放要求閾値との比較により前記解放要求を通知する前記ＯＳを特定する解放リソース特定手段と、
前記ハードウェア資源の消費電力を低減させる制御を行う電力制御手段と、を有する付記１記載の情報処理装置。
（付記３）
前記制御手段は、
特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて、前記複数の前記ＯＳに対する前記ハードウェア資源の割り当てと前記リソース情報の更新を行うリソース管理手段を有する付記１又は２記載の情報処理装置。
（付記４）
前記リソース管理手段は、
前記ハードウェア資源の割り当てを行った後に前記電力制御手段へ電力制御要求を行う付記３記載の情報処理装置。
（付記５）
前記制御手段は、
特定された前記ＯＳから前記ハードウェア資源の解放が不可能である通知を受けたとき、その旨をユーザに提示するユーザ提示手段を有する付記１乃至付記４の何れか一項に記載の情報処理装置。
（付記６）
前記使用状況を示す情報は、前記ＯＳ毎の前記ＯＳによる前記ハードウェア資源の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源を使用している前記ＯＳの使用率の合計が前記解放要求閾値未満である場合に、前記ハードウェア資源の解放要求を通知する前記ＯＳを特定する付記２乃至５の何れか一項に記載の情報処理装置。
（付記７）
前記リソース情報は、前記電力制御手段による制御を行うか否かの判断に用いる省電力判断閾値を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記省電力判断閾値以上であり且つ前記解放要求閾値未満である場合に解放要求を行うと決定する付記３乃至５の何れか一項に記載の情報処理装置。
（付記８）
前記使用状況を示す情報は、前記解放要求の通知を行うための通知要求条件を含み、
前記解放リソース特定手段は、
前記使用状況を示す情報が前記通知要求条件を満たす前記ＯＳを特定する付記３乃至６の何れか一項に記載の情報処理装置。
（付記９）
前記ハードウェア資源の使用率は、ＣＰＵの使用率である付記３ないし８の何れか一項に記載の情報処理装置。
（付記１０）
前記ＣＰＵは複数のコアを有し、
前記リソース情報は前記コア毎の稼働率を示す情報を含み、
前記解放リソース特定手段は、
前記複数のコアの稼働率の合計値と前記コアの最大稼働率とにより算出された解放比較値が前記解放要求閾値未満のとき、前記通知要求条件を満たす前記ＯＳを特定する付記９記載の情報処理装置。
（付記１１）
前記ハードウェア資源の使用率は、デバイスの使用率であり、
前記解放リソース特定手段は、
前記ＯＳ毎の前記ＯＳによる前記デバイスの使用率が前記解放要求閾値未満のデバイスを使用している前記ＯＳを特定する付記３乃至５の何れか一項に記載の情報処理装置。
（付記１２）
前記使用状況を示す情報は、前記ハードウェア資源毎の使用率を含み、
前記解放リソース特定手段は、
前記ハードウェア資源の使用率が前記解放要求閾値以下の前記ハードウェア資源を選択し、選択された前記ハードウェア資源を使用しているＯＳを特定する付記２乃至５の何れか一項に記載の情報処理装置。
（付記１３）
前記ハードウェア資源毎の使用率は、当該情報処理装置の有する記憶装置のメモリバンク毎の使用ページ数である付記１２記載の情報処理装置。
（付記１４）
前記リソース情報は、前記ハードウェア資源の置換を行うか否かを判断する置換要求条件を含み、
前記解放リソース特定手段は、
前記置換要求条件に基づき前記特定されたＯＳによる前記ハードウェア資源の解放が不可能と判断したとき、前記特定されたＯＳ以外の他のＯＳに前記他のＯＳが使用しているハードウェア資源の解放要求を通知し、前記特定されたＯＳに前記ハードウェア資源の置換要求を通知する付記１２又は１３記載の情報処理装置。
（付記１５）
コンピュータにより実行される電力制御方法であって、該コンピュータが、
当該コンピュータの有する各ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
当該コンピュータに搭載された複数のＯＳから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御を行う電力制御方法。
（付記１６）
ハードウェア資源の使用状況を示す情報を含むリソース情報が格納されたリソース情報記憶手段を参照し、
複数のＯＳから前記リソース情報に基づき前記ハードウェア資源の解放要求を通知するＯＳを特定して前記通知を行い、特定された前記ＯＳから前記ハードウェア資源の解放通知を受けて前記ハードウェア資源に係る電力制御する処理をコンピュータに実行させる電力制御プログラム。
【０１８２】
本発明の実施例は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１８３】
１００、１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ  情報処理装置
１１０、１２０  ＯＳ
１１１、１１１Ａ、１２１、１２１Ａ  リソース解放部
１３０、１３０Ａ、１３０Ｂ、１３０Ｃ、１３０Ｄ  ハイパーバイザ
１３１、１３１Ａ、１３１Ｂ、１３１Ｃ、１３１Ｄ  解放リソース特定部
１３２、１３２Ａ、１３２Ｂ、１３２Ｃ、１３２Ｄ  リソース管理部
１３３  ユーザ提示部
１３４、１３４Ａ、１３４Ｂ、１３４Ｃ  電力制御部
１４０  リソース情報記憶部
１４１、１４１Ａ、１４１Ｂ、１４１Ｃ、１４１Ｄ  リソース情報
【図１】
0005633440.tif 000002
【図２】
0005633440.tif 000003
【図３】
0005633440.tif 000004
【図４】
0005633440.tif 000005
【図５】
0005633440.tif 000006
【図６】
0005633440.tif 000007
【図７】
0005633440.tif 000008
【図８】
0005633440.tif 000009
【図９】
0005633440.tif 000010
【図１０】
0005633440.tif 000011
【図１１】
0005633440.tif 000012
【図１２】
0005633440.tif 000013
【図１３】
0005633440.tif 000014
【図１４】
0005633440.tif 000015
【図１５】
0005633440.tif 000016
【図１６】
0005633440.tif 000017
【図１７】
0005633440.tif 000018
【図１８】
0005633440.tif 000019
【図１９】
0005633440.tif 000020
【図２０】
0005633440.tif 000021
【図２１】
0005633440.tif 000022
【図２２】
0005633440.tif 000023
【図２３】
0005633440.tif 000024
【図２４】
0005633440.tif 000025
【図２５】
0005633440.tif 000026
【図２６】
0005633440.tif 000027