(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵを有するコンピュータに、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成手順、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知手順、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成されるプログラムであるかを判定する判定手順、
を実行させるためのプログラム状態検知プログラム。
【請求項２】
前記判定手順は、切替え先の識別情報が前記リストに存在しない場合、新たに生成されたアプリケーションプログラムと判断し、前記切替え先の識別情報を前記リストに追加して、ロギングデータを記録する、
請求項１記載のプログラム状態検知プログラム。
【請求項３】
前記判定手順は、切替え先の識別情報が前記リストに存在する場合、前記オペレーティングシステムからアプリケーションプログラムの第２の識別情報の一覧を取得し、
切替え元の識別情報が取得した第２の識別情報の一覧に存在する場合、切替え元の識別情報に係るアプリケーションプログラムが現存すると判断し、ロギングデータを記録せず、
切替え元の識別情報が取得した第２の識別情報の一覧に存在しない場合、切替え元の識別情報に係るアプリケーションプログラムが消滅したと判断し、前記リストから削除し、ロギングデータを記録する、
請求項１または２記載のプログラム状態検知プログラム。
【請求項４】
アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵと、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成部と、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知部と、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成されるプログラムであるかを判定する判定部と、
を有する情報処理装置。
【請求項５】
アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵを有するコンピュータが、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成手順、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知手順、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成されるプログラムであるかを判定する判定手順、
を実行するプログラム状態検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で稼動しているプロセスの状態を検知する技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、システム全体の動作分析、あるいは不正なプログラム(スレッドおよびプロセス)の実行を監視するために、プログラムの生成、消滅をロギングすることが行われている。
【０００３】
昨今のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の多くは、クロック数、実行命令数、キャッシュミス数などＣＰＵ内部のイベントおよび外部とのやり取りのイベントをカウントする機構である性能モニタリングカウンタを有している。また、これらの性能モニタリングカウンタは、指定されたイベントを検知した際に、特定のあるいは指定されたベクタに割り込みを発生させる機能を有し、イベント発生時の付随情報を採取することを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２５７４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ターゲットコンピュータでのプログラムの生成、消滅の監視を行うために、従来は以下のような手法を取っている。
（１）ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）内部を改変し、プログラムの生成、消滅のログを採取できるようにする。あるいは、このロギングを外部プログラムで行えるようにするためのインタフェースを、ＯＳを改変することでＯＳ内部に設ける。
（２）１ｍｓ毎のタイマー割り込みなど、一定間隔でプログラムの監視を行うことで、新たに生成あるいは消滅したプログラムを検出する。
【０００６】
上記（１）の手法では、ＯＳ自体の改変が必要となるが、商用ＯＳを使用する場合は改変を行うことに制約があることが多い。また、ＯＳを改変する場合でも、ＯＳ自身が有する機能によって制限がある場合が多い。上記（２）の手法では、一定間隔での監視となるため、その間隔内で生成し、消滅するプログラムを捕捉することができない。また、このように短期間で生成、消滅するプログラムを捕捉するために監視間隔を短くした場合、監視処理のオーバヘッドが大きくなり、システム動作そのものに影響を及ぼす問題がある。
【０００７】
開示する技術は上述した問題点を解決するためになされたものであり、多くの商用ＣＰＵが有している性能モニタリングカウンタを使用することで、コンピュータシステム上でのプログラムの生成、消滅の情報を採取することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
プログラム状態検知プログラムは、アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、無効化があると割り込みを発生させる機構を持つＣＰＵを有するコンピュータに、アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成手順、アプリケーションプログラムの切替えが生じた場合に発生する、ＣＰＵからの割り込みを検知する検知手順、割り込みが検知されると、オペレーティングシステムまたは機構から切替え先のアプリケーションプログラムの識別情報を取得し、リストと取得した識別情報を比較して、切替え先のプログラムが生成または消滅されるプログラムであるかを判定する判定手順、を実行させる。
【発明の効果】
【０００９】
ＯＳを改変する、あるいは監視精度やオーバヘッドによる影響を考慮することなくプログラムの生成、消滅の状態を判定することができ、これによりプログラムの生成、消滅のログを正確に採取することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態に係るプログラム状態検知装置のハードウェア構成の一例を示す図である。
【図２】本実施の形態に係るプログラム状態検知装置の階層の一例、および機能ブロックの一例を示す図である。
【図３】ページング方式での管理およびＣＰＵ内で保持されているページテーブルレジスタ、ＴＬＢ（ＴＲＡＮＳＬＡＴＩＯＮ  ＬＯＯＫＡＳＩＤＥ  ＢＵＦＦＥＲＳ）を説明する模式図である。
【図４】本実施の形態に係るプログラム状態検知装置の動作の一例を示すフローチャートである。
【図５】本実施の形態に係る、プロセスの識別情報の一覧を例示する図である。
【図６】本実施の形態に係る性能モニタリングカウンタの設定例を説明する図である。
【図７】本実施の形態に係るロギングデータの一例を示す図である。
【図８】本実施の形態に係るプログラム状態検知装置に適用可能なコンピュータシステムのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
本実施の形態について説明する。以降の説明では、ロギングする対象をプロセスとするが、本実施の形態は、スレッドやタスクに対しても適用可能である。
【００１２】
図１は、本実施の形態に係るプログラム状態検知装置のハードウェアの構成を示す模式図である。プログラム状態検知装置１００（情報処理装置）は、ＣＰＵ（Central Processing Unit）４０、メモリ５０、ディスクドライブ６０、入出力部７０、Ｉ／Ｏ部８０、不揮発性記憶部９０を有する。
【００１３】
ＣＰＵ４０は、不揮発性記憶部９０に予め導入されているプログラムに基づき演算処理を実行し、またプログラム状態検知装置１００内の機器を制御する中央演算処理部である。またＣＰＵ４０は、性能モニタリングカウンタ４１を有する。性能モニタリングカウンタ４１は、計測イベントとして、ＯＳ３０（後述）がプロセスの切替えの際に行うＴＬＢエントリ無効化を計測することができる。また性能モニタリングカウンタ４１は、イベントの任意回数毎に割り込み通知を発生させる機能を持つ。
【００１４】
メモリ５０は、不揮発性記憶部９０に予め導入されたプログラムが展開され、またＣＰＵ４０の演算処理に必要なデータを記憶する揮発性の記憶部である。
【００１５】
ディスクドライブ６０は、可搬型記録媒体からデータを読み書きする。入出力部７０は、キーボード、マウス等、ユーザからプログラム状態検知装置１００に対するデータの入力を受付け、また、モニタ、プリンタ等のＣＰＵ４０による処理結果をユーザに表示するユニットである。Ｉ／Ｏ部８０は、外部の機器との通信を制御する。不揮発性記憶部９０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ等、電源が切断された場合でもデータが消えないように、データを不揮発性に記憶するユニットである。
【００１６】
図２に、本実施の形態に係るプログラム状態検知装置１００の階層および機能ブロックの一例を示す。プログラム状態検知装置１００は、アプリケーション・プログラム１０、プログラムロギングプログラム２０（プログラム状態検知プログラム）、ＯＳ３０の各プログラムを有する。
【００１７】
アプリケーション・プログラム１０は、プログラムロギングプログラム２０にロギングの開始指示を行い、またプログラムロギングプログラム２０からロギングデータ２７を取得し、入出力部７０にロギングデータ２７を表示する上位プログラムである。ＯＳ３０は、デバイスドライバを組み込むことが可能なＯＳであり、またページング方式で記憶領域の管理を行うことが可能なＯＳである。
【００１８】
プログラムロギングプログラム２０はデバイスドライバであり、プログラムロギングプログラム２０と、ＣＰＵ４０、メモリ５０等、図１で示したハードウェア資源とが協働することで、設定部２１、ＰＩＤリスト作成部２２、検知部２４、プロセス判定部２５が実現される。次に、設定部２１、ＰＩＤリスト作成部２２、検知部２４、プロセス判定部２５について説明する。
【００１９】
設定部２１は、いずれのイベントが生じた場合に割り込み通知を行うかが定義された設定ファイルに基づいて、その内容を性能モニタリングカウンタ４１に設定する。なお、本実施の形態において、設定ファイルには、ＴＬＢ無効化のイベントが１回発生するごとに割り込みを通知することが定義されているものとする。
【００２０】
ＰＩＤリスト作成部２２は、現在稼動しているプロセスの識別情報（ＰＩＤ）の一覧をＯＳ３０より取得し、ＰＩＤリスト２６を作成する。
【００２１】
検知部２４は、プロセスの切替えが生じた場合に発生する、性能モニタリングカウンタ４１からの割り込み通知を検知する。
【００２２】
プロセス判定部２５は、検知部２４によって割り込み通知が検知された場合、切替え前後のプロセスのＰＩＤを取得し、切替え前後のプロセスが生成または消滅したかどうかを判定する。この判定は、ＰＩＤリスト２６またはＯＳ３０から取得されるＰＩＤの一覧と、取得した切替え前後のプロセスのＰＩＤとの比較によりなされる。また、プロセス判定部２５は、プロセスの生成または消滅が生じた場合に、ロギングデータ２７にいずれのプロセスが生成または消滅したかを出力する。さらに、プロセス判定部２５は、生成されたプロセスがある場合、そのプロセスのＰＩＤをＰＩＤリスト２６に追加し、消滅したプロセスがある場合、そのプロセスのＰＩＤをＰＩＤリスト２６から削除する。
【００２３】
プログラムロギングプログラム２０はデバイスドライバであるため、ＯＳ３０のプログラムコードを直接改変することなく、動的にＯＳ３０に組み込まれる。
【００２４】
次に、プログラムの生成、消滅、およびプログラムの切替え時の動作について説明する。
【００２５】
ＯＳ３０は、起動するプロセスをＣＰＵ４０上に割当てるために、また終了するプロセスをＣＰＵ上から解放するために、現在ＣＰＵ４０で処理しているプロセスの切替え処理を行う。
【００２６】
ＯＳ３０は、プロセスを生成する際に、生成するプロセス用のメモリやファイルなどの資源を割当てるための管理情報を、メモリ５０の管理用領域に作成し、メモリ５０上に新たなプログラム空間の作成を行う。また、ＯＳ３０は、生成したメモリ５０上のプログラム空間に、プログラムイメージをロードする。この際に、引数などの情報もプログラム空間にコピーされる。
【００２７】
ＯＳ３０は、現在実行中のプロセスから新たに生成されたプロセスに切替える処理を行い、生成されたプロセスを、プログラムイメージの開始アドレスから実行する。また、プロセスが終了する際、ＯＳ３０は使用していたプログラム空間や管理情報が使用している資源を解放し、他のプロセスへ切替えを行う。
【００２８】
また、ＯＳ３０はプロセスの切替えを行う際に、ＣＰＵ４０内のレジスタの値などの設定値や現在動作しているプロセスのＯＳ内固有情報を、次に動作するプロセスの値に変更する。
【００２９】
図３を参照しつつ、ページング方式による記憶領域の管理について説明する。ＯＳ３０は、図３に示すようにプロセス毎に仮想アドレス（論理ページ番号）と物理アドレス（物理ページ番号）の変換のためのテーブルであるページテーブル５１をメモリ５０内に用意する。ＯＳ３０は、プロセスの切替えの際に、ＣＰＵ４０内のページテーブルレジスタ４３に保持されているアドレスであって、現在実行しているプロセスに対応するページテーブルのアドレスを、次に実行するプロセスに対応したページテーブルのアドレスへ切り換える。さらにＯＳ３０は、ＣＰＵ４０内でページテーブルのためのキャッシュとして機能しているＴＬＢ４２のエントリを無効化する。
【００３０】
設定部２１は、ＯＳ３０がプロセスの切替えを行う時になされるＴＬＢエントリの無効化を性能モニタリングカウンタ４１が検出するよう設定する。また、このように設定された性能モニタリングカウンタ４１は、プロセスの切替えが発生する毎に割り込みを通知する。検知部２４は、この割り込み通知を取得することプロセスの切替えがあったことを検知し、プロセス判定部２５は、プログラムの生成、消滅の判定処理を行う。
【００３１】
次に、プログラム状態検知装置１００の動作について、図４のフローチャートを参照しつつ説明する。
【００３２】
プロセスロギングプログラム２０は、アプリケーション・プログラム１０からロギングの開始指示を取得する（Ｓ１）。開始指示を受けたプログラムロギングプログラム２０のＰＩＤリスト作成部２２は、現在稼動している全てのプロセスのＰＩＤをＯＳ３０から取得し、図５で示すＰＩＤリスト２６をメモリ５０に作成する（Ｓ２）。
【００３３】
アプリケーション・プログラム１０のロギングの開始指示によって、設定部２１は、性能モニタリングカウンタ４１に対し、複数あるカウンタからＴＬＢエントリ無効化のイベントをカウントするように設定することで、ロギングを開始する（Ｓ３）。図６に、性能モニタリングカウンタ４１の設定内容について示す。設定部２１は、ＴＬＢエントリ無効化（ＴＬＢ  Ｆｌａｓｈ）のイベントが１回発生する毎に割り込みを発生させるように設定し、割り込みを有効化（割り込みｏｎ）にする。このように性能モニタリングカウンタ４１が設定されることで、プロセスの切替えが発生する毎に割り込み通知がなされる。
【００３４】
プロセスの切替えが発生した場合（Ｓ４、Ｙｅｓ）、検知部２４は、性能モニタリングカウンタ４１からの割り込み通知を検知する（Ｓ５）。尚、プログラムロギングプログラム２０は、プロセスの切替えが発生するまで待機状態となる（Ｓ４、Ｎｏによるループ）。
【００３５】
プロセス判定部２５は、切替え前（切替え元）と切替え後（切替え先）の２つのプロセスのＰＩＤを取得する（Ｓ６）。切替え前後のプロセスのＰＩＤは、性能モニタリングカウンタ４１がＰＩＤを管理している場合は性能モニタリングカウンタ４１から取得され、ＯＳ３０がＰＩＤを管理している場合はＯＳ３０から取得される。
【００３６】
プロセス判定部２５は、ＰＩＤリスト２６に切替え後のプロセスのＰＩＤが存在するかを判定する（Ｓ７）。切替え後のプロセスのＰＩＤがＰＩＤリスト２６に存在しなければ（Ｓ７、Ｎｏ）、プロセス判定部２５は、そのプロセスは新たに生成されたプロセスであるとして、ＰＩＤリスト２６にそのプロセスのＰＩＤを追加する（Ｓ８）。プロセス判定部２５は、図７で示すようなプロセス名、引数、生成された時刻情報などの付随情報をロギングデータ２７に記録する（Ｓ９）。その後、処理はステップＳ４へ戻る。
【００３７】
切替え後のプロセスのＰＩＤがＰＩＤリスト２６に存在する場合（Ｓ７、Ｙｅｓ）、プロセス判定部２５は、切替え前のプロセスのＰＩＤが現存するかを、ＯＳ３０から現在稼動しているプロセスのＰＩＤ一覧（第２の識別情報の一覧）を取得することで判定する（Ｓ１０）。切替え前のプロセスのＰＩＤが現存しない場合（Ｓ１０、Ｎｏ）、プロセス判定部２５は、切替え前のプロセスは消滅したプロセスであるとしてＰＩＤリスト２６から切替え前のプロセスのＰＩＤを削除し（Ｓ１１）、消滅した時刻情報などの付随情報をロギングデータ２７に記録する（Ｓ１２）。その後、処理はステップＳ４へ戻る。
【００３８】
本実施の形態では、切替え前のプロセスが消滅しているかどうかの判定がなされた後に、切替え前のプロセスのＰＩＤをＰＩＤリスト２６から削除するため、その判定時には、ＰＩＤリスト２６内には未だ切替え前のプロセスのＰＩＤがエントリされたままとなる。よって、本実施の形態では、ステップＳ１０での切替え前のプロセスが消滅しているかの判定ではＰＩＤリスト２６を用いず、ＯＳからＰＩＤの一覧を取得する。
【００３９】
切替え前のプロセスのＰＩＤが現存する場合（Ｓ１０、Ｙｅｓ）、切替え前後のプロセスのＰＩＤが共に現存していることとなるため、プロセス判定部２５は、今回のプロセスの切替えはプロセスの生成、消滅を伴わない通常の切替え処理であると判定し、ロギングを行わずにステップＳ４へ戻る。
【００４０】
プログラムロギングプログラム２０は、アプリケーション・プログラム１０からの要求に応じて、ロギングデータ２７を出力する。また、図４で示した処理は、終了指示をユーザやアプリケーションから取得することで終了する。
【００４１】
本実施の形態によって、従来ではＯＳに手を加えたり、あるいは監視精度やオーバヘッドによる影響を考慮したりしなければ採取できなかったプログラムの生成、消滅のロギングを正確に採取できるようになる。
【００４２】
また、性能モニタリングカウンタは現存するＣＰＵが通常有しており、ＴＬＢエントリ無効化イベントも現存する多くのＣＰＵで計測可能である。このため、現存する多くのコンピュータで、ハードウェアやＯＳに対し一切変更することなく本実施の形態による手法を実現できるため、本実施の形態は適用範囲が広い。
【００４３】
本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図８は、本発明が適用されるコンピュータシステムの一例を示す図である。図８に示すコンピュータシステム９２０は、ＣＰＵやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９２０に種々の情報を入力するためのキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。
【００４４】
上述したような、プロセス状態検知装置を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、プロセス状態検知プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、プロセス状態検知装置を構成するコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９２０に少なくともプロセス状態検知機能を持たせるプロセス状態検知プログラム（プロセス状態検知ソフトウェア）は、コンピュータシステム９２０に入力されてコンパイルされる。このプログラムは、コンピュータシステム９２０をプロセス状態検知機能を有するプロセス状態検知装置として動作させる。また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９２０により読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ディスク９１０やフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置９０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００４５】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵを有するコンピュータに、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成手順、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知手順、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成または消滅されるプログラムであるかを判定する判定手順、
を実行させるためのプログラム状態検知プログラム。
（付記２）  前記判定手順は、切替え先の識別情報が前記リストに存在しない場合、新たに生成されたアプリケーションプログラムと判断し、前記切替え先の識別情報を前記リストに追加して、ロギングデータを記録する、
付記１記載のプログラム状態検知プログラム。
（付記３）  前記判定手順は、切替え先の識別情報が前記リストに存在する場合、前記オペレーティングシステムからアプリケーションプログラムの第２の識別情報の一覧を取得し、
切替え元の識別情報が取得した第２の識別情報の一覧に存在する場合、切替え元の識別情報に係るアプリケーションプログラムが現存すると判断し、前記ロギングデータを記録せず、
切替え元の識別情報が取得した第２の識別情報の一覧に存在しない場合、切替え元の識別情報に係るアプリケーションプログラムが消滅したと判断し、前記リストから削除し、ロギングデータを記録する、
付記１記載のプログラム状態検知プログラム。
（付記４）  アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵと、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成部と、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知部と、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成または消滅されるプログラムであるかを判定する判定部と、
を有する情報処理装置。
（付記５）  前記判定部は、切替え先の識別情報が前記リストに存在しない場合、新たに生成されたアプリケーションプログラムと判断し、前記切替え先の識別情報を前記リストに追加して、ロギングデータを記録する、
付記４記載の情報処理装置。
（付記６）  前記判定部は、切替え先の識別情報が前記リストに存在する場合、前記オペレーティングシステムからアプリケーションプログラムの第２の識別情報の一覧を取得し、
切替え元の識別情報が取得した第２の識別情報の一覧に存在する場合、切替え元の識別情報に係るアプリケーションプログラムが現存すると判断し、前記ロギングデータを記録せず、
切替え元の識別情報が取得した第２の識別情報の一覧に存在しない場合、切替え元の識別情報に係るアプリケーションプログラムが消滅したと判断し、前記リストから削除し、ロギングデータを記録する、
付記４記載の情報処理装置。
（付記７）  アプリケーションプログラムの切替えの際にオペレーティングシステムがトランスレーション・ルックアサイド・バッファの無効化を計測でき、前記無効化があると割り込みを発生させる機構を持つＣＰＵを有するコンピュータが、
アプリケーションプログラムの識別情報をオペレーティングシステムから取得してリストに記憶する作成手順、
アプリケーションプログラムの切替えが生じた場合に発生する、前記ＣＰＵからの割り込みを検知する検知手順、
割り込みが検知されると、前記オペレーティングシステムまたは前記機構から切替え先のアプリケーションプログラムの識別情報を取得し、前記リストと取得した識別情報を比較して、切替え先のプログラムが生成または消滅されるプログラムであるかを判定する判定手順、
を実行するプログラム状態検知方法。
（付記８）  前記判定手順は、切替え先の識別情報が前記リストに存在しない場合、新たに生成されたアプリケーションプログラムと判断し、前記切替え先の識別情報を前記リストに追加して、ロギングデータを記録する、
付記７記載のプログラム状態検知方法。
（付記９）  前記判定手順は、切替え先の識別情報が前記リストに存在する場合、前記オペレーティングシステムからアプリケーションプログラムの第２の識別情報の一覧を取得し、
切替え元の識別情報が取得した第２の識別情報の一覧に存在する場合、切替え元の識別情報に係るアプリケーションプログラムが現存すると判断し、前記ロギングデータを記録せず、
切替え元の識別情報が取得した第２の識別情報の一覧に存在しない場合、切替え元の識別情報に係るアプリケーションプログラムが消滅したと判断し、前記リストから削除し、ロギングデータを記録する、
付記７記載のプログラム状態検知方法。
【符号の説明】
【００４６】
１０  アプリケーション・プログラム、２０  プログラムロギングプログラム、２１  設定部、２２  ＰＩＤリスト作成部、２４  検知部、２５  プロセス判定部、２６  ＰＩＤリスト、２７  ロギングデータ、３０  ＯＳ、４０  ＣＰＵ、４１  性能モニタリングカウンタ、５０  メモリ、６０  ディスクドライブ、７０  入出力部、８０  Ｉ／Ｏ部、９０  不揮発性記憶部、１００  プログラム状態検知装置。
【図１】
0005423232.tif 000002
【図２】
0005423232.tif 000003
【図３】
0005423232.tif 000004
【図４】
0005423232.tif 000005
【図５】
0005423232.tif 000006
【図６】
0005423232.tif 000007
【図７】
0005423232.tif 000008
【図８】
0005423232.tif 000009