(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、
前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、
前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、
前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセッサにて実行されていたプロセスについて前記プロセス情報取得ステップにて取得される識別情報とを対応付ける対応付けステップと、
をコンピュータに実行させる性能モニタリングプログラム。
【請求項２】
請求項１に記載の性能モニタリングプログラムにおいて、
モニタリングの対象とすべきプロセスを特定するための特定情報を取得する特定情報取得ステップを更にコンピュータに実行させるものであり、
前記カウンタ値取得ステップは、前記プロセス情報取得ステップにて取得される識別情報に基づいて、前記特定情報取得ステップにて取得される特定情報に対応するプロセスのみについてカウントされた前記所定のイベントのカウンタ値を取得する性能モニタリングプログラム。
【請求項３】
請求項１に記載の性能モニタリングプログラムにおいて、
前記カウンタ値取得ステップおよび前記プロセス情報取得ステップは、前記タイミング毎に前記カウンタ値およびプロセスに関する情報を取得するものであり、
前記対応付けステップは、前記カウンタ値取得ステップにて取得されるカウンタ値を、前記プロセス情報取得ステップにて取得される情報に対応するプロセス毎に分類して集計する性能モニタリングプログラム。
【請求項４】
請求項１に記載の性能モニタリングプログラムにおいて、
前記プロセス情報取得ステップにて取得される情報に対応するプロセスが、割込検出ステップにて検出される割込み処理の前後で相違するか否かを判定する切替判定ステップを更にコンピュータに実行させるものであり、
前記プロセス情報取得ステップは、前記切替判定ステップにて前記割込み処理の前後でプロセスが相違すると判定される場合に、該割込み処理の直後に実行されるプロセスに関する情報を取得する性能モニタリングプログラム。
【請求項５】
オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、
前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、
前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、
前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセッサにて実行されていたプロセスについて前記プロセス情報取得ステップにて取得される識別情報とを対応付ける対応付けステップと、
を有する性能モニタリング方法。
【請求項６】
オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出部と、
前記割込検出部にて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得部と、
前記割込検出部にて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得部と、
前記カウンタ値取得部にて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセッサにて実行されていたプロセスについて前記プロセス情報取得部にて取得される識別情報とを対応付ける対応付け部と、
を備えてなる性能モニタリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページング方式の仮想記憶を持つＣＰＵにおいて実行されるプログラム（プロセス）毎の動作情報を正確に効率良くモニタリングする技術に関するものである。
【背景技術】
【０００２】
近年、多くのプロセッサが、性能モニタリングカウンタを備えている。このような性能モニタリングカウンタは、クロック数、実行命令数、キャッシュミス数などプロセッサ内部のイベントおよび外部とのやり取りのイベントをカウントする機能を有している。また、これら性能モニタリングカウンタは、複数のカウンタを有しており、複数種類のイベントの中から所望のイベントを選択してカウントすることができる。
【０００３】
さらに、性能モニタリングカウンタは、指定されたイベントを検知した際に、特定のあるいは指定したベクタに割込みを発生させる機能を有しており、イベント発生時の付随情報を採取することも可能となっている。
【０００４】
プログラムの動作情報を採取・分析する手法として、ＣＰＵが持つ性能モニタリングカウンタを使用する手法が知られる（例えば、特許文献１を参照）。
【特許文献１】特開平１０−２６０８６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
性能モニタリングカウンタを使用した最も一般的な性能分析手法は、プログラムの開始時および終了時にカウンタ値を読み出し、その差分を求めることで、対象プログラムの実行に要したクロック数や命令数などの特徴を定量的に分析する方法である。
【０００６】
また、一定間隔毎に性能モニタリングカウンタを読み出すことで、システム全体の稼動状況や稼動特性を分析する手法も知られている。
【０００７】
これらの手法での問題点は、複数のプログラムが実行される状況において、性能モニタリングカウンタにて読出した値を正確に各プログラムに結びつけることができないことである。各プログラムについてのカウンタ値を採取するためには、オペレーティングシステムが行うタスクスイッチの際に、プログラム毎にカウンタ値を採取・集計する必要がある。
【０００８】
上記従来技術では、不正確になることを前提にプログラムの開始・終了時に性能モニタリングカウンタにてカウンタ値を読み出したり、ＯＳに改変を加えてタスクスイッチ時にカウンタ値を切り替えるようにしたりするしか選択肢が無いのが実情であった。
【０００９】
本発明は上述した問題点を解決するためになされたものであり、ページング方式の仮想記憶を持つＣＰＵにおいて実行されるプログラム（プロセス）毎の動作情報を、オペレーティングシステム側に特別な改変を加えることなく、正確に効率良くモニタリングする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するため、本発明に係る性能モニタリングプログラムは、オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセッサにて実行されていたプロセスについて前記プロセス情報取得ステップにて取得される識別情報とを対応付ける対応付けステップと、をコンピュータに実行させることを特徴とするものである。
【００１１】
また、本発明に係る性能モニタリング方法は、オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセス情報取得ステップにて取得される情報とを対応付ける対応付けステップと、を有することを特徴とするものである。
【００１２】
また、本発明に係る性能モニタリング装置は、オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出部と、前記割込検出部にて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得部と、前記割込検出部にて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得部と、前記カウンタ値取得部にて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセス情報取得部にて取得される情報とを対応付ける対応付け部と、を備えてなることを特徴とするものである。
【発明の効果】
【００１３】
以上に詳述したように本発明によれば、ページング方式の仮想記憶を持つＣＰＵにおいて実行されるプログラム（プロセス）毎の動作情報を、オペレーティングシステム側に特別な改変を加えることなく、正確に効率良くモニタリングする技術を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１５】
図１は、本発明の実施の形態による性能モニタリング装置１を備えた端末装置Ｐを示す機能ブロック図である。
【００１６】
同図に示すように、本実施の形態における端末装置Ｐは、例えばパーソナルコンピュータやサーバ等であり、性能モニタリング装置１、プロセッサ２、オペレーティングシステム３およびアプリケーション処理部４を備えている。
【００１７】
ここでのプロセッサ２は、性能モニタリングカウンタ２０１を備えている。性能モニタリングカウンタ２０１は、コンピュータシステムにおいて、性能分析、最適化を行う手段として、プロセッサ２内部でのイベントおよび外部とのやり取りのイベントをカウントする機能を有している。
【００１８】
性能モニタリングカウンタ２０１は、「クロック数」、「実行命令数」、「キャッシュミス数」および「ＴＬＢエントリ無効化イベント」などのプロセッサ内部でのイベントや、外部とのやり取りのイベントをカウントする機能を有している。また、性能モニタリングカウンタ２０１は、複数のパラメータについてカウント可能な複数のカウンタを有しており、複数のイベントの中から所望のイベントを選択してカウントさせることができる。さらに、性能モニタリングカウンタ２０１は、指定したイベントを検知した際に、特定の或いは指定したベクタに割込みを発生させる機能を有しており、イベント発生時の付随情報を採取することが可能となっている。
【００１９】
具体的に、上述のような性能モニタリングカウンタとしての機能を備えているプロセッサとして、例えば、Ｉｎｔｅｌ（登録商標）社のＸｅｏｎ（登録商標）プロセッサやＡＭＤ（登録商標）社のＯｐｔｅｒｏｎ（登録商標）プロセッサ、あるいはＩＢＭ（登録商標）社のＰｏｗｅｒＰＣ（登録商標）プロセッサなどが挙げられる。
【００２０】
本実施の形態による性能モニタリング装置１は、割込検出部１０１、特定情報取得部１０２、カウンタ値取得部１０３、プロセス情報取得部１０４、切替判定部１０５、対応付け部１０６、ＣＰＵ８０１およびメモリ８０２を備えてなる構成となっている。
【００２１】
以下、本実施の形態による性能モニタリング装置１の各構成要素の機能について詳細に説明する。
【００２２】
割込検出部１０１は、オペレーティングシステムにて行われる、いわゆる「ＴＬＢエントリの無効化（「ＴＬＢエントリのフラッシュ」とも呼ばれる。）」に伴ってプロセッサ２で実行される割込み処理の発生を検出する。
【００２３】
特定情報取得部１０２は、性能モニタリング装置１によるモニタリングの対象とすべきプロセスを特定するための特定情報(プロセスＩＤなど)を、アプリケーション処理部４から取得する。
【００２４】
カウンタ値取得部１０３は、割込検出部１０１にて割込み処理が検出されたタイミングにおいて、プロセッサ２にてカウントされた所定のイベント（例えば、「クロック数」、「実行命令数」、「キャッシュミス数」など）のカウンタ値を取得する。具体的に、カウンタ値取得部１０３は、プロセスの開始時に計測を開始して、プロセスの終了時に計測を終了し、その間に発生したイベント数を記録する。ここで、所定のイベントとは、上述の各種イベントの中からユーザが任意に選択したものであってもよいし、予め設定されているいくつかのイベントであってもよい（後述の図９等を参照）。
【００２５】
また、カウンタ値取得部１０３は、特定情報取得部１０２にて特定情報が取得されている場合には、プロセス情報取得部１０４にて取得される識別情報に基づいて、特定情報取得部１０２にて取得される特定情報に対応するプロセスのみについてカウントされた所定のイベントのカウンタ値を取得することもできる。
【００２６】
また、カウンタ値取得部１０３は、任意のタイミングで計測の開始と終了を行うことが可能であるが、一定時間毎にその間に動作したプロセス毎に発生したイベント数を取得することもできる。
【００２７】
プロセス情報取得部１０４は、割込検出部１０１にて検出される割込み処理の直前にプロセッサ２上で実行されていたプロセスを識別するための識別情報(プロセスＩＤなど)をオペレーティングシステム３から取得する。
【００２８】
切替判定部１０５は、プロセス情報取得部１０４にて取得される情報に対応するプロセスのプロセスＩＤが、割込検出部１０１にて検出される割込み処理の前後で相違するか否かを判定する。
【００２９】
プロセス情報取得部１０４は、切替判定部１０５にて割込み処理の前後でプロセスが相違すると判定される場合に、該割込み処理の直後に実行されるプロセスに関する情報(例えば、プロセスＩＤ、プロセス名、この他当該プロセスに関連してオペレーティングシステム３から取得可能な情報など)を取得する。
【００３０】
対応付け部１０６は、カウンタ値取得部１０３にて割込み処理時に取得されるカウンタ値と、該割込み処理の直前にプロセス情報取得部１０４にて取得される情報(プロセスＩＤなど)とを対応付ける。
【００３１】
ＣＰＵ８０１は、性能モニタリング装置１における各種処理を行う役割を有しており、またＭＥＭＯＲＹ８０２に格納されているプログラムを実行することにより種々の機能を実現する役割も有している。ＭＥＭＯＲＹ８０２は、例えばＲＯＭやＲＡＭ等から構成されており、性能モニタリング装置１において利用される種々の情報やプログラムを格納する役割を有している。なお、本実施の形態では、ＭＥＭＯＲＹ８０２に格納されている各種プログラムをＣＰＵ８０１にて実行させることにより、性能モニタリング装置１が備える機能を実現する場合を例に挙げたが、必ずしもこれに限られるものではなく、例えば、プログラムを端末装置Ｐに通常備わっているメモリに格納させ、端末装置Ｐにおけるプロセッサ２によって当該プログラムを実行させるようにしてもよいことは言うまでもない。
【００３２】
本実施の形態による性能モニタリング装置１は、デバイスドライバ（性能データ採取プログラム）として端末装置Ｐに実装されている。この性能データ採取プログラムを任意のアプリケーション・プログラム（アプリケーション処理部４）から呼び出して実行させることにより、性能モニタリングカウンタ２０１の設定、計測開始指示、プログラム毎に集計されたカウント値の読出し等が行われる。
【００３３】
続いて、本実施の形態による性能モニタリング装置１における処理の詳細について説明する。なお、ここでは、プロセッサ２における性能モニタリングカウンタ２０１は、ＴＬＢエントリの無効化イベントをカウント対象イベントに含んでおり、ＴＬＢエントリの無効化イベントが発生する度に割込み処理を行うように設定されているものとする。このように、ＴＬＢエントリの無効化イベントをカウント対象イベントに含ませているのは、オペレーティングシステムにおいてタスクスイッチが発生する際には必ずＴＬＢエントリの無効化イベントが発生することによる。図２は、タスクスイッチの発生について説明するための図である。
【００３４】
通常、オペレーティングシステム３は、以下のような手順でタスクスイッチを行う。
【００３５】
タスクスイッチを発生する場合、オペレーティングシステム３は、レジスタ値などのＣＰＵ設定値や現在動作しているプログラムのオペレーティングシステム３内での固有情報を、次に動作させるプログラム用の値に変更する。
【００３６】
ページング方式の仮想記憶を持つＣＰＵ用のオペレーティングシステム３では、図３に示すように、プログラム毎に仮想アドレスと物理アドレスとの間での変換のためのテーブル（ページテーブル）をメモリ内に保持しており、タスクスイッチの際にこのページテーブルのアドレスを指すレジスタ（ページテーブルレジスタ）を切り替える。
【００３７】
さらにオペレーティングシステム３は、このページテーブル用のＣＰＵ内キャッシュであるＴＬＢ（TRANSLATION LOOKASIDE BUFFERS）のエントリを無効化する。
【００３８】
アプリケーション・プログラムは、性能モニタリングの開始時に、性能データ採取プログラムに対して「（１）計測の開始指定」を行う。このとき、必要に応じて性能モニタリングの対象となるプロセスを特定する情報も、計測開始指示と共に性能モニタリング装置１宛に送信される。
【００３９】
性能データ採取プログラムは、オペレーティングシステム３を通じて「（２）性能モニタリングカウンタの設定、割込みハンドラの登録」を行ない、性能モニタリングカウンタ２０１による所望のイベントのカウンタ値のカウント処理を開始させる。
【００４０】
プロセッサ２では、オペレーティングシステム３側にてタスクスイッチが発生する毎に割込み処理が発生し（「（３）割込み発生」に相当）し、割込み検出部１０１およびカウンタ値取得部１０３からなる割込みハンドラが呼ばれる。
【００４１】
割込みハンドラにおけるカウンタ値取得部１０３は、「（４）性能モニタリングカウンタ値の読出し」を行い、動作プログラム（プロセス）毎にカウンタ値の集計を行う。図４は、性能モニタリングカウンタによるカウンタ値のプロセス毎の集計について説明するための図である。
【００４２】
性能モニタリング装置１におけるカウンタ値の集計が完了すると、集計結果がアプリケーション・プログラムに送信される（「（５）計測値の読出し」）。
【００４３】
図５は、本実施の形態における性能モニタリングカウンタを用いたプログラム毎のカウンタ値の計測方法の詳細について説明するための図である。また、図６は、本実施の形態における性能モニタリングカウンタを用いたプログラム毎のカウンタ値の計測方法の処理の流れを示すフローチャートである。
【００４４】
まず、同図に示すように、性能モニタリングカウンタ２０１は、例えばアプリケーション処理部４を介して、カウント対象となる複数のイベントの内の１つとして、「ＴＬＢエントリ無効化イベント」をカウントするように設定される。
【００４５】
さらに、上述のように、性能モニタリングカウンタ２０１は、「ＴＬＢエントリ無効化イベント」が１回発生する毎に割込みを発生させるように設定されている。なお、性能モニタリングカウンタ２０１にてカウント可能な他のイベントとしては、「実行クロック数」、「実行命令数」、「キャッシュミス数」などのイベントがある。
【００４６】
プロセッサ２にて割込み処理が発生すると（Ｓ１０１）、当該割り込みは割り込み検出部１０１にて検出され（割込検出ステップ）、割込みハンドラにおけるカウンタ値取得部１０３は、計測対象となっているカウンタ値を読み出す（カウンタ値取得ステップ）。割込みは、オペレーティングシステムにおけるタスク切り替え直後に発生するため、カウンタ値取得部１０３にて取得されるカウンタ値は、タスク切り替え直前に動作していたプロセスの性能情報として集計・記録される。
【００４７】
ところで、ＴＬＢエントリ無効化イベントは、タスクスイッチ時以外でも発生し得るものであるが、プロセスＩＤ（ＰＩＤ）が変化していれば、必ずタスクスイッチが発生したと判定することができる。そこで、プロセス情報取得部１０４によるプロセス情報の取得を行い（プロセス情報取得ステップ）、切替判定部１０５は、前回割込み時と今回割込み時が同一プロセスである場合（Ｓ１０２，Ｎｏ）はタスクスイッチではないものと判定し、集計・記録は行わず割込みから復帰させる（切替判定ステップ）（Ｓ１０３）。図７は、割込み処理時にプロセス情報取得部１０４により取得されるプロセスＩＤを格納する割込み時ＰＩＤ保存テーブルの一例を示す図である。
【００４８】
一方、前回割込み時と今回割込み時が異なるプロセスである場合（Ｓ１０２，Ｙｅｓ）はタスクスイッチであると判定し（切替判定ステップ）、カウンタ値取得部１０３は、性能モニタリングカウンタ２０１から所望のカウンタ値を取得し、例えばメモリ８０２に記録する。
【００４９】
ここで、過去にすでに同一のプロセスＩＤ（ＰＩＤ）が対応づけられているカウンタ値がある場合には（Ｓ１０５，Ｙｅｓ）、これから実行されるタスクのプロセスＩＤを例えばメモリ８０２に記録する。
【００５０】
一方、まだ同一のプロセスＩＤ（ＰＩＤ）が対応づけられているカウンタ値がない場合には（Ｓ１０５，Ｎｏ）、例えばメモリ８０２に格納される記録テーブルに新たに当該プロセスＩＤが追加される（Ｓ１０６）。
【００５１】
次に、対応付け部１０６は、前回割込み処理が発生した際にプロセス情報取得部１０４にて取得されたプロセスＩＤに対応する記録テーブルのカウンタ値に、今回取得されたカウンタ値を加算する（Ｓ１０７）。このように、対応付け部１０６は、カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前にプロセッサ２にて実行されていたプロセスについてプロセス情報取得ステップにて取得される識別情報とを対応付ける（対応付けステップ）。対応付け部１０６により対応付けられたデータは、例えばメモリ８０２にデータテーブルとして格納される。図８は、対応付け部１０６により対応付けられてメモリ８０２に格納される性能モニタリングカウンタ値記録テーブルの一例を示す図である。
【００５２】
最後に、性能モニタリングカウンタ２０１における、ＴＬＢエントリ無効化イベントのカウンタ値を初期化し、復帰させる（Ｓ１０８）。
【００５３】
なお、図６に示す例では、複数の互いに異なるプロセスＩＤに対応するカウンタ値をそれぞれ集計する例を挙げているが、必ずしもこれに限られるものではなく、特定情報取得部１０２にて取得される（特定情報取得ステップ）特定情報から特定される測定対象プロセスと一致するかどうかを判別して、一致した場合のみカウンタ値を集計するようにしてもよい。これにより、ある特定のプログラム（プロセス）の実行時におけるプロセッサでのイベント発生状況を効率的に把握することができるとともに、無駄なカウンタ値を取得しないためリソースの有効利用にも寄与することができる。
【００５４】
図９は、性能モニタリングカウンタ２０１におけるモニタリングの対象となるイベントの種別等についての設定情報の一例を示す図である。この設定情報は、端末装置Ｐに備わっているキーボードやマウス等の操作入力装置を介して、ユーザによって指定されるものであってもよいし、予め所定の値に設定されているものであってもよい。この設定情報は、データファイルとして例えばメモリ８０２等に保持されている。
【００５５】
図１０は、対応付け部１０６にて対応付けられたプロセスＩＤとカウンタ値を、端末装置Ｐに備わっているディスプレイ上にリスト形式で画面表示させた例を示す図である。同図に示すように、モニタリングの対象として設定されていた各イベントの発生回数が、プロセスＩＤ毎にカウントされていることがわかる。
【００５６】
従来、オペレーティングシステム上で実行されるプログラムの性能情報を集計する場合、オペレーティングシステム上でのタスクスイッチ処理の直前あるいは直後に、プロセッサにおける性能モニタリングカウンタにてカウントされたカウンタ値を読込み、プログラム毎の性能情報として集計する機能を、オペレーティングシステム側に追加する必要があった。
【００５７】
これに対し、本実施の形態では、オペレーティングシステム３においてタスク切替を行う際に必ず発生する事象である「TLBエントリ無効化」を、プロセッサ２における性能モニタリングカウンタ２０１にて検出し、ＴＬＢエントリの無効化が行われるタイミングで割込みを発生させ、割込み処理としてプログラム毎のカウンタ値の切り替えを行っている。これにより、オペレーティングシステム３に対して特別な改変を加えることなく、オペレーティングシステム３上で実行される各プログラムの性能情報を正確に採取することができる。
【００５８】
また、本実施の形態の構成は、性能モニタリングカウンタ機能を有するＣＰＵを利用する場合において、特別なハードウェアの追加や変更を行うことなく実現可能であるため、適用範囲も広い。
【００５９】
なお、上述の実施の形態では、プロセッサ上で実行されるプロセスの切り替わりを「ＴＬＢエントリの無効化」を指標として判断しているが、必ずしもこれに限られるものではない。例えば、プロセスの始まり若しくは終わりのタイミングを示す他の指標となるパラメータについて性能モニタリングカウンタにてカウント可能であれば、そのような他の指標を基準としてプロセスの切り替わりを判定してもよいことは言うまでもない。
【００６０】
更に、性能モニタリング装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、性能モニタリングプログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、性能モニタリング装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００６１】
このように、性能モニタリングプログラムをコンピュータに実行させることにより、上述した性能モニタリング方法における各ステップが実現される。
【００６２】
本発明を特定の態様により詳細に説明したが、本発明の精神および範囲を逸脱しないかぎり、様々な変更および改質がなされ得ることは、当業者には自明であろう。
【００６３】
（付記１）オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、
前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、
前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、
前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセッサにて実行されていたプロセスについて前記プロセス情報取得ステップにて取得される識別情報とを対応付ける対応付けステップと、
をコンピュータに実行させる性能モニタリングプログラム。
（付記２）付記１に記載の性能モニタリングプログラムにおいて、
モニタリングの対象とすべきプロセスを特定するための特定情報を取得する特定情報取得ステップを更にコンピュータに実行させるものであり、
前記カウンタ値取得ステップは、前記プロセス情報取得ステップにて取得される識別情報に基づいて、前記特定情報取得ステップにて取得される特定情報に対応するプロセスのみについてカウントされた前記所定のイベントのカウンタ値を取得する性能モニタリングプログラム。
（付記３）付記１に記載の性能モニタリングプログラムにおいて、
前記カウンタ値取得ステップおよび前記プロセス情報取得ステップは、所定のタイミング毎に前記カウンタ値およびプロセスに関する情報を取得するものであり、
前記対応付けステップは、前記カウンタ値取得ステップにて取得されるカウンタ値を、前記プロセス情報取得ステップにて取得される情報に対応するプロセス毎に分類して集計する性能モニタリングプログラム。
（付記４）付記１に記載の性能モニタリングプログラムにおいて、
前記プロセス情報取得ステップにて取得される情報に対応するプロセスが、割込検出ステップにて検出される割込み処理の前後で相違するか否かを判定する切替判定ステップを更にコンピュータに実行させるものであり、
前記プロセス情報取得ステップは、前記切替判定ステップにて前記割込み処理の前後でプロセスが相違すると判定される場合に、該割込み処理の直後に実行されるプロセスに関する情報を取得する性能モニタリングプログラム。
（付記５）オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出ステップと、
前記割込検出ステップにて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得ステップと、
前記割込検出ステップにて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得ステップと、
前記カウンタ値取得ステップにて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセス情報取得ステップにて取得される情報とを対応付ける対応付けステップと、
を有する性能モニタリング方法。
（付記６）付記５に記載の性能モニタリング方法において、
モニタリングの対象とすべきプロセスを特定するための特定情報を取得する特定情報取得ステップを更に有し、
前記カウンタ値取得ステップは、前記プロセス情報取得ステップにて取得される識別情報に基づいて、前記特定情報取得ステップにて取得される特定情報に対応するプロセスのみについてカウントされた前記所定のイベントのカウンタ値を取得する性能モニタリング方法。
（付記７）付記５に記載の性能モニタリング方法において、
前記カウンタ値取得ステップおよび前記プロセス情報取得ステップは、所定のタイミング毎に前記カウンタ値およびプロセスに関する情報を取得するものであり、
前記対応付けステップは、前記カウンタ値取得ステップにて取得されるカウンタ値を、前記プロセス情報取得ステップにて取得される情報に対応するプロセス毎に分類して集計する性能モニタリング方法。
（付記８）付記５に記載の性能モニタリング方法において、
前記プロセス情報取得ステップにて取得される情報に対応するプロセスが、割込検出ステップにて検出される割込み処理の前後で相違するか否かを判定する切替判定ステップを更に有し、
前記プロセス情報取得ステップは、前記切替判定ステップにて前記割込み処理の前後でプロセスが相違すると判定される場合に、該割込み処理の直後に実行されるプロセスに関する情報を取得する性能モニタリング方法。
（付記９）オペレーティングシステムにて行われるＴＬＢエントリの無効化に伴ってプロセッサで実行される割込み処理の発生を検出する割込検出部と、
前記割込検出部にて割込み処理が検出されたタイミングにおいて、前記プロセッサにてカウントされた所定のイベントのカウンタ値を取得するカウンタ値取得部と、
前記割込検出部にて検出される割込み処理の直前に前記プロセッサ上で実行されていたプロセスを識別するための識別情報を前記オペレーティングシステムから取得するプロセス情報取得部と、
前記カウンタ値取得部にて割込み処理時に取得されるカウンタ値と、該割込み処理の直前に前記プロセス情報取得部にて取得される情報とを対応付ける対応付け部と、
を備えてなる性能モニタリング装置。
（付記１０）付記９に記載の性能モニタリング装置において、
モニタリングの対象とすべきプロセスを特定するための特定情報を取得する特定情報取得部を更に有し、
前記カウンタ値取得部は、前記プロセス情報取得部にて取得される識別情報に基づいて、前記特定情報取得部にて取得される特定情報に対応するプロセスのみについてカウントされた前記所定のイベントのカウンタ値を取得する性能モニタリング装置。
（付記１１）付記９に記載の性能モニタリング装置において、
前記カウンタ値取得部および前記プロセス情報取得部は、所定のタイミング毎に前記カウンタ値およびプロセスに関する情報を取得するものであり、
前記対応付け部は、前記カウンタ値取得部にて取得されるカウンタ値を、前記プロセス情報取得部にて取得される情報に対応するプロセス毎に分類して集計する性能モニタリング装置。
（付記１２）付記９に記載の性能モニタリング装置において、
前記プロセス情報取得部にて取得される情報に対応するプロセスが、割込検出部にて検出される割込み処理の前後で相違するか否かを判定する切替判定部を更に有し、
前記プロセス情報取得部は、前記切替判定部にて前記割込み処理の前後でプロセスが相違すると判定される場合に、該割込み処理の直後に実行されるプロセスに関する情報を取得する性能モニタリング装置。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態による性能モニタリング装置１を備えた端末装置Ｐを示す機能ブロック図である。
【図２】タスクスイッチの発生について説明するための図である。
【図３】ページング方式の仮想記憶を持つＣＰＵについて説明するための図である。
【図４】性能モニタリングカウンタによるカウンタ値のプロセス毎の集計について説明するための図である。
【図５】本実施の形態における性能モニタリングカウンタを用いたプログラム毎のカウンタ値の計測方法の詳細について説明するための図である。
【図６】本実施の形態における性能モニタリングカウンタを用いたプログラム毎のカウンタ値の計測方法の処理の流れを示すフローチャートである。
【図７】割込み処理時にプロセス情報取得部１０４により取得されるプロセスＩＤを格納する割込み時ＰＩＤ保存テーブルの一例を示す図である。
【図８】対応付け部１０６により対応付けられてメモリ８０２に格納される性能モニタリングカウンタ値記録テーブルの一例を示す図である。
【図９】性能モニタリングカウンタ２０１におけるモニタリングの対象となるイベントの種別等についての設定情報の一例を示す図である。
【図１０】対応付け部１０６にて対応付けられたプロセスＩＤとカウンタ値をリスト形式で画面表示した例を示す図である。
【符号の説明】
【００６５】
１  性能モニタリング装置、１０１  割込検出部、１０２  特定情報取得部、１０３  カウンタ値取得部、１０４  プロセス情報取得部、１０５  切替判定部、１０６  対応付け部、８０１  ＣＰＵ、８０２  メモリ。
【図１】
0005119994.tif 000002
【図２】
0005119994.tif 000003
【図３】
0005119994.tif 000004
【図４】
0005119994.tif 000005
【図５】
0005119994.tif 000006
【図６】
0005119994.tif 000007
【図７】
0005119994.tif 000008
【図８】
0005119994.tif 000009
【図９】
0005119994.tif 000010
【図１０】
0005119994.tif 000011