JP4367856B2 - プロセス制御システム及びその制御方法 - Google Patents

プロセス制御システム及びその制御方法 Download PDF

Info

Publication number
JP4367856B2
JP4367856B2 JP2005199309A JP2005199309A JP4367856B2 JP 4367856 B2 JP4367856 B2 JP 4367856B2 JP 2005199309 A JP2005199309 A JP 2005199309A JP 2005199309 A JP2005199309 A JP 2005199309A JP 4367856 B2 JP4367856 B2 JP 4367856B2
Authority
JP
Japan
Prior art keywords
usage rate
cpu usage
control
control target
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005199309A
Other languages
English (en)
Other versions
JP2007018282A (ja
Inventor
浩 伊藤
Original Assignee
レノボ シンガポール プライヴェート リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by レノボ シンガポール プライヴェート リミテッド filed Critical レノボ シンガポール プライヴェート リミテッド
Priority to JP2005199309A priority Critical patent/JP4367856B2/ja
Priority to US11/480,716 priority patent/US7917905B2/en
Publication of JP2007018282A publication Critical patent/JP2007018282A/ja
Application granted granted Critical
Publication of JP4367856B2 publication Critical patent/JP4367856B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Description

本発明は、コンピュータのCPU使用率(プロセッサ使用率)の制御に関し、特に複数のプログラムが同時に実行される場合の各プロセスにおけるCPU使用率を制御するシステムおよびその方法に関する。
通常、コンピュータのプログラムは、最も早くタスクを実行するようにデザインされている。また、OS(Operating System)は、プロセッサ能力が最も高く引き出されるようにデザインされている。このため、データの計算量や比較量が多いプログラムが実行されると、CPU使用率が100%近くに増大する。これは、クライアントマシンにおいてはHID(Human Interface(Input) Device)等におけるユーザアクセスのレスポンスの悪化の原因となり、サーバマシンにおいてはネットワーク経由のファイルアクセスのレスポンスの悪化の原因となる。
そこで、このような予期せぬ外部からCPU資源へのアクセス要求に対するレスポンスの悪化を解消するため、従来は、プログラムプロセスに属するスレッド(独立して動作する一連のタスク)のタスクスケジューラにおける優先順位をアイドルレベル(最低優先順位)に変えることなどが行われていた(例えば、非特許文献1、特許文献1参照)。
また、プログラム自身が、予め実行の優先順位を細かく設定可能であり、システム全体のCPU使用率への影響を抑制できるようにしたものも存在する。
さらに、システム全体のCPU使用率を測定し、所定の上限を超えないようにプロセスの起動を制御する従来技術も存在する(例えば、特許文献2参照)。
"Windows Server 2003 Windows System Resource Manager ご紹介"、[online]、2003年10月、富士通株式会社、[平成17年4月8日検索]、インターネット<URL : http://www.fmworld.net/biz/primergy/technical/construct/pdf/0065.pdf 特開平11−65859号公報 特開2000−284976号公報
上述したように、コンピュータによるプログラムの実行時には、CPU使用率の制御を効果的に行い、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することが好ましい。
しかしながら、プログラムプロセスに属するスレッドの優先順位を変更する従来技術の場合、完全にメモリ上でのデータ処理を行うプロセスに対しては効果的な制御が可能であるが、周辺装置へのI/Oアクセスを伴うプロセス(例えば、アンチウイルスプログラムのようにデータの比較とディスクI/Oを繰り返すプロセス)では、あまり効果的ではなかった。これは、後者のようなプロセスでは、I/O待ちの時間の方が長く、メインスレッドのタスク実行時間が非常に少なくなっているので、そのスレッドのタスク優先順位をアイドルレベル(最低優先順位)に変えても、CPU使用率にはほとんど影響がないためである。
また、周辺装置へのI/Oアクセスを伴うプロセスが実行されるプログラムは、通常、他のプログラムの存在をあまり考慮せずにI/Oアクセスを繰り返す。このため、例えばディスクI/Oのような単一のデバイスへのアクセスが連続的に行われた場合、他のプログラムのディスクI/OやOS自身のメモリスワップのためのディスクI/Oにも遅延が生じてしまい、複合的にCPU使用率を増大させる原因となっていた。
さらに、かかる従来技術では、メインスレッドのタスク優先順位をアイドルレベルに変えると、I/Oアクセスが完了してもメインスレッドで未だ読み出されないデータがある場合に、OSのデザイン次第では、別のプロセスからのI/Oアクセスを受け付けないことも起こり得る。この場合は、タスク優先順位をアイドルレベル(最低優先順位)に変更すること自体が、CPU使用率の増大を招くおそれもある。
一方、プログラム自身が実行の優先順位を細かく設定する従来技術では、確かに、システム全体のCPU使用率への影響を抑制することが可能である。しかし、OS上で実行されるすべてのプログラムにこのようなオプションの実装を期待することはできない。また、そのようなオプションは当該プログラムプロセス専用に準備されたものなので、一つでもこのようなオプションが用意されていない他のプログラムが実行された場合には、システム全体のCPU使用率を制限することはできなかった。
特許文献2に示された従来技術は、着目したプロセスのCPU使用率とシステム全体のCPU使用率の比から、当該プロセスの停止時間を算出し、当該プロセスを一時的に停止させるものである。そのため、停止時間の計算に時間を要し、実際のプロセスの起動や実行状態に応じた迅速な制御が困難であるという問題があった。
そこで本発明は、コンピュータのプロセス制御において、CPU使用率を効果的かつ迅速に制御し、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することを目的とする。
上記の目的を達成する本発明は、次のように構成されたプロセス制御システム、もしくはこのプロセス制御システムとOS実行部を備えたコンピュータとして実現される。このプロセス制御システムは、プロセス状態検知部と、比較部と、プロセス一時停止制御部とを備える。このプロセス状態検知部は、OS実行部の制御により所定のプロセスが起動したことを検知し、このプロセスが予め定められた制御対象プロセスか否かを判断する。比較部は、プロセス状態検知部により制御対象プロセスに該当するプロセスが起動したと判断された場合に、OS実行部からシステム全体のCPU使用率を取得し、予め定められたシステム全体のCPU使用率の目標値と比較する。プロセス一時停止制御部は、この比較部による比較結果に基づいて、制御対象プロセスの停止・実行再開をOS実行部に指示する。
より詳細には、プロセス一時停止制御部は、比較部によりシステム全体のCPU使用率の現在値が目標値を上回っていると判断された場合に、制御対象プロセスを停止させる。一方、この現在値が目標値を下回っていると判断され、かつ制御対象プロセスが停止している場合は、制御対象プロセスの実行を再開させる。
また、システム全体のCPU使用率の目標値として、上限値と下限値を設定しておき、プロセス一時停止制御部は、比較部によりシステム全体のCPU使用率の現在値が上限値を上回っていると判断された場合に、制御対象プロセスを停止させ、現在値が下限値を下回っていると判断され、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させるようにしても良い。
さらに好ましくは、比較部は、システム全体のCPU使用率の現在値が目標値を上回っていると判断し、かつ動作中の制御対象プロセスが複数存在する場合に、動作中の制御対象プロセスの少なくとも一部を一時停止の対象として決定する。そして、プロセス一時停止制御部は、比較部により一時停止の対象として決定された動作中の制御対象プロセスを停止させる。
また、上記のプロセス制御システムにおいて、比較部は、システム全体のCPU使用率および個々のプロセスによるCPU使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のCPU使用率の予測値を計算し、この予測値と目標値とを比較するようにしても良い。この場合、プロセス一時停止制御部は、比較部により予測値が目標値を上回っていると判断された場合に、制御対象プロセスを停止させる。そして、予測値が目標値を下回っていると判断され、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させる。
さらにまた、上記のプロセス制御システムにおいて、OS実行部から動作中のプロセスごとのプロセス別CPU使用率を取得し、このプロセス別CPU使用率に基づいて、制御対象プロセスを修正する制御対象修正部をさらに備える構成とすることができる。
具体的には、プロセス制御システムを次のように構成する。すなわち、制御対象プロセスを記述した制御対象プロセス記述ファイルを用意する。プロセス状態検知部は、起動したことを検知したプロセスが制御対象プロセス記述ファイルに記述されているか否かを調べて、プロセスが制御対象プロセスか否かを判断することとする。制御対象修正部は、例えば定期的にOS実行部から動作中のプロセスごとのプロセス別CPU使用率を取得し、このプロセス別CPU使用率に基づいて特定される所定のプロセスが制御対象プロセス記述ファイルに記載されているか否かを調べる。そして、この所定のプロセスが制御対象プロセス記述ファイルに記載されていない場合に、所定のプロセスを制御対象プロセス記述ファイルに記載する。
また、上記の目的を達成する本発明は、次のようなプロセス制御方法としても実現される。この方法は、コンピュータで所定のプロセスが起動したことを検知し、プロセスが予め定められた制御対象プロセスか否かを判断するステップと、制御対象プロセスが起動したと判断された場合に、システム全体のCPU使用率を取得するステップと、得られたシステム全体のCPU使用率と予め定められたシステム全体のCPU使用率の目標値と比較するステップと、システム全体のCPU使用率が目標値を上回っている場合に、制御対象プロセスを停止させるステップと、システム全体のCPU使用率が目標値を下回っており、かつ制御対象プロセスが停止している場合に、制御対象プロセスの実行を再開させるステップとを含む。
さらに本発明は、コンピュータを制御して上記のプロセス制御システムの各機能を実現するプログラム、あるいは上記のプロセス制御方法の各ステップに対応する処理をコンピュータに実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
上記のように構成された本発明によれば、個々のプロセスに関するCPU使用率や停止時間、実行時間、優先度などを計算することなく、個々のプロセスに対する一時停止・実行再開の制御をヒューリスティックに行うことができる。これにより、CPU使用率を効果的かつ迅速に制御することができ、ユーザアクセスやファイルアクセスにおけるレスポンスの悪化を抑制することが可能となる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、実施形態)について詳細に説明する。
まず、本発明の概要を説明する。本発明によるコンピュータのプロセス制御は、システム全体によるCPU使用率の目標値と、制御対象のプロセス(以下、制御対象プロセス)とを設定する。制御対象プロセスとしては、同時に実行されるプロセスのうち、システム全体のCPU使用率を上げる原因と推定される1または複数のプロセスが選択される。
そして、実際のコンピュータ動作時のCPU使用率を監視し、その値が目標値を上回ったならば、制御対象プロセスまたはそのスレッドを一時停止させる。反対に、実際のCPU使用率が目標値を下回ったならば、停止した制御対象プロセスまたはそのスレッドの実行を再開する。
このように、本発明は、個々のプロセスのCPU使用率や優先度に関わらず、システム全体のCPU使用率をフィードバックして、個々のプロセス(制御対象プロセス)の実行時間を動的に制御する。
図1は、本発明の一実施形態によるプロセス制御システムの機能構成を示す図である。
図1に示すように、本実施形態のプロセス制御システム100は、プロセス状態検知部10と、CPU使用率取得部20と、比較部30と、プロセス一時停止制御部40と、プロセス別CPU使用率取得部50と、制御対象修正部60とを備える。図1に示すこれらの機能ブロックは、コンピュータにおけるプログラム制御されたCPU(Central Processing Unit)およびメインメモリにより実現される。
さらに、本実施形態のプロセス制御システム100は、プロセス状態検知部10が使用する制御対象プロセス記述ファイル71および比較部30が使用する目標値記述ファイル72を格納したデータ記憶部70を備える。データ記憶部70は、RAMその他のメモリや磁気ディスク装置により実現される。
ここで、制御対象プロセス記述ファイル71には、本実施形態によりプロセスまたはそのスレッドの停止・実行を切り替え制御する対象となるプロセスを特定する情報が記述されている。この記述内容は、初期的にはユーザによる入力操作等によって外部から与えられるが、システム稼働後は、プロセス制御の実績に応じて動的に更新することができる。
また、目標値記述ファイル72には、制御対象プロセスまたはそのスレッドを一次停止または実行再開させるための基準となるシステム全体のCPU使用率の目標値が記述されている。この記述内容は、ユーザによる入力操作等によって外部から与えられる。
また、図1に示すように、本実施形態によるプロセス制御が実施されるコンピュータでは、OS実行部200においてOS(Operating System)が動作し、OS上で動作するプロセススケジューラ210によるスケジュール管理の下で、N個(1または複数)のプロセスが実行される。OS実行部200およびプロセススケジューラ210は、プロセス制御システム100とは無関係に、通常のラウンドロビン型のスケジュールで、N個のプロセスの実行時間、優先順位の設定および実行を制御する。
OS実行部200は、以下の機能を実現するための単独のAPIまたは複数のAPIの組み合わせを持つ。
・任意のプロセスの起動・終了の検知
・システム全体および個別プロセスのCPU使用率の測定
・任意のプロセスの一時停止・再開
そして、本実施形態のプロセス制御システム100は、これらのAPIの機能を利用して、OS実行部200からプロセス制御に必要な情報を取得し、制御対象プロセスに対する一時停止・実行再開の制御を行う。
図1に示したプロセス制御システム100において、プロセス状態検知部10は、OSが有する必要なAPIを使用して所定のプロセスの起動・終了の検知を行い、起動されたプロセスが制御対象プロセス記述ファイル71に記述されているかどうか調べる。そして、記述されている場合(すなわち、制御対象プロセスの起動を検知した場合)は、比較部30に制御の開始を指示する。同様に、制御対象プロセスの終了を検知したときは、比較部30に制御の終了を指示する。
比較部30は、プロセス状態検知部10から制御の開始指示を受け付けると、まず目標値記述ファイル72からCPU使用率の目標値を読み出し、かつCPU使用率取得部20に対してシステム全体のCPU使用率の現在値を要求する。
CPU使用率取得部20は、比較部30の要求に応じて、OSが有する必要なAPIを使用してシステム全体のCPU使用率を取得し、比較部30に提供する。
比較部30は、CPU使用率取得部20からシステム全体のCPU使用率の現在値を受け取ると、取得したCPU使用率の現在値と目標値記述ファイル72から読み出した目標値とを比較する。そして、CPU使用率の現在値が目標値を上回っている場合は、制御対象プロセスを停止するように、プロセス一時停止制御部40に要求する。一方、CPU使用率の現在値が目標値を下回っており、かつ制御対象プロセスが一時停止している(すなわち、一度起動した後で停止している)場合は、その制御対象プロセスの実行を再開するように、プロセス一時停止制御部40に要求する。
プロセス一時停止制御部40は、比較部30の要求に応じて、OSが有する必要なAPIを使用して制御対象プロセスの停止・実行を制御する。
本実施形態のプロセス制御システム100は、以上の一連のプロセス制御とは別に、プロセス別CPU使用率取得部50および制御対象修正部60により、制御対象プロセス記述ファイル71の記述内容の更新処理を行う。
制御対象修正部60は、定期的にあるいはユーザからのコマンド入力等のイベントに応じて、プロセス別CPU使用率取得部50に対してコンピュータで実行されたプロセス別のCPU使用率を要求する。
プロセス別CPU使用率取得部50は、制御対象修正部60の要求に応じて、OS実行部200が有する必要なAPIを使用してプロセス別のCPU使用率を取得し、制御対象修正部60に提供する。
制御対象修正部60は、プロセス別CPU使用率取得部50からプロセス別のCPU使用率の情報を受け付けると、取得したプロセス別CPU使用率のリストをチェックし、上位の(CPU使用率の高い)プロセスが制御対象プロセス記述ファイル71に記述されているかどうか調べる。そして、CPU使用率が高く、かつ制御対象プロセス記述ファイル71に記述されていないプロセスが存在する場合は、そのプロセスを制御対象プロセス記述ファイル71に記述する。また、制御対象修正部60は、制御対象プロセス記述ファイル71を更新した後、制御の開始を指示する。
次に、本実施形態によるプロセス制御の動作について説明する。
本実施形態によるプロセス制御は、大きく分けて、制御対象の検知処理(プロセスの起動・終了の検知)と制御処理(プロセスの停止・実行の制御)とからなる。また、この一連の制御動作とは別に、制御対象プロセスの修正が行われる。以下、それぞれの動作についてフローチャートを参照して説明する。
まず、プロセス状態検知部10による制御対象の検知処理について説明する。
初期動作として、プロセス状態検知部10の初期化処理が行われ、プロセス状態検知部10は、OS実行部200に対してプロセス起動・終了検知イベントの開始を要求する。これにより、OS実行部200においてAPIにより所定のプロセスの開始または終了が検出されると、OS実行部200からプロセス状態検知部10へコールバックがなされ、プロセス状態検知部10のイベント検出処理ルーチンに制御が移ることとなる。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
図2は、プロセス状態検知部10による制御対象の検知処理を説明するフローチャートである。OS実行部200からプロセス状態検知部10へイベント検出処理ルーチンのコールがなされると、図2に示すイベント検出処理が開始される。
プロセス状態検知部10は、まず、検出されたイベントがプロセスの新規起動か否かを調べる(ステップ201)。プロセスの新規起動である場合、プロセス状態検知部10は、制御対象プロセス記述ファイル71を参照して、起動されたプロセスが制御対象プロセスか否かを調べる(ステップ202)。そして、起動されたプロセスが制御対象プロセスであれば、プロセス状態検知部10は、比較部30に制御の開始を指示して処理を終了する(ステップ203)。一方、起動されたプロセスが制御対象プロセスでない場合、プロセス状態検知部10は、何ら処理を行わずにイベント検出処理を終了する(ステップ202)。
ステップ201で、検出されたイベントがプロセスの新規起動でない場合、次にプロセス状態検知部10は、このイベントが動作プロセスの終了か否かを調べる(ステップ204)。動作プロセスの終了である場合、プロセス状態検知部10は、制御対象プロセス記述ファイル71を参照して、起動されたプロセスが制御対象プロセスか否かを調べる(ステップ205)。そして、起動されたプロセスが制御対象プロセスであれば、プロセス状態検知部10は、比較部30に制御の終了を指示して処理を終了する(ステップ206)。一方、起動されたプロセスが制御対象プロセスでない場合、プロセス状態検知部10は、何ら処理を行わずにイベント検出処理を終了する(ステップ205)。
なお、本実施形態のようにOS実行部200の機能としてプロセスの起動・終了をイベントとして検出し処理ルーチンをコールすることができない場合は、定期的に動作中のプロセス名をクエリーする別スレッドをシステムの一部に実装することで、イベント検出および処理ルーチンのコールを実現することができる。この場合、動作中のプロセス名をクエリーするスレッドが、クエリーにより得られた動作中のプロセスと一定時間前の動作プロセスリストとを比較し、所定のプロセスの新規起動または動作プロセスの終了を検出するたびに、プロセス状態検知部10のイベント検出処理ルーチンをコールする。
プロセス状態検知部10の終了処理が行われると、プロセス状態検知部10は、OS実行部200に対してプロセス起動・終了検知イベントの終了を要求する。これにより、OS実行部200において所定のプロセスの開始または終了が検出されても、プロセス状態検知部10のイベント検出処理ルーチンに制御が移らなくなる。この終了処理は、本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理において実行される。
次に、比較部30およびプロセス一時停止制御部40による制御処理を説明する。
初期動作として、比較部30およびプロセス一時停止制御部40の初期化が行われ、比較部30が制御対象プロセス記述ファイル71を読み込み、既に起動しているプロセスに対する制御スレッドが作成される。初期動作の時点で起動していないプロセスについては、プロセス状態検知部10から制御開始指示がなされたときに、制御スレッドが作成される。個々の制御スレッドは、互いに干渉しない独立したスレッドとして、自身に対応するプロセスの一時停止・実行再開を制御する。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
図3は、比較部30およびプロセス一時停止制御部40による制御処理を説明するフローチャートである。図3には、単一の制御対象プロセス(図ではプロセスXnと表記(n:1≦n≦N))に対する制御スレッドの動作が示されている。起動した複数の制御対象プロセスに対して作成される複数の制御スレッドでは、各々自身に対応する制御対象プロセスに関して図3に示される動作が独立に実行される。
制御スレッドにおいて、比較部30は、まずCPU使用率取得部20に対してシステム全体のCPU使用率の現在値を要求する(ステップ301)。CPU使用率取得部20は、この要求に従って、OS実行部200からシステム全体のCPU使用率の現在値を取得し、比較部30に転送する。
比較部30は、CPU使用率取得部20からシステム全体のCPU使用率の現在値を受け取ると、目標値記述ファイル72を参照して、CPU使用率の現在値が予め設定された目標値を上回っているか否かを調べる(ステップ302)。CPU使用率の現在値が目標値を上回っていたならば、比較部30は、プロセス一時停止制御部40に制御対象プロセス(プロセスXn)の一時停止を要求する。プロセス一時停止制御部40は、この要求に応じて、OS実行部200に制御対象プロセス(プロセスXn)を停止させる(ステップ303)。
一方、ステップ302でCPU使用率の現在値が目標値を下回っていたならば、比較部30は、次に制御対象プロセス(プロセスXn)が一時停止中か否かを判断する(ステップ304)。そして、制御対象プロセス(プロセスXn)が一時停止中であれば、比較部30は、プロセス一時停止制御部40に制御対象プロセス(プロセスXn)の実行再開を要求する。プロセス一時停止制御部40は、この要求に応じて、OS実行部200に制御対象プロセス(プロセスXn)の実行を再開させる(ステップ305)。ステップ304で制御対象プロセス(プロセスXn)が一時停止中でない(すなわち動作中)ならば、比較部30はプロセス一時停止制御部40に対して何の要求もしない。
ステップ302乃至ステップ305の比較部30の判断およびプロセス一時停止制御部40の制御動作の後、比較部30は、一定時間、スリープ状態となる(ステップ306)。そして、再起動後、自スレッドに対する停止要求(後述)がなされていなければ、ステップ301に戻って制御処理を繰り返す(ステップ307)。一方、自スレッドに対する停止要求がなされた場合、自スレッドが制御する制御対象プロセス(プロセスXn)が一時停止状態であれば実行を再開させて処理を終了する(ステップ307、308)。
上記の動作が実行される制御スレッドは、プロセス状態検知部10から制御終了指示がなされたときに終了する。所定の制御対象プロセスに対する制御終了指示がなされると、該当する制御スレッドにおいて比較部30は、上記ステップ306のスリープ状態から再起動した際に、この制御終了指示を制御スレッドの停止要求として受け付け、上述の手順で制御スレッドを終了する。
また、本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理が実行された場合は、この終了処理において全ての制御スレッドに対する停止要求がなされる。各制御スレッドにおいて比較部30は、上記ステップ306のスリープ状態から再起動した際に、この停止要求に従い、上述の手順で制御スレッドを終了する。
ここで、上記のようにして実現される本実施形態のプロセス制御の概念を説明する。
図4は、本実施形態によるプロセス制御の基本的な概念を説明する図である。図4において、Y(S)はシステム全体のCPU使用率(現在値)、X(S)は制御対象プロセスXのCPU使用率(現在値)、D(S)は制御対象でないプロセス(以下、他プロセス)のCPU使用率(現在値)である。また、G(S)はシステム全体のCPU使用率への影響を表す相関関数(伝達関数)であり、R(S)はシステム全体のCPU使用率の目標値である。
なお、システム全体のCPU使用率Y(S)は、アイドルプロセスのユーザモード時間をUi、アイドルプロセスのカーネルモード時間をKi、経過時間をEtとして、次のように計算できる。
Y(S)=(1−(Ui+Ki)/Et)×100%
また、制御対象プロセスXのCPU使用率X(S)は、制御対象プロセスXのユーザモード時間をUx、制御対象プロセスXのカーネルモード時間をKxとして、次のように計算できる。
X(S)=(Ux+Kx)/Et×100%
ただし、本実施形態では、X(S)の計算は必要なく、Y(S)の計算結果とR(S)との比較のみにより、制御対象プロセスXの一時停止および実行再開を制御できる。
図4に示すように、制御対象プロセスXが動作している場合、システム全体のCPU使用率Y(S)は、
Y(S)=G(S)×(X(S)+D(S))
となる。そして、
Y(S)>R(S)
となった場合、制御対象プロセスXが停止されて(図4のスイッチがオフ)、
X(S)=0
となる。このとき、システム全体のCPU使用率Y(S)は、
Y(S)=G(S)×D(S)
である。制御対象プロセスXの停止により、システム全体のCPU使用率Y(S)は次第に低下していき、一定時間が経過すると、
Y(S)<R(S)
となる。
システム全体のCPU使用率Y(S)が下がった後、制御対象プロセスXの実行が再開されて(図4のスイッチがオン)、システム全体のCPU使用率Y(S)は再び、
Y(S)=G(S)×(X(S)+D(S))
となる。そして、システム全体のCPU使用率Y(S)が上昇していき、目標値R(S)を超えたならば、上述のフィードバックがかかることになる。
なお、システム全体のCPU使用率Y(S)がCPU使用率の目標値R(S)を下回った時点で直ちに制御対象プロセスXを実行再開させるのではなく、ある程度のヒステリシスを持たせて制御するようにしても良い。例えば、目標値R(S)を30%と設定した場合に、さらに20%減の10%までシステム全体のCPU使用率Y(S)が低下したときに、制御対象プロセスXを実行再開させるような制御が可能である。また、予め目標値として上限値と下限値の2種類を設定しておき、システム全体のCPU使用率Y(S)が上限値を上回ったときに制御対象プロセスXを一時停止させ、下限値を下回ったときに制御対象プロセスXを実行再開させるといった制御も可能である。
上記の例では、本実施形態によるプロセス制御の基本的な概念を示すために、制御対象プロセスが1つという最も単純な制御例を説明した。実際のシステムにおいては、複数のプロセスを制御対象プロセスとして選び、本実施形態によるプロセス制御を実行することができる。
図5は、複数の制御対象プロセスを設定した場合の本実施形態によるプロセス制御の概念を説明する図である。図5において、制御対象プロセスはN個設定されており、個々の制御対象プロセスXn(n:1≦n≦N)のCPU使用率(現在値)がXn(S)で表されている。制御対象プロセスXnとしては、例えば、CPU使用率監視部P1により個々のプロセスのCPU使用率を監視し、CPU使用率の高いプロセス上位N個を選択することができる。CPU使用率監視部P1の機能は、既存のCPU使用率監視用プログラムによりコンピュータのCPUを制御して実現できる。また、図中のY(S)、G(S)、R(S)は図4に示したものと同様である。なお、図5には他プロセスのCPU使用率D(S)が記載されていないが、動作するプロセスがN個以上あるときは、CPU使用率が上位N個に入らないプロセスを他プロセスとしてCPU使用率D(S)を考慮する。
図5において、個々の制御対象プロセスXnのプロセッサー使用率Xn(S)は、制御対象プロセスXnのユーザモード時間をUxn、制御対象プロセスXnのカーネルモード時間をKxnとして、次のように計算できる。
n(S)=(Uxn+Kxn)/Et×100%
この計算は、CPU使用率監視部P1により行われる。なお、Etは経過時間である。また、システム全体のCPU使用率Y(S)は、図4の場合と同様に計算することができる。
図5のように複数の制御対象プロセスが設定されている場合、図4の場合と同様に、他プロセスを残して、N個の制御対象プロセスXn全てに対して一斉に一時停止・実行再開の制御(図5のスイッチのオン・オフ)を行うこともできるが、各制御対象プロセスXnを個別に制御し、N個の制御対象プロセスXnのうちの少なくとも一部を具体的な制御の対象とすることも可能である。この場合、例えば、CPU使用率監視部P1により定期的に各制御対象プロセスXnのCPU使用率をモニターしておく。そして、システム全体のCPU使用率Y(S)が目標値R(S)を上回った場合に、CPU使用率が上位の数個の制御対象プロセスXnを一時停止させるといった制御を行うことができる。一時停止させる制御対象プロセスXnの個数および制御の具体的な方法は、任意である。例えば、CPU使用率Y(S)と目標値R(S)とを比較しながら、予め定められた固定の個数ずつ一時停止させる制御対象プロセスXnを順次増やしていくことも可能である。また、CPU使用率Y(S)が目標値R(S)をどれだけ上回っているかに応じて、一時停止させる制御対象プロセスXnの個数を計算し、動的に決定しても良い。
また、単純にCPU使用率の上位数個分の制御対象プロセスXnを選択するのではなく、各制御対象プロセスXnのCPU使用率Xn(S)とシステム全体のCPU使用率Y(S)の共分散を一定時間分計算し、強い正の相関を示す制御対象プロセスXnを選択して一時停止・実行再開の制御を行うこともできる。
さらにまた、図4、5に示した例のように、システム全体のCPU使用率Y(S)と目標値R(S)とを単純に比較するのではなく、CPU使用率X(S)あるいはXn(S)とCPU使用率Y(S)に関する現在までの一定期間分の時系列のデータに対して重回帰分析を行い、算出されたシステム全体のCPU使用率の予測値Yf(S)と目的値R(S)とを比較して、その結果に基づきプロセス制御を行うこともできる。重回帰分析によって得られたシステム全体のCPU使用率の予測値Yf(S)を用いて制御対象プロセスXあるいはXnの制御を行うことにより、システム全体のプロセッサー使用率を急激にかつ大きく変動させないように制御することが可能となる。
図6は、システム全体のCPU使用率の予測値に基づくプロセス制御の概念を説明する図である。
図6に示す例では、システム全体のCPU使用率Y(S)に基づいて制御対象プロセスXnの制御を行うためのフィードバックループ中に、重回帰分析部P2が挿入されている。重回帰分析部P2の機能は、既存の重回帰分析プログラムによりコンピュータのCPUを制御して実現できる。この重回帰分析部P2は、システム全体のCPU使用率Y(S)と各制御対象プロセスXnのCPU使用率Xn(S)とを入力し、重回帰分析を行ってシステム全体のCPU使用率の予測値Yf(S)を算出する。そして、このCPU使用率の予測値Yf(S)と目的値R(S)との比較結果に基づいて、制御対象プロセスXあるいはXnに対する一時停止・実行再開の制御が行われる。なお、重回帰分析による予測値の計算が制御対象のシステムのCPU使用率に著しく影響を与える場合には、予測の計算のみを別のシステムで行わせる構成としても良い。
次に、プロセス別CPU使用率取得部50と制御対象修正部60による制御対象プロセスの修正処理について説明する。
上述したように、本実施形態のプロセス制御システムは、上記一連のプロセス制御とは別に、定期的に、コンピュータで実行されているプロセスのCPU使用率を調べ、制御対象プロセスを修正する。この処理では、CPU使用率の上位のプロセスから順に、制御対象記述ファイルに記述されているかどうかをチェックし、記述されていなければ制御対象記述ファイルを更新する。
初期動作として、プロセス別CPU使用率取得部50および制御対象修正部60の初期化が行われ、制御対象プロセスの修正処理用のスレッドが作成される。なお、この初期化処理は、本実施形態のプロセス制御システムのメインプログラムが起動する際の初期化処理において実行される。
図7は、プロセス別CPU使用率取得部50および制御対象修正部60による制御対象プロセスの修正処理を説明するフローチャートである。
制御対象プロセスの修正処理用のスレッドにおいて、制御対象修正部60は、一定時間おきに、プロセス別CPU使用率取得部50に対して、プロセス別のCPU使用率の取得要求を行う(ステップ701)。プロセス別CPU使用率取得部50は、この要求に従って、OS実行部200から動作中のプロセスに関するプロセス別のCPU使用率の情報を取得し、制御対象修正部60に転送する。
制御対象修正部60は、プロセス別CPU使用率取得部50からプロセス別のCPU使用率の情報を受け取ると、CPU使用率の高い順にプロセス名をソートし(ステップ702)、制御対象修正処理を実行する(ステップ703)。制御対象修正処理の詳細については後述する。
修正処理が終了した後、制御対象修正部60は、一定時間、スリープ状態となる(ステップ704)。そして、再起動後、自スレッドに対する停止要求(後述)がなされていなければ、ステップ701に戻ってプロセス別CPU使用率取得部50に要求を出し、処理を繰り返す(ステップ705)。一方、自スレッドに対する停止要求がなされた場合、処理を終了する(ステップ705)。
本実施形態のプロセス制御システムのメインプログラムが終了する際の終了処理が実行された場合、この終了処理において制御対象プロセスの修正処理用のスレッドに対する停止要求を行う。制御対象修正部60は、上記ステップ704のスリープ状態から再起動した後に、この停止要求に従い、制御スレッドを終了する。
図8は、図7の制御対象修正処理の詳細な内容を説明するフローチャートである。
制御対象修正部60は、まず、ステップ702でソートされたプロセス名のリストに基づき、最もCPU使用率の高いプロセスを選択して(ステップ801)、選択されたプロセスのCPU使用率の現在値と目標値記述ファイル72に記述された目標値とを比較する(ステップ802)。そして、選択されたプロセスのCPU使用率が目標値以下であれば、何ら処理を行わずに制御対象修正処理を終了する。
一方、選択されたプロセスのCPU使用率が目標値を超えている場合、次に制御対象修正部60は、そのプロセスが制御対象プロセス記述ファイル71に記載されているか否かを調べる(ステップ803)。そして、そのプロセスが制御対象プロセス記述ファイル71に記載されていない場合、制御対象修正部60は、制御対象プロセス記述ファイル71の内容を更新し、そのプロセスを制御対象プロセスに追加する(ステップ804)。この後、制御対象修正部60は、比較部30に対して制御の開始を指示し(ステップ805)、一定時間、スリープ状態となる(ステップ806)。
ステップ803で、選択されたプロセスが制御対象プロセス記述ファイル71に記載されていた場合、およびスリープ状態から再起動した後、制御対象修正部60は、ステップ702でソートされたプロセス名のリストに基づき、次にCPU使用率の高いプロセスを選択して(ステップ807)、ステップ802以降の処理を繰り返す。
図2、3を参照して説明したように、比較部30は、予め設定された制御対象プロセスを対象として本実施形態のプロセス制御を行う。そのため、CPU使用率が高くなっているプロセスであっても、そのプロセスが制御対象プロセス記述ファイル71に記述されていなければ、一時停止・実行再開の制御を行わない。そこで、上記のようにCPU使用率の高いプロセスが制御対象プロセス記述ファイル71に記述されているか否かを調べ、記述されていなければ追加することにより、CPU使用率の高いプロセスを常に制御対象とすることができる。また、制御対象プロセスに追加されたプロセスに関して比較部30に指示を行い、直ちに本実施形態のプロセス制御を実施させることにより、システム全体のCPU使用率を迅速に低下させ、システム全体のCPU使用率の目標値に近づけることができる。なお、ステップ804により制御対象プロセスが追加設定された場合、制御対象プロセスの個数を一定にしておくために、制御対象プロセス記述ファイル71に記述されている制御対象プロセスのうちで最もCPU使用率の低いプロセスを制御対象プロセス記述ファイル71から削除しても良い。
以上説明したように、本実施形態は、システム全体のCPU使用率をフィードバックすることにより、ヒューリスティックに、CPU使用率の高い(すなわち、システム全体のCPU使用率に対する影響の大きい)プロセスから一時停止・実行再開の制御を行う。すなわち、動作中の個々のプログラム(プロセス)に関して、CPU使用率からプロセスの停止時間、実行時間、優先度などを計算する必要がなく、また計算によって求めたプロセスの実行・停止時間が予期しないプロセスの起動によって再計算が必要になることもない。そのため、実際のプロセスの起動や実行状態に応じて迅速に制御することができる。
本実施形態では、新たに実行されるプログラムの種類にかかわらず、単にCPU使用率の高いプログラムから順に、一時停止・実行再開の制御を行えば良い。すなわち、いつ、どのプログラムが起動するか特定できないシステムでも、新規プログラムの起動等による外乱の影響をすばやく解消することができる。
本発明の一実施形態によるプロセス制御システムの機能構成を示す図である。 本実施形態のプロセス状態検知部による制御対象の検知処理を説明するフローチャートである。 本実施形態の比較部およびプロセス一時停止制御部による制御処理を説明するフローチャートである。 本実施形態によるプロセス制御の基本的な概念を説明する図である。 本実施形態において、複数の制御対象プロセスを設定した場合のプロセス制御の概念を説明する図である。 本実施形態におけるシステム全体のCPU使用率の予測値に基づくプロセス制御の概念を説明する図である。 本実施形態のプロセス別CPU使用率取得部および制御対象修正部による制御対象プロセスの修正処理を説明するフローチャートである。 図7の制御対象修正処理の詳細な内容を説明するフローチャートである。
符号の説明
10…プロセス状態検知部、20…CPU使用率取得部、30…比較部、40…プロセス一時停止制御部、50…プロセス別CPU使用率取得部、60…制御対象修正部、70…データ記憶部、71…制御対象プロセス記述ファイル、72…目標値記述ファイル、100…プロセス制御システム、200…OS実行部、210…プロセススケジューラ

