(57)【要約】  【課題】  コンピュータのプロセス制御において、ＣＰＵ使用率を効果的かつ迅速に制御し、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制する。  【解決手段】  コンピュータで所定のプロセスが起動したことを検知し、このプロセスが予め定められた制御対象プロセスか否かを判断するプロセス状態検知部１０と、このプロセス状態検知部１０により制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得し、予め定められたシステム全体のＣＰＵ使用率の目標値と比較する比較部３０と、この比較部３０による比較結果に基づいて、制御対象プロセスの停止・実行再開を制御するプロセス一時停止制御部４０とを備える。  【選択図】  図１
2007018282.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するプロセス状態検知部と、
前記プロセス状態検知部により前記制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得し、予め定められた当該システム全体のＣＰＵ使用率の目標値と比較する比較部と、
前記比較部による比較結果に基づいて、前記制御対象プロセスの停止・実行再開を制御するプロセス一時停止制御部と
を備えることを特徴とするプロセス制御システム。
【請求項２】
前記プロセス一時停止制御部は、前記比較部によりシステム全体のＣＰＵ使用率の現在値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項１に記載のプロセス制御システム。
【請求項３】
前記システム全体のＣＰＵ使用率の目標値として、上限値と下限値が設定され、
前記プロセス一時停止制御部は、前記比較部によりシステム全体のＣＰＵ使用率の現在値が前記上限値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記下限値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項１に記載のプロセス制御システム。
【請求項４】
前記比較部は、システム全体のＣＰＵ使用率の現在値が前記目標値を上回っていると判断し、かつ動作中の制御対象プロセスが複数存在する場合に、当該動作中の制御対象プロセスの少なくとも一部を一時停止の対象として決定し、
前記プロセス一時停止制御部は、前記比較部により一時停止の対象として決定された前記動作中の制御対象プロセスを停止させることを特徴とする請求項１に記載のプロセス制御システム。
【請求項５】
前記比較部は、システム全体のＣＰＵ使用率および個々のプロセスによるＣＰＵ使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のＣＰＵ使用率の予測値を計算し、当該予測値と前記目標値とを比較し、
前記プロセス一時停止制御部は、前記比較部により前記予測値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該予測値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項１に記載のプロセス制御システム。
【請求項６】
前記制御対象プロセスを記述した制御対象プロセス記述ファイルをさらに備え、
前記プロセス状態検知部は、起動したことを検知した前記プロセスが前記制御対象プロセス記述ファイルに記述されているか否かを調べて、当該プロセスが前記制御対象プロセスか否かを判断することを特徴とする請求項１に記載のプロセス制御システム。
【請求項７】
動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得し、当該プロセス別ＣＰＵ使用率に基づいて特定される所定のプロセスが前記制御対象プロセス記述ファイルに記載されているか否かを調べ、当該所定のプロセスが当該制御対象プロセス記述ファイルに記載されていない場合に、当該所定のプロセスを当該制御対象プロセス記述ファイルに記載する制御対象修正部をさらに備えることを特徴とする請求項６に記載のプロセス制御システム。
【請求項８】
ＯＳ（Operating System）にしたがって複数のプロセスの実行を制御するＯＳ実行部と、
前記ＯＳ実行部の制御により所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するプロセス状態検知部と、
前記プロセス状態検知部により前記制御対象プロセスが起動したと判断された場合に、前記ＯＳ実行部からシステム全体のＣＰＵ使用率を取得し、予め定められた当該システム全体のＣＰＵ使用率の目標値と比較する比較部と、
前記比較部による比較結果に基づいて、前記制御対象プロセスの停止・実行再開を前記ＯＳ実行部に指示するプロセス一時停止制御部と
を備えることを特徴とするコンピュータ。
【請求項９】
前記ＯＳ実行部から動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得し、当該プロセス別ＣＰＵ使用率に基づいて、前記制御対象プロセスを修正する制御対象修正部をさらに備えることを特徴とする請求項８に記載のコンピュータ。
【請求項１０】
コンピュータにより実行されるプロセスの制御を行う方法であって、
コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するステップと、
前記制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得するステップと、
得られた前記システム全体のＣＰＵ使用率と予め定められた当該システム全体のＣＰＵ使用率の目標値と比較するステップと、
前記システム全体のＣＰＵ使用率が前記目標値を上回っている場合に、前記制御対象プロセスを停止させるステップと、
前記システム全体のＣＰＵ使用率が前記目標値を下回っており、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させるステップと
を含むことを特徴とする方法。
【請求項１１】
前記システム全体のＣＰＵ使用率と前記目標値とを比較するステップでは、当該システム全体のＣＰＵ使用率の現在値と当該目標値とが比較されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記システム全体のＣＰＵ使用率と前記目標値とを比較するステップでは、
システム全体のＣＰＵ使用率および個々のプロセスによるＣＰＵ使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のＣＰＵ使用率の予測値が計算され、
算出された予測値と前記目標値とが比較されることを特徴とする請求項１０に記載の方法。
【請求項１３】
動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得するステップと、
得られた前記プロセス別ＣＰＵ使用率に基づいて、前記制御対象プロセスを修正するステップと
をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
コンピュータを、
コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するプロセス状態検知手段と、
前記プロセス状態検知手段により前記制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得し、予め定められた当該システム全体のＣＰＵ使用率の目標値と比較する比較手段と、
前記比較手段による比較結果に基づいて、前記制御対象プロセスの停止・実行再開を制御するプロセス一時停止制御手段として、
機能させることを特徴とするプログラム。
【請求項１５】
前記プロセス一時停止制御手段の機能として、前記コンピュータに、システム全体のＣＰＵ使用率の現在値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記比較手段の機能として、前記コンピュータに、システム全体のＣＰＵ使用率および個々のプロセスによるＣＰＵ使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のＣＰＵ使用率の予測値を計算させて、当該予測値と前記目標値とを比較させ、
前記プロセス一時停止制御手段の機能として、前記コンピュータに、前記予測値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、前記予測値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項１４に記載のプログラム。
【請求項１７】
前記コンピュータを、動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得し、当該プロセス別ＣＰＵ使用率に基づいて、前記制御対象プロセスを修正する制御対象修正手段として、さらに機能させることを特徴とする請求項１４に記載のプログラム。
【請求項１８】
コンピュータに、
コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断する処理と、
前記制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得する処理と、
得られた前記システム全体のＣＰＵ使用率と予め定められた当該システム全体のＣＰＵ使用率の目標値と比較する処理と、
前記システム全体のＣＰＵ使用率が前記目標値を上回っている場合に、前記制御対象プロセスを停止させる処理と、
前記システム全体のＣＰＵ使用率が前記目標値を下回っており、かつ前記制御対象プロセスが停止している場合に、前記制御対象プロセスの実行を再開させる処理と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのＣＰＵ使用率（プロセッサ使用率）の制御に関し、特に複数のプログラムが同時に実行される場合の各プロセスにおけるＣＰＵ使用率を制御するシステムおよびその方法に関する。
【背景技術】
【０００２】
通常、コンピュータのプログラムは、最も早くタスクを実行するようにデザインされている。また、ＯＳ（Operating System）は、プロセッサ能力が最も高く引き出されるようにデザインされている。このため、データの計算量や比較量が多いプログラムが実行されると、ＣＰＵ使用率が１００％近くに増大する。これは、クライアントマシンにおいてはＨＩＤ（Human Interface(Input) Device）等におけるユーザアクセスのレスポンスの悪化の原因となり、サーバマシンにおいてはネットワーク経由のファイルアクセスのレスポンスの悪化の原因となる。
【０００３】
そこで、このような予期せぬ外部からＣＰＵ資源へのアクセス要求に対するレスポンスの悪化を解消するため、従来は、プログラムプロセスに属するスレッド（独立して動作する一連のタスク）のタスクスケジューラにおける優先順位をアイドルレベル（最低優先順位）に変えることなどが行われていた（例えば、非特許文献１、特許文献１参照）。
また、プログラム自身が、予め実行の優先順位を細かく設定可能であり、システム全体のＣＰＵ使用率への影響を抑制できるようにしたものも存在する。
さらに、システム全体のＣＰＵ使用率を測定し、所定の上限を超えないようにプロセスの起動を制御する従来技術も存在する（例えば、特許文献２参照）。
【０００４】
【非特許文献１】“Windows Server 2003 Windows System Resource Manager ご紹介”、［online］、２００３年１０月、富士通株式会社、［平成１７年４月８日検索］、インターネット＜URL : http://www.fmworld.net/biz/primergy/technical/construct/pdf/0065.pdf
【特許文献１】特開平１１−６５８５９号公報
【特許文献２】特開２０００−２８４９７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、コンピュータによるプログラムの実行時には、ＣＰＵ使用率の制御を効果的に行い、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することが好ましい。
しかしながら、プログラムプロセスに属するスレッドの優先順位を変更する従来技術の場合、完全にメモリ上でのデータ処理を行うプロセスに対しては効果的な制御が可能であるが、周辺装置へのＩ／Ｏアクセスを伴うプロセス（例えば、アンチウイルスプログラムのようにデータの比較とディスクＩ／Ｏを繰り返すプロセス）では、あまり効果的ではなかった。これは、後者のようなプロセスでは、Ｉ／Ｏ待ちの時間の方が長く、メインスレッドのタスク実行時間が非常に少なくなっているので、そのスレッドのタスク優先順位をアイドルレベル（最低優先順位）に変えても、ＣＰＵ使用率にはほとんど影響がないためである。
【０００６】
また、周辺装置へのＩ／Ｏアクセスを伴うプロセスが実行されるプログラムは、通常、他のプログラムの存在をあまり考慮せずにＩ／Ｏアクセスを繰り返す。このため、例えばディスクＩ／Ｏのような単一のデバイスへのアクセスが連続的に行われた場合、他のプログラムのディスクＩ／ＯやＯＳ自身のメモリスワップのためのディスクＩ／Ｏにも遅延が生じてしまい、複合的にＣＰＵ使用率を増大させる原因となっていた。
【０００７】
さらに、かかる従来技術では、メインスレッドのタスク優先順位をアイドルレベルに変えると、Ｉ／Ｏアクセスが完了してもメインスレッドで未だ読み出されないデータがある場合に、ＯＳのデザイン次第では、別のプロセスからのＩ／Ｏアクセスを受け付けないことも起こり得る。この場合は、タスク優先順位をアイドルレベル（最低優先順位）に変更すること自体が、ＣＰＵ使用率の増大を招くおそれもある。
【０００８】
一方、プログラム自身が実行の優先順位を細かく設定する従来技術では、確かに、システム全体のＣＰＵ使用率への影響を抑制することが可能である。しかし、ＯＳ上で実行されるすべてのプログラムにこのようなオプションの実装を期待することはできない。また、そのようなオプションは当該プログラムプロセス専用に準備されたものなので、一つでもこのようなオプションが用意されていない他のプログラムが実行された場合には、システム全体のＣＰＵ使用率を制限することはできなかった。
【０００９】
特許文献２に示された従来技術は、着目したプロセスのＣＰＵ使用率とシステム全体のＣＰＵ使用率の比から、当該プロセスの停止時間を算出し、当該プロセスを一時的に停止させるものである。そのため、停止時間の計算に時間を要し、実際のプロセスの起動や実行状態に応じた迅速な制御が困難であるという問題があった。
【００１０】
そこで本発明は、コンピュータのプロセス制御において、ＣＰＵ使用率を効果的かつ迅速に制御し、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成する本発明は、次のように構成されたプロセス制御システム、もしくはこのプロセス制御システムとＯＳ実行部を備えたコンピュータとして実現される。このプロセス制御システムは、プロセス状態検知部と、比較部と、プロセス一時停止制御部とを備える。このプロセス状態検知部は、ＯＳ実行部の制御により所定のプロセスが起動したことを検知し、このプロセスが予め定められた制御対象プロセスか否かを判断する。比較部は、プロセス状態検知部により制御対象プロセスに該当するプロセスが起動したと判断された場合に、ＯＳ実行部からシステム全体のＣＰＵ使用率を取得し、予め定められたシステム全体のＣＰＵ使用率の目標値と比較する。プロセス一時停止制御部は、この比較部による比較結果に基づいて、制御対象プロセスの停止・実行再開をＯＳ実行部に指示する。
【００１２】
より詳細には、プロセス一時停止制御部は、比較部によりシステム全体のＣＰＵ使用率の現在値が目標値を上回っていると判断された場合に、制御対象プロセスを停止させる。一方、この現在値が目標値を下回っていると判断され、かつ制御対象プロセスが停止している場合は、制御対象プロセスの実行を再開させる。
また、システム全体のＣＰＵ使用率の目標値として、上限値と下限値を設定しておき、プロセス一時停止制御部は、比較部によりシステム全体のＣＰＵ使用率の現在値が上限値を上回っていると判断された場合に、制御対象プロセスを停止させ、現在値が下限値を下回っていると判断され、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させるようにしても良い。
【００１３】
さらに好ましくは、比較部は、システム全体のＣＰＵ使用率の現在値が目標値を上回っていると判断し、かつ動作中の制御対象プロセスが複数存在する場合に、動作中の制御対象プロセスの少なくとも一部を一時停止の対象として決定する。そして、プロセス一時停止制御部は、比較部により一時停止の対象として決定された動作中の制御対象プロセスを停止させる。
【００１４】
また、上記のプロセス制御システムにおいて、比較部は、システム全体のＣＰＵ使用率および個々のプロセスによるＣＰＵ使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のＣＰＵ使用率の予測値を計算し、この予測値と目標値とを比較するようにしても良い。この場合、プロセス一時停止制御部は、比較部により予測値が目標値を上回っていると判断された場合に、制御対象プロセスを停止させる。そして、予測値が目標値を下回っていると判断され、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させる。
【００１５】
さらにまた、上記のプロセス制御システムにおいて、ＯＳ実行部から動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得し、このプロセス別ＣＰＵ使用率に基づいて、制御対象プロセスを修正する制御対象修正部をさらに備える構成とすることができる。
具体的には、プロセス制御システムを次のように構成する。すなわち、制御対象プロセスを記述した制御対象プロセス記述ファイルを用意する。プロセス状態検知部は、起動したことを検知したプロセスが制御対象プロセス記述ファイルに記述されているか否かを調べて、プロセスが制御対象プロセスか否かを判断することとする。制御対象修正部は、例えば定期的にＯＳ実行部から動作中のプロセスごとのプロセス別ＣＰＵ使用率を取得し、このプロセス別ＣＰＵ使用率に基づいて特定される所定のプロセスが制御対象プロセス記述ファイルに記載されているか否かを調べる。そして、この所定のプロセスが制御対象プロセス記述ファイルに記載されていない場合に、所定のプロセスを制御対象プロセス記述ファイルに記載する。
【００１６】
また、上記の目的を達成する本発明は、次のようなプロセス制御方法としても実現される。この方法は、コンピュータで所定のプロセスが起動したことを検知し、プロセスが予め定められた制御対象プロセスか否かを判断するステップと、制御対象プロセスが起動したと判断された場合に、システム全体のＣＰＵ使用率を取得するステップと、得られたシステム全体のＣＰＵ使用率と予め定められたシステム全体のＣＰＵ使用率の目標値と比較するステップと、システム全体のＣＰＵ使用率が目標値を上回っている場合に、制御対象プロセスを停止させるステップと、システム全体のＣＰＵ使用率が目標値を下回っており、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させるステップとを含む。
【００１７】
さらに本発明は、コンピュータを制御して上記のプロセス制御システムの各機能を実現するプログラム、あるいは上記のプロセス制御方法の各ステップに対応する処理をコンピュータに実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【発明の効果】
【００１８】
上記のように構成された本発明によれば、個々のプロセスに関するＣＰＵ使用率や停止時間、実行時間、優先度などを計算することなく、個々のプロセスに対する一時停止・実行再開の制御をヒューリスティックに行うことができる。これにより、ＣＰＵ使用率を効果的かつ迅速に制御することができ、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。
まず、本発明の概要を説明する。本発明によるコンピュータのプロセス制御は、システム全体によるＣＰＵ使用率の目標値と、制御対象のプロセス（以下、制御対象プロセス）とを設定する。制御対象プロセスとしては、同時に実行されるプロセスのうち、システム全体のＣＰＵ使用率を上げる原因と推定される１または複数のプロセスが選択される。
【００２０】
そして、実際のコンピュータ動作時のＣＰＵ使用率を監視し、その値が目標値を上回ったならば、制御対象プロセスまたはそのスレッドを一時停止させる。反対に、実際のＣＰＵ使用率が目標値を下回ったならば、停止した制御対象プロセスまたはそのスレッドの実行を再開する。
このように、本発明は、個々のプロセスのＣＰＵ使用率や優先度に関わらず、システム全体のＣＰＵ使用率をフィードバックして、個々のプロセス（制御対象プロセス）の実行時間を動的に制御する。
【００２１】
図１は、本発明の一実施形態によるプロセス制御システムの機能構成を示す図である。
図１に示すように、本実施形態のプロセス制御システム１００は、プロセス状態検知部１０と、ＣＰＵ使用率取得部２０と、比較部３０と、プロセス一時停止制御部４０と、プロセス別ＣＰＵ使用率取得部５０と、制御対象修正部６０とを備える。図１に示すこれらの機能ブロックは、コンピュータにおけるプログラム制御されたＣＰＵ（Central Processing Unit）およびメインメモリにより実現される。
【００２２】
さらに、本実施形態のプロセス制御システム１００は、プロセス状態検知部１０が使用する制御対象プロセス記述ファイル７１および比較部３０が使用する目標値記述ファイル７２を格納したデータ記憶部７０を備える。データ記憶部７０は、ＲＡＭその他のメモリや磁気ディスク装置により実現される。
ここで、制御対象プロセス記述ファイル７１には、本実施形態によりプロセスまたはそのスレッドの停止・実行を切り替え制御する対象となるプロセスを特定する情報が記述されている。この記述内容は、初期的にはユーザによる入力操作等によって外部から与えられるが、システム稼働後は、プロセス制御の実績に応じて動的に更新することができる。
また、目標値記述ファイル７２には、制御対象プロセスまたはそのスレッドを一次停止または実行再開させるための基準となるシステム全体のＣＰＵ使用率の目標値が記述されている。この記述内容は、ユーザによる入力操作等によって外部から与えられる。
【００２３】
また、図１に示すように、本実施形態によるプロセス制御が実施されるコンピュータでは、ＯＳ実行部２００においてＯＳ（Operating System）が動作し、ＯＳ上で動作するプロセススケジューラ２１０によるスケジュール管理の下で、Ｎ個（１または複数）のプロセスが実行される。ＯＳ実行部２００およびプロセススケジューラ２１０は、プロセス制御システム１００とは無関係に、通常のラウンドロビン型のスケジュールで、Ｎ個のプロセスの実行時間、優先順位の設定および実行を制御する。
【００２４】
ＯＳ実行部２００は、以下の機能を実現するための単独のＡＰＩまたは複数のＡＰＩの組み合わせを持つ。
・任意のプロセスの起動・終了の検知
・システム全体および個別プロセスのＣＰＵ使用率の測定
・任意のプロセスの一時停止・再開
そして、本実施形態のプロセス制御システム１００は、これらのＡＰＩの機能を利用して、ＯＳ実行部２００からプロセス制御に必要な情報を取得し、制御対象プロセスに対する一時停止・実行再開の制御を行う。
【００２５】
図１に示したプロセス制御システム１００において、プロセス状態検知部１０は、ＯＳが有する必要なＡＰＩを使用して所定のプロセスの起動・終了の検知を行い、起動されたプロセスが制御対象プロセス記述ファイル７１に記述されているかどうか調べる。そして、記述されている場合（すなわち、制御対象プロセスの起動を検知した場合）は、比較部３０に制御の開始を指示する。同様に、制御対象プロセスの終了を検知したときは、比較部３０に制御の終了を指示する。
【００２６】
比較部３０は、プロセス状態検知部１０から制御の開始指示を受け付けると、まず目標値記述ファイル７２からＣＰＵ使用率の目標値を読み出し、かつＣＰＵ使用率取得部２０に対してシステム全体のＣＰＵ使用率の現在値を要求する。
ＣＰＵ使用率取得部２０は、比較部３０の要求に応じて、ＯＳが有する必要なＡＰＩを使用してシステム全体のＣＰＵ使用率を取得し、比較部３０に提供する。
【００２７】
比較部３０は、ＣＰＵ使用率取得部２０からシステム全体のＣＰＵ使用率の現在値を受け取ると、取得したＣＰＵ使用率の現在値と目標値記述ファイル７２から読み出した目標値とを比較する。そして、ＣＰＵ使用率の現在値が目標値を上回っている場合は、制御対象プロセスを停止するように、プロセス一時停止制御部４０に要求する。一方、ＣＰＵ使用率の現在値が目標値を下回っており、かつ制御対象プロセスが一時停止している（すなわち、一度起動した後で停止している）場合は、その制御対象プロセスの実行を再開するように、プロセス一時停止制御部４０に要求する。
プロセス一時停止制御部４０は、比較部３０の要求に応じて、ＯＳが有する必要なＡＰＩを使用して制御対象プロセスの停止・実行を制御する。
【００２８】
本実施形態のプロセス制御システム１００は、以上の一連のプロセス制御とは別に、プロセス別ＣＰＵ使用率取得部５０および制御対象修正部６０により、制御対象プロセス記述ファイル７１の記述内容の更新処理を行う。
制御対象修正部６０は、定期的にあるいはユーザからのコマンド入力等のイベントに応じて、プロセス別ＣＰＵ使用率取得部５０に対してコンピュータで実行されたプロセス別のＣＰＵ使用率を要求する。
プロセス別ＣＰＵ使用率取得部５０は、制御対象修正部６０の要求に応じて、ＯＳ実行部２００が有する必要なＡＰＩを使用してプロセス別のＣＰＵ使用率を取得し、制御対象修正部６０に提供する。
【００２９】
制御対象修正部６０は、プロセス別ＣＰＵ使用率取得部５０からプロセス別のＣＰＵ使用率の情報を受け付けると、取得したプロセス別ＣＰＵ使用率のリストをチェックし、上位の（ＣＰＵ使用率の高い）プロセスが制御対象プロセス記述ファイル７１に記述されているかどうか調べる。そして、ＣＰＵ使用率が高く、かつ制御対象プロセス記述ファイル７１に記述されていないプロセスが存在する場合は、そのプロセスを制御対象プロセス記述ファイル７１に記述する。また、制御対象修正部６０は、制御対象プロセス記述ファイル７１を更新した後、制御の開始を指示する。
【００３０】
次に、本実施形態によるプロセス制御の動作について説明する。
本実施形態によるプロセス制御は、大きく分けて、制御対象の検知処理（プロセスの起動・終了の検知）と制御処理（プロセスの停止・実行の制御）とからなる。また、この一連の制御動作とは別に、制御対象プロセスの修正が行われる。以下、それぞれの動作についてフローチャートを参照して説明する。
【００３１】
まず、プロセス状態検知部１０による制御対象の検知処理について説明する。
初期動作として、プロセス状態検知部１０の初期化処理が行われ、プロセス状態検知部１０は、ＯＳ実行部２００に対してプロセス起動・終了検知イベントの開始を要求する。これにより、ＯＳ実行部２００においてＡＰＩにより所定のプロセスの開始または終了が検出されると、ＯＳ実行部２００からプロセス状態検知部１０へコールバックがなされ、プロセス状態検知部１０のイベント検出処理ルーチンに制御が移ることとなる。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
【００３２】
図２は、プロセス状態検知部１０による制御対象の検知処理を説明するフローチャートである。ＯＳ実行部２００からプロセス状態検知部１０へイベント検出処理ルーチンのコールがなされると、図２に示すイベント検出処理が開始される。
プロセス状態検知部１０は、まず、検出されたイベントがプロセスの新規起動か否かを調べる（ステップ２０１）。プロセスの新規起動である場合、プロセス状態検知部１０は、制御対象プロセス記述ファイル７１を参照して、起動されたプロセスが制御対象プロセスか否かを調べる（ステップ２０２）。そして、起動されたプロセスが制御対象プロセスであれば、プロセス状態検知部１０は、比較部３０に制御の開始を指示して処理を終了する（ステップ２０３）。一方、起動されたプロセスが制御対象プロセスでない場合、プロセス状態検知部１０は、何ら処理を行わずにイベント検出処理を終了する（ステップ２０２）。
【００３３】
ステップ２０１で、検出されたイベントがプロセスの新規起動でない場合、次にプロセス状態検知部１０は、このイベントが動作プロセスの終了か否かを調べる（ステップ２０４）。動作プロセスの終了である場合、プロセス状態検知部１０は、制御対象プロセス記述ファイル７１を参照して、起動されたプロセスが制御対象プロセスか否かを調べる（ステップ２０５）。そして、起動されたプロセスが制御対象プロセスであれば、プロセス状態検知部１０は、比較部３０に制御の終了を指示して処理を終了する（ステップ２０６）。一方、起動されたプロセスが制御対象プロセスでない場合、プロセス状態検知部１０は、何ら処理を行わずにイベント検出処理を終了する（ステップ２０５）。
【００３４】
なお、本実施形態のようにＯＳ実行部２００の機能としてプロセスの起動・終了をイベントとして検出し処理ルーチンをコールすることができない場合は、定期的に動作中のプロセス名をクエリーする別スレッドをシステムの一部に実装することで、イベント検出および処理ルーチンのコールを実現することができる。この場合、動作中のプロセス名をクエリーするスレッドが、クエリーにより得られた動作中のプロセスと一定時間前の動作プロセスリストとを比較し、所定のプロセスの新規起動または動作プロセスの終了を検出するたびに、プロセス状態検知部１０のイベント検出処理ルーチンをコールする。
プロセス状態検知部１０の終了処理が行われると、プロセス状態検知部１０は、ＯＳ実行部２００に対してプロセス起動・終了検知イベントの終了を要求する。これにより、ＯＳ実行部２００において所定のプロセスの開始または終了が検出されても、プロセス状態検知部１０のイベント検出処理ルーチンに制御が移らなくなる。この終了処理は、本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理において実行される。
【００３５】
次に、比較部３０およびプロセス一時停止制御部４０による制御処理を説明する。
初期動作として、比較部３０およびプロセス一時停止制御部４０の初期化が行われ、比較部３０が制御対象プロセス記述ファイル７１を読み込み、既に起動しているプロセスに対する制御スレッドが作成される。初期動作の時点で起動していないプロセスについては、プロセス状態検知部１０から制御開始指示がなされたときに、制御スレッドが作成される。個々の制御スレッドは、互いに干渉しない独立したスレッドとして、自身に対応するプロセスの一時停止・実行再開を制御する。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
【００３６】
図３は、比較部３０およびプロセス一時停止制御部４０による制御処理を説明するフローチャートである。図３には、単一の制御対象プロセス（図ではプロセスＸnと表記（ｎ：１≦ｎ≦Ｎ））に対する制御スレッドの動作が示されている。起動した複数の制御対象プロセスに対して作成される複数の制御スレッドでは、各々自身に対応する制御対象プロセスに関して図３に示される動作が独立に実行される。
制御スレッドにおいて、比較部３０は、まずＣＰＵ使用率取得部２０に対してシステム全体のＣＰＵ使用率の現在値を要求する（ステップ３０１）。ＣＰＵ使用率取得部２０は、この要求に従って、ＯＳ実行部２００からシステム全体のＣＰＵ使用率の現在値を取得し、比較部３０に転送する。
【００３７】
比較部３０は、ＣＰＵ使用率取得部２０からシステム全体のＣＰＵ使用率の現在値を受け取ると、目標値記述ファイル７２を参照して、ＣＰＵ使用率の現在値が予め設定された目標値を上回っているか否かを調べる(ステップ３０２)。ＣＰＵ使用率の現在値が目標値を上回っていたならば、比較部３０は、プロセス一時停止制御部４０に制御対象プロセス（プロセスＸn）の一時停止を要求する。プロセス一時停止制御部４０は、この要求に応じて、ＯＳ実行部２００に制御対象プロセス（プロセスＸn）を停止させる（ステップ３０３）。
【００３８】
一方、ステップ３０２でＣＰＵ使用率の現在値が目標値を下回っていたならば、比較部３０は、次に制御対象プロセス（プロセスＸn）が一時停止中か否かを判断する（ステップ３０４）。そして、制御対象プロセス（プロセスＸn）が一時停止中であれば、比較部３０は、プロセス一時停止制御部４０に制御対象プロセス（プロセスＸn）の実行再開を要求する。プロセス一時停止制御部４０は、この要求に応じて、ＯＳ実行部２００に制御対象プロセス（プロセスＸn）の実行を再開させる（ステップ３０５）。ステップ３０４で制御対象プロセス（プロセスＸn）が一時停止中でない（すなわち動作中）ならば、比較部３０はプロセス一時停止制御部４０に対して何の要求もしない。
【００３９】
ステップ３０２乃至ステップ３０５の比較部３０の判断およびプロセス一時停止制御部４０の制御動作の後、比較部３０は、一定時間、スリープ状態となる（ステップ３０６）。そして、再起動後、自スレッドに対する停止要求（後述）がなされていなければ、ステップ３０１に戻って制御処理を繰り返す（ステップ３０７）。一方、自スレッドに対する停止要求がなされた場合、自スレッドが制御する制御対象プロセス（プロセスＸn）が一時停止状態であれば実行を再開させて処理を終了する（ステップ３０７、３０８）。
【００４０】
上記の動作が実行される制御スレッドは、プロセス状態検知部１０から制御終了指示がなされたときに終了する。所定の制御対象プロセスに対する制御終了指示がなされると、該当する制御スレッドにおいて比較部３０は、上記ステップ３０６のスリープ状態から再起動した際に、この制御終了指示を制御スレッドの停止要求として受け付け、上述の手順で制御スレッドを終了する。
また、本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理が実行された場合は、この終了処理において全ての制御スレッドに対する停止要求がなされる。各制御スレッドにおいて比較部３０は、上記ステップ３０６のスリープ状態から再起動した際に、この停止要求に従い、上述の手順で制御スレッドを終了する。
【００４１】
ここで、上記のようにして実現される本実施形態のプロセス制御の概念を説明する。
図４は、本実施形態によるプロセス制御の基本的な概念を説明する図である。図４において、Ｙ（Ｓ）はシステム全体のＣＰＵ使用率（現在値）、Ｘ（Ｓ）は制御対象プロセスＸのＣＰＵ使用率（現在値）、Ｄ（Ｓ）は制御対象でないプロセス（以下、他プロセス）のＣＰＵ使用率（現在値）である。また、Ｇ（Ｓ）はシステム全体のＣＰＵ使用率への影響を表す相関関数（伝達関数）であり、Ｒ（Ｓ）はシステム全体のＣＰＵ使用率の目標値である。
【００４２】
なお、システム全体のＣＰＵ使用率Ｙ（Ｓ）は、アイドルプロセスのユーザモード時間をＵi、アイドルプロセスのカーネルモード時間をＫi、経過時間をＥtとして、次のように計算できる。
Ｙ（Ｓ）＝（１−（Ｕi＋Ｋi）／Ｅt）×１００％
また、制御対象プロセスＸのＣＰＵ使用率Ｘ（Ｓ）は、制御対象プロセスＸのユーザモード時間をＵx、制御対象プロセスＸのカーネルモード時間をＫxとして、次のように計算できる。
Ｘ（Ｓ）＝（Ｕx＋Ｋx）／Ｅt×１００％
ただし、本実施形態では、Ｘ（Ｓ）の計算は必要なく、Ｙ（Ｓ）の計算結果とＲ（Ｓ）との比較のみにより、制御対象プロセスＸの一時停止および実行再開を制御できる。
【００４３】
図４に示すように、制御対象プロセスＸが動作している場合、システム全体のＣＰＵ使用率Ｙ（Ｓ）は、
Ｙ（Ｓ）＝Ｇ（Ｓ）×（Ｘ（Ｓ）＋Ｄ（Ｓ））
となる。そして、
Ｙ（Ｓ）＞Ｒ（Ｓ）
となった場合、制御対象プロセスＸが停止されて（図４のスイッチがオフ）、
Ｘ（Ｓ）＝０
となる。このとき、システム全体のＣＰＵ使用率Ｙ（Ｓ）は、
Ｙ（Ｓ）＝Ｇ（Ｓ）×Ｄ（Ｓ）
である。制御対象プロセスＸの停止により、システム全体のＣＰＵ使用率Ｙ（Ｓ）は次第に低下していき、一定時間が経過すると、
Ｙ（Ｓ）＜Ｒ（Ｓ）
となる。
【００４４】
システム全体のＣＰＵ使用率Ｙ（Ｓ）が下がった後、制御対象プロセスＸの実行が再開されて（図４のスイッチがオン）、システム全体のＣＰＵ使用率Ｙ（Ｓ）は再び、
Ｙ（Ｓ）＝Ｇ（Ｓ）×（Ｘ（Ｓ）＋Ｄ（Ｓ））
となる。そして、システム全体のＣＰＵ使用率Ｙ（Ｓ）が上昇していき、目標値Ｒ（Ｓ）を超えたならば、上述のフィードバックがかかることになる。
なお、システム全体のＣＰＵ使用率Ｙ（Ｓ）がＣＰＵ使用率の目標値Ｒ（Ｓ）を下回った時点で直ちに制御対象プロセスＸを実行再開させるのではなく、ある程度のヒステリシスを持たせて制御するようにしても良い。例えば、目標値Ｒ（Ｓ）を３０％と設定した場合に、さらに２０％減の１０％までシステム全体のＣＰＵ使用率Ｙ（Ｓ）が低下したときに、制御対象プロセスＸを実行再開させるような制御が可能である。また、予め目標値として上限値と下限値の２種類を設定しておき、システム全体のＣＰＵ使用率Ｙ（Ｓ）が上限値を上回ったときに制御対象プロセスＸを一時停止させ、下限値を下回ったときに制御対象プロセスＸを実行再開させるといった制御も可能である。
【００４５】
上記の例では、本実施形態によるプロセス制御の基本的な概念を示すために、制御対象プロセスが１つという最も単純な制御例を説明した。実際のシステムにおいては、複数のプロセスを制御対象プロセスとして選び、本実施形態によるプロセス制御を実行することができる。
図５は、複数の制御対象プロセスを設定した場合の本実施形態によるプロセス制御の概念を説明する図である。図５において、制御対象プロセスはＮ個設定されており、個々の制御対象プロセスＸn（ｎ：１≦ｎ≦Ｎ）のＣＰＵ使用率（現在値）がＸn（Ｓ）で表されている。制御対象プロセスＸnとしては、例えば、ＣＰＵ使用率監視部Ｐ１により個々のプロセスのＣＰＵ使用率を監視し、ＣＰＵ使用率の高いプロセス上位Ｎ個を選択することができる。ＣＰＵ使用率監視部Ｐ１の機能は、既存のＣＰＵ使用率監視用プログラムによりコンピュータのＣＰＵを制御して実現できる。また、図中のＹ（Ｓ）、Ｇ（Ｓ）、Ｒ（Ｓ）は図４に示したものと同様である。なお、図５には他プロセスのＣＰＵ使用率Ｄ（Ｓ）が記載されていないが、動作するプロセスがＮ個以上あるときは、ＣＰＵ使用率が上位Ｎ個に入らないプロセスを他プロセスとしてＣＰＵ使用率Ｄ（Ｓ）を考慮する。
【００４６】
図５において、個々の制御対象プロセスＸnのプロセッサー使用率Ｘn（Ｓ）は、制御対象プロセスＸnのユーザモード時間をＵxn、制御対象プロセスＸnのカーネルモード時間をＫxnとして、次のように計算できる。
Ｘn（Ｓ）＝（Ｕxn＋Ｋxn）／Ｅt×１００％
この計算は、ＣＰＵ使用率監視部Ｐ１により行われる。なお、Ｅtは経過時間である。また、システム全体のＣＰＵ使用率Ｙ（Ｓ）は、図４の場合と同様に計算することができる。
【００４７】
図５のように複数の制御対象プロセスが設定されている場合、図４の場合と同様に、他プロセスを残して、Ｎ個の制御対象プロセスＸn全てに対して一斉に一時停止・実行再開の制御（図５のスイッチのオン・オフ）を行うこともできるが、各制御対象プロセスＸnを個別に制御し、Ｎ個の制御対象プロセスＸnのうちの少なくとも一部を具体的な制御の対象とすることも可能である。この場合、例えば、ＣＰＵ使用率監視部Ｐ１により定期的に各制御対象プロセスＸnのＣＰＵ使用率をモニターしておく。そして、システム全体のＣＰＵ使用率Ｙ（Ｓ）が目標値Ｒ（Ｓ）を上回った場合に、ＣＰＵ使用率が上位の数個の制御対象プロセスＸnを一時停止させるといった制御を行うことができる。一時停止させる制御対象プロセスＸnの個数および制御の具体的な方法は、任意である。例えば、ＣＰＵ使用率Ｙ（Ｓ）と目標値Ｒ（Ｓ）とを比較しながら、予め定められた固定の個数ずつ一時停止させる制御対象プロセスＸnを順次増やしていくことも可能である。また、ＣＰＵ使用率Ｙ（Ｓ）が目標値Ｒ（Ｓ）をどれだけ上回っているかに応じて、一時停止させる制御対象プロセスＸnの個数を計算し、動的に決定しても良い。
また、単純にＣＰＵ使用率の上位数個分の制御対象プロセスＸnを選択するのではなく、各制御対象プロセスＸnのＣＰＵ使用率Ｘn（Ｓ）とシステム全体のＣＰＵ使用率Ｙ（Ｓ）の共分散を一定時間分計算し、強い正の相関を示す制御対象プロセスＸnを選択して一時停止・実行再開の制御を行うこともできる。
【００４８】
さらにまた、図４、５に示した例のように、システム全体のＣＰＵ使用率Ｙ（Ｓ）と目標値Ｒ（Ｓ）とを単純に比較するのではなく、ＣＰＵ使用率Ｘ（Ｓ）あるいはＸn（Ｓ）とＣＰＵ使用率Ｙ（Ｓ）に関する現在までの一定期間分の時系列のデータに対して重回帰分析を行い、算出されたシステム全体のＣＰＵ使用率の予測値Ｙf（Ｓ）と目的値Ｒ（Ｓ）とを比較して、その結果に基づきプロセス制御を行うこともできる。重回帰分析によって得られたシステム全体のＣＰＵ使用率の予測値Ｙf（Ｓ）を用いて制御対象プロセスＸあるいはＸnの制御を行うことにより、システム全体のプロセッサー使用率を急激にかつ大きく変動させないように制御することが可能となる。
【００４９】
図６は、システム全体のＣＰＵ使用率の予測値に基づくプロセス制御の概念を説明する図である。
図６に示す例では、システム全体のＣＰＵ使用率Ｙ（Ｓ）に基づいて制御対象プロセスＸnの制御を行うためのフィードバックループ中に、重回帰分析部Ｐ２が挿入されている。重回帰分析部Ｐ２の機能は、既存の重回帰分析プログラムによりコンピュータのＣＰＵを制御して実現できる。この重回帰分析部Ｐ２は、システム全体のＣＰＵ使用率Ｙ（Ｓ）と各制御対象プロセスＸnのＣＰＵ使用率Ｘn（Ｓ）とを入力し、重回帰分析を行ってシステム全体のＣＰＵ使用率の予測値Ｙf（Ｓ）を算出する。そして、このＣＰＵ使用率の予測値Ｙf（Ｓ）と目的値Ｒ（Ｓ）との比較結果に基づいて、制御対象プロセスＸあるいはＸnに対する一時停止・実行再開の制御が行われる。なお、重回帰分析による予測値の計算が制御対象のシステムのＣＰＵ使用率に著しく影響を与える場合には、予測の計算のみを別のシステムで行わせる構成としても良い。
【００５０】
次に、プロセス別ＣＰＵ使用率取得部５０と制御対象修正部６０による制御対象プロセスの修正処理について説明する。
上述したように、本実施形態のプロセス制御システムは、上記一連のプロセス制御とは別に、定期的に、コンピュータで実行されているプロセスのＣＰＵ使用率を調べ、制御対象プロセスを修正する。この処理では、ＣＰＵ使用率の上位のプロセスから順に、制御対象記述ファイルに記述されているかどうかをチェックし、記述されていなければ制御対象記述ファイルを更新する。
初期動作として、プロセス別ＣＰＵ使用率取得部５０および制御対象修正部６０の初期化が行われ、制御対象プロセスの修正処理用のスレッドが作成される。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
【００５１】
図７は、プロセス別ＣＰＵ使用率取得部５０および制御対象修正部６０による制御対象プロセスの修正処理を説明するフローチャートである。
制御対象プロセスの修正処理用のスレッドにおいて、制御対象修正部６０は、一定時間おきに、プロセス別ＣＰＵ使用率取得部５０に対して、プロセス別のＣＰＵ使用率の取得要求を行う（ステップ７０１）。プロセス別ＣＰＵ使用率取得部５０は、この要求に従って、ＯＳ実行部２００から動作中のプロセスに関するプロセス別のＣＰＵ使用率の情報を取得し、制御対象修正部６０に転送する。
【００５２】
制御対象修正部６０は、プロセス別ＣＰＵ使用率取得部５０からプロセス別のＣＰＵ使用率の情報を受け取ると、ＣＰＵ使用率の高い順にプロセス名をソートし（ステップ７０２）、制御対象修正処理を実行する（ステップ７０３）。制御対象修正処理の詳細については後述する。
修正処理が終了した後、制御対象修正部６０は、一定時間、スリープ状態となる（ステップ７０４）。そして、再起動後、自スレッドに対する停止要求（後述）がなされていなければ、ステップ７０１に戻ってプロセス別ＣＰＵ使用率取得部５０に要求を出し、処理を繰り返す（ステップ７０５）。一方、自スレッドに対する停止要求がなされた場合、処理を終了する（ステップ７０５）。
【００５３】
本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理が実行された場合、この終了処理において制御対象プロセスの修正処理用のスレッドに対する停止要求を行う。制御対象修正部６０は、上記ステップ７０４のスリープ状態から再起動した後に、この停止要求に従い、制御スレッドを終了する。
【００５４】
図８は、図７の制御対象修正処理の詳細な内容を説明するフローチャートである。
制御対象修正部６０は、まず、ステップ７０２でソートされたプロセス名のリストに基づき、最もＣＰＵ使用率の高いプロセスを選択して（ステップ８０１）、選択されたプロセスのＣＰＵ使用率の現在値と目標値記述ファイル７２に記述された目標値とを比較する（ステップ８０２）。そして、選択されたプロセスのＣＰＵ使用率が目標値以下であれば、何ら処理を行わずに制御対象修正処理を終了する。
【００５５】
一方、選択されたプロセスのＣＰＵ使用率が目標値を超えている場合、次に制御対象修正部６０は、そのプロセスが制御対象プロセス記述ファイル７１に記載されているか否かを調べる（ステップ８０３）。そして、そのプロセスが制御対象プロセス記述ファイル７１に記載されていない場合、制御対象修正部６０は、制御対象プロセス記述ファイル７１の内容を更新し、そのプロセスを制御対象プロセスに追加する（ステップ８０４）。この後、制御対象修正部６０は、比較部３０に対して制御の開始を指示し（ステップ８０５）、一定時間、スリープ状態となる（ステップ８０６）。
【００５６】
ステップ８０３で、選択されたプロセスが制御対象プロセス記述ファイル７１に記載されていた場合、およびスリープ状態から再起動した後、制御対象修正部６０は、ステップ７０２でソートされたプロセス名のリストに基づき、次にＣＰＵ使用率の高いプロセスを選択して（ステップ８０７）、ステップ８０２以降の処理を繰り返す。
【００５７】
図２、３を参照して説明したように、比較部３０は、予め設定された制御対象プロセスを対象として本実施形態のプロセス制御を行う。そのため、ＣＰＵ使用率が高くなっているプロセスであっても、そのプロセスが制御対象プロセス記述ファイル７１に記述されていなければ、一時停止・実行再開の制御を行わない。そこで、上記のようにＣＰＵ使用率の高いプロセスが制御対象プロセス記述ファイル７１に記述されているか否かを調べ、記述されていなければ追加することにより、ＣＰＵ使用率の高いプロセスを常に制御対象とすることができる。また、制御対象プロセスに追加されたプロセスに関して比較部３０に指示を行い、直ちに本実施形態のプロセス制御を実施させることにより、システム全体のＣＰＵ使用率を迅速に低下させ、システム全体のＣＰＵ使用率の目標値に近づけることができる。なお、ステップ８０４により制御対象プロセスが追加設定された場合、制御対象プロセスの個数を一定にしておくために、制御対象プロセス記述ファイル７１に記述されている制御対象プロセスのうちで最もＣＰＵ使用率の低いプロセスを制御対象プロセス記述ファイル７１から削除しても良い。
【００５８】
以上説明したように、本実施形態は、システム全体のＣＰＵ使用率をフィードバックすることにより、ヒューリスティックに、ＣＰＵ使用率の高い（すなわち、システム全体のＣＰＵ使用率に対する影響の大きい）プロセスから一時停止・実行再開の制御を行う。すなわち、動作中の個々のプログラム（プロセス）に関して、ＣＰＵ使用率からプロセスの停止時間、実行時間、優先度などを計算する必要がなく、また計算によって求めたプロセスの実行・停止時間が予期しないプロセスの起動によって再計算が必要になることもない。そのため、実際のプロセスの起動や実行状態に応じて迅速に制御することができる。
本実施形態では、新たに実行されるプログラムの種類にかかわらず、単にＣＰＵ使用率の高いプログラムから順に、一時停止・実行再開の制御を行えば良い。すなわち、いつ、どのプログラムが起動するか特定できないシステムでも、新規プログラムの起動等による外乱の影響をすばやく解消することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態によるプロセス制御システムの機能構成を示す図である。
【図２】本実施形態のプロセス状態検知部による制御対象の検知処理を説明するフローチャートである。
【図３】本実施形態の比較部およびプロセス一時停止制御部による制御処理を説明するフローチャートである。
【図４】本実施形態によるプロセス制御の基本的な概念を説明する図である。
【図５】本実施形態において、複数の制御対象プロセスを設定した場合のプロセス制御の概念を説明する図である。
【図６】本実施形態におけるシステム全体のＣＰＵ使用率の予測値に基づくプロセス制御の概念を説明する図である。
【図７】本実施形態のプロセス別ＣＰＵ使用率取得部および制御対象修正部による制御対象プロセスの修正処理を説明するフローチャートである。
【図８】図７の制御対象修正処理の詳細な内容を説明するフローチャートである。
【符号の説明】
【００６０】
１０…プロセス状態検知部、２０…ＣＰＵ使用率取得部、３０…比較部、４０…プロセス一時停止制御部、５０…プロセス別ＣＰＵ使用率取得部、６０…制御対象修正部、７０…データ記憶部、７１…制御対象プロセス記述ファイル、７２…目標値記述ファイル、１００…プロセス制御システム、２００…ＯＳ実行部、２１０…プロセススケジューラ
【図１】
2007018282.tif 000003
【図２】
2007018282.tif 000004
【図３】
2007018282.tif 000005
【図４】
2007018282.tif 000006
【図５】
2007018282.tif 000007
【図６】
2007018282.tif 000008
【図７】
2007018282.tif 000009
【図８】
2007018282.tif 000010