[go: up one dir, main page]

JPH07182209A - オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム - Google Patents

オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム

Info

Publication number
JPH07182209A
JPH07182209A JP6268813A JP26881394A JPH07182209A JP H07182209 A JPH07182209 A JP H07182209A JP 6268813 A JP6268813 A JP 6268813A JP 26881394 A JP26881394 A JP 26881394A JP H07182209 A JPH07182209 A JP H07182209A
Authority
JP
Japan
Prior art keywords
program
code
processor
operating system
kernel
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.)
Granted
Application number
JP6268813A
Other languages
English (en)
Other versions
JP4034363B2 (ja
Inventor
William J Bolosky
ジェイ ボロスキー ウィリアム
Richard F Rashid
エフ ラシッド リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07182209A publication Critical patent/JPH07182209A/ja
Application granted granted Critical
Publication of JP4034363B2 publication Critical patent/JP4034363B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 オペレーティング・システムのカーネルの性
能およびユーザ・レベル・プログラムの性能をモニタで
きるようにする。 【構成】 オペレーティング・システムは、プログラム
の性能をモニタするために、そのカーネル内にファシリ
ティを備えている。このファシリティは、カーネルのよ
うなオペレーティング・システムの部分だけでなく、ユ
ーザ・レベル・プログラムもモニタする。ファシリティ
は、システムのユーザに便利な性能基準を提供するため
に、命令および関数コールのカウントの双方またはいず
れか一方を行う。このカウント値は、ユーザ・レベル・
モニタ・プログラムに送られる。カーネルにファシリテ
ィを含めることにより、性能のモニタの速度を向上させ
ることができ、オペレーティング・システムをファシリ
ティによって直接モニタすることもできる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データ処理システム
に関し、具体的には、データ処理システム上で実行され
るプログラムの性能(パフォーマンス)をモニタ(モニ
タリング)する方法およびシステムに関する。
【0002】
【従来の技術】データ処理システムで実行されるプログ
ラムの性能(パフォーマンス)をモニタするための様々
な統計的手法が、これまでに開発されてきている。最も
著名な手法の一つとして、プログラムの各関数の実行時
間をモニタするものがある。このアプローチによると、
多くの場合に、関数の処理時間の計測に使用されるクロ
ックの周期が大きすぎるために、処理時間が各関数にど
のように分配されているかの正確な状況を把握できない
点に難点がある。プログラムの性能をモニタするもう一
つの統計的手法として、命令をカウントするものがあ
る。命令をカウントする手法は、一般に、アプリケーシ
ョン・プログラムのようなユーザ・レベルのプログラム
(システム・レベルのプログラムに対するものとして)
の性能をモニタするのに限定されている。
【0003】
【発明が解決しようとする課題】これまでに、これらの
手法を、オペレーティング・システムのカーネルの性能
をモニタするのに適用することはできなかった。このよ
うな制限により、プログラマが、プログラムの性能を向
上させるために統計的手法を利用できないことが多かっ
た。
【0004】
【課題を解決するための手段】命令を実行するプロセッ
サ、ならびにオペレーティング・システムおよびユーザ
・レベルのモニタリング・プログラムを記憶するための
記憶機構を備えているデータ処理システムにおいて、こ
の発明による方法が実行される。プロセッサは、ユーザ
・レベルおよびシステム・レベルの命令を実行する。デ
ータ処理システムは、分散システムであってもよい。
【0005】この方法において、ファシリティが、プロ
グラムの性能をモニタするために、オペレーティング・
システムのカーネルに備えられる。例えば、このファシ
リティは、プロセッサによって実行される命令をカウン
トするものであってもよいし、コードの一部がプログラ
ムの実行中に呼び出された回数をカウントするものであ
ってもよい。また、ファシリティは、各関数で実行され
る命令数を示す関数によって分類された多くの個別のカ
ウントを提供するものであってもよい。プログラムのコ
ードの一部が、プロセッサによって実行される。このと
き、オペレーティング・システムのカーネルにあるファ
シリティは、システムの性能をモニタするために使用さ
れる。
【0006】使用されるファシリティのタイプは、その
ファシリティによってカウントされる値を決定する。カ
ウントは、ユーザ・レベル・モニタリング・プログラム
に報告される。例えば、ファシリティは、プログラムの
コードの一部を実行したときの命令数をカウントするも
のであってもよいし、プログラムのコードの一部が呼び
出される回数をカウントするものであってもよい。ま
た、ファシリティは、第1の関数がプログラムの実行中
に呼び出されるときに、関数において実行される命令を
備えた関数によって分類された個別のカウントを提供す
るものであってもよい。
【0007】プログラムは、ユーザ・レベル・プログラ
ムであってよいし、オペレーティング・システムのカー
ネルの一部であってもよい。
【0008】
【実施例】この発明の好ましい実施例は、プログラムの
性能をモニタ(モニタリング)するファシリティを、オ
ペレーティング・システムのカーネルに備えている。こ
のファシリティは、多くのオプションをユーザに提供す
る。第1に、このファシリティにより、ユーザは、ある
関数が呼び出されるごとに、その関数によって実行され
る命令数をカウントすることができる。第2に、このフ
ァシリティにより、ユーザは、ある特定の関数への呼び
出し回数および頻度を、その関数において実行される命
令をカウントすることなく、カウントすることができ
る。第3に、このファシリティにより、ユーザは、初期
関数の呼び出しの結果、呼び出される各関数において実
行される命令数をカウントすることができる。このファ
シリティは、オペレーティング・システムのカーネルに
設けられるので、アプリケーション・プログラムのよう
なユーザ・レベル・プログラムの性能をモニタすること
に使用できるだけでなく、カーネルの性能およびオペレ
ーティング・システムの他の部分の性能をモニタするこ
とに使用することもできる。ファシリティをオペレーテ
ィング・システムのカーネルに設けることにより、モニ
タの速度を向上させることもでき、モニタの対象となる
プログラムに変更を加えることなく、性能のモニタを行
う簡単なアプローチを提供することができる。
【0009】図1に示すように、この実施例を、分散シ
ステム10において実現することができる。この発明を、
単一のプロセッサ・システムにおいて実行できることも
理解できるであろう。この分散システム10は、ネットワ
ーク14を介して通信を行う多くのコンピュータ・システ
ム12を含んでいる。各コンピュータ・システム12は、実
行しているプログラムのトレースを同時に行うことがで
きる。ネットワーク14は、ローカル・エリア・ネットワ
ーク(LAN)やワイド・エリア・ネットワークを含む
多くの異なるタイプのネットワークのいずれであっても
よい。この技術分野の専門家ならば、分散システム10
が、図1に示すものとは異なる個数のコンピュータ・シ
ステムを含むこともできることを容易に理解するであろ
う。この分散システムにおいては、4台のコンピュータ
・システムが示されているにすぎない。
【0010】図2は、コンピュータ・システム12の一つ
に含まれる構成要素を詳細に示すブロック図である。各
コンピュータ・システムが、このシステム構成を有する
必要は必ずしもなく、ここでは、このシステム構成が、
単に示されているにすぎない。コンピュータ・システム
12は、中央処理装置(CPU)13およびメモリ16を備え
ている。CPU13は、複数のレジスタ17を備えている。
レジスタ17には、FLAGレジスタおよびSS(Stack
Segment :スタック・セグメント)レジスタが含まれて
いる。これらのレジスタについては、後に詳述する。メ
モリ16は、ワシントンのレドモンドにあるマイクロソフ
ト社(Microsoft Corporation )により販売されてい
る、マイクロソフトNTオペレーティング・システムの
ような分散オペレーティング・システム28のコピーを保
持している。この実施例においては、各コンピュータ・
システム12が、オペレーティング・システムのコピーを
保持し、実行する。オペレーティング・システム28は、
カーネル30を含んでいる。カーネル30には、性能をモニ
タすることをサポートするコード部32がある。コード部
32については、後に詳述する。メモリ16には、CPU13
によって実行される少なくとも一つのアプリケーション
・プログラム26も記憶されている。しかし、このアプリ
ケーション・プログラム26は、メモリ16に記憶されてい
る必要は必ずしもない。
【0011】また、コンピュータ・システム12は、多く
の周辺装置を備えている。これらの周辺装置には、補助
記憶装置(例えば、磁気ディスク・ドライブ)18、キー
ボード20、ビデオ・ディスプレイ22およびマウス24が含
まれる。
【0012】図3は、コード部32を詳細に示すブロック
図である。APIは、ブレークポイント・ファシリティ
34を含んでいる。このブレークポイント・ファシリティ
34は、CPU13で実行されるプログラム内のブレークポ
イントの生成をサポートする。また、コード部32は、シ
ングル・ステップの割込みを制御するシングル・ステッ
プ割込ハンドラ36を含んでいる。ブレークポイント・フ
ァシリティ34およびシングル・ステップ割込ハンドラ36
によって提供される機能を説明するために、まず、ブレ
ークポイントとは何か、シングル・ステップ割込みとは
何かを知ることが有益である。
【0013】シングル・ステップ割込みとは、プログラ
ムを1ステップごとに処理(シングル・ステッピング)
するときに使用される割込みをである。シングル・ステ
ッピングは、CPU13の一つの処理モードであり、管理
プログラムの制御の下、一時に一つの命令を実行するモ
ードである。シングル・ステッピングにより、デバッガ
または性能モニタは、プログラムをゆっくりと実行する
ことができ、プログラムの実行を注意深くモニタするこ
とができる。ここでは、シングル・ステップ割込ハンド
ラ36は、モニタされているプログラムが一時に一つの命
令を実行する管理プログラムである。一般に、一つの命
令が実行されると、単一のステップ割込みが発生し、プ
ロセッサの制御が管理プログラムに切り換えられる。80
X86 (80186 、80286 等)マイクロプロセッサのような
多くのマイクロプロセッサは、マイクロプロセッサをシ
ングル・ステッピング・モードに切り換える便利な機構
を備えている。80X86 マイクロプロセッサには、シング
ル・ステップ・トラップ・フラグが、FLAGレジスタ
(図2)に備えられている。このシングル・ステップ・
トラップ・フラグの値が1の場合には、マイクロプロセ
ッサは、シングル・ステップ・モードを実行し、一方、
シングル・ステップ・トラップ・フラグの値が0の場合
には、マイクロプロセッサは、シングル・ステップ・モ
ードを実行しない。
【0014】ブレークポイントとは、プログラムの自由
な実行をブレークするために使用され、プログラムのデ
バッグおよびプログラムの性能のモニタに有効なブレー
クポイント割込みである。シングル・ステップ・モード
においては、プログラムがゆっくりと実行されるので、
プログラムを全て実行することは難しい。多くの場合
に、プログラムの大部分は既にデバッグまたはチューン
されており、わずかな部分にのみ、詳細な試験が必要と
される。ブレークポイント割込みは、このような状況に
おいて特に適している。ブレークポイント割込みは、プ
ログラム中に特別のオペコード(演算コード:opcode)
を挿入することにより、発生する。このオペコードは、
実行時に、ブレークポイント割込みを発生させる。ブレ
ークポイント割込みが発生すると、制御は、ブレークポ
イント・ファシリティ34に渡される。ブレークポイント
・ファシリティ34は、さらに必要となる処理を行うこと
もある。この実施例におけるブレークポイントおよびシ
ングル・ステップ割込みの機能については、以下に述べ
る図4および図5の説明において詳述する。
【0015】ブレークポイント・ファシリティ34および
シングル・ステップ・ハンドラ36に加えて、コード部32
は、文脈スイッチに関係したコード38を含んでいる。こ
のコード38は、文脈スイッチ用のフックを備え、文脈ス
イッチを検査して、新しい文脈をシングル・ステップと
すべきかどうかを決定するハンドラを含んでいる。新し
い文脈がシングル・ステップとされるならば、このハン
ドラは、シングル・ステッピングを確実に発生させる。
【0016】コード部32は、カウンタ値40も含んでい
る。上述したように、この実施例では、ユーザは、関数
において実行される命令数、関数がプログラム内で呼び
出される回数および初期関数を呼び出した結果として呼
び出される各関数用に実行される命令数をモニタするこ
とができる。これらの各カウントは、個別のカウンタに
記憶され、そのカウンタの値が、コード部32のデータ・
エリアのカウンタ値40として保持される。
【0017】図4は、この実施例においてプログラムま
たはプログラムの一部の性能をモニタするために実行さ
れる処理の流れを示すフローチャートである。まず、ユ
ーザは、性能基準(性能メトリック)を選択する(ステ
ップ42)。続いて、ダイアログ・ボックスのメニューの
ようなユーザ・インタフェースが、ユーザが使用してい
るコンピュータ・システム12(図1)のビデオ・ディス
プレイ22(図2)に表示される。ユーザは、このユーザ
・インタフェースを使用することにより、所望の性能基
準を選択することができる。上述したように、この実施
例において求められる多くの異なる性能基準がある。ま
た、ユーザは、プログラム中のどの関数をモニタするか
を選択する(ステップ44)。性能基準が選択され、モニ
タされる関数が選択されると、ブレークポイント割込み
を生成するオペコードがモニタされる関数のそれぞれに
挿入され、プログラムまたはプログラムの一部が実行さ
れる(ステップ46)。適切なカウンタ値40が、プログラ
ムの実行に伴い計算される。プログラムの実行に伴い、
カウンタ値40は、ビデオ・ディスプレイ22に表示される
(ステップ48)。プログラムまたはプログラムの一部の
実行が終了すると、ユーザは、プログラムを適切にチュ
ーニング(チューン)するための指標となる性能データ
を検討することができる(ステップ50)。性能データを
どのようにプログラムのチューニングに使用するかは、
収集されたデータのタイプに依存する。この技術の専門
家には、プログラムを適切にチューニングするための性
能基準データを使用方法が分かるであろう。
【0018】図5は、関数ごとに行われるブレークポイ
ントの挿入およびプログラムの実行(すなわち、図4の
ステップ46)の詳細を示すフローチャートである。上述
したように、ブレークポイントのオペコードが、モニタ
される各関数の最初の命令として置かれる(ステップ5
2)。続いて、システムは、関数の実行を開始する(ス
テップ54)。ブレーク・ポイントは、関数の最初の命令
として置かれているので、カーネルは、ブレークポイン
トを発見し(ステップ56)、ユーザがその関数用に要求
した性能基準がどれかを決定する(ステップ58)。要求
された性能基準が関数の呼び出し回数のカウントだけな
らば、その関数の呼び出し回数を示すために、カウンタ
値40(図3)のうちの、その関数の呼び出し回数をカウ
ントするカウンタの値がインクリメントされる(ステッ
プ60)。このカウンタがインクリメントされると、その
関数は、再スタートし、フルスピードで実行を再開す
る。
【0019】この実施例において実行される処理につい
て説明する前に、ユーザが、実行される命令数をモニタ
したいときに、「スレッド」および「スタック」を紹介
しておくことが有益である。一つのスレッドは、他のス
レッドと独立に、かつ、同時に実行できる仕事の単位で
ある。オペレーティング・システム28は、マルチスレッ
ド・システムである。この技術分野の専門家ならば、必
ずしもマルチスレッド・システムで実行される必要がな
いことを理解するであろう。また、シングル・プロセス
およびマルチプロセシング・システムで実行することも
できる。マルチスレッド・オペレーティング・システム
は、複数のスレッドを同時に実行することができる。ス
タックとは、後入れ先出し(ラスト・イン・ファースト
・アウト(Last-In-First-Out :LIFO))のデータ構造
を持つものであり、スレッド用のデータおよびレジスタ
情報を記憶するために使用される。各スレッドは、その
スレッド専用のスタック・セグメント(Stack Segment
:SS)部を有する。SSレジスタ(図2)は、実行
されているプログラムのスレッドのスタックを記憶する
メモリのセグメントをポイントする。各スレッドは、そ
のスタック(すなわち、そのスレッド専用のスタック・
セグメント部)の先頭をポイントする、そのスレッドに
関連したスタック・ポインタ(Stack Pointer :SP)
の値を有する。この技術分野の専門家ならば、スタック
を使用しない環境においても、この発明を実行できるこ
とを理解するであろう。
【0020】図5に戻って、ステップ58において、ユー
ザが、関数の呼び出し回数のカウントではなく、実行さ
れる命令数のカウントを望んでいると判定されると、現
在実行中のスレッドのスタック・ポインタがメモリ16に
記憶される(ステップ64)。FLAGレジスタ(図2)
のシングル・ステップ・トラップ・フラグは、CPU13
がシングル・ステッピング・モードになるようにセット
される(ステップ66)。シングル・ステッピング・モー
ドでは、命令が実行されるごとに、現在実行されている
関数の命令数を追跡するカウンタ値が、インクリメント
される(ステップ68)。これらの命令は、スレッドがモ
ニタされている関数を抜け出すか、スレッドが終了する
まで、カウントされる。スレッドがそれ自身をスケジュ
ールしないと、カウントしている命令は中断されるかも
知れないが、スレッドが再びスケジュールされた後は、
命令のカウントが再開される。
【0021】この発明について実施例を参照しながら説
明したが、この技術分野の専門家ならば、特許請求の範
囲において定められるこの発明から逸脱することなく、
様々な変更や具体化を行うことができる。
【図面の簡単な説明】
【図1】この発明の好ましい実施例を実行する分散シス
テムの構成を示すブロック図である。
【図2】図1に示すコンピュータ・システムの構成を詳
細に示すブロック図である。
【図3】図2におけるAPIを詳細に示すブロック図で
ある。
【図4】この発明の好ましい実施例におけるプログラム
の性能のモニタおよびプログラムをチューニングの処理
の流れを、ユーザの操作に基づいて示すフローチャート
である。
【図5】この発明の好ましい実施例においてモニタが行
われるときに、ブレークポイントがどのように挿入され
るか、およびプログラムがどのように実行されるかを詳
細に示すフローチャートである。
【符号の説明】
10 分散システム 12 コンピュータ・システム 13 CPU 14 ネットワーク 16 メモリ 18 補助記憶装置 20 キーボード 22 ビデオ・ディスプレイ 26 アプリケーション・プログラム 28 オペレーティング・システム 30 カーネル 32 コード部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード エフ ラシッド アメリカ合衆国 ワシントン州 98072 ウッディンヴィル ノースイースト ワン ハンドレッドアンドサーティサード スト リート 18601

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 命令を実行するときにシステム・レベル
    またはユーザ・レベルで実行するプロセッサと、カーネ
    ルを含むオペレーティング・システムを記憶するための
    記憶機構とを備えたデータ処理システムにおける方法で
    あって、 前記プロセッサによって実行される命令をカウントする
    ための、前記オペレーティング・システムのカーネルの
    ファシリティ、および前記ファシリティによってカウン
    トされる命令をモニタするためのユーザ・レベル・モニ
    タリング・プログラムを提供し、 前記プロセッサ上でコードの一部を実行し、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記プロセッサ上で前記コードの
    一部を実行するときに実行される命令数をカウントし、
    ならびに前記ユーザ・レベル・モニタリング・プログラ
    ムに、実行された命令数のカウントを報告するステッ
    プ、 を含む方法。
  2. 【請求項2】 前記プロセッサ上で実行されるコードの
    一部が、オペレーティング・システムのカーネルの一部
    である、請求項1に記載の方法。
  3. 【請求項3】 前記プロセッサ上で実行されるコードの
    一部が、ユーザ・レベル・プログラムの一部である、請
    求項1に記載の方法。
  4. 【請求項4】 前記プログラム上で実行されるコードの
    一部が、オペレーティング・システムのカーネルの部分
    でない、請求項1に記載の方法。
  5. 【請求項5】 前記プロセッサ上で前記コードの一部を
    実行するときに実行される命令数のカウントを前記記憶
    機構に記憶するステップ、含む請求項1に記載の方法。
  6. 【請求項6】 前記コードの一部が関数であり、前記コ
    ードの一部を前記プロセッサ上で実行するステップが、
    前記関数を前記プロセッサ上で実行するステップを含む
    ものである、請求項1に記載の方法。
  7. 【請求項7】 前記プロセッサ上で実行されるコードの
    一部をチューニングし、前記コードの一部を前記プロセ
    ッサ上で実行するときに実行される命令数を減少させる
    ステップ、 を含む請求項1に記載の方法。
  8. 【請求項8】 前記データ処理システムが、第2のプロ
    セッサを含む分散システムであり、 第2のコードの一部を前記第2のプロセッサ上で実行
    し、 前記オペレーティング・システムのカーネルのファシリ
    ティを使用して、前記第2のプロセッサ上で前記第2の
    コードの一部を実行するときに実行される命令数をカウ
    ントし、および前記第2のコードの一部を実行するとき
    に実行される命令の前記カウントを、前記ユーザ・レベ
    ル・モニタリング・プログラムに報告するステップ、 を含む請求項1に記載の方法。
  9. 【請求項9】 前記第2のプロセッサ上で前記第2のコ
    ードの一部を実行するときに実行される命令数の前記カ
    ウントを、前記記憶機構に記憶するステップ、 を含む請求項8に記載の方法。
  10. 【請求項10】 命令を実行するときにシステム・レベ
    ルまたはユーザ・レベルで実行するプロセッサ、および
    カーネルを含むオペレーティング・システムを記憶する
    ための記憶機構を備えたデータ処理システムにおいて、 プログラムの実行中にコードの一部が呼び出された回数
    をカウントするための、前記オペレーティング・システ
    ムのカーネルのファシリティ、および前記ファシリティ
    によってカウントされる命令をモニタするためのユーザ
    ・レベル・モニタリング・プログラムを提供し、 第1のコードの一部を含むプログラムの少なくとも一部
    を前記プロセッサ上で実行し、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記第1のコードの一部が、前記
    プロセッサ上で前記プログラムの一部の実行中に呼び出
    される回数をカウントし、ならびに前記ユーザ・レベル
    ・モニタリング・プログラムに前記カウントを報告する
    ステップ、 を含む方法。
  11. 【請求項11】 前記プログラムが、前記オペレーティ
    ング・システムのカーネルの一部である、 請求項10に記載の方法。
  12. 【請求項12】 前記プログラムがユーザ・レベル・プ
    ログラムである、請求項10に記載の方法。
  13. 【請求項13】 前記プログラムが、前記オペレーティ
    ング・システムのカーネルの一部でない、 請求項10に記載の方法。
  14. 【請求項14】 前記第1のコードの一部が前記プログ
    ラムの一部の実行中に呼び出される回数のカウントを、
    前記記憶機構に記憶するステップ、 を含む請求項10に記載の方法。
  15. 【請求項15】 前記第1のコードの一部が、関数であ
    り、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記第1のコードの一部が前記プ
    ロセッサ上での前記プログラムの一部の実行中に呼び出
    される回数をカウントする前記ステップが、前記オペレ
    ーティング・システムのカーネルの前記ファシリティを
    使用して、前記関数が前記プログラムの一部の実行中に
    呼び出される回数をカウントするステップを含むもので
    ある、 請求項10に記載の方法。
  16. 【請求項16】 前記第1のコードの一部が、前記プロ
    グラムの一部の実行中に呼び出される回数のカウントを
    使用して、前記プログラムの性能のチューニングを指標
    するステップ、 を含む請求項10に記載の方法。
  17. 【請求項17】 前記プログラムが、第2のコードの一
    部を含み、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記第2のコードの一部が、前記
    プロセッサ上での前記プログラムの一部の実行中に呼び
    出される回数をカウントし、および前記第2のコードの
    一部が呼び出された回数のカウントを、前記ユーザ・レ
    ベル・モニタリング・プログラムに報告するステップ、 を含む請求項10に記載の方法。
  18. 【請求項18】 前記第2のコードの一部が前記プロセ
    ッサ上での前記プログラムの一部の実行中に呼び出され
    る回数のカウントを、前記記憶機構に記憶するステッ
    プ、 を含む請求項17に記載の方法。
  19. 【請求項19】 前記データ処理システムが、第2のプ
    ロセッサを含む分散システムであり、 コードの一部を含む第2のプログラムの少なくとも一部
    を、前記プロセッサ上で実行し、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記第2のプログラムの前記コー
    ドの一部が前記第2のプログラムの一部の実行中に呼び
    出される回数をカウントし、および前記第2のプログラ
    ムの前記コードの一部が呼び出された回数のカウント
    を、前記ユーザ・レベル・モニタリング・プログラムに
    報告するステップ、 を含む請求項10に記載の方法。
  20. 【請求項20】 前記第2のプログラムの前記コードの
    一部が前記第2のプログラムの一部の実行中に呼び出さ
    れる回数のカウントを、前記記憶機構に記憶するステッ
    プ、 を含む請求項19に記載の方法。
  21. 【請求項21】 命令を実行するためのシステム・レベ
    ルまたはユーザ・レベルで実行可能なプロセッサ、およ
    びカーネルを有するオペレーティング・システムを記憶
    するための記憶機構を備えたデータ処理システムにおい
    て、 前記プロセッサによって実行される命令をカウントする
    ためのファシリティを、前記オペレーティング・システ
    ムのカーネルに提供し、 前記プログラムの他の関数を呼び出す第1の関数を前記
    プロセッサ上で実行し、 前記オペレーティング・システムのカーネルの前記ファ
    シリティを使用して、前記第1の関数が前記プログラム
    の実行中に呼び出されたときに、前記第1の関数および
    前記他の関数で実行される命令の関数によって分類され
    る個別のカウントを求め、ならびに前記ユーザ・レベル
    ・モニタリング・プログラムに前記カウントを報告する
    ステップ、 を含む方法。
  22. 【請求項22】 前記プログラムが、前記オペレーティ
    ング・システムのカーネルの一部である、 請求項21に記載の方法。
  23. 【請求項23】 前記プログラムがユーザ・レベル・プ
    ログラムである、 請求項21に記載の方法。
  24. 【請求項24】 前記プログラムが、前記オペレーティ
    ング・システムのカーネルの一部でない、 請求項21に記載の方法。
  25. 【請求項25】 前記個別のカウントを前記記憶機構に
    記憶するステップを含む、 請求項21に記載の方法。
  26. 【請求項26】 前記プログラムの性能のチューニング
    を指標する前記個別のカウントを使用して、前記プログ
    ラムの性能をチューニングするステップ、 を含む請求項21に記載の方法。
  27. 【請求項27】 命令からなるモニタの対象プログラム
    の性能を測定するシステムであって、 ユーザ・レベル・モニタリング・プログラム、および実
    行される命令をカウントするファシリティを含むカーネ
    ルを備えたオペレーティング・システムを記憶するため
    の記憶機構、ならびに(i) 前記モニタの対象プログラム
    と前記ユーザ・レベル・モニタリング・プログラムを実
    行するためのプログラム実行ユニット、(ii)前記ファシ
    リティを呼び出して、前記モニタの対象プログラムの少
    なくとも一部によって実行される命令数をカウントする
    ファシリティ・インボーカ、および(iii) 前記ファシリ
    ティによって収集されたカウントを、前記ユーザ・レベ
    ル・モニタリング・プログラムに報告するカウント・レ
    ポータを備えたプロセッサ、を含むシステム。
  28. 【請求項28】 関数を含み、命令からなるモニタ対象
    のプログラムの性能を測定するシステムであって、ユー
    ザ・レベル・モニタリング・プログラム、および関数が
    呼び出される回数をカウントするファシリティを含むカ
    ーネルを備えたオペレーティング・システムを記憶する
    ための記憶機構、ならびに(i) 前記モニタの対象プログ
    ラムと前記ユーザ・レベル・モニタリング・プログラム
    を実行するためのプログラム実行ユニット、(ii)前記フ
    ァシリティを呼び出して、前記モニタの対象プログラム
    の実行中に、前記モニタの対象プログラム内の前記関数
    が呼び出される回数をカウントするファシリティ・イン
    ボーカ、および(iii) 前記カウントを、前記ユーザ・レ
    ベル・モニタリング・プログラムに報告するカウント・
    レポータを備えたプロセッサ、を含むシステム。
JP26881394A 1993-11-04 1994-11-01 オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム Expired - Lifetime JP4034363B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/147,645 US5485574A (en) 1993-11-04 1993-11-04 Operating system based performance monitoring of programs
US08/147645 1993-11-04

Publications (2)

Publication Number Publication Date
JPH07182209A true JPH07182209A (ja) 1995-07-21
JP4034363B2 JP4034363B2 (ja) 2008-01-16

Family

ID=22522352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26881394A Expired - Lifetime JP4034363B2 (ja) 1993-11-04 1994-11-01 オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム

Country Status (5)

Country Link
US (1) US5485574A (ja)
EP (1) EP0652518B1 (ja)
JP (1) JP4034363B2 (ja)
CA (1) CA2134060C (ja)
DE (1) DE69422476T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001026005A1 (en) * 1999-10-06 2001-04-12 Accenture Llp Method for determining total cost of ownership
US7020621B1 (en) 1999-10-06 2006-03-28 Accenture Llp Method for determining total cost of ownership
JP2007249844A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法
JP2008276683A (ja) * 2007-05-07 2008-11-13 Nec Electronics Corp 試験装置
JP2010211731A (ja) * 2009-03-12 2010-09-24 Fujitsu Ltd 並列処理支援プログラム、並列処理支援装置および並列処理支援方法

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263488B1 (en) * 1993-12-03 2001-07-17 International Business Machines Corporation System and method for enabling software monitoring in a computer system
JP3366475B2 (ja) * 1994-04-12 2003-01-14 三菱電機株式会社 データ処理速度の評価方法
US6026236A (en) * 1995-03-08 2000-02-15 International Business Machines Corporation System and method for enabling software monitoring in a computer system
CA2195402A1 (en) * 1995-05-19 1996-11-21 At&T Ipm Corp. Method for monitoring a digital multiprocessor
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5887167A (en) * 1995-11-03 1999-03-23 Apple Computer, Inc. Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
US5920719A (en) * 1995-11-06 1999-07-06 Apple Computer, Inc. Extensible performance statistics and tracing registration architecture
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5799143A (en) * 1996-08-26 1998-08-25 Motorola, Inc. Multiple context software analysis
US5878208A (en) * 1996-11-25 1999-03-02 International Business Machines Corporation Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring
US5884080A (en) * 1996-11-26 1999-03-16 International Business Machines Corporation System and method for instruction burst performance profiling for single-processor and multi-processor systems
US5970439A (en) * 1997-03-13 1999-10-19 International Business Machines Corporation Performance monitoring in a data processing system
US5872976A (en) * 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6092180A (en) * 1997-11-26 2000-07-18 Digital Equipment Corporation Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
US6070009A (en) * 1997-11-26 2000-05-30 Digital Equipment Corporation Method for estimating execution rates of program execution paths
US5923872A (en) * 1997-11-26 1999-07-13 Digital Equipment Corporation Apparatus for sampling instruction operand or result values in a processor pipeline
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6148396A (en) * 1997-11-26 2000-11-14 Compaq Computer Corporation Apparatus for sampling path history in a processor pipeline
US5809450A (en) * 1997-11-26 1998-09-15 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in a processor pipeline
US5964867A (en) * 1997-11-26 1999-10-12 Digital Equipment Corporation Method for inserting memory prefetch operations based on measured latencies in a program optimizer
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6047390A (en) * 1997-12-22 2000-04-04 Motorola, Inc. Multiple context software analysis
US6199199B1 (en) * 1998-09-16 2001-03-06 International Business Machines Corporation Presentation of visual program performance data
US20020059544A1 (en) * 1999-02-04 2002-05-16 Boucher Michael L. Methods and systems for determining and displaying activities of concurrent processes
US6434714B1 (en) * 1999-02-04 2002-08-13 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for analyzing performance of application programs
GB2348718A (en) * 1999-04-07 2000-10-11 Ibm Data processing system having a centralised trace facility with dynamic tracing
US6961749B1 (en) 1999-08-25 2005-11-01 Network Appliance, Inc. Scalable file server with highly available pairs
US6557167B1 (en) * 1999-09-03 2003-04-29 International Business Machines Corporation Apparatus and method for analyzing performance of a computer program
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6961930B1 (en) 1999-09-22 2005-11-01 Hewlett-Packard Development Company, L.P. Efficient, transparent and flexible latency sampling
US6542985B1 (en) * 1999-09-23 2003-04-01 Unisys Corporation Event counter
US6675374B2 (en) 1999-10-12 2004-01-06 Hewlett-Packard Development Company, L.P. Insertion of prefetch instructions into computer program code
ES2288467T3 (es) * 1999-10-26 2008-01-16 Iontas Limited Supervision de la utilizacion de ordenadores.
US6883120B1 (en) * 1999-12-03 2005-04-19 Network Appliance, Inc. Computer assisted automatic error detection and diagnosis of file servers
US6658557B1 (en) 2000-05-25 2003-12-02 Advanced Micro Devices, Inc. Synthesizing the instruction stream executed by a microprocessor from its branch trace data
US6658652B1 (en) 2000-06-08 2003-12-02 International Business Machines Corporation Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing
US6792392B1 (en) * 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6904594B1 (en) 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US6735758B1 (en) 2000-07-06 2004-05-11 International Business Machines Corporation Method and system for SMP profiling using synchronized or nonsynchronized metric variables with support across multiple systems
US7389497B1 (en) * 2000-07-06 2008-06-17 International Business Machines Corporation Method and system for tracing profiling information using per thread metric variables with reused kernel threads
US6658654B1 (en) 2000-07-06 2003-12-02 International Business Machines Corporation Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment
US6662359B1 (en) 2000-07-20 2003-12-09 International Business Machines Corporation System and method for injecting hooks into Java classes to handle exception and finalization processing
US6742178B1 (en) 2000-07-20 2004-05-25 International Business Machines Corporation System and method for instrumenting application class files with correlation information to the instrumentation
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US7120879B2 (en) * 2001-04-20 2006-10-10 Peter Pius Gutberlet Hierarchical presentation techniques for a design tool
US7509485B2 (en) * 2002-09-04 2009-03-24 Chou Hui-Ling Method for loading a program module in an operating system
US7353501B2 (en) * 2002-11-18 2008-04-01 Microsoft Corporation Generic wrapper scheme
US7849465B2 (en) 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US7487502B2 (en) * 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7900092B2 (en) * 2003-07-11 2011-03-01 Computer Associates Think, Inc. Kernel-level method of flagging problems in applications
US20050193375A1 (en) * 2004-02-27 2005-09-01 Larson Matthew D. Software monitoring system for the polling of processes to determine the presently executing function
US7822662B2 (en) * 2004-03-29 2010-10-26 Microsoft Corporation Key performance indicator system and method
US20060025984A1 (en) * 2004-08-02 2006-02-02 Microsoft Corporation Automatic validation and calibration of transaction-based performance models
US20060048011A1 (en) * 2004-08-26 2006-03-02 International Business Machines Corporation Performance profiling of microprocessor systems using debug hardware and performance monitor
US7383470B2 (en) * 2004-09-30 2008-06-03 Microsoft Corporation Method, system, and apparatus for identifying unresponsive portions of a computer program
US20060070077A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Providing custom product support for a software program
US8161461B2 (en) * 2005-03-24 2012-04-17 Hewlett-Packard Development Company, L.P. Systems and methods for evaluating code usage
US20060224925A1 (en) * 2005-04-05 2006-10-05 International Business Machines Corporation Method and system for analyzing an application
US20070074224A1 (en) * 2005-09-28 2007-03-29 Mediatek Inc. Kernel based profiling systems and methods
US20070079177A1 (en) * 2005-09-30 2007-04-05 Charles Spirakis Process monitoring and diagnosis apparatus, systems, and methods
US7552396B1 (en) * 2008-04-04 2009-06-23 International Business Machines Corporation Associating screen position with audio location to detect changes to the performance of an application
US8713535B2 (en) * 2008-06-30 2014-04-29 Microsoft Corporation Reliable and accurate usage detection of a software application
CN101650787A (zh) * 2008-08-13 2010-02-17 鸿富锦精密工业(深圳)有限公司 仿生老化系统及其老化方法
US8140832B2 (en) * 2009-01-23 2012-03-20 International Business Machines Corporation Single step mode in a software pipeline within a highly threaded network on a chip microprocessor
US8572357B2 (en) 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt
JP2011100388A (ja) * 2009-11-09 2011-05-19 Fujitsu Ltd トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法
US8571834B2 (en) 2010-01-08 2013-10-29 International Business Machines Corporation Opcode counting for performance measurement
US9665461B2 (en) * 2009-12-04 2017-05-30 Red Hat, Inc. Obtaining application performance data for different performance events via a unified channel
US8286192B2 (en) * 2009-12-04 2012-10-09 Red Hat, Inc. Kernel subsystem for handling performance counters and events
US8935703B2 (en) * 2009-12-11 2015-01-13 Red Hat, Inc. Performance counter inheritance
US8954996B2 (en) * 2009-12-11 2015-02-10 Red Hat, Inc. Profiling the system providing performance statistics in real time
US8171340B2 (en) * 2009-12-11 2012-05-01 Red Hat, Inc. Software performance counters
US9389936B2 (en) 2011-09-23 2016-07-12 Microsoft Technology Licensing, Llc. Monitoring the responsiveness of a user interface
US8538792B1 (en) 2012-04-26 2013-09-17 Jpmorgan Chase Bank, N.A. Method and system for determining total cost of ownership
CN109144844B (zh) 2017-06-27 2023-01-31 阿里巴巴集团控股有限公司 追踪方法、装置、设备和机器可读介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103394A (en) * 1984-04-30 1992-04-07 Hewlett-Packard Company Software performance analyzer
US4845615A (en) * 1984-04-30 1989-07-04 Hewlett-Packard Company Software performance analyzer
US5047919A (en) * 1986-04-03 1991-09-10 Harris Corporation Method and apparatus for monitoring software execution in a parallel multiprocessor computer system
GB2197506A (en) * 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
GB2258063B (en) * 1991-07-26 1995-07-05 Research Machines Plc Monitoring execution of a computer program to provide profile analysis

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001026005A1 (en) * 1999-10-06 2001-04-12 Accenture Llp Method for determining total cost of ownership
US7020621B1 (en) 1999-10-06 2006-03-28 Accenture Llp Method for determining total cost of ownership
JP2007249844A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法
US8762975B2 (en) 2006-03-17 2014-06-24 Fujitsu Semiconductor Limited Performance tuning apparatus, performance tuning method, and computer product
JP2008276683A (ja) * 2007-05-07 2008-11-13 Nec Electronics Corp 試験装置
JP2010211731A (ja) * 2009-03-12 2010-09-24 Fujitsu Ltd 並列処理支援プログラム、並列処理支援装置および並列処理支援方法

Also Published As

Publication number Publication date
EP0652518A1 (en) 1995-05-10
DE69422476T2 (de) 2000-05-31
JP4034363B2 (ja) 2008-01-16
US5485574A (en) 1996-01-16
EP0652518B1 (en) 2000-01-05
DE69422476D1 (de) 2000-02-10
CA2134060A1 (en) 1995-05-05
CA2134060C (en) 2001-01-02

Similar Documents

Publication Publication Date Title
JP4034363B2 (ja) オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム
US6253338B1 (en) System for tracing hardware counters utilizing programmed performance monitor to generate trace interrupt after each branch instruction or at the end of each code basic block
US6223338B1 (en) Method and system for software instruction level tracing in a data processing system
US6446029B1 (en) Method and system for providing temporal threshold support during performance monitoring of a pipelined processor
US6961930B1 (en) Efficient, transparent and flexible latency sampling
US6785893B2 (en) Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur
US6708326B1 (en) Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
US5872909A (en) Logic analyzer for software
US6079032A (en) Performance analysis of computer systems
US5752062A (en) Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5797019A (en) Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5691920A (en) Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5751945A (en) Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US20030037089A1 (en) Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US5920689A (en) System and method for low overhead, high precision performance measurements using state transitions
US5799143A (en) Multiple context software analysis
JPH0588948A (ja) サンプリング性能分析方法及び装置
US5949971A (en) Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US7506207B2 (en) Method and system using hardware assistance for continuance of trap mode during or after interruption sequences
US9361205B2 (en) Code coverage framework
US5748855A (en) Method and system for performance monitoring of misaligned memory accesses in a processing system
Endo et al. Improving interactive performance using TIPME
EP2630577B1 (en) Exception control in a multiprocessor system
JP2005215816A (ja) ハードウェアモニタを用いた性能プロファイリング方法
US20080010555A1 (en) Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050426

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20050726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050824

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051024

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071025

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

EXPY Cancellation because of completion of term