Claims (9)

  1. 制御対象プロセスを記述した制御対象プロセス記述ファイルと
    コンピュータで所定のプロセスが起動したことを検知し、検知した前記プロセスが前記制御対象プロセス記述ファイルに記述されているか否かを調べて、当該プロセスが前記制御対象プロセスか否かを判断するプロセス状態検知部と、
    前記プロセス状態検知部により前記制御対象プロセスが起動したと判断された場合に、システム全体のCPU使用率を取得し、予め定められた当該システム全体のCPU使用率の目標値と比較する比較部と、
    前記比較部によりシステム全体のCPU使用率の現在値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させるプロセス一時停止制御部と、
    動作中のプロセスごとのプロセス別CPU使用率を取得し、当該プロセス別CPU使用率に基づいて特定される所定のプロセスが前記制御対象プロセス記述ファイルに記載されているか否かを調べ、当該所定のプロセスが当該制御対象プロセス記述ファイルに記載されていない場合に、当該所定のプロセスを当該制御対象プロセス記述ファイルに記載する制御対象修正部と
    を備えることを特徴とするプロセス制御システム。
  2. 前記システム全体のCPU使用率の目標値として、上限値と下限値が設定され、
    前記プロセス一時停止制御部は、前記比較部によりシステム全体のCPU使用率の現在値が前記上限値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記下限値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項1に記載のプロセス制御システム。
  3. 前記比較部は、システム全体のCPU使用率の現在値が前記目標値を上回っていると判断し、かつ動作中の制御対象プロセスが複数存在する場合に、当該動作中の制御対象プロセスの少なくとも一部を一時停止の対象として決定し、
    前記プロセス一時停止制御部は、前記比較部により一時停止の対象として決定された前記動作中の制御対象プロセスを停止させることを特徴とする請求項1に記載のプロセス制御システム。
  4. 前記比較部は、システム全体のCPU使用率および個々のプロセスによるCPU使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のCPU使用率の予測値を計算し、当該予測値と前記目標値とを比較し、
    前記プロセス一時停止制御部は、前記比較部により前記予測値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該予測値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項1に記載のプロセス制御システム。
  5. コンピュータにより実行されるプロセスの制御を行う方法であって、
    コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するステップと、
    前記制御対象プロセスが起動したと判断された場合に、システム全体のCPU使用率を取得するステップと、
    得られた前記システム全体のCPU使用率と予め定められた当該システム全体のCPU使用率の目標値と比較するステップと、
    前記システム全体のCPU使用率が前記目標値を上回っている場合に、前記制御対象プロセスを停止させるステップと、
    前記システム全体のCPU使用率が前記目標値を下回っており、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させるステップと、
    動作中のプロセスごとのプロセス別CPU使用率を取得するステップと、
    得られた前記プロセス別CPU使用率に基づいて、前記制御対象プロセスを修正するステップと
    を含むことを特徴とする方法。
  6. 前記システム全体のCPU使用率と前記目標値とを比較するステップでは、当該システム全体のCPU使用率の現在値と当該目標値とが比較されることを特徴とする請求項に記載の方法。
  7. 前記システム全体のCPU使用率と前記目標値とを比較するステップでは、システム全体のCPU使用率および個々のプロセスによるCPU使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のCPU使用率の予測値が計算され、算出された予測値と前記目標値とが比較されることを特徴とする請求項に記載の方法。
  8. コンピュータを、
    コンピュータで所定のプロセスが起動したことを検知し、当該プロセスが予め定められた制御対象プロセスか否かを判断するプロセス状態検知手段と、
    前記プロセス状態検知手段により前記制御対象プロセスが起動したと判断された場合に、システム全体のCPU使用率を取得し、予め定められた当該システム全体のCPU使用率の目標値と比較する比較手段と、
    前記比較手段によりシステム全体のCPU使用率の現在値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、当該現在値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させるプロセス一時停止制御手段と、
    動作中のプロセスごとのプロセス別CPU使用率を取得し、当該プロセス別CPU使用率に基づいて、前記制御対象プロセスを修正する制御対象修正手段と
    して機能させることを特徴とするプログラム。
  9. 前記比較手段の機能として、前記コンピュータに、システム全体のCPU使用率および個々のプロセスによるCPU使用率に関する一定期間分の時系列データに対して重回帰分析を行ってシステム全体のCPU使用率の予測値を計算させて、当該予測値と前記目標値とを比較させ、
    前記プロセス一時停止制御手段の機能として、前記コンピュータに、前記予測値が前記目標値を上回っていると判断された場合に、前記制御対象プロセスを停止させ、前記予測値が前記目標値を下回っていると判断され、かつ前記制御対象プロセスが停止している場合に、当該制御対象プロセスの実行を再開させることを特徴とする請求項に記載のプログラム。
