(57)【要約】【課題】情報処理装置上のタスクが特異な動作をしたことを精度良く検出する。【解決手段】情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置であって、情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを取得する取得部と、実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を算出する距離算出部と、測定データに対応する測定点について求めた距離に基づいて、当該測定データに対応する監視対象タスクの実行において特異な動作が行われたか否かを判定する判定部とを備える検出装置を提供する。
2008072674.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置であって、
情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを取得する取得部と、
実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を算出する距離算出部と、
測定データに対応する測定点について求めた前記距離に基づいて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたか否かを判定する判定部と
を備える検出装置。
【請求項２】
前記判定部は、測定データに対応する測定点について求めた前記距離と他の測定データに対応する測定点について求めた前記距離との比較結果に基づいて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたか否かを判定する請求項１に記載の検出装置。
【請求項３】
前記距離算出部は、各測定データに対応する測定点について、前後予め定められた個数分の他の測定点との間の距離を算出し、
前記判定部は、
測定データに対応する測定点について、前後予め定められた個数分の他の測定点との間の距離のうち最小の距離を選択する選択部と、
測定データに対応する測定点について選択された最小距離と他の測定データに対応する測定点について求めた最小距離との比較結果に基づいて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたか否かを判定する判定処理部とを備える請求項２に記載の検出装置。
【請求項４】
前記判定処理部は、測定データに対応して選択された前記最小距離を直前の測定データに対応して選択された前記最小距離で割った値が、予め定められた基準範囲外となったことに応じて、測定データに対応する前記監視対象タスクの実行において特異な動作が行われたと判定する請求項３に記載の検出装置。
【請求項５】
前記距離算出部は、
第１測定データに対応する第１測定点について、当該第１測定点の後の第２測定点との間の距離を算出し、
第２測定データに対応する第２測定点について、当該第２測定点の前の前記第１測定点との間の距離として、前記第１測定点について既に算出した前記第２測定点との間の距離を再利用する
請求項３に記載の検出装置。
【請求項６】
前記距離算出部は、
縦続接続された複数のレジスタを含み、取得された前記測定データを初段に順次入力してサイクル毎に後段のレジスタに順次伝播するレジスタパイプラインと、
前記レジスタパイプラインの最終段に記憶された測定データに対応する測定点と、最終段以外の各レジスタに記憶された後続の各測定データに対応する測定点との間の各距離を毎サイクル算出する複数の距離演算器と
を有し、
前記選択部は、
前記レジスタパイプラインの初段に入力された前記測定データが前記レジスタパイプラインにより伝播される度に当該測定データが格納されたレジスタに対応する前記距離演算器から順次出力される、当該測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離を各段の最小選択器に入力し、各段の最小選択器において前段の最小選択器から入力される距離と比較してより小さい距離を順次出力することにより、測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離のうちの最小の距離を最終段の最小選択器から出力する最小選択パイプラインと、
前記複数の距離演算器が出力する、最終段の測定データに対応する測定点と当該測定データの後続の各測定データに対応する測定点との間の距離と、前記最小選択器パイプラインが出力する、最終段の測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離のうちの最小の距離との最小値を出力する多入力最小選択器と
を有する請求項５に記載の検出装置。
【請求項７】
前記監視対象タスクの平均実行間隔および平均実行時間に基づいて、前記実行時間を前記距離に反映する比率を決定し、
前記距離算出部は、２つの測定点間の距離の算出において、前記２つの測定点の前記実行タイミングの差と、前記実行時間の差に前記比率を乗じた値とを用いる
請求項１に記載の検出装置。
【請求項８】
前記判定部は、測定データに対応する測定点について求めた前記距離が予め定められた閾値を超えたことに応じて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたと判定する請求項１に記載の検出装置。
【請求項９】
情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置として前記情報処理装置または他の情報処理装置を機能させるプログラムであって、
前記情報処理装置または前記他の情報処理装置を、
前記情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを、入力装置により取得する取得部と、
実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を、ＣＰＵにより算出する距離算出部と、
測定データに対応する測定点について求めた前記距離に基づいて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたか否かを、前記ＣＰＵにより判定する判定部と
して機能させるプログラム。
【請求項１０】
情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを前記情報処理装置または他の情報処理装置により検出する検出方法であって、
前記情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを、前記情報処理装置または前記他の情報処理装置の入力装置が取得し、
実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を、前記情報処理装置または前記他の情報処理装置のＣＰＵが算出し、
測定データに対応する測定点について算出された前記距離に基づいて、当該測定データに対応する前記監視対象タスクの実行において特異な動作が行われたか否かを、前記ＣＰＵが判定する
検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置、プログラムおよび検出方法に関する。特に本発明は、情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置、プログラムおよび検出方法に関する。
【背景技術】
【０００２】
ＶＬＳＩチップ等に組み込まれる機能および回路が多くなり、ハードウェアおよびソフトウェアの検証およびデバック等に費やされる時間は、長期化している。そこで、ハードウェアおよびソフトウェアにおける、通常時とは異なる動作をする実行部分（特異点）を検出し、検出した特異点を中心に情報処理装置の動作を検証およびデバック等をすることが考えられる。これにより、特異な動作について重点的に検証およびデバックを行うことができるので、当該検証およびデバック等に費やされる合計時間を短縮することができる。【０００３】
特許文献１には、動作しているタスク名を一定時間間隔で記憶し、各タスクの実行時間の占有率を二項分布に基づき推定する発明が記載されている。特許文献２には、複数のタスクを並行して実行する計算機システムにおけるタスク毎の実行時間を測定する発明が記載されている。より詳しくは、特許文献２には、実行時間積算領域をタスク毎に設け、タスクの終了後に当該タスクの処理時間を実行時間積算領域に加算し、当該タスクに対して割り込んだ下位タスクがあるときは当該下位タスクの処理時間を実行時間積算領域から減算する発明が記載されている。【０００４】
【特許文献１】特開平４−６８４５１号公報
【特許文献２】特開平３−２１０６４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特異点を検出する方法としては、例えば、情報処理装置上で複数回実行されるタスクのそれぞれの回の処理時間を計測し、処理時間の長いタスクの実行部分を特異点として検出する方法が考えられる。また、他の方法としては、情報処理装置上で複数回実行されるタスクの処理時間の平均、分散、最大、最小等を統計処理により算出して、処理時間が極端に長いタスクの実行部分および処理時間が極端に短いタスクの実行部分等を特異点として検出する方法が考えられる。【０００６】
しかし、タスクによっては、このように検出された部分が特異点ではない場合もあり、また、このように算出された部分以外が特異点である場合もある。そこで、情報処理装置上で複数回実行されるタスクの特異点を、精度良く検出できる検出装置が求められる。【０００７】
そこで本発明は、上記の課題を解決することのできる検出装置、プログラムおよび検出方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の形態においては、情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置であって、情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを取得する取得部と、実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を算出する距離算出部と、測定データに対応する測定点について求めた距離に基づいて、当該測定データに対応する監視対象タスクの実行において特異な動作が行われたか否かを判定する判定部とを備える検出装置を提供する。【０００９】
本発明の第２の形態においては、情報処理装置上における監視対象タスクの実行において特異な動作が行われたか否かを検出する検出装置として情報処理装置または他の情報処理装置を機能させるプログラムであって、情報処理装置または他の情報処理装置を、情報処理装置上で監視対象タスクが複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを、入力装置により取得する取得部と、実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を、ＣＰＵにより算出する距離算出部と、測定データに対応する測定点について求めた距離に基づいて、当該測定データに対応する監視対象タスクの実行において特異な動作が行われたか否かを、ＣＰＵにより判定する判定部として機能させるプログラム、並びに、このプログラムが情報処理装置において実行されることにより実現される検出方法を提供する。【００１０】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１２】
図１は、本実施形態に係る検出装置１０の構成を情報処理装置１００とともに示す。図２は、タスクの実行タイミングおよび実行時間（処理時間または実実行時間）の一例を示す。【００１３】
検出装置１０は、情報処理装置１００上における監視対象タスク１１０の実行において特異な動作が行われたか否かを検出する。検出装置１０は、情報処理装置１００により実行される複数種類のタスクのうちの１つの監視対象タスク１１０を予め定め、監視対象タスク１１０の実行において特異な動作が行われたか否かを検出する。【００１４】
タスクは、情報処理装置１００の演算処理装置において実行される処理をいう。タスクは、例えば関数、プロセス、スレッド等も含む。タスクの特異な動作とは、一例として、当該タスクが情報処理装置１００により複数回実行された場合における通常の動作とは異なる動作をいう。例えば、当該タスクを呼び出したプログラムおよびハードウェア等、または当該タスクに異常が含まれている可能性がある場合、タスクは、特異な動作をする。なお、特異な動作は、必ずしも障害又は誤動作に該当するものではないが、該当する可能性が高いと考えられる。【００１５】
検出装置１０は、取得部２０と、距離算出部３０と、判定部４０とを備える。取得部２０は、情報処理装置１００上で監視対象タスク１１０が複数回実行されたことに応じて、それぞれの実行毎に実行タイミングおよび実行時間を含む測定データを取得する。【００１６】
タスクの実行タイミングは、図２に示すように、一例として、当該タスクの起動タイミング（例えば起動時刻）、当該タスクの終了タイミング（例えば終了時刻）、当該タスクの実行順序（１番目、２番目、…）であってよい。タスクの実行時間は、当該タスクの実
実行時間または処理時間であってよい。タスクの実実行時間は、当該タスクが演算処理装置により実行されていた実時間であり、他のタスクにより割り込まれている休止時間は含まない。タスクの処理時間は、当該タスクの起動タイミングから終了タイミングまでの時間であり、他のタスクにより割り込まれている休止時間を含む。【００１７】
取得部２０は、一例として、情報処理装置１００の動作中に当該情報処理装置１００からリアルタイムで測定データを取得してもよいし、情報処理装置１００の動作終了後において当該情報処理装置１００が実行したタスクの実行開始時刻および終了時刻等が記述されたログから測定データを取得してもよい。取得部２０は、一例として、ハードウェアインターフェイスを介して情報処理装置１００から測定データを取得してもよい。また、取得部２０は、一例として、情報処理装置１００上でプログラムが実行されることにより監視対象タスク１００と同様に情報処理装置１００上で検出装置１０が実現される場合であれば、監視対象タスク１１０を実行した結果測定される測定データをソフトウェアインターフェイスを介して取得してもよい。【００１８】
また、取得部２０は、測定期間中における情報処理装置１００による監視対象タスク１１０の全ての実行についての測定データを取得するのが好ましい。もっとも、取得部２０は、例えば一定期間毎に測定データを取得するといったように、測定期間中における監視対象タスク１１０の全ての実行のうちの一部分の実行についての測定データを取得してもよい。【００１９】
また、例えば、監視対象タスク１１０または情報処理装置１００のタスクスケジューラは、一例として、当該監視対象タスク１１０の起動タイミングにおいて、取得部２０が監視可能なレジスタにフラグおよびタスクＩＤ等を書き込み、監視対象タスク１１０の終了タイミングにおいて当該レジスタからフラグおよびタスクＩＤ等を削除してよい。そして、取得部２０は、このレジスタを一定タイミング毎に読み出すことにより監視対象タスク１１０についての実行タイミングおよび実行時間を検出し、測定データを取得してもよい。また、取得部２０は、一例として、情報処理装置１００に対して、当該情報処理装置１００によるタスクの実行状態を呼び出すコマンドを定期的に発行し、当該コマンドに対する応答に基づき測定データを取得してもよい。【００２０】
距離算出部３０は、実行タイミングおよび実行時間を異なる座標軸に割り当てた多次元空間における各測定データに対応する測定点について、予め定められた範囲に位置する他の測定点との間の距離を算出する。距離算出部３０は、一例として、実行タイミングおよび実行時間を、２次元空間におけるＸ軸およびＹ軸に割り当ててよい。更に、距離算出部３０は、実行タイミングおよび実行時間以外のパラメータを他の座標軸に割り当てて３次元以上の空間における距離を算出してもよい。【００２１】
距離算出部３０は、予め定められた範囲に位置する他の測定点との間の距離として、一例として、着目する測定点の前のｂ個（ｂは１以上の自然数）および後のｆ個（ｆは１以上の自然数）の他の測定点との間の距離を算出してよい。これに代えて、距離算出部３０は、一例として、着目する測定点の前のｂ個の他の測定点との間の距離を算出してもよいし、また、着目する測定点の後のｆ個の他の測定点との間の距離を算出してもよい。また、距離算出部３０は、一例として、予め定められた条件に従い動的に選択された他の測定点との間の距離を算出してもよい。【００２２】
判定部４０は、測定データに対応する測定点について求めた距離に基づいて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたか否かを判定する。判定部４０は、一例として、測定データに対応する測定点について求めた距離と他の測定データに対応する測定点について求めた距離との比較結果に基づいて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたか否かを判定してよい。【００２３】
判定部４０は、一例として、実行タイミングおよび実行時間を２次元空間におけるＸ軸およびＹ軸に割り当てられた測定点間の距離に基づいて、特異な動作が行われたか否かを判定してよい。更に、判定部４０は、一例として、実行タイミングおよび実行時間以外のパラメータが他の座標軸に割り当てられた３次元以上の空間における測定点間の距離に基づいて、特異な動作が行われたか否かを判定してもよい。また、判定部４０は、測定データに対応する測定点について求めた距離に加えて、他のパラメータおよび条件等に基づいて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたか否かを判定してもよい。【００２４】
また、判定部４０は、一例として、測定データに対応する測定点について求めた距離が予め定められた閾値を超えたことに応じて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたと判定してもよい。この場合において、判定部４０は、例えばタスクを実行するプログラムファイルおよびルーチン名等により識別し、識別したタスク毎に異なる閾値を用いてよい。また、判定部４０は、タスクに対応付けて閾値を記憶する閾値記憶部を有してよい。【００２５】
このような検出装置１０によれば、監視対象タスク１１０が特異な動作をしたことを、簡易な構成で、精度良く検出することができる。これにより、検出装置１０によれば、不良が含まれている可能性が高い実行部分を特定することができ、検証およびデバック等に要する時間を短縮させることができる。【００２６】
図３は、本実施形態に係る距離算出部３０および判定部４０の構成の一例を示す。距離算出部３０は、一例として、各測定データに対応する測定点について、前後予め定められた個数分の他の測定点との間の距離を算出してよい。この場合において、判定部４０は、選択部４２と、判定処理部４４とを有してよい。【００２７】
選択部４２は、測定データに対応する測定点について、前後予め定められた個数分（例えば前ｂ個、後ｆ個）の他の測定点との間の距離のうち最小の距離を選択する。判定処理部４４は、測定データに対応する測定点について選択された最小距離と他の測定データに対応する測定点について求めた最小距離との比較結果に基づいて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたか否かを判定する。判定処理部４４は、一例として、測定データに対応して選択された最小距離を直前の測定データに対応して選択された最小距離で割った値が、予め定められた基準範囲外となったことに応じて、測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたと判定してよい。【００２８】
図４は、実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上における、測定点Ｐｉと当該測定点Ｐｉの前後４個の測定点Ｐｉ−４〜Ｐｉ＋４と距離の一例を示す。距離算出部３０は、測定データに対応する測定点の系列として、ｐ１，ｐ２，…，ｐｉ−１，ｐｉ，ｐｉ＋１，…，ｐｎ−１，ｐｎを取得部２０から順次に入力する。なお、ｎは、測定期間中における監視対象タスク１１０の起動回数であり、ｉは、ｎ未満の任意の正の整数である。実行タイミングおよび実行時間を２次元空間におけるＸ軸およびＹ軸に割り当てられた任意の測定点ｐｉと、他の測定点ｐｊとの間の距離Ｄｉ，ｊは、次の式（１）のように表される。【００２９】
【数１】
2008072674.tif 000003
【００３０】
式（１）において、ｐｉ（ｘ）は、ｐｉのＸ座標の値（例えば、測定点Ｐｉの実行タイミング）、ｐｉ（ｙ）は、ｐｉのＹ座標の値（例えば、測定点Ｐｉの実行時間）を表す。ｐｊ（ｘ）は、ｐｊのＸ座標の値（例えば、測定点Ｐｊの実行タイミング）、ｐｊ（ｙ）は、ｐｊのＹ座標の値（例えば、測定点Ｐｊの実行時間）を表す。ｋは、実行タイミングおよび実行時間の単位の違いを補正する比率である。すなわち、距離算出部３０は、実行タイミングの差の２乗と、実行時間の差に係数ｋを乗じた値の２乗とを加算した加算値の平方根を、距離として算出してよい。【００３１】
距離算出部３０は、測定点ｐｉと、測定点ｐｉから見て時間的に前のｂ個の測定点ｐｉ−ｂ〜ｐｉ−１、および、測定点ｐｉから見て時間的に後のｆ個の測定点ｐｉ＋１〜ｐｉ＋ｆとの距離を、式（１）に表された演算により算出する。これにより、距離算出部３０は、下記式（２）により表される（ｂ＋ｆ）個の距離を出力することができる。なお、距離算出部３０は、ｂおよびｆを大きくするほど特異な動作が行われたか否かをより精度良く判定でき、ｂおよびｆを小さくすれば蓄積するデータ量を小さくできるとともに計算量を少なくすることができる。【００３２】
【数２】
2008072674.tif 000004
【００３３】
選択部４２は、任意の測定データについて、式（２）により表される（ｂ＋ｆ）個の距離を入力する。そして、選択部４２は、測定点ｐｉについての（ｂ＋ｆ）個の距離の中から、下記式（３）に表されるように任意の測定データについての最小距離Ｄｍｉｎｉを選択する。【００３４】
【数３】
2008072674.tif 000005
【００３５】
選択部４２は、複数の測定データに対応する測定点ｐ１〜ｐｎのそれぞれについて、以上のように最小距離を選択する。そして、選択部４２は、測定データについての最小距離の系列として、…Ｄｍｉｎｉ−３，Ｄｍｉｎｉ−２，Ｄｍｉｎｉ−１，Ｄｍｉｎｉ，Ｄｍｉｎｉ＋１，Ｄｍｉｎｉ＋２，…を順次に判定処理部４４に対して出力する。【００３６】
判定処理部４４は、複数の測定データのそれぞれに対して、選択された最小距離Ｄｍｉｎｉを直前の測定データに対応して選択された最小距離Ｄｍｉｎｉ−１により割った除算値（Ｄｍｉｎｉ／Ｄｍｉｎｉ−１）を算出する。そして、判定処理部４４は、下記式（４）に表すように除算値（Ｄｍｉｎｉ／Ｄｍｉｎｉ−１）が予め定められた上限値ＴＵよりも大きい場合、または、下記式（５）に表すように除算値（Ｄｍｉｎｉ／Ｄｍｉｎｉ−１）が予め定められた下限値ＴＬよりも小さい場合、当該測定データに対する監視対象タスク１１０の実行において特異な動作が行われたと判定する。【００３７】
【数４】
2008072674.tif 000006
【００３８】
すなわち、判定処理部４４は、除算値が予め定められた基準範囲外となったことに応じて、当該測定データに対応する監視対象タスク１１０の実行において特異な動作が行われたと判定する。なお、この場合において、判定処理部４４は、例えば当該タスクを実行するプログラムファイルおよびルーチン名等によりタスクを識別し、識別したタスク毎に異なる上限値ＴＵおよび下限値ＴＬを用いてよい。また、判定処理部４４は、タスクに対応付けて閾値を記憶する閾値記憶部を含んでよい。【００３９】
以上に示す取得部２０および距離算出部３０によれば、直前の測定データに対応する測定点との距離が急に長くなった実行部分または急に短くなった実行部分を、特異な動作が行われたと判定することができる。すなわち、取得部２０および距離算出部３０によれば、例えば、監視対象タスク１１０の実行タイミングが急に長くなった実行部分または短くなった実行部分、または、監視対象タスク１１０の実行時間が急に長くなった実行部分または短くなった実行部分を、特異な動作が行われたと判定することができる。【００４０】
図５は、実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上にプロットされた、監視対象タスク１１０が複数回実行されたことに応じて取得された複数の測定データに対応する複数の測定点の一例を示す。通常の動作時における監視対象タスク１１０の実行時間が１つの値（通常値）の近傍に集中する場合（図５の場合、１００近傍に集中している）、監視対象タスク１１０が特異な動作をした場合における測定データに対応する測定点ＰＸは、一例として、通常値よりも実行時間が極端に長いまたは短い値となる。検出装置１０によれば、このような場合における測定点ＰＸを、監視対象タスク１１０における特異な動作をした場合として検出することができる。【００４１】
図６は、実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上にプロットされた、監視対象タスク１１０が複数回実行されたことに応じて取得された複数の測定データに対応する複数の測定点の他の一例を示す。監視対象タスク１１０は、処理に分岐条件（例えば、ＩＦ−ＴＨＥＮ−ＥＬＳＥ処理）またはループ回数が条件に応じて変化するループ処理等が含まれている場合、設定される条件によって実行時間が異なる。このような場合、通常の動作における監視対象タスク１１０の実行時間が複数の通常値にそれぞれ集中する（例えば、図６の場合、４０、８０、１５０近傍に集中している。）。このような監視対象タスク１１０が特異な動作をした場合における測定データに対応する測定点ＰＸは、複数の通常値のいずれからも外れた値（例えば、通常値と通常値との間の値）となる。検出装置１０によれば、近傍の測定点からの最小距離が急激に変化した部分を検出するので、図５の場合に加えて、図６のような場合における測定点ＰＸも、監視対象タスク１１０における特異な動作をした場合として検出することができる。【００４２】
図７は、式（１）に表される距離の算出式における、実行時間または実行タイミングを補正する比率ｋの一例を示す。式（１）において、比率ｋは、実行タイミングおよび実行時間の単位の違いを補正する。比率ｋは、実行タイミングに乗じられてもよいし、実行時間に乗じられてもよい。なお、比率ｋが乗じられたパラメータ（すなわち、実行時間または実行タイミング）は、より大きな比率ｋが乗じられるほど、距離に対して寄与する率がより大きくなる。【００４３】
また、距離算出部３０は、一例として、監視対象タスク１１０の平均実行間隔および平均実行時間に基づいて、実行時間を距離に反映する比率ｋ（または、実行タイミングを距離に反映する比率ｋ）を決定してよい。距離算出部３０は、一例として、例えば平均実行間隔と平均実行時間とが略一致するような比率ｋを決定してよい。そして、距離算出部３０は、２つの測定点間の距離の算出において、２つの測定点の実行タイミングの差と、実行時間の差に比率を乗じた値とを用いてよい。また、距離算出部３０は、２つの測定点間の距離の算出において、２つの測定点の実行タイミングの差に比率を乗じた値と、２つの測定点の実行時間の差とを用いてよい。これにより、距離算出部３０によれば、実行タイミングおよび実行時間を平均的に反映した距離を算出することができる。【００４４】
図８は、測定点Ｐｉと、当該測定点Ｐｉの前４個の測定点Ｐｉ−４〜Ｐｉ−１との間の距離を算出するにあたり、既に算出した距離のうちの再利用できる距離を示す。図９は、既に算出した距離のうちの再利用される距離を示す。【００４５】
距離算出部３０は、測定点ｐｉと、当該測定点ｐｉの前の複数の測定点との間の距離、および、測定点ｐｉと、当該測定点ｐｉの後の複数測定点との間の距離を算出する。ここで、測定点ｐｉから他の測定点ｐｊまでの距離Ｄｉ，ｊは、他の測定点ｐｊから測定点ｐｉまでの距離Ｄｊ，ｉと等しい。従って、距離算出部３０は、測定点ｐｉと、当該測定点ｐ１の前のｂ個の測定点ｐｉ−１〜ｐｉ−ｂとの間の距離の算出時において、測定点ｐｉ−１〜ｐｉ−ｂのそれぞれについての距離算出時において算出された距離を再利用することができる。【００４６】
すなわち、距離算出部３０は、第１測定データに対応する第１測定点について、当該第１測定点の後の第２測定点との間の距離を算出し、第２測定データに対応する第２測定点について、当該第２測定点の前の第１測定点との間の距離として、第１測定点について既に算出した第２測定点との間の距離を再利用してよい。これにより距離算出部３０によれば、距離算出時における演算量を少なくすることができる。【００４７】
例えば、測定点Ｐｉと、当該測定点Ｐｉの前後４点の測定点との距離を算出する場合、距離算出部３０は、図８に示すように、（ｉ−４）番目の測定点における距離算出時において算出された距離Ｄｉ−４，ｉ、（ｉ−３）番目の測定点における距離算出時において算出された距離Ｄｉ−３，ｉ、（ｉ−２）番目の測定点における距離算出時において算出された距離Ｄｉ−２，ｉ、（ｉ−１）番目の測定点における距離算出時において算出された距離Ｄｉ−１，ｉを再利用してよい。【００４８】
さらに、距離算出部３０は、既に算出した距離のうち後に再利用できる距離があれば、当該距離を一時的に記憶し、再利用されない距離は消去してよい。例えば、図９に示すように、測定点Ｐｉと、当該測定点Ｐｉの前後４点の測定点との距離を算出する場合であれば、距離算出部３０は、少なくとも｛ｂ（ｂ＋１）／２｝＝１０個の距離を記憶すればよい。【００４９】
図１０は、本実施形態に係る距離算出部３０の構成の一例を示す。距離算出部３０は、一例として、レジスタパイプライン５２と、複数の距離演算器５４とを有してよい。レジスタパイプライン５２は、縦続接続された複数のレジスタ５６であって、取得部２０が取得した測定データがサイクル毎に初段のレジスタ５６に格納され、各レジスタ５６に記憶された測定データがサイクル毎に次段のレジスタ５６へと伝播される複数のレジスタ５６を含む。すなわち、レジスタパイプライン５２は、縦続接続された複数のレジスタ５６を含み、取得された測定データを初段に順次入力してサイクル毎に後段のレジスタ５６に順次伝播する。測定点Ｐｉの前後４点の測定点との距離を算出する場合、レジスタパイプライン５２は、一例として、縦続接続された５個のレジスタ５６−１〜５６−５を含んでよい。【００５０】
複数の距離演算器５４は、複数のレジスタ５６のうち最終段以外のレジスタ５６に対応してそれぞれ設けられ、対応するレジスタ５６に格納された測定データに対応する測定点と、最終段のレジスタ５６に格納された測定データに対応する測定点との間の距離を算出する。すなわち、複数の距離演算器５４は、レジスタパイプライン５２の最終段のレジスタ５６に記憶された測定データに対応する測定点と、最終段以外の各レジスタ５６に記憶された後続の各測定データに対応する測定点との間の各距離を毎サイクル算出する。例えば測定点Ｐｉの前後４点の測定点との距離を算出する場合、距離算出部３０は、一例として、４個の距離演算器５４−１〜５４−４を有してよい。【００５１】
なお、複数の距離演算器５４のそれぞれは、一例として、上述した式（１）により表された演算により距離を算出してよい。これに代えて、複数の距離演算器５４のそれぞれは、下記（６）により表された演算により距離を算出してもよい。すなわち、距離算出部３０は、実行タイミングの差の２乗と、実行時間の差に係数ｋを乗じた値の２乗とを加算した加算値を、距離として算出してよい。式（６）により表された演算を行うことにより、距離演算器５４は、式（１）の演算と比べて平方根演算を行わないでよいので、ハードウェア構成が簡易となる。【００５２】
【数５】
2008072674.tif 000007
【００５３】
図１１は、本実施形態に係る判定部４０の構成の一例を示す。図１１に示す構成の判定部４０は、図１０に示す距離算出部３０により算出された距離を入力する。判定部４０内の選択部４２は、最小選択パイプライン６２と、多入力最小選択器６４とを含む。【００５４】
最小選択パイプライン６２は、前段レジスタ７２と、複数の最小選択器７４と、複数の選択器用レジスタ７６とを含む。前段レジスタ７２は、レジスタパイプライン５２内の初段のレジスタ５６に対応する距離演算器５４に対応して設けられる。前段レジスタ７２は、初段の距離演算器５４が出力する距離を１サイクル遅延させる。複数の選択器用レジスタ７６は、複数の最小選択器７４に対応してそれぞれ設けられる。複数の選択器用レジスタ７６は、対応する最小選択器７４から出力された距離を１サイクル遅延させる。【００５５】
複数の最小選択器７４は、レジスタパイプライン５２内の複数の距離演算器５４のうち初段以外のレジスタ５６に対応する距離演算器５４に対応してそれぞれ設けられる。２段目のレジスタ５６に対応する最小選択器７４は、初段の距離演算器５４が出力する距離を１サイクル遅延させた値、および、２段目の距離演算器５４が出力する距離のうち、より小さい距離を出力する。３段目以降のレジスタ５６にそれぞれ対応する複数の最小選択器７４は、前段のレジスタ５６に対応する最小選択器７４が出力する距離を１サイクル遅延させた値、および、対応する距離演算器５４が出力する距離のうち、より小さい距離を出力する。例えば測定点Ｐｉの前後４点の測定点との距離を算出する場合、最小選択パイプライン６２は、一例として、３個の最小選択器７４−１〜７４−３および３個の選択器用レジスタ７６−１〜７６−３を含んでよい。【００５６】
このような最小選択パイプライン６２は、レジスタパイプライン５２の初段に入力された測定データがレジスタパイプライン５２により伝播される度に当該測定データが格納されたレジスタ５６に対応する距離演算器５４から順次出力される、当該測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離を各段の最小選択器７４に入力する。そして、最小選択パイプライン６２は、各段の最小選択器７４において前段の最小選択器７４から入力される距離と比較してより小さい距離を順次出力することにより、測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離のうちの最小の距離を最終段の最小選択器７４から出力する。【００５７】
換言すると、最小選択パイプライン６２は、レジスタパイプライン５２の初段に入力された測定データがレジスタパイプライン５２により伝播される度に当該測定データが格納されたレジスタ５６に対応する距離演算器５４からサイクル毎に順次出力される、当該測定データに対応する測定点と先行する各測定データに対応する各測定点との間の各距離を各段の最小選択器７４の第１入力に入力する。さらに、最小選択パイプライン６２は、前段の最小選択器７４の出力を１サイクル遅延させて各段の最小選択器７４の第２入力に入力する。また、さらに、最小選択パイプライン６２は、初段の距離演算器５４の出力を１サイクル遅延させて初段の最小選択器７４の第２入力に入力する。そして、最小選択パイプライン６２は、パイプライン処理により各測定データに対応する測定点と先行する各測
定データに対応する各測定点との間の各距離のうちの最小の距離を最終段の最小選択器７４から出力する。【００５８】
多入力最小選択器６４は、複数の距離演算器５４がそれぞれ出力する各距離、および、最終段の最小選択器７４が出力する距離を１サイクル遅延させた値の中から最小の距離を選択する。すなわち、多入力最小選択器６４は、複数の距離演算器５４が出力する、最終段の測定データに対応する測定点と当該測定データの後続の各測定データに対応する測定点との間の距離と、最小選択パイプライン６２が出力する、最終段の測定データに対応する測定点と先行する各測定データに対応する測定点との間の距離のうちの最小の距離との最小値を出力する。【００５９】
以上の構成の距離算出部３０および判定部４０によれば、測定データに対応する各測定点について、当該測定点と他の測定点との距離をハードウェアによりリアルタイムで算出することができる。また、距離算出部３０および判定部４０によれば、既に算出した距離を再利用するので、構成が簡単となる。さらに、距離算出部３０および判定部４０によれば、最小選択器７４が算出して再利用される距離のうち最小の値だけを選択して記憶するので、記憶容量を少なくできる。【００６０】
図１２は、本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続される命令処理装置であるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される入力装置２０２５、通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガ
シー入出力部とを備える。【００６１】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。【００６２】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、他の装置から情報を入力する入力装置２０２５、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。【００６３】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラムや、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。【００６４】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。【００６５】
コンピュータ１９００にインストールされ、コンピュータ１９００を検出装置１０として機能させるプログラムは、取得モジュールと、距離算出モジュールと、判定モジュールとを備える。コンピュータ１９００を検出装置１０として機能させるプログラムは、監視対象タスク１１０を実行する監視対象タスク１１０とは異なる他の情報処理装置（コンピュータ１９００）により実行されてもよいし、監視対象タスク１１０を実行する情報処理装置１００（コンピュータ１９００）自体により実行されてもよい。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部２０、距離算出部３０、判定部４０としてそれぞれ機能させる。より詳しくは、これらのプログラム又はモジュールは、情報処理装置または他の情報処理装置を、測定データを入力装置２０２５により取得する取得部２０と、予め定められた範囲に位置する他の測定点との間の距離をＣＰＵ２０００により算出する距離算出部３０と、監視対象タスク１１０の実行において特異な動作が行われたか否かをＣＰＵ２０００により判定する判定部４０として機能させる。【００６６】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤやＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。【００６７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態に係る検出装置１０の構成を情報処理装置１００とともに示す。
【図２】タスクの実行タイミングおよび実行時間（処理時間または実実行時間）の一例を示す。
【図３】本発明の実施形態に係る判定部４０の構成の一例を距離算出部３０とともに示す。
【図４】実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上における、測定点Ｐｉと当該測定点Ｐｉの前後４個の測定点Ｐｉ−４〜Ｐｉ＋４と距離の一例を示す。
【図５】実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上にプロットされた、監視対象タスク１１０が複数回実行されたことに応じて取得された複数の測定データに対応する複数の測定点の一例を示す。
【図６】実行タイミングをＸ軸、実行時間をＹ軸に割り当てた２次元空間上にプロットされた、監視対象タスク１１０が複数回実行されたことに応じて取得された複数の測定データに対応する複数の測定点の他の一例を示す。
【図７】距離の算出式における、実行時間または実行タイミングを補正する定数ｋの一例を示す。
【図８】測定点Ｐｉと、当該測定点Ｐｉの前４個の測定点Ｐｉ−４〜Ｐｉ−１との間の距離を算出するにあたり、既に算出した距離のうちの再利用できる距離を示す。
【図９】既に算出した距離のうちの再利用される距離を示す。
【図１０】本発明の実施形態に係る距離算出部３０の構成の一例を示す。
【図１１】本発明の実施形態に係る判定部４０の構成の一例を示す。
【図１２】本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【００６９】
１０  検出装置
２０  取得部
３０  距離算出部
４０  判定部
４２  選択部
４４  判定処理部
５２  レジスタパイプライン
５４  距離演算器
５６  レジスタ
７２  前段レジスタ
７４  最小選択器
７６  選択器用レジスタ
６２  最小選択パイプライン
６４  多入力最小選択器
１００  情報処理装置
１１０  監視対象タスク
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０２５  入力装置
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2008072674.tif 000008
【図２】
2008072674.tif 000009
【図３】
2008072674.tif 000010
【図４】
2008072674.tif 000011
【図５】
2008072674.tif 000012
【図６】
2008072674.tif 000013
【図７】
2008072674.tif 000014
【図８】
2008072674.tif 000015
【図９】
2008072674.tif 000016
【図１０】
2008072674.tif 000017
【図１１】
2008072674.tif 000018
【図１２】
2008072674.tif 000019
【国際調査報告】
2008072674.tif 000020
2008072674.tif 000021
2008072674.tif 000022
2008072674.tif 000023