(57)【特許請求の範囲】
【請求項１】
複数のプロセスを格納する記憶装置と、前記プロセスが実行されるプロセッサとを備えたＣＰＵリソース管理装置であって、
前記プロセッサは、
前記プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する第一の管理手段と、
この第一の管理手段における前記判断の結果にもとづいて、前記ＣＰＵリソースを管理するＣＰＵリソース制御手段とを有し、
前記ＣＰＵリソースの管理を継続するか否かの判断は、
経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する
ことを特徴とするＣＰＵリソース管理装置。
【請求項２】
前記アイドル時間が所定時間に達したか否かの判断は、
前記所定時間を示すアイドルインターバルを予め設定し、
前記プロセッサが空き状態に入ると前記アイドルインターバルから実時間を減算し、
前記プロセッサが前記空き状態から退出すると、前記減算処理を停止し、
前記減算処理後の値が０になると、前記アイドル時間が所定時間に達したものと判断する
ことを特徴とする請求項１記載のＣＰＵリソース管理装置。
【請求項３】
前記プロセッサは、経過した実時間を管理インターバルから減算する第二の管理手段を有し、
前記記憶装置が、各プロセス群ごとに前記プロセッサの使用が可能な時間を示すＣＰＵリソース情報を格納し、
前記ＣＰＵリソース制御手段は、前記プロセスが実行された時間を前記ＣＰＵリソース情報から減算し、前記管理インターバルが０になると、前記ＣＰＵリソース情報を初期値にリセットする
ことを特徴とする請求項１又は２記載のＣＰＵリソース管理装置。
【請求項４】
前記ＣＰＵリソース制御手段は、
前記ＣＰＵリソース情報が０になると、実行しようとしていたプロセスの属するプロセス群以外のプロセス群に属するプロセスを実行する
ことを特徴とする請求項３記載のＣＰＵリソース管理装置。
【請求項５】
前記第一の管理手段は、前記実績割合が基準割合を超えていない場合には、前記第二の管理手段に対して管理インターバルの初期化指示を行い、
前記第二の管理手段は、前記初期化指示にもとづいて、前記管理インターバルを初期化する
ことを特徴とする請求項３又は４記載のＣＰＵリソース管理装置。
【請求項６】
プロセッサを含む一又は二以上のＣＰＵリソースを管理するＣＰＵリソース管理装置を備えた情報処理装置であって、
前記ＣＰＵリソース管理装置が、前記請求項１〜請求項５のいずれかに記載のＣＰＵリソース管理装置からなる
ことを特徴とする情報処理装置。
【請求項７】
複数のプロセスを実行する処理を有したＣＰＵリソース管理方法であって、
プロセッサの第一の管理手段で、前記プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する処理と、
この判断の結果にもとづいて、前記プロセッサのＣＰＵリソース制御手段で、前記ＣＰＵリソースを管理する処理とを有し、
前記ＣＰＵリソースの管理を継続するか否かの判断は、
経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する
ことを特徴とするＣＰＵリソース管理方法。
【請求項８】
前記アイドル時間が所定時間に達したか否かの判断処理は、
前記所定時間を示すアイドルインターバルを予め設定し、
前記プロセッサが空き状態に入ると前記アイドルインターバルから実時間を減算し、
前記プロセッサが前記空き状態から退出すると、前記減算処理を停止し、
前記減算処理後の値が０になると、前記アイドル時間が所定時間に達したものと判断する処理を含む
ことを特徴とする請求項７記載のＣＰＵリソース管理方法。
【請求項９】
複数のプロセスを実行する処理をＣＰＵリソース管理装置に実行させるＣＰＵリソース管理プログラムであって、
前記プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する処理と、
この判断の結果にもとづいて、前記ＣＰＵリソースを管理する処理とを前記ＣＰＵ管理装置に実行させ、
前記ＣＰＵリソースの管理を継続するか否かの判断は、
経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する
ことを特徴とするＣＰＵリソース管理プログラム。
【請求項１０】
前記アイドル時間が所定時間に達したか否かの判断処理は、
前記所定時間を示すアイドルインターバルを予め設定し、
前記プロセッサが空き状態に入ると前記アイドルインターバルから実時間を減算し、
前記プロセッサが前記空き状態から退出すると、前記減算処理を停止し、
前記減算処理後の値が０になると、前記アイドル時間が所定時間に達したものと判断する処理を含む
ことを特徴とする請求項９記載のＣＰＵリソース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵリソースの制御を行うＣＰＵリソース管理システム、このシステムを備えた情報処理装置、そのシステムで実行されるＣＰＵリソース管理方法、この方法を実行するためのＣＰＵリソース管理プログラムに関し、特に、適切なＣＰＵリソース管理を行うためのＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法、ＣＰＵリソース管理プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置には、一般に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ、ＯＳなどの種々のリソースが搭載されている。
このうちＣＰＵリソースにおいては、マルチプログラミング時に、多数のタスクに対して、優先順位をつけながら、ＣＰＵ使用時間を割り当てるタスク管理が行われる。
【０００３】
このＣＰＵリソースの制御に関連する技術が、種々提案されている。
例えば、一つのタスクのＣＰＵ使用時間が消費された時点で、関連するタスクのＣＰＵ使用時間を積算し、タスクの終了条件を判断した結果からタスクを終了する必要がなければ、積算した残りのＣＰＵ使用時間をタスクのＣＰＵ使用時間として再配分することにより制御を行うものがある（例えば、特許文献１参照。）。
このような技術によれば、複数個のタスクで構成されるジョブの処理にあたって利用者が指定したＣＰＵ使用可能時間を大幅に超過することを防ぐことができる。
【０００４】
また、他の技術としては、例えば、複数の処理単位をタイムスライス方式にてＣＰＵに割り当て実行せしめる多重処理制御方式であって、処理単位ごとに対応して設けられた各処理単位をタイムスライスにて実行させるためのタイムスライス時間間隔を記憶する記憶域と、処理単位ごとに対応して設けられ各処理単位がＣＰＵを使用した時間を積算してこの積算時間を記憶する記憶域と、処理単位を複数グループに分割して各グループに対するＣＰＵの使用割り当て比率を予め設定して記憶する割り当て比率テーブルと、所定時間経過ごとに各グループごとのＣＰＵの使用時間比率をタイム時間間隔及び積算時間を用いて算出する手段と、グループごとの使用時間比率の比率テーブル内の対応グループの割り当て比率に対する誤差を算出してこの誤差に応じて該グループ内の各処理単位のタイムスライス時間間隔を変更する変更手段とを設け、処理単位の各々をＣＰＵの使用時間を積算しつつタイムスライス時間間隔にて実行せしめるようにしたものがある（例えば、特許文献２参照。）。
【０００５】
このような技術によれば、情報処理装置内の複数の処理をいくつかのグループに分割し、各グループに予め定められた比率に従ってＣＰＵの使用時間を分配することにより、特定の処理に対して割り当てられるＣＰＵ時間を他の処理の数、特性に影響されずに、常に一定であることを保証することができる。
【特許文献１】特許第２５０８６８７号公報
【特許文献２】特開昭６２−０１１９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術においては、ＣＰＵ使用時間を消費したタスクを契機にＣＰＵ使用時間を再配分しているため、ＣＰＵリソースを適切に制御することができなかった。これは、ＣＰＵ使用時間の使用実績をもとにＣＰＵ使用時間を再配分しても、再設定後に期待通りに動作する保証はないからである。このため、ＣＰＵ使用時間を消費したタスクが存在しなければ、ＣＰＵリソースを制御することができず、ＣＰＵ使用時間を消費したタスクが存在する場合でも、複数のタスクのＣＰＵ使用時間を積算したり、再配分の必要性を判断したりする処理が必要になり、タスクのターンアラウンド時間が増加してしまう。
さらに、ソフトウエアによりＣＰＵ使用時間の使用実績からＣＰＵリソースを再配分しても、再配分した通りにタスクが動作する保証はないため、適切なＣＰＵリソース管理を行うことができなかった。
【０００７】
また、特許文献１に記載の技術は、タスクのターンアラウンド時間が増加してしまうことである。これは、割り当てたＣＰＵ使用時間を消費しなければ、ＣＰＵリソースの制御が行われないからである。
しかも、制御によるキャッシュブロック上のデータ競合や排他制御、同期制御等によるオーバーヘッドによりマルチプロセッサ構成のシステム性能が低下する。これは、タスクのＣＰＵ使用時間を消費した時点で他のタスクのＣＰＵ使用時間を積算するために、キャッシュアクセスの増加や排他制御が必要になるからである。
【０００８】
また、特許文献２に記載の技術は、システム単位にグループを設定して制御しているため、システム単位に各グループの動作実績を累積した結果と割り当てた比率との誤差からタイムスライスの設定値の見直しを行い、グループ内のすべての処理のタイムスライス間隔を変更している。このため、動作実績の累積とグループ単位でなく各処理単位にタイムスライスを設定しなければならないため、制御時に不要なオーバーヘッドが生じてしまっていた。
【０００９】
さらに、タイムスライス機構の改善を行うために、特定の処理に対して割り当てられるＣＰＵの使用時間を他の処理の数や特性に影響されることなく一定にする多重処理を提供することが目的であり、タイムスライスディスパッチング機能を使用するプロセスに限定した技術であり、タイムスライスインターバルとのズレを補正するための機能である。このため、タイムスライス機構の改善だけでは以下の点からすべての処理のＣＰＵリソースを適切に制御することはできない。
一般に、タイムスライスディスパッチングの目的は、ＴＳＳなどの同一優先順位のプロセスを時分割で均等に動作させる機能であること。（優先順位が異なる場合に、タイムスライス機構が有効になっていても、優先順位の高いプロセスが優先して実行されるため、タイムスライス機構は有効に機能しなくなる）
タイムスライス機構は、常に動作せずそのプロセスの特性に応じてプロセス単位に必要に応じて設定すること。
また、タイムスライス値は、システム管理者が業務の特性に応じて設定するため、勝手に調整してしまうとシステム管理者の期待通りに動作せず、逆にシステムが不安定になってしまう。
【００１０】
本発明は、上記の事情にかんがみなされたものであり、ＣＰＵ使用時間を消費したタスクを契機にＣＰＵ使用時間を再配分する手法を用いずに、ＣＰＵリソースを適切に制御可能とするＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法及びＣＰＵリソース管理プログラムの提供を目的とする。
【課題を解決するための手段】
【００１１】
この目的を達成するため、本発明のＣＰＵリソース管理装置は、複数のプロセスを格納する記憶装置と、プロセスが実行されるプロセッサとを備えたＣＰＵリソース管理装置であって、プロセッサは、プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する第一の管理手段と、この第一の管理手段における判断の結果にもとづいて、ＣＰＵリソースを管理するＣＰＵリソース制御手段とを有し、ＣＰＵリソースの管理を継続するか否かの判断は、経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する構成としてある。
【００１２】
また、本発明の情報処理装置は、プロセッサを含む一又は二以上のＣＰＵリソースを管理するＣＰＵリソース管理装置を備えた情報処理装置であって、ＣＰＵリソース管理装置が、特許請求の範囲の請求項１〜請求項５のいずれかに記載のＣＰＵリソース管理装置からなる構成としてある。
【００１３】
また、本発明のＣＰＵリソース管理方法は、複数のプロセスを実行する処理を有したＣＰＵリソース管理方法であって、プロセッサの第一の管理手段で、プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する処理と、この判断の結果にもとづいて、プロセッサのＣＰＵリソース制御手段で、ＣＰＵリソースを管理する処理とを有し、ＣＰＵリソースの管理を継続するか否かの判断は、経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する方法としてある。
【００１４】
また、本発明のＣＰＵリソース管理プログラムは、複数のプロセスを実行する処理をＣＰＵリソース管理装置に実行させるＣＰＵリソース管理プログラムであって、プロセスが実行されていない空き状態の時間をアイドル時間とし、このアイドル時間が所定時間に達すると、ＣＰＵリソースの管理を継続するか否かを判断する処理と、この判断の結果にもとづいて、ＣＰＵリソースを管理する処理とをＣＰＵ管理装置に実行させ、ＣＰＵリソースの管理を継続するか否かの判断は、経過した実時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出し、予め設定された管理インターバルに対するＣＰＵリソース初期情報の割合を基準割合として算出し、これら実績割合と基準割合とを比較した結果、実績割合が基準割合を超えていない場合には、ＣＰＵリソースの管理を継続しないと判断し、一方、実績割合が基準割合を超えている場合には、ＣＰＵリソースの管理を継続すると判断する構成としてある。
【発明の効果】
【００１５】
以上のように、本発明によれば、アイドルインターバルを使用してＣＰＵリソース管理の継続条件を判定して管理インターバルが可変で動作するよう制御することにより、ソフトウエアの動作時間やソフトウエア制御に伴うデータ競合や排他制御、及び、同期制御等によるシステム性能の低下要因の影響を受けずにＣＰＵリソース管理を適切に行うことができ、システムを安定に稼動させることができる。
そして、ＣＰＵ使用時間を消費したタスクを契機にＣＰＵ使用時間を再配分する手法を用いずに、ＣＰＵリソースを適切に制御することができる。このため、ソフトウエアによりＣＰＵ使用時間の使用実績からＣＰＵリソースを再配分しても、再配分した通りにタスクが動作する保証はないという問題や、割り当てたＣＰＵ使用時間を消費しなければ、ＣＰＵリソースの制御が行われないためにタスクのターンアラウンド時間が増加してしまうという問題、制御によるキャッシュブロック上のデータ競合や排他制御、同期制御等によるオーバーヘッドによりマルチプロセッサ構成のシステム性能が低下するという問題を解消できる。
【００１６】
しかも、動作実績の累積とグループ単位でなく各処理単位にタイムスライスを設定する必要がなく、これにより制御時に不要なオーバーヘッドが生じてしまうという問題を解消できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明に係るＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法及びＣＰＵリソース管理プログラムの好ましい実施形態について、図面を参照して説明する。
【００１８】
［実施形態］
まず、本発明のＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法及びＣＰＵリソース管理プログラムの実施形態について、図１を参照して説明する。
同図は、本実施形態のＣＰＵリソース管理装置の構成を示すブロック図である。
【００１９】
（ＣＰＵリソース管理装置）
同図に示すように、本実施形態のＣＰＵリソース管理装置１は、記憶装置１０と、プロセッサ２０とを備えている。
ここで、記憶装置１０は、プロセス情報記憶部１１と、プロセッサ制御情報記憶部１２を有している。
プロセス情報記憶部１１は、プロセス群識別子１１１と、実行待ちプロセス１１２を格納する。
プロセス群識別子１１１は、複数のプロセス群をそれぞれ識別するための識別子である。一つのプロセス群には、複数のプロセスが属している。なお、プロセス群については、特許第３８３８８８０号「プロセス管理方法及びプロセス管理システム」に記載されている。
実行待ちプロセス１１２は、実行前の待機中のプロセスである。
【００２０】
プロセッサ制御情報記憶部１２は、ＣＰＵリソース初期情報１２１と、ＣＰＵリソース情報１２２と、管理インターバル１２３と、総ＣＰＵ使用時間１２４と、アイドルインターバル１２５とを格納する。
ＣＰＵリソース初期情報１２１は、各プロセス群ごとに設定された情報であって、一のプロセス群がプロセッサ２０を使用し得る時間（上限値）を示す。このＣＰＵリソース初期情報１２１は、プロセス群が実行される前から予め設定されている。
ＣＰＵリソース情報１２２は、管理インターバル内の各プロセス群識別子１１１のＣＰＵリソースを制御するための情報である。ＣＰＵリソース初期情報１２１からプロセス群のＣＰＵ使用時間を減算したものがＣＰＵリソース情報１２２となる。
【００２１】
管理インターバル１２３は、ＣＰＵリソースの制御インターバル情報である。この管理インターバル１２３は、プロセス群が実行される前から予め設定されている。
この管理インターバルは、以下の理由で設けている。
ａ）基準割合の算出
ｂ）ＣＰＵリソース管理の継続条件の判定
基準割合と実績割合の比較により判定しているため、基準となる管理インターバルが必要になる。
ｃ）ＣＰＵ初期情報の設定
管理インターバルを基準としてその値の範囲内でＣＰＵ初期情報を設定する。
例えば、管理インターバル１００ｍｓ、プロセス群Ａ：７０ｍｓ、プロセス群Ｂ：３０ｍｓのように、各プロセス群のＣＰＵ初期情報の合計＝管理インターバルとなる。
ｄ）アイドル状態（プロセスが実行されていない空き状態）が発生しない状態において実行制限を解除するためのインターバル
ｅ）一時的なアイドル状態（アイドル状態がアイドルインターバルまで連続して発生しない場合）におけるＣＰＵリソース管理のリセット機構
例えば、管理インターバル１００ｍｓ、プロセス群Ａ：７０ｍｓ、プロセス群Ｂ：３０ｍｓのとき、継続的なアイドル状態が発生せず、プロセス群Ａのみが７０ｍｓ動作し制限されている場合に実行抑止を解除する機能（この場合は、アイドル時間も含めたＣＰＵリソースを基準割合として、プロセス群Ａの実行抑止を継続する必要はないと判断しＣＰＵリソース管理を初期化する）。
【００２２】
総ＣＰＵ使用時間１２４は、各プロセッサ単位に、管理インターバル１２３内に実行したすべてのプロセスのＣＰＵ使用時間（累積時間）を示す。
アイドルインターバル１２５は、プロセッサ２０の空き状態の継続を判断するための情報である。このアイドルインターバル１２５は、プロセス群が実行される前から予め設定されている。
このアイドルインターバル１２５を設けることにより、ＣＰＵの一時的な空き状態と継続的な空き状態を確実に判断して（区別して）、ＣＰＵリソースを制御することができる。つまり、空き状態がアイドルインターバルまで連続して発生していない場合には、その空き状態は一時的なアイドル状態とし、ＣＰＵリソース管理の継続条件の判定は行わないようにする。一方、空き状態がアイドルインターバルまで連続して発生した場合は、その空き状態は継続的なアイドル状態とし、ＣＰＵリソース管理の継続条件の判定を行う。
【００２３】
プロセッサ２０とは、物理的なコンピュータの中央処理装置であって、プログラムを実行してデータを処理する機能を有した装置をいう。
このプロセッサ２０は、ＣＰＵリソース制御手段２１と、管理手段α２２と、管理手段β２３とを有している。
ＣＰＵリソース制御手段２１は、プロセッサ２０で動作するプロセスの実行を制御する。具体的には、プロセッサ２０で実行待ちプロセス１１２を実行しようとする場合、その実行待ちプロセスが属するプロセス群を示すプロセス群識別子１１１をプロセス情報記憶部１１から読み出す。そして、この読み出したプロセス群識別子の示すプロセス群に対応するＣＰＵリソース情報１２２をプロセッサ制御情報記憶部１２から取り出す。さらに、このＣＰＵリソース情報１２２が“０”か否かを判断する。判断の結果、“０”でないときは、その実行待ちプロセス１１２を実行プロセスとして選択する。一方、“０”であるときは、その実行待ちプロセス１１２を実行プロセスとして選択せず、その実行待ちプロセス１１２が属するプロセス群以外のプロセス群に属するプロセスを実行プロセスとして選択する。
【００２４】
管理手段α２２（第二管理手段）は、ＣＰＵリソースの管理インターバルを制御する。具体的には、初期化時にプロセッサ制御情報記憶部１２から管理インターバル１２３を読み出す。そして、プロセスの実行状態によらずに、経過した実時間を管理インターバル１２３から減算する。
この減算後の値が“０”になると、プロセッサ制御情報記憶部１２のＣＰＵリソース初期情報１２１をＣＰＵリソース情報１２２とＣＰＵリソース制御手段２１に設定し、ＣＰＵ使用時間の減算を最初から行う。さらに、管理インターバル１２３を管理手段α２２へ再設定し、ＣＰＵリソースの管理インターバルを初期化する。また、管理手段β２３から出力された管理インターバルの初期化指示１０１によっても、ＣＰＵリソースの管理インターバルを初期化する。
【００２５】
管理手段β２３（第一管理手段）は、アイドルインターバルの制御を行う。具体的には、プロセッサ２０が空き状態へ移入する度に、アイドルインターバル１２５をプロセッサ制御情報記憶部１２から読み出した後、実時間をアイドルインターバルから減算する。そして、プロセッサ２０が空き状態から退出するときに（プロセスを実行するときに）、アイドルインターバルの減算を停止する。
また、プロセッサ２０が空き状態のときに減算しているアイドルインターバルの値が“０”になると、プロセッサ２０の空き状態が継続していると判断し、ＣＰＵリソース管理の継続条件を判定する。このとき、アイドルインターバル１２５を管理手段β２３へ再設定する。
このＣＰＵリソース管理の継続条件の判定については、後述する。
【００２６】
なお、ＣＰＵリソースとは、広義の意味では、ある一定時間にシステム上で使用可能なプロセッサ数（または、処理時間）をいう。
例えば、一定時間を管理インターバル＝１００ｍｓとすると、
プロセッサが１台の場合は、１００ｍｓに対するＣＰＵリソースは１００ｍｓ
プロセッサが２台の場合は、１００ｍｓに対するＣＰＵリソースは２００ｍｓ
となる。
（並列実行が可能な環境では、時間あたりの有効なＣＰＵリソースは、一定時間×プロセッサ数となる。）
ただし、本実施形態では、プロセッサ単位に制御しているため、プロセッサ台数を意識する必要はない。
【００２７】
また、ＣＰＵリソースとは、実際に使用したプロセッサの使用時間をいう場合もある。
狭義の意味では、アプリケーションやプロセスが必要とするプロセッサの処理時間、または、使用時間を表すこともある。
なお、本実施形態においては、ＣＰＵリソースと使用時間とは区別して表現する。
【００２８】
［ＣＰＵリソース制御方法］
次に、ＣＰＵリソース管理装置の動作（ＣＰＵリソース制御方法）について説明する。
ＣＰＵリソース制御方法には、(i)ＣＰＵリソース制御手段２１の動作、(ii)管理手段α２２の動作、(iii)管理手段β２３の動作、(iv)ＣＰＵリソース管理の継続条件の判定がある。以下、この順に説明する。
【００２９】
（ｉ）ＣＰＵリソース制御手段の動作
ＣＰＵリソース制御手段の動作について、図２、図３を参照して説明する。
図２は、ＣＰＵリソース制御手段の動作を示すフローチャート、図３は、動作手順図である。
【００３０】
ＣＰＵリソース制御手段２１は、記憶装置１０に実行待ちプロセスが存在するか否かを判断する（図２の処理Ａ１）。判断の結果、存在する場合であって、この実行待ちプロセス１１２をプロセッサ２０で実行しようとするとき、ＣＰＵリソース制御手段２１は、そのプロセスの実行開始時に、その実行待ちプロセスが属するプロセス群を示すプロセス群識別子１１１をプロセス情報記憶部１１から読み出す（図３のＢ１）。
次いで、ＣＰＵリソース制御手段２１は、そのプロセス群識別子１１１に対応するＣＰＵリソース情報１２２を、プロセッサ制御情報記憶部１２から取り出す（Ｂ２）。
【００３１】
さらに、ＣＰＵリソース制御手段２１は、その取り出したＣＰＵリソース情報１２２が“０”か否か（選択したプロセスが属するプロセス群は実行可能か？、ＣＰＵリソース情報が残っているか？）を判断する（処理Ａ２、Ｂ３）。
判断の結果、“０”でないときは（割り当てたＣＰＵ使用時間が残っている場合には）、その実行待ちプロセスを実行プロセスとして選択し、この実行プロセスの実行を開始する（処理Ａ３、Ｂ４）。そして、ＣＰＵリソース情報１２２を保持する（Ｂ５）。
【００３２】
プロセスの実行中、ＣＰＵリソース制御手段２１は、ＣＰＵリソース情報１２２からＣＰＵ使用時間を減算する（Ｂ６）。
プロセスの実行完了時、ＣＰＵリソース制御手段２１は、プロセスのＣＰＵ使用時間を減算した値をＣＰＵリソース情報１２２としてプロセッサ制御情報記憶部１２へ格納する（Ｂ７）。以後、プロセスを実行するごとに、ＣＰＵ使用時間が減算される（Ｂ６）。
【００３３】
一方、Ｂ３の判断処理（処理Ａ２）において、ＣＰＵリソース情報１２２が“０”であると判断されたときは（割り当てたＣＰＵ使用時間が残っていない場合には）、プロセスの実行を停止し（Ｂ８）、他に実行待ちプロセスが存在するか否かを判断し（処理Ａ４）、他のプロセスを実行プロセスとして選択する（Ｂ９）。
なお、ＣＰＵリソース制御手段２１は、プロセスの実行完了時、プロセッサ上で実行したプロセスの使用時間を総ＣＰＵ使用時間１２４へ累積する（Ｂ１０）。
【００３４】
（ii）管理手段αの動作
管理手段αの動作について、図４を参照して説明する。
管理手段α２２は、初期化時にプロセッサ制御情報記憶部１２の管理インターバル１２３を読み出す（図４のＣ１）。
この読み出した後、プロセスの実行状態によらず、経過した実時間を管理インターバル１２３から減算する（Ｃ２）。
この管理手段α２２で減算している値が“０”になると（Ｃ３）、管理手段α２２は、プロセッサ制御情報記憶部１２のＣＰＵリソース初期情報１２１をＣＰＵリソース情報１２２へ設定する（Ｃ４）。これにより、ＣＰＵ使用時間の減算が最初から行われる。
また、管理インターバル１２３を管理手段α２２へ再設定する（Ｃ５）。これにより、ＣＰＵリソース（ＣＰＵ使用時間）の管理インターバルを初期化する。
さらに、総ＣＰＵ使用時間１２４をリセットする（Ｃ６）。
【００３５】
（iii）管理手段βの動作
次に、管理手段βの動作について、図５、図６を参照して説明する。
管理手段β２３は、プロセッサ２０が空き状態（アイドル）になると（Ｄ１）、プロセッサ制御情報記憶部１２のアイドルインターバル１２５を読み出し（Ｄ２）、その後、実時間を減算する（Ｄ３）。
また、プロセッサ２０がプロセスを実行するために空き状態から退出するときには（Ｄ４）、管理手段β２３でアイドルインターバルの減算を停止する（Ｄ５）。
【００３６】
プロセッサ２０が空き状態の場合において、管理手段β２３で減算しているアイドルインターバルの値が“０”になると（Ｄ６）、プロセッサの空き状態が継続していると判断し（Ｄ７）、ＣＰＵリソース管理の継続条件を判定する（Ｄ８）。このとき、アイドルインターバル１２５を管理手段β２３へ再設定する（Ｄ９）。
【００３７】
（iv）ＣＰＵリソース管理の継続条件の判定
次に、ＣＰＵリソース管理の継続条件の判定について説明する。
ＣＰＵリソース管理の継続条件の判定は、次のような手順で行う。
経過時間に対する各プロセス群のＣＰＵ使用時間の割合を実績割合として算出する（このうち、各プロセス群のＣＰＵ使用時間は、ＣＰＵリソース初期情報１２１からＣＰＵリソース情報１２２を減算することで算出できる）。
また、管理インターバル１２３に対するＣＰＵリソース初期情報１２１の割合を基準割合として算出する。
そして、これら実績割合と基準割合とを比較する。
【００３８】
比較の結果、実績割合が基準割合を超えていない場合（ＣＰＵリソース管理の継続条件が成立していない場合）には、ＣＰＵリソース管理を継続する必要がないと判断し、管理インターバルの初期化指示１０１を有効にする（初期化指示１０１を管理手段α２２へ送る）。
すなわち、現時点で、アイドル時間も含めた使用可能なＣＰＵリソースに対して、過剰にＣＰＵリソースを消費しているプロセス群が存在せず、ＣＰＵリソース管理を初期化しても問題ないため、ＣＰＵリソース管理を最初から開始する。
【００３９】
一方、実績割合が基準割合を超えている場合（ＣＰＵリソース管理の継続条件が成立する場合）は、管理インターバルの初期化指示１０１は有効にならず、管理インターバル１２３によるＣＰＵリソース管理は、次にアイドルインターバルが“０”になるまで、ＣＰＵリソース管理を継続して行う。
すなわち、現時点で、アイドル時間も含めた使用可能なＣＰＵリソースに対して、過剰にＣＰＵリソースを消費しているプロセス群が存在しており、ＣＰＵリソース管理を継続しなければ、期待通りにＣＰＵリソースを使用することができないプロセス群が存在する可能性があるため、ＣＰＵリソース管理を継続する。
【００４０】
［ＣＰＵリソース制御方法の具体例］
次に、ＣＰＵリソース制御方法の具体例について、図７、図８（１）〜（３）を参照して説明する。
図７は、プロセス、プロセス群、プロセッサの関係を示すイメージ図、図８は、本実施形態のＣＰＵリソース制御方法の動作を示すデータ表である。
なお、最初に、本実施形態で説明するＣＰＵリソース管理は、プロセッサ単位に制御するため、プロセッサ番号は００を前提に説明する。
【００４１】
（初期状態）
図８（１）に示すように、初期状態として、プロセス群識別子には、「プロセス群Ａ」，「プロセス群Ｂ」，「プロセス群Ｃ」があるものとする。また、各プロセス群に対応するＣＰＵリソース初期情報は、「プロセス群Ａ」が５０ｍｓ，「プロセス群Ｂ」が３０ｍｓ，「プロセス群Ｃ」が２０ｍｓであるものと仮定する。
そして、プロセス群識別子は、記憶装置１０のプロセス情報記憶部１１に格納されている。また、ＣＰＵリソース初期情報は、プロセッサ制御情報記憶部１２に格納されている。
【００４２】
さらに、管理インターバル１２３を１００ｍｓとすると、管理インターバルとこの管理インターバルに対する各プロセス群のＣＰＵリソース初期情報の割合（基準割合）は、次のようになる。
プロセス群Ａ：５０／１００＝０．５
プロセス群Ｂ：３０／１００＝０．３
プロセス群Ｃ：２０／１００＝０．２
なお、アイドルインターバル１２５は、５ｍｓと仮定する。
【００４３】
（ＣＰＵリソース管理の基本動作）
図８（２）に示すように、経過時間(201)に対してプロセス群Ａ〜Ｃの各ＣＰＵ使用時間(202)〜(204)は、図示したように動作するものとする。
例えば、経過時間(201)が０ｍｓ〜１０ｍｓのとき、プロセス群ＡのＣＰＵ使用時間(202)は１０ｍｓ、プロセス群ＢのＣＰＵ使用時間(203)は０ｍｓ、プロセス群ＣのＣＰＵ使用時間(204)は０ｍｓである。この場合、管理インターバル内の各プロセス群のＣＰＵ使用時間の累計(207)〜(209)は、プロセス群Ａ(207)が１０ｍｓ、プロセス群Ｂ(208)が０ｍｓ、プロセス群Ｃ(209)が０ｍｓとなる。そして、総ＣＰＵ使用時間(205)は、１０＋０＋０＝１０ｍｓとなる。なお、このときのアイドル時間は、０ｍｓである。
【００４４】
また、経過時間(201)が１０ｍｓ〜２０ｍｓのとき、プロセス群ＡのＣＰＵ使用時間(202)は０ｍｓ、プロセス群ＢのＣＰＵ使用時間(203)は５ｍｓ、プロセス群ＣのＣＰＵ使用時間(204)は０ｍｓである。この場合、経過時間(201)が０ｍｓ〜２０ｍｓにおける管理インターバル内の各プロセス群のＣＰＵ使用時間の累計(207)〜(209)は、プロセス群Ａ(207)が１０＋０＝１０ｍｓ、プロセス群Ｂ(208)が０＋５＝５ｍｓ、プロセス群Ｃ(209)が０＋０＝０ｍｓとなる。そして、総ＣＰＵ使用時間(205)は、１０＋５＋０＝１５ｍｓとなる。なお、経過時間(201)が１０ｍｓ〜２０ｍｓのときのアイドル時間は、５ｍｓである。
【００４５】
さらに、経過時間(201)が２０ｍｓ〜３０ｍｓのとき、プロセス群ＡのＣＰＵ使用時間(202)は０ｍｓ、プロセス群ＢのＣＰＵ使用時間(203)は５ｍｓ、プロセス群ＣのＣＰＵ使用時間(204)は０ｍｓである。この場合、経過時間(201)が０ｍｓ〜３０ｍｓにおける管理インターバル内の各プロセス群のＣＰＵ使用時間の累計(207)〜(209)は、プロセス群Ａ(207)が１０＋０＋０＝１０ｍｓ、プロセス群Ｂ(208)が０＋５＋５＝１０ｍｓ、プロセス群Ｃ(209)が０＋０＋０＝０ｍｓとなる。そして、総ＣＰＵ使用時間(205)は、１０＋１０＋０＝２０ｍｓとなる。なお、経過時間(201)が２０ｍｓ〜３０ｍｓのときのアイドル時間は、５ｍｓである。
【００４６】
ここで、同図（２）の(208)を見ると、管理インターバル内のプロセス群ＢのＣＰＵ使用時間の累計は、経過時間(201)が０ｍｓ〜７０ｍｓのときに、０＋５＋５＋０＋５＋５＋１０＝３０ｍｓとなる。一方、プロセス群Ｂに対応するＣＰＵリソース初期情報は３０ｍｓである。このため、経過時間(201)が７０ｍｓになると、管理手段α２２で管理しているプロセス群ＢのＣＰＵリソース情報１２２が“０”になる。これにより、プロセス群Ｂの実行が抑止される。
以後、プロセス群Ｂの実行は、管理手段α２２で減算している管理インターバルが“０”になるまで（経過時間＝１００ｍｓ）、実行が抑止される。
経過時間が１００ｍｓになると、管理手段α２２の管理インターバルが“０”になり、ＣＰＵリソース情報１２２は、ＣＰＵリソース初期情報１２１に初期化される。これにより、ＣＰＵリソース管理が最初から行われ、この時点で、プロセス群Ｂは実行可能となる。
【００４７】
（アイドルインターバルと管理インターバルによるＣＰＵリソース管理）
次に、本実施形態によるアイドルインターバルと管理インターバルによるＣＰＵリソース管理の動作について、図８（３）を参照して説明する。
同図（３）に示すように、経過時間(301)に対してプロセス群Ａ〜Ｃの各ＣＰＵ使用時間(302)〜(304)は、図示したように動作することとする。これらＣＰＵ使用時間(302)〜(304)は、前述のＣＰＵ使用時間(202)〜(204)とほぼ同様である。ただし、経過時間(301)の８０ｍｓ〜１００ｍｓにおけるプロセス群ＢのＣＰＵ使用時間(303)は、プロセス群ＢのＣＰＵ使用時間(203)と異なる。
また、プロセッサの空き状態は、連続して発生しているものとする。
【００４８】
経過時間(301)が２０ｍｓのとき、総アイドル時間(306)が５ｍｓであるため、管理手段β２３で減算しているアイドルインターバルが“０”になる。これにより、ＣＰＵリソース管理の継続条件の判定が行われる。
ここで、実績割合（プロセス群Ａの経過時間に対するＣＰＵ使用時間の割合）は０．５であり、基準割合（管理インターバル１２３に対するＣＰＵリソース初期情報１２１の割合）は０．５である。これらを比較すると、実績割合が基準割合を超えている（達している）ことから、管理インターバルの初期化指示１０１は無効となり、管理手段α２２で減算している管理インターバルは、継続して減算処理が行われる。
【００４９】
経過時間(301)が３０ｍｓになり、管理手段１３で減算しているアイドルインターバルが“０”になると、ＣＰＵリソース管理の継続条件の判定が行われる。
ここで、プロセス群Ａの実績割合は０．３３であるため、基準割合の０．５を超えておらず、プロセス群Ａは、ＣＰＵリソース管理の継続条件の対象外となる。
しかし、プロセス群Ｂの実績割合は０．３３であり、基準割合０．３を超えている。このため、管理インターバルの初期化指示１０１は無効となり、管理手段α２２で減算している管理インターバルは、継続して減算処理を行う。
【００５０】
続いて、経過時間(301)が４０ｍｓになり、管理手段β２３で減算しているアイドルインターバルが“０”になると、ＣＰＵリソース管理の継続条件の判定が行われる。
ここで、プロセス群Ａ〜Ｃの実績割合は、プロセス群Ａ＝０．２５、プロセス群Ｂ＝０．２５、プロセス群Ｃ＝０．１３となり、それぞれ基準割合を超えていないため、すべてのプロセス群がＣＰＵリソース管理の継続条件の対象外となる。このため、管理インターバルの初期化指示１０１は有効になる。このとき、管理手段α２２で減算している管理インターバルが初期化されるとともに、ＣＰＵリソース情報がＣＰＵリソース初期情報１２１に初期化され、ＣＰＵリソース管理が最初から行われる。
【００５１】
また、プロセッサ制御情報記憶部１２のＣＰＵリソース初期情報１２１をＣＰＵリソース情報１２２へ設定し、総ＣＰＵ使用時間１２４を、リセットする。管理手段β２３の管理インターバルの初期化指示１０１により管理インターバルの初期化が行われると、管理インターバルは４０ｍｓで動作することになる。
【００５２】
以後、プロセッサのアイドルインターバルと管理インターバルの制御により、割り当てたＣＰＵリソースを適切に管理するために、ＣＰＵリソースの管理インターバルは、管理インターバルの規定値までの間で可変に動作する。
図８の例では、経過時間１００ｍｓに対して、プロセス群ＢのＣＰＵ使用時間が１０ｍｓ（３０ｍｓ→４０ｍｓ）増加し、ターンアラウンド時間が２０ｍｓ（１００ｍｓ→８０ｍｓ）短縮することになる。
【００５３】
このようにして、アイドルインターバルを使用してＣＰＵリソース管理の継続条件を判定して管理インターバルが可変で動作するよう制御することにより、ソフトウエアの動作時間やソフトウエア制御に伴うデータ競合や排他制御、及び、同期制御等によるシステム性能の低下要因の影響を受けずにＣＰＵリソース管理を適切に行うことができ、システムを安定に稼動させることができる。
【００５４】
また、図７に示すように、実行するプロセス群のＣＰＵ使用時間をプロセッサ単位で管理する。
ＣＰＵ使用時間を消費したときは、例外を報告せず、自動停止する。
制御インターバル（管理インターバル）が経過したときに、初期化を行う。
実行中のプロセスを停止せず各プロセッサのＣＰＵ使用時間を集計する。
割り当てられたＣＰＵ使用時間内で自動制御を行う。
プロセス群間の調整が必要と判断した場合のみ、ＯＳで調整を行う。プロセスを停止せず実行する。
これにより、オーバーヘッドが排除され、排他制御や同期制御が不要となる。また、キャッシュの常駐性が向上し、他のプロセッサによる干渉を受けない。
さらに、制御領域の競合を排除できる（データ共有、異なるジョブ間の擬似データの共有）。
【００５５】
このように、ＣＰＵリソース初期情報、ＣＰＵリソース情報、及び、管理インターバル、アイドルインターバルの設定値をソフトウエアで設定可能にすることにより、動的なリソース管理を行うことが可能となる。
ＣＰＵリソース管理の継続条件の判定に使用する情報として、ＣＰＵリソース情報以外に、ＣＰＵリソースとして期待する平均値や最低保障値を定義することにより、さらに、柔軟なリソース管理を行うことも可能となる。
【００５６】
［ＣＰＵリソース管理プログラム］
次に、ＣＰＵリソース管理プログラムについて説明する。
上記の実施形態におけるコンピュータ（ＣＰＵリソース管理装置、プロセッサ、記憶装置）のＣＰＵリソース管理機能（ＣＰＵリソース管理方法を実行するための機能）は、記憶装置（例えば、ＲＯＭ、ハードディスク等）に記憶されたＣＰＵリソース管理プログラムにより実現される。
【００５７】
ＣＰＵリソース管理プログラムは、コンピュータの制御手段（ＣＰＵなど）に読み込まれることにより、コンピュータの構成各部に指令を送り、所定の処理、例えば、ＣＰＵリソース制御手段、管理手段α、管理手段β、記憶装置が実行する各種処理を行わせる。
これによって、ＣＰＵリソース管理機能は、ソフトウエアであるＣＰＵリソース管理プログラムとハードウエア資源であるコンピュータ（ＣＰＵリソース管理手段（ＣＰＵリソース管理装置、プロセッサ、記憶装置）の各構成手段とが協働することにより実現される。
【００５８】
なお、ＣＰＵリソース管理機能を実現するためのＣＰＵリソース管理プログラムは、コンピュータのＲＯＭやハードディスクなどに記憶される他、コンピュータ読み取り可能な記録媒体、例えば、外部記憶装置及び可搬記録媒体等に格納することができる。
外部記憶装置とは、ＣＤ−ＲＯＭ等の記憶媒体を内蔵し、ＣＰＵリソース管理装置に外部接続されるメモリ増設装置をいう。一方、可搬記録媒体とは、記録媒体駆動装置（ドライブ装置）に装着でき、かつ、持ち運び可能な記録媒体であって、例えば、フレキシブルディスク，メモリカード，光磁気ディスク等をいう。
【００５９】
そして、記録媒体に記録されたプログラムは、コンピュータのＲＡＭ等にロードされて、ＣＰＵ（制御装置））により実行される。この実行により、上述した本実施形態のＣＰＵリソース管理装置の機能が実現される。
さらに、コンピュータでＣＰＵリソース管理プログラムをロードする場合、他のコンピュータで保有されたＣＰＵリソース管理プログラムを、通信回線を利用して自己の有するＲＡＭや外部記憶装置にダウンロードすることもできる。このダウンロードされたＣＰＵリソース管理プログラムも、ＣＰＵにより実行され、本実施形態のＣＰＵリソース管理装置のＣＰＵリソース管理機能を実現する。
【００６０】
以上、本発明のＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法及びＣＰＵリソース管理プログラムの好ましい実施形態について説明したが、本発明に係るＣＰＵリソース管理装置、情報処理装置、ＣＰＵリソース管理方法及びＣＰＵリソース管理プログラムは上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、管理インターバルやアイドルインターバルは、プロセッサごとに管理したが、プロセッサごとに限るものではなく、例えば、プロセス群単位やシステムで一つの値として定義したり、任意のプロセッサの集まりをプロセッサグループとして定義しプロセッサグループ単位に定義したりする等、管理インターバルとアイドルインターバルを柔軟に定義することが可能である。
【００６１】
また、前述した実施形態のＣＰＵリソース情報を管理インターバル内の制御情報を利用し、別エリアに累積情報を設置し、ＣＰＵ初期情報とＣＰＵリソース情報の差異を累積することにより、ＣＰＵリソースの管理を独立して稼動情報を採取することが可能となる。
さらに、プロセッサ障害発生時の予備プロセッサへの切り替えやプロセッサの増設時等に、対象となるプロセッサのみへＣＰＵリソース情報を設定したり、事前に準備したりすることにより、システム運用中の構成変更等にも容易に対応することが可能となる。
【産業上の利用可能性】
【００６２】
本発明は、アウトソーシングや複数のシステム統合を行うケース等において、システム業務の安定稼動を行うといった用途に適用できる。
【図面の簡単な説明】
【００６３】
【図１】本発明のＣＰＵリソース管理装置の構成を示すブロック図である。
【図２】本発明のＣＰＵリソース管理装置の動作を示すフローチャートである。
【図３】ＣＰＵリソース制御手段の動作を示す動作手順図である。
【図４】管理手段αの動作を示す動作手順図である。
【図５】管理手段βの動作を示す動作手順図である。
【図６】管理手段βの動作を示す動作手順図である。
【図７】本発明のＣＰＵリソース管理装置の動作を示すイメージ図である。
【図８】本発明のＣＰＵリソース管理装置の動作に用いられる各種データを示す図表である。
【図９】従来のＣＰＵリソース管理装置の動作を示すイメージ図である。
【符号の説明】
【００６４】
１  ＣＰＵリソース管理装置
１０  記憶装置
１１  プロセス情報記憶部
１２  プロセッサ制御情報記憶部
２０  プロセッサ
２１  ＣＰＵリソース制御手段
２２  管理手段α
２３  管理手段β
【図１】
0004427802.tif 000002
【図２】
0004427802.tif 000003
【図３】
0004427802.tif 000004
【図４】
0004427802.tif 000005
【図５】
0004427802.tif 000006
【図６】
0004427802.tif 000007
【図７】
0004427802.tif 000008
【図８】
0004427802.tif 000009
【図９】
0004427802.tif 000010