JP2005199309A 2005-07-07 2005-07-07 プロセス制御システム及びその制御方法 Expired - Fee Related JP4367856B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005199309A JP4367856B2 (ja) 2005-07-07 2005-07-07 プロセス制御システム及びその制御方法
US11/480,716 US7917905B2 (en) 2005-07-07 2006-07-03 Process control system and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005199309A JP4367856B2 (ja) 2005-07-07 2005-07-07 プロセス制御システム及びその制御方法

Publications (2)

Publication Number Publication Date
JP2007018282A JP2007018282A (ja) 2007-01-25
JP4367856B2 true JP4367856B2 (ja) 2009-11-18

Family

ID=37619698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005199309A Expired - Fee Related JP4367856B2 (ja) 2005-07-07 2005-07-07 プロセス制御システム及びその制御方法

Country Status (2)

Country Link
US (1) US7917905B2 (ja)
JP (1) JP4367856B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651791A (zh) * 2011-02-28 2012-08-29 夏普株式会社 图像形成装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9602340B2 (en) * 2007-04-20 2017-03-21 Sap Se Performance monitoring
US9417914B2 (en) * 2008-06-02 2016-08-16 Microsoft Technology Licensing, Llc Regaining control of a processing resource that executes an external execution context
US8220054B1 (en) * 2008-10-31 2012-07-10 Trend Micro, Inc. Process exception list updating in a malware behavior monitoring program
JP5343586B2 (ja) * 2009-01-29 2013-11-13 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8819686B2 (en) * 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8656396B2 (en) * 2009-08-11 2014-02-18 International Business Machines Corporation Performance optimization based on threshold performance measure by resuming suspended threads if present or by creating threads within elastic and data parallel operators
TW201117102A (en) * 2009-11-02 2011-05-16 Inventec Corp Method for self-diagnosing system management interrupt handler
US8869154B1 (en) * 2010-03-29 2014-10-21 Crimson Corporation Controlling processor usage on a computing device
WO2012025962A1 (ja) * 2010-08-25 2012-03-01 富士通株式会社 負荷制御装置、負荷制御方法及び負荷制御プログラム
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9378111B2 (en) 2010-11-11 2016-06-28 Sap Se Method and system for easy correlation between monitored metrics and alerts
JP5861402B2 (ja) * 2011-11-11 2016-02-16 株式会社ソシオネクスト 管理プログラム、管理方法、および管理装置
JP5842601B2 (ja) * 2011-12-26 2016-01-13 富士通株式会社 プログラム、情報処理方法及び情報処理装置
US9135135B2 (en) 2012-06-28 2015-09-15 Sap Se Method and system for auto-adjusting thresholds for efficient monitoring of system metrics
US9106391B2 (en) 2013-05-28 2015-08-11 International Business Machines Corporation Elastic auto-parallelization for stream processing applications based on a measured throughput and congestion
CN104133726A (zh) * 2014-08-13 2014-11-05 浪潮电子信息产业股份有限公司 一种进程上下文强制访问控制方法
US20160196089A1 (en) * 2015-01-07 2016-07-07 Netapp, Inc. System and method for adaptive data transfers with limited resources
KR101628072B1 (ko) * 2015-03-04 2016-06-08 삼성전자서비스 주식회사 휴대통신 단말의 느림 진단장치 및 진단방법
KR101968106B1 (ko) * 2015-04-14 2019-04-11 후아웨이 테크놀러지 컴퍼니 리미티드 프로세스 관리 방법, 장치, 및 디바이스
CN106325861A (zh) * 2016-08-18 2017-01-11 北京奇虎科技有限公司 一种用于管理分布式系统的方法和装置
US10379933B2 (en) * 2017-02-15 2019-08-13 Sap Se Sensor data anomaly detection
CN111897586A (zh) * 2019-05-06 2020-11-06 中兴通讯股份有限公司 应用状态控制方法、装置、终端及计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192514B1 (en) * 1997-02-19 2001-02-20 Unisys Corporation Multicomputer system
JPH1165859A (ja) 1997-08-11 1999-03-09 Tec Corp 業務プログラム管理方法及び装置並びに業務プログラム管理用プログラムを記録した記録媒体
JP2000284976A (ja) 1999-03-31 2000-10-13 Nec Corp Cpu負荷制御方法およびcpu負荷制御装置
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
GB2366891B (en) * 2001-12-06 2002-11-20 Appsense Ltd Improvements in and relating to computer apparatus terminal server apparatus & performance management methods therefor
US6993681B2 (en) * 2002-04-15 2006-01-31 General Electric Corporation Remote administration in a distributed system
US7784054B2 (en) * 2004-04-14 2010-08-24 Wm Software Inc. Systems and methods for CPU throttling utilizing processes
JP4756675B2 (ja) * 2004-07-08 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651791A (zh) * 2011-02-28 2012-08-29 夏普株式会社 图像形成装置
US8863142B2 (en) 2011-02-28 2014-10-14 Sharp Kabushiki Kaisha Image forming apparatus
CN102651791B (zh) * 2011-02-28 2015-04-01 夏普株式会社 图像形成装置

Also Published As

Publication number Publication date
US20070011661A1 (en) 2007-01-11
JP2007018282A (ja) 2007-01-25
US7917905B2 (en) 2011-03-29

Similar Documents

Publication Publication Date Title
JP4367856B2 (ja) プロセス制御システム及びその制御方法
US7441240B2 (en) Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling
US7137115B2 (en) Method for controlling multithreading
US7565652B2 (en) Method of setting priority level in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program thereof
JP3588485B2 (ja) プロセススケジューリング方式
US20090049451A1 (en) Multi-threaded processing with reduced context switching
US9875141B2 (en) Managing pools of dynamic resources
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
US20110078702A1 (en) Multiprocessor system
JP2967999B2 (ja) プロセスの実行多重度制御処理装置
CN109491780B (zh) 多任务调度方法及装置
US20140115601A1 (en) Data processing method and data processing system
US8555285B2 (en) Executing a general-purpose operating system as a task under the control of a real-time operating system
US20050132038A1 (en) Resource reservation system and resource reservation method and recording medium storing program for executing the method
JP2008204243A (ja) ジョブ実行制御方法およびシステム
US20200142736A1 (en) Computer processing system with resource optimization and associated methods
US6820153B2 (en) Interrupt processing and memory management method in an operation processing device and a device using the same
US20060123421A1 (en) Streamlining cpu utilization by delaying transactions
JP3859564B2 (ja) イベント通知タスク制御処理方式及び方法並びにプログラム
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2006065430A (ja) 仮想計算機性能変更方法
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
US20100094827A1 (en) Query Stream Execution Using Priority Gradient Multiprogramming
JP2008129709A (ja) タスク制御方法、データ処理システム、タスク制御プログラム及びその記憶媒体
KR100455623B1 (ko) 멀티태스킹 운영체계에서 무한 루프 타스크 처리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090611

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090717

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090821

R150 Certificate of patent or registration of utility model

Ref document number: 4367856

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090903

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees