(57)【特許請求の範囲】
【請求項１】
マルチ・プロセッサ構成のＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムにおいて、プロセスの休眠、起床、中断、再開のイベントが発生したとき、それぞれのイベントに対応したイベント・データを生成するイベント・トレーサと、
それぞれのイベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときのイベント発生時刻と、そのイベントを発生させた処理を実行する主体であるプロセスを示す情報とを含み、それぞれのイベント・データを含むデータをトレース・データとして記録するトレース・バッファと、
前記トレース・データを参照し、前記プロセスの休眠、起床、中断、再開のイベントにそれぞれ対応したイベント・データと、前記イベント発生時刻とに基づいて、実行される複数のプロセスに対して、起床するプロセスと起床されるプロセスの組合せ毎に、前記プロセス起床処理が実行される回数とプロセス中断時間の累計とを出力し、起床するプロセスと起床されるプロセスの間でプロセス起床処理が繰り返し実行され、共有資源の競合が発生している可能性を提示する解析部と
を具備する
ＩＴシステムの挙動測定・解析システム。
【請求項２】
前記解析部は、作業用として各プロセスに対して用意された中間データを記憶する記憶領域と、解析結果を格納するために休眠プロセスと起床プロセスの対で参照する結果データを記憶する記憶領域とを含み、
前記中間データは、前記プロセス中断処理によりプロセスが中断したときのイベント発生時刻として中断時刻を記録するための中断時刻記録領域と、Ｔｒｕｅ又はＦａｌｓｅに設定される休眠フラグとを含み、
前記結果データは、回数を記録するための回数記録領域と、時間累計を記録するための時間累計記録領域とを含む
請求項１に記載のＩＴシステムの挙動測定・解析システム。
【請求項３】
前記中間データ及び前記結果データにはそれぞれ、プロセス識別番号を軸として複数のデータ要素が並んでおり、
前記中間データには、自プロセスのプロセス識別番号をキーとする連想配列が存在し、
前記結果データには、起床対象となる起床対象プロセスをキーとする連想配列の各要素にプロセス起床処理の実行主体をキーとする連想配列が存在している
請求項２に記載のＩＴシステムの挙動測定・解析システム。
【請求項４】
前記解析部は、
プロセスａについて用意された中間データのフィールドｘ（休眠フラグ、中断時刻記録領域）を“中間データ［ａ］．ｘ”、と表記し、休眠プロセスがａであり起床プロセスがｂの時の結果データのフィールドｙ（時間累計記録領域、回数記録領域）を“結果データ［ａ］［ｂ］．ｙ”と表記する場合、
プロセス休眠イベントにおいて、中間データ［自プロセス］．休眠フラグをＴｒｕｅに設定する手段と、
プロセス中断イベントにおいて、中間データ［自プロセス］．中断時刻記録領域に現在時刻を設定する手段と、
プロセス起床イベントにおいて、プロセス起床処理の実行主体がプロセス、かつ、中間データ［起床対象プロセス］．休眠フラグがＴｒｕｅの場合、結果データ［起床対象プロセス］［自プロセス］．時間累計記録領域に記録された時間累計に、現在時刻−中間データ［起床対象プロセス］．中断時刻記録領域に記録された時刻を加え、結果データ［起床対象プロセス］［自プロセス］．回数記録領域に記録された回数に１を加える手段と、
プロセス再開イベントにおいて、中間データ［自プロセス］．休眠フラグをＦａｌｓｅに設定する手段と
を具備する
請求項３に記載のＩＴシステムの挙動測定・解析システム。
【請求項５】
前記イベント・トレーサは、トレース採取操作が入状態になってから切状態になるまで、前記イベント発生時刻に従って、順番に複数のイベント・データを前記トレース・データとして前記トレース・バッファに記録する
請求項１乃至４のいずれか一項に記載のＩＴシステムの挙動測定・解析システム。
【請求項６】
計算機により実施されるＩＴシステムの挙動測定・解析方法であって、
マルチ・プロセッサ構成のＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムにおいて、プロセスの休眠、起床、中断、再開のイベントが発生したとき、それぞれのイベントに対応したイベント・データを生成することと、
それぞれのイベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときのイベント発生時刻と、そのイベントを発生させた処理を実行する主体であるプロセスを示す情報とを含み、それぞれのイベント・データを含むデータをトレース・データとして記録することと、
前記トレース・データを参照し、前記プロセスの休眠、起床、中断、再開のイベントにそれぞれ対応したイベント・データと、前記イベント発生時刻とに基づいて、実行される複数のプロセスに対して、起床するプロセスと起床されるプロセスの組合せ毎に、前記プロセス起床処理が実行される回数とプロセス中断時間の累計とを出力し、起床するプロセスと起床されるプロセスの間でプロセス起床処理が繰り返し実行され、共有資源の競合が発生している可能性を提示することと
を含む
ＩＴシステムの挙動測定・解析方法。
【請求項７】
計算機により実施されるプログラムであって、
マルチ・プロセッサ構成のＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムにおいて、プロセスの休眠、起床、中断、再開のイベントが発生したとき、それぞれのイベントに対応したイベント・データを生成するステップと、
それぞれのイベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときのイベント発生時刻と、そのイベントを発生させた処理を実行する主体であるプロセスを示す情報とを含み、それぞれのイベント・データを計算機に実行させるためのデータをトレース・データとして記録するステップと、
前記トレース・データを参照し、前記プロセスの休眠、起床、中断、再開のイベントにそれぞれ対応したイベント・データと、前記イベント発生時刻とに基づいて、実行される複数のプロセスに対して、起床するプロセスと起床されるプロセスの組合せ毎に、前記プロセス起床処理が実行される回数とプロセス中断時間の累計とを出力し、起床するプロセスと起床されるプロセスの間でプロセス起床処理が繰り返し実行され、共有資源の競合が発生している可能性を提示するステップと
を計算機に実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムの挙動測定・解析システム、およびその方法に関する。
【背景技術】
【０００２】
近年のＩＴシステムの性能向上は、１プロセッサの性能向上よりも、１システムへの複数プロセッサ搭載（マルチ・プロセッサ化）に依るところが大きい。このようなマルチ・プロセッサ・システムは、複数の処理を複数のプロセッサで同時に処理させている。これにより、システムとしての性能向上を目論んでいる。しかし、マルチ・プロセッサ・システムでは、複数のプロセッサで実行されている複数の処理が、同時刻に共有資源の使用を必要とする場合がある。即ち、共有資源による競合（以下、共有資源競合とも称する）が発生する場合がある。共有資源競合が発生したとき、プロセッサの台数に見合った性能の向上が達成できない場合がある。このため、ＩＴシステムでプログラムを実行させたときの挙動を測定・解析する。そこで、共有資源競合が発生しているかどうかを調べ、更に競合が発生している場合には、どの部分で資源競合が発生しているかを調べる。これらを調べることは、ＩＴシステムの性能を向上させる上で重要な手がかりとなる。【０００３】
計算機の挙動を測定する手法としては、イベント・ドリブン手法とサンプリング手法に大別される。イベント・ドリブン手法とは、測定対象計算機によるプログラム実行に伴って内部で発生するイベント（プロセス切り換え、Ｉ／Ｏ処理の開始・終了、通信など）を契機として測定操作を行うものである。イベント・ドリブン方式の一種として、イベント・トレース手法と呼ばれるものがある。イベント・トレース手法とは、発生したイベントに関する情報を時系列データ（トレース・データ）として記録し、これを後から解析することで最終的な解析結果を得るものである。【０００４】
イベント・トレース手法とイベント・トレース手法以外のイベント・ドリブン方式の間には測定データ量、適用可能なアルゴリズムの種類、種々のアルゴリズムを繰り返し適用可能かどうか、といった点で大きな差があるが、解析結果を得るまでのメカニズムは両者とも同じと考えてよい。すなわち、測定対象システム内で発生するイベントおよびそれらのイベントに対応する解析処理を定めたアルゴリズムを測定対象システムに適用する、という点で共通している。異なるのはアルゴリズムを適用する時期（測定の結果得られるトレース・データに適用するのか、測定時に適用するのか）である。このため、これ以降はイベント・トレース手法を取り上げて説明する。【０００５】
イベント・トレース手法では、測定結果であるトレース・データから有意義な結果を得るためには、トレース・データを処理するアルゴリズムが必要となる。このアルゴリズムは、解析の目的に応じて種々のアルゴリズムが用意されているが、共有資源競合に関する解析を行うアルゴリズムはこれまで存在しなかった。【０００６】
一方、サンプリング手法は、一定の時間間隔で測定対象システムの状態を調べ、これを時間方向に集計することで、システムの挙動を大域的な視点で調べる。この方法は、長時間に亘るシステム動作の概要を把握する目的には適しているが、共有資源競合のような微視的な動作について測定・解析する目的には適していない。【０００７】
以上より、従来技術では、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源競合に関する挙動について測定・解析する手段が存在しなかった。【０００８】
監視・検査・分析に関連する技術について紹介する。【０００９】
特開昭６０−１１９４８号公報には、タスク状態遷移監視装置が記載されている。タスク状態遷移監視装置は、実時間並行処理部と、データ表示処理部と、を具備することを特徴としている。実時間並行処理部は、実時間並行処理プログラム内で定義されるタスクのタスク識別コード、タスク状態遷移の原因およびタスク状態遷移時の時刻を出力する機能をもった管理部を具備している。データ表示処理部は、管理部から出力された情報を入力としタスク識別コードをユーザ登録タスク名に変換し、ユーザ登録タスク名、並行処理プログラムの実行時刻、ユーザ登録タスク名と並行処理プログラムの実行時刻とを対応付けるタスク状態およびタスク状態遷移の原因をデータ表示部に表示させる。【００１０】
特開平５−３４６８６１号公報には、マルチタスキングソフトウェアの検査装置が記載されている。マルチタスキングソフトウェアの検査装置は、複数のタスクを有するマルチタスクプログラムをスケジューラにより並行的に実行させる切替制御動作を検査するものである。この検査装置は、検出部と、記憶部と、検査部と、出力部と、を具備したことを特徴としている。検出部は、スケジューラの切替制御による切替を検出する。記憶部は、検出部により検出された切替データを記憶する。検査部は、記憶部に記憶されている切替データと入力された切替制御に関する仕様データとを比較・照合してマルチタスクプログラムの実行動作が仕様を満足するか否かを検査する。出力部は、検出部の検出結果および検査部の検査結果を出力する。【００１１】
特開平４−７６６４０号公報には、オンライン中のタスク中断時間分析方式が記載されている。オンライン中のタスク中断時間分析方式は、走行状態のタスク処理の一時中断がタイムスライス／メモリフォールドなどによる割込みにより行われ、タスクのレディ状態への移行が割込み処理の終了後に行われ、また走行状態への復帰がタスクディスパッチャーにより行われるものである。このタスク中断時間分析方式は、オンライン処理性能測定中か否かを示す状態フラグと、測定対象のタスクＩＤを保持している計算部と、第１、第２及び第３の情報収集処理ルーチンを備えている。割込み解析ルーチンは、オンラインタスク走行中に割込みが発生した時、それが測定対象タスクでの割込みである場合は、当該タスクＩＤを設定し、割込み後の経過時間を表示するタイマを作動させると共に、第１の情報収集処理ルーチンを起動して、当該ルーチンにてタスクＩＤ、割込み発生時刻やタイムスライス／メモリフォールド等の割込み原因種別などの情報収集を行った後で、割込み実行ルーチンを起動し、それ以外の場合は割込み実行ルーチンを直接起動する。割込み実行ルーチンは、所定の割込み処理を終了した時点で、当該割込み発生元のタスクＩＤが設定されていて、上記タイマの値が予め定めた値を超えている場合、第２の情報収集処理ルーチンを起動して、タスクＩＤ、現在の時刻などを収集し、その後で、タスクディスパッチャーに制御を渡し、それ以外では、タスクディスパッチャーに直接に制御を渡す。タスクディスパッチャーは、タスクへのバッチ契機で、ディスパッチ先タスクのＩＤと割込み発生元のタスクＩＤが一致するか調べ、一致する場合、タイマの値が予め定めた値を超えていると、第３の情報収集処理ルーチンを呼び、ディスパッチ先タスクの実行優先度、タスクＩＤ、現在の時刻などを収集せしめ、更に、設定されている割込み発生元のタスクＩＤの初期化、上記タイマの停止を行った後で通常通りディスパッチを行い、それ以外では、単に通常通りディスパッチを行う、ことを特徴としている。
【発明の開示】
【００１２】
上述のように、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源競合に関する挙動について測定・解析する手段が存在しない。従って、本発明の課題は、ＩＴシステムにおいて、共有資源による競合が発生している可能性を提示することができる挙動測定・解析システムを提供することにある。
【００１３】
本発明のＩＴシステムの挙動測定・解析システムは、イベント・トレーサと、トレース・バッファと、解析部と、出力部と、を具備している。トレーサは、マルチ・プロセッサ構成のＩＴシステムにプロセス休眠イベント、プロセス起床イベント、プロセス中断イベント、プロセス再開イベントが発生したとき、それぞれ、休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データを生成する。休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときのイベント発生時刻と、それぞれプロセスを休眠、起床、中断、再開するためのプロセス休眠処理、プロセス起床処理、プロセス中断処理、プロセス再開処理を示す情報を含んでいる。トレース・バッファは、休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データを含むデータをトレース・データとして記録する。解析部は、トレース・データを参照し、プロセス中断処理と、プロセス中断処理により中断されるプロセスを起床するプロセス起床処理と、イベント発生時刻と、に基づいて、実行される複数のプロセスに対して、プロセス起床処理が実行される回数と、プロセス中断イベントからプロセス起床イベント、プロセス再開イベントまでの時間である第１時間とを累積する。出力部は、回数と第１時間とを含む第１解析結果を出力する。プロセス起床処理は、同時刻に共有資源を同時に使用してしまう可能性があり、共有資源競合に起因する。このため、第１解析結果により、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源による競合が発生している可能性を提示することができる。
【図面の簡単な説明】
【００１４】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００１５】
【図１】図１は、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの構成を示すブロック図である。
【図２】図２は、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの動作を示すフローチャート図である。
【図３】図３は、共有資源による競合が発生したときにプロセス起床処理が繰り返し実行されることについて具体的に説明するためのタイミング図である。
【図４】図４は、データ解析システム３０の解析部３１が使用する中間データの構造を示した図である。
【図５】図５は、データ解析システム３０の解析部３１が出力する結果データの構造を示した図である。
【図６】図６は、測定対象システム１０の動作を、測定対象イベントのみに着目して図示したタイミング図である。
【図７】図７は、測定対象システム１０から採取したトレース・データをダンプ表示した図である。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、本発明の実施形態によるＩＴシステムの挙動測定・解析システムについて詳細に説明する。【００１７】
図１は、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの構成を示している。この挙動測定・解析システムは、マルチ・プロセッサ構成のＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムの挙動を測定・解析するコンピュータであり、測定対象システム１０と、データ解析システム３０と、を具備している。【００１８】
測定対象システム１０は、ＩＴシステムに接続され、そのＩＴシステムを監視する。測定対象システム１０は、アプリケーション・プログラム１１、１２と、オペレーティング・システム（ＯＳ；Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１３と、イベント・トレーサ１４（以下、トレーサ１４）と、を備えている。【００１９】
トレーサ１４は、コンピュータプログラムが格納された記録媒体である格納部１６と、そのコンピュータプログラムを実行する実行部１５と、を備えている。実行部１５は、コンピュータ（測定対象システム１０）が起動するときなどに上記コンピュータプログラムを格納部１６から読み取って実行する。そのコンピュータプログラムは、制御部２１、プロセス休眠イベント記録部２２、プロセス起床イベント記録部２３、プロセス中断イベント記録部２４、プロセス再開イベント記録部２５、トレース・バッファ２６を含んでいる。制御部２１は、トレース採取操作の入切を制御する。プロセス休眠イベント記録部２２、プロセス起床イベント記録部２３、プロセス中断イベント記録部２４、プロセス再開イベント記録部２５は、それぞれ、プロセス休眠イベント、プロセス起床イベント、プロセス中断イベント、プロセス再開イベントをトレース・バッファ２６に記録する。【００２０】
測定対象システム１０は、通常のコンピュータと同様、ＯＳ１３の管理下でアプリケーション・プログラム１１、１２を実行する。その際、オペレータがトレーサ１４内の制御部２１を用いてトレース操作を入状態とする。このとき、上記プログラムの実行に伴ってＯＳ１３内のプロセス休眠処理、プロセス起床処理、プロセス中断処理、プロセス再開処理が実行される。これらの処理にそれぞれ対応するトレーサ１４内のプロセス休眠イベント記録部２２、プロセス起床イベント記録部２３、プロセス中断イベント記録部２４、プロセス再開イベント記録部２５が起動される。プロセス休眠処理、プロセス起床処理、プロセス中断処理、プロセス再開処理は、それぞれ、プロセスを休眠、起床、中断、再開するための処理を表している。【００２１】
ＩＴシステムにプロセス休眠イベント、プロセス起床イベント、プロセス中断イベント、プロセス再開イベントが発生したものとする。この場合、トレーサ１４は、以下に示す測定処理を実行する。【００２２】
測定処理において、プロセス休眠イベント記録部２２、プロセス起床イベント記録部２３、プロセス中断イベント記録部２４、プロセス再開イベント記録部２５は、それぞれ、休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データを生成してトレース・バッファ２６に記録する。ここで、休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときの時刻（イベント発生時刻）と、それぞれプロセス休眠処理、プロセス起床処理、プロセス中断処理、プロセス再開処理の実行主体を示す情報を含んでいる。また、起床イベント・データは、更に、起床対象となる起床対象プロセスを示す情報を含んでいる。【００２３】
その結果、トレース・バッファ２６には、例えばイベント発生時刻に従って、１番目から最終番目まで順番に複数のイベント・データ（休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データ）がトレース・データとして記録される。このトレース・データの採取は、オペレータがトレーサ１４内の制御部２１を用いてトレース操作を切状態とすることで終了する。【００２４】
データ解析システム３０は、測定対象システム１０に接続されている。データ解析システム３０は、コンピュータプログラムが格納された記録媒体である格納部３４と、そのコンピュータプログラムを実行する実行部３３と、を備えている。実行部３３は、コンピュータ（データ解析システム３０）が起動するときなどに上記コンピュータプログラムを格納部３４から読み取って実行する。そのコンピュータプログラムは、解析部３１と、出力部３２と、を含んでいる。【００２５】
トレース・データの採取が終了した場合、解析部３１は、以下に示す解析処理を実行する。【００２６】
解析処理において、解析部３１は、トレース・バッファ２６に記録されたトレース・データを参照する、又は、読み出す。このとき、解析部３１は、プロセス中断処理と、プロセス中断処理により中断されるプロセスを起床するプロセス起床処理と、イベント発生時刻と、に基づいて、実行される複数のプロセスに対して、プロセス起床処理が実行される回数と、プロセス中断イベントからプロセス起床イベントもしくはプロセス再開イベントまでの時間（以下、時間帯、時間累計、第１時間とも称する）とを累積する。解析部３１は、上記回数と上記第１時間とを含む解析結果（以下、第１解析結果とも称する）を生成し、出力部３２は、第１解析結果を出力する。【００２７】
また、解析処理において、解析部３１は、トレース・データを参照又は読み出したときに、プロセス休眠処理と、プロセス休眠処理により休眠状態のプロセスを起床するプロセス起床処理と、イベント発生時刻と、に基づいて、実行される複数のプロセスに対して、プロセス起床処理が実行される回数と、プロセス休眠イベントからプロセス起床イベントもしくはプロセス再開イベントまでの時間（以下、時間帯、時間累計、第２時間とも称する）とを累積する。解析部３１は、上記回数と上記第２時間とを含む解析結果（以下、第２解析結果とも称する）を生成し、出力部３２は、第２解析結果を出力する。【００２８】
このように、本発明の実施形態によるＩＴシステムの挙動測定・解析システムによれば、上記の解析結果を生成して出力する。共有資源による競合が発生すると、関係するプロセスの間でプロセス起床処理が繰り返し実行される。このため、解析結果により、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源による競合が発生している可能性を提示することができる。【００２９】
図２は、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの動作を示すフローチャート図である。【００３０】
まず、測定対象システム１０は、上述の測定処理を実行する（ステップｓ０）。【００３１】
次に、データ解析システム３０は、上述の解析処理を実行する。ここで、解析処理の流れを簡単に説明する。最初に、データ読み込み位置をトレース・データの先頭に設定する（ステップｓ１）。次に、データ読み込み位置から１イベント分のイベント・データを読み込む（ステップｓ２）。次に、そのイベント・データに含まれる情報により、イベントの種類を判別する（ステップｓ３）。判別の結果、その種類がプロセス休眠イベントの場合はプロセス休眠イベントの処理を実行する（ステップｓ４−１）。判別の結果、その種類がプロセス中断イベントの場合はプロセス中断イベントの処理を実行する（ステップｓ４−２）。判別の結果、その種類がプロセス起床イベントの場合はプロセス起床イベントの処理を実行する（ステップｓ４−３）。判別の結果、その種類がプロセス再開イベントの場合はプロセス再開イベントの処理（ステップｓ４−４）を実行する。その後、データ読み込み位置がトレース・データの最後かどうか、つまり、トレース・データの最後まで処理したかどうかを調べる（ステップｓ５）。まだ処理すべきトレース・データが残っている場合はデータ読み込み位置を次のイベント・データに移動させて（ステップｓ６）、解析を継続する。ステップｓ５において、トレース・データの最後まで処理したと判定された場合は、この処理によって得られた解析結果を出力部３２に渡して（ステップｓ７）、解析処理を終了する。【００３２】
［具体例］
次に、具体的な例を用いて、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの動作を説明する。【００３３】
まず、図３を用いて、共有資源による競合が発生したときにプロセス起床処理が繰り返し実行されることについて具体的に説明する。【００３４】
ここでは、プロセスａ、ｂ、ｃが各々ＣＰＵ１、２、３を使い、１つの共有資源について競合しながら処理を進めている、という状況である。図において、「休眠」はプロセス休眠イベントを表している。「起床」はプロセス起床イベントを表している。「中断」はプロセス中断イベントを表している。「再開」はプロセス再開イベントを表している。「要求」は共有資源使用の要求を表している。「獲得」は共有資源の獲得（使用開始）を表している。「解放」は共有資源の解放（使用終了）を表している。【００３５】
最初に、プロセスａが共有資源の使用を開始した後、プロセスｂおよびｃがその共有資源の使用要求を行っている。この場合、プロセスｂおよびｃによる共有資源の使用要求は、プロセスａが既に共有資源を使用しているため、受理されない。その結果、プロセスｂおよびｃはプロセス休眠処理を行った後、実行を中断する。その後、プロセスａが共有資源の使用を終了すると、休眠状態にあるプロセスから１つ（例ではプロセスｂ）を選んでプロセス起床処理を行う。その結果、プロセスｂは実行を再開し、共有資源を使用しての処理を行う。次に、プロセスａが共有資源の使用要求を行うが、このときはプロセスｂが共有資源を使用しているため、プロセスａはプロセス休眠処理を行った後、実行を中断する。その後、プロセスｂが共有資源の使用を終了すると、休眠状態にあるプロセスから１つ（例ではプロセスｃ）を選んでプロセス起床処理を行う。プロセスｃが共有資源の使用を終了した際は、プロセスａを起床する。このように、共有資源による競合が発生すると、関係するプロセスの間でプロセス起床処理が繰り返し実行されることになる。【００３６】
次に、図２、図４〜図７を用いて、データ解析システム３０の解析部３１の動作（解析処理）を詳細に説明する。【００３７】
この解析処理では、データ解析システム３０の格納部は、コンピュータプログラムを記憶する記録領域の他に、作業用として各プロセスに対して用意された中間データを記憶する記憶領域と、解析結果を格納するために休眠プロセスと起床プロセスの対で参照する結果データを記憶する記憶領域を含んでいる。図４は、解析部３１が使用する中間データの構造を示した図であり、図５は、解析部３１が出力する結果データの構造を示した図である。図４、図５において、プロセス識別番号を軸として複数のデータ要素（中間データ、結果データ）が並んでいるのは、プロセス識別番号をキーとする連想配列を表している。図５では、起床対象プロセスをキーとする連想配列の各要素にプロセス起床処理の実行主体をキーとする連想配列が存在している。中間データは、プロセス中断イベント（プロセス中断処理）によりプロセスが中断したときのイベント発生時刻として中断時刻を記録するための中断時刻記録領域と、Ｔｒｕｅ又はＦａｌｓｅに設定される休眠フラグと、を含んでいる。結果データは、回数を記録するための回数記録領域と、時間累計（時間帯）を記録するための時間累計記録領域と、を含んでいる。以降、例えばプロセスａについて用意された中間データのフィールドｘ（休眠フラグ、中断時刻記録領域）を‘中間データ［ａ］．ｘ’、と表記し、休眠プロセスがａであり起床プロセスがｂについて結果データのフィールドｙ（時間累計記録領域、回数記録領域）を‘結果データ［ａ］［ｂ］．ｙ’と表記する。【００３８】
上記の記法を用いて図２のステップｓ４−１からｓ４−４で行う処理、すなわち中間データ（以下、作業データ）および結果データに対する操作を以下に示す。【００３９】
・プロセス休眠イベント（ステップｓ４−１）において、作業データ［自プロセス］．休眠フラグをＴｒｕｅに設定する。【００４０】
・プロセス中断イベント（ステップｓ４−２）において、作業データ［自プロセス］．中断時刻記録領域に現在時刻（イベント・データに記録されたイベント発生時刻、以下同様）を設定する。【００４１】
・プロセス起床イベント（ステップｓ４−３）において、プロセス起床処理の実行主体がプロセス、かつ、作業データ［起床対象プロセス］．休眠フラグがＴｒｕｅの場合、以下を実行する。結果データ［起床対象プロセス］［自プロセス］．時間累計記録領域に記録された時間累計に、現在時刻−作業データ［起床対象プロセス］．中断時刻記録領域に記録された時刻を加える。また、結果データ［起床対象プロセス］［自プロセス］．回数記録領域に記録された回数に１を加える。【００４２】
・プロセス再開イベント（ステップｓ４−４）において、作業データ［自プロセス］．休眠フラグをＦａｌｓｅに設定する。【００４３】
図６は、図３に示した動作（測定対象システム１０の動作）を、測定対象イベントであるプロセス休眠、起床、中断、再開イベントのみに着目してタイミング図表示したものである。また、図７は、測定対象システム１０から採取したトレース・データをダンプ表示したものである。このトレース・データを、上記のステップｓ４−１〜ｓ４−４を実装した解析部３１に入力すると、下記の結果が得られる。【００４４】
結果データ［ａ］［ｃ］．時間累計記録領域に記録された時間累計（時間帯）＝時刻“１２”−時刻“８”、
結果データ［ａ］［ｃ］．回数記録領域に記録された回数＝１【００４５】
結果データ［ｂ］［ａ］．時間累計記録領域に記録された時間累計（時間帯）＝時刻“６”−時刻“２”、
結果データ［ａ］［ｃ］．回数記録領域に記録された回数＝１【００４６】
結果データ［ｃ］［ｂ］．時間累計記録領域に記録された時間累計（時間帯）＝時刻“１０”−時刻“４”、
結果データ［ａ］［ｃ］．回数記録領域に記録された回数＝１【００４７】
この結果より、プロセスａがｂを起床し、プロセスｂがｃを起床し、プロセスｃがａを起床していることが判明するので、出力部３２では、プロセスａ、ｂ、ｃの間で共有資源の競合が発生している可能性が高い、という結果を出力する。【００４８】
次に、本発明の実施形態によるＩＴシステムの挙動測定・解析システムの効果について説明する。【００４９】
トレーサ１４は、ＩＴシステムにプロセス休眠イベント、プロセス起床イベント、プロセス中断イベント、プロセス再開イベントが発生した場合、それぞれ、休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データを生成し、それらのイベント・データをトレース・データとしてトレース・バッファ２６に記録する。休眠イベント・データ、起床イベント・データ、中断イベント・データ、再開イベント・データは、そのイベントの種類を示す情報と、そのイベントが発生したときのイベント発生時刻と、それぞれプロセスを休眠、起床、中断、再開するためのプロセス休眠処理、プロセス起床処理、プロセス中断処理、プロセス再開処理を実行する実行主体を示す情報を含んでいる。ここで、起床イベント・データは、更に、起床対象となる起床対象プロセスを示す情報を含んでいる。解析部３１は、トレース・データを参照又は入力する。このとき、解析部３１は、プロセス中断処理と、プロセス中断処理により中断されるプロセスを起床するプロセス起床処理と、イベント発生時刻と、に基づいて、実行される複数のプロセスに対して、プロセス起床処理が実行される回数と、プロセス中断イベントからプロセス起床イベントもしくはプロセス再開イベントまでの時間（時間帯、時間累計、第１時間）とを累積する。解析部３１は、上記回数と上記第１時間とを含む解析結果（第１解析結果）を生成し、この第１解析結果は出力部３２から出力される。このように、本発明の実施形態によるＩＴシステムの挙動測定・解析システムによれば、上記の第１解析結果を生成して出力する。共有資源による競合が発生すると、関係するプロセスの間でプロセス起床処理が繰り返し実行される。このため、第１解析結果により、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源による競合が発生している可能性を提示することができる。【００５０】
また、解析部３１は、トレース・データを参照又は入力したときに、プロセス休眠処理と、プロセス休眠処理により休眠状態のプロセスを起床するプロセス起床処理と、イベント発生時刻と、に基づいて、実行される複数のプロセスに対して、プロセス起床処理が実行される回数と、プロセス休眠イベントからプロセス起床イベントもしくはプロセス再開イベントまでの時間（時間帯、時間累計、第２時間）とを累積する。解析部３１は、上記回数と上記第２時間とを含む解析結果（第２解析結果）を生成し、この第２解析結果は出力部３２から出力される。この場合でも、本発明の実施形態によるＩＴシステムの挙動測定・解析システムによれば、上記の第２解析結果を生成して出力する。共有資源による競合が発生すると、関係するプロセスの間でプロセス起床処理が繰り返し実行される。このため、第２解析結果により、マルチ・プロセッサ構成のＩＴシステムにおいて、共有資源による競合が発生している可能性を提示することができる。【００５１】
なお、本実施形態では、プロセス休眠イベントをトレース対象イベントに含むトレーサ１４を使用したが、これに限定されない。他の実施形態として、プロセス中断イベントで採取する情報に、中断するプロセスの状態を示す情報、すなわち、中断するプロセスが休眠状態であるかどうかを示す情報（プロセス状態情報、とする）を含むイベント・データを出力するトレーサ１４を使用することも可能である。すなわち、プロセス中断イベントに含まれるプロセス状態情報が休眠状態を示しているときには、そのプロセス中断イベントは、同時刻でプロセス休眠イベントとプロセス中断イベントが順に発生したものと解釈して図２に示すアルゴリズムを適用すればよい。【００５２】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００５３】
この出願は、２００８年２月２２日に出願された特許出願番号２００８−０４０９７７号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
【図１】
0005440935.tif 000002
【図２】
0005440935.tif 000003
【図３】
0005440935.tif 000004
【図４】
0005440935.tif 000005
【図５】
0005440935.tif 000006
【図６】
0005440935.tif 000007
【図７】
0005440935.tif 000008