JP3099807B2 - Cpu使用率測定方式 - Google Patents
Cpu使用率測定方式Info
- Publication number
- JP3099807B2 JP3099807B2 JP10132901A JP13290198A JP3099807B2 JP 3099807 B2 JP3099807 B2 JP 3099807B2 JP 10132901 A JP10132901 A JP 10132901A JP 13290198 A JP13290198 A JP 13290198A JP 3099807 B2 JP3099807 B2 JP 3099807B2
- Authority
- JP
- Japan
- Prior art keywords
- software counter
- measurement
- cpu
- processing
- measuring
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
方式に関し、詳しくは、タスクスケジュールなどの内部
情報が公開されていないOS(オペレーティングシステ
ム)を使用したシステムにおいて、システム実働時の指
定区間内のアプリケーションプログラムのCPU使用率
を、ハードウェアカウンタやロジックアナライザといっ
たハードウェア手段に頼らずに簡便なソフトウェア手段
のみにより正確に測定することができるCPU使用率測
定方式に関するものである。
において、測定対象となるアプリケーションプログラム
101に対して、ソフトウェアカウンタ104と、その
ソフトウェアカウンタ104をインクリメントし続ける
CPU使用率測定用疑似アイドルタスク103と、CP
U使用率測定用測定開始処理105とCPU使用率測定
用測定終了処理106を提供するCPU使用率測定用イ
ンタフェース処理部102とを用意することにより、シ
ステム稼働時の指定区間内のCPU使用率をソフトウェ
ア手段のみにより測定する方式に関している。
ペレーティングシステム)を適用したシステムにおい
て、例えば図2に示すようにアプリケーションタスク
A、BやCPU使用率測定用疑似アイドルタスク103
が走行している場合に、計測区間の時間(T2−T1)
に対するCPU使用率測定用疑似アイドレタスク103
の総走行時間(t1+t2+t3+t4)以外の走行比
率として表わされる。
ェアカウンタ基準値測定用メインプログラム301と、
ソフトウェアスウンタ304と、そのソフトウェアカウ
ンタ304をインクリメントし続けるソフトウェアカウ
ンタ基準値測定用疑似アドルスタスク303と、ソフト
ウェアカウンタ基準値測定用測定開始処理305とソフ
トウェアカウンタ基準値測定用測定終了処理306を提
供するソフトウェアカウンタ基準値測定用インタフェー
ス処理部302とを使用し、図1のモジュール構成を使
用してCPU使用率を測定する際に必要となるCPU使
用率測定用疑似アイドルタスク103の走行比率算出用
基準値であるソフトウェアカウンタ基準値を測定する方
式を提供することも特徴とする。
インタフェース処理部102やCPU使用率測定用疑似
アイドルタスク103は、キャッシュミスヒットの影響
(特にソフトウェアカウンタ104のインクリメント処
理の誤差発生)が出ないようにするために、非キャッシ
ュアドレスで動作させる実行モジュールとして作成し、
通常キャッシュアドレスで動作させるアプリケーション
プログラム101からの処理のコールは、処理ルーチン
登録テーブルを使用して別実行モジュールの実体関数へ
の間接コールを実現することができるインタフェースラ
イブラリによって実現することも特徴とする。
つまり、ソフトウェアカウンタ基準値測定用インタフェ
ース処理部302やソフトウェア基準値測定用疑似アイ
ドルタスク303は、キャッシュミスヒットの影響(特
にソフトウェアカウンタ304のインクリメント処理の
誤差発生)が出ないようにするために、非キャッシュア
ドレスで動作させる実行モジュールとして作成し、通常
キャッシュアドレスで動作させるアプリケーションプロ
グラム101を想定したソフトウェアカウンタ基準値測
定用メインプログラム301からの処理のコールは、処
理ルーチン登録テーブルを使用して別実行モジュールの
実体関数への間接コールを実現するインタフェースライ
ブラリを用意することも特徴とする。
に、OSのタスクスケジューリングの情報を前提とした
ものは存在していた。
は、アプリケーションプログラム自体への走行時間出力
処理を追加したり、ロジックアナライザなどのハードウ
ェア手段によりソフトウェアの走行アドレスを直接ハー
ドウェアから取得し、何も処理を行なわないアイドルタ
スクの走行を区間を特定するといった方法が採られてい
た。
従来技術には、次のような問題点があった。
していないOSではCPU使用率は確定することができ
ない。
グラムの状態を変化させてしまう。
することができない。また、その接続の手間、多量のシ
ステムでの適用などが無理であるなどの欠点があった。
ものであり、従って本発明の目的は、従来の技術に内在
する上記諸欠点を解消することを可能とした新規なCP
U使用率測定方式を提供することにある。
に、本発明に係るCPU使用率測定方式は、測定対象と
なるシステム上で動作するアプリケーションプログラム
と、該アプリケーションプログラムに対し測定の基準と
なるソフトウェアカウンタと、該ソフトウェアカウンタ
を走行中常にインクリメントし続けるCPU使用率測定
用疑似アイドルタスクと、CPU使用率測定開始処理と
CPU使用率測定用終了処理を前記アプリケーションプ
ログラムに対して提供するCPU使用率測定用インタフ
ェース処理部とを具備し、システム稼働時に前記アプリ
ケーションプログラムにより指定された任意の開始点か
ら終了点までの間のCPU使用率を測定することを特徴
としている。
クは、ソフトウェアカウンタをインクリメントし続ける
タスクであり、動作中の前記アプリケーションプログラ
ムのどのタスクよりも低いプライオリティを付与され、
動作中の前記アプリケーションプログラムの全てのタス
クが動作していない場合においてのみ走行し、この場合
だけ前記ソフトウェアカウンタをインクリメントし続け
ることを特徴としている。
クのプライオリティは、OSが用意した最低位のタスク
のプライオリティより高いものである。
理部やCPU使用率測定用疑似アイドルタスクは、キャ
ッシュミスヒットの影響が出ないようにするために、非
キャッシュアドレスで動作させる実行モジュールとして
作成され、通常キャッシュアドレスで動作させる前記ア
プリケーションプログラムからの処理のコールは、処理
ルーチン登録テーブルを使用して別実行モジュールの実
体関数への間接コールを実現することができるインタフ
ェースライブラリにより実現されることを特徴としてい
る。
用してCPU使用率を測定する際に必要となるCPU使
用率測定用疑似アイドルタスクの走行比率算出用基準値
であるソフトウェアカウンタ基準値を測定するために、
ソフトウェアカウンタ基準値測定用メインプログラム
と、第2のソフトウェアカウンタと、該第2のソフトウ
ェアカウンタをインクリメントし続けるソフトウェアカ
ウンタ基準値測定用疑似アイドルタスクと、ソフトウェ
アカウンタ基準値測定用測定開始処理とソフトウェアカ
ウンタ基準値測定用測定終了処理を提供するソフトウェ
アカウンタ基準値測定用インタフェース処理部とを使用
することを特徴としている。
理フローとして、まず計測データ群の初期化を行う第1
の工程と、ソフトウェアカウンタのインクリメント処理
として、まず該ソフトウェアカウンタ(下位)のオーバ
フローの有無をチェックする第2の工程と、該第2の工
程によるチェックの結果オーバフローしていなかった場
合には単に前記ソフトウェアカウンタ(下位)を1つイ
ンクリメントする第3の工程と、前記第2の工程による
チェックの結果オーバフローしていた場合には前記ソフ
トウェアカウンタ(上位)への桁上がりと判断する第4
の工程と、次に前記ソフトウェアカウンタ(上位)のオ
ーバフローの有無をチェックする第5の工程と、もし、
該第5の工程によるチェックの結果オーバフローしてい
なかった場合には前記ソフトウェアカウンタ(上位)を
1つインクリメントする第6の工程と、該第6の工程を
実行すると共に前記ソフトウェアカウンタ(下位)を0
クリアする第7の工程と、前記第5の工程によるチェッ
クの結果オーバフローしていた場合にはこれ以上測定で
きないためにこれで測定終了と判断し、この時点での周
期割り込み回数の取得を行い、用なしとなった前記CP
U使用率測定用疑似アイドルタスクを削除する第8の工
程とを有することを特徴としている。
化は、測定開始/終了時に取得する周期割り込み回数の
格納先と前記ソフトウェアカウンタ(下位/上位)の0
クリアを行うことであることを特徴としている。
クは、前記第2の工程〜第8の工程から成る前記ソフト
ウェアカウンタのインクリメント処理を繰り返して実行
することを特徴としている。
疑似アイドルタスク処理フローとして、まず計測データ
群の初期化を行う第1の処理と、ソフトウェアカウンタ
のインクリメント処理として、まず該ソフトウェアカウ
ンタ(下位)のオーバフローの有無をチェックする第2
の処理と、該第2の処理によるチェックの結果オーバフ
ローしていなかった場合には単に前記ソフトウェアカウ
ンタ(下位)を1つインクリメントする第3の処理と、
前記第2の処理によるチェックの結果オーバフローして
いた場合には前記ソフトウェアカウンタ(上位)への桁
上がりと判断する第4の処理と、次に前記ソフトウェア
カウンタ(上位)のオーバフローの有無をチェックする
第5の処理と、もし、該第5の処理によるチェックの結
果オーバフローしていなかった場合には前記ソフトウェ
アカウンタ(上位)を1つインクリメントする第6の処
理と、該第6の処理を実行すると共に前記ソフトウェア
カウンタ(下位)を0クリアする第7の処理と、前記第
5の処理によるチェックの結果オーバフローしていた場
合にはこれ以上測定できないためにこれで測定終了と判
断し、この時点での周期割り込み回数の取得を行い、用
なしとなった前記CPU使用率測定用疑似アイドルタス
クを削除する第8の処理と、前記CPU使用率測定用疑
似アイドルタスクによる前記第2〜第8の処理を含む前
記ソフトウェアカウンタのインクリメント処理を繰り返
し実行する処理とをコンピュータに実行させるプログラ
ムを記録した記録媒体が得られる。
施の形態について図面を参照しながら詳細に説明する。
るCPU使用率測定方式において、システム稼働時にC
PU使用率を測定するモジュール構成の一実施の形態を
示すブロック構成図である。
形態は、測定対象となるシステム上で動作するアプリケ
ーションプログラム101に対し、測定の基準となるソ
フトウェアカウンタ104と、そのソフトウェアカウン
タ104を走行中常にインクリメントし続けるCPU使
用率測定用疑似アイドルタスク103と、CPU使用率
測定開始処理105とCPU使用率測定用終了処理10
6をアプリケーションプログラム101に対して提供す
るCPU使用率測定用インタフェース処理部102とか
ら構成され、システム稼働時にアプリケーションプログ
ラム101により指定された任意の開始点から終了点ま
での間のCPU使用率の測定値を提供する。
タスク103は、ソフトウェアカウンタ104をインク
リメントし続けるタスクであり、動作中のアプリケーシ
ョンプログラムのどのタスクよりも低いプライオリティ
を付与されたタスクである。したがって、CPU使用率
測定用疑似アイドルタスク103は、動作中のアプリケ
ーションプログラムの全てのタスクが動作していない場
合においてのみ走行し、つまり、この場合だけ、ソフト
ウェアカウンタ104をインクリメントし続けるタスク
である。「疑似」としたのは、通常のOS(オペレーテ
ィングシステム)においては、OSが用意した最低位の
タスクが存在するために、それと区別するためである。
CPU使用率測定用疑似アイドルタスク103のプライ
オリティは、OSが用意した最低位のタスクのプライオ
リティより高いものである必要がある。
図1に示すソフトウェアカウンタ104がカウントアッ
プされるかを測定してCPU使用率を測定する方式であ
る。従って、ソフトウェアカウンタ104のカウントア
ップ数を測定すると共に、測定対象時間を測定すること
も必要である。
るシステムコールで得られる周期割り込み発生回数を使
用している。例えば、ある時点aで得られた値がxで、
その後のb時点で得られた値がyならば、(y−x)が
測定対象時間を示す値であると見做している。
のソフトウェアカウンタ104のカウントアップ数を基
準値として測定しておく。次に、実際のCPU使用率の
測定を実施する。
り込みがN回発生し、そしてその間にソフトウェアカウ
ンタ104がどのくらいカウントアップするかを測定す
る。
のカウンタ数がR、測定対象時間を示す周期割り込み回
数がN回だったとすると、 (N−(R/Q))/N×100 でCPU使用率が%で得られる。
Qが必要なわけである。つまり、カウンタ数Rを周期割
り込み数換算するために必要な値となる。これがソフト
ウェアカウンタ基準値である。
フトウェアカウンタ104の基準値を、図3に示された
ソフトウェアカウンタ基準値測定モジュールによって測
定している。
タスク103の走行比率を得るために、図1のモジュー
ル構成でCPU使用率を測定する前に実施してソフトウ
ェアカウンタ基準値を得るためのモジュール構成の一実
施例を示すブロック構成図である。
ンタ基準値を得るモジュール構成は、ソフトウェアカウ
ンタ基準値測定用メインプログラム301と、測定の基
準となるソフトウェアカウンタ304と、このソフトウ
ェアカウンタ304を走行中常にインクリメントし続
け、適宜その値をリードするソフトウェアカウンタ基準
値測定用疑似アイドルタスク303と、ソフトウェアカ
ウンタ基準値測定用測定開始処理305とソフトウェア
カウンタ基準値測定用測定終了処理306をソフトウェ
アカウンタ基準値測定用メインプログラム301に対し
て提供するソフトウェアカウンタ基準値測定用インタフ
ェース処理部302とから構成され、ソフトウェアカウ
ンタ基準値測定用メインプログラム301により指定さ
れた区間に関して得られたデータを基に、ソフトウェア
カウンタの基準値を算出する。
インタフェース処理部102やCPU使用率測定用疑似
アイドルタスク103は、キャッシュミスヒットの影
響、特にソフトウェアカウンタ104のインクリメント
処理の誤差発生が出ないようにするために、非キャッシ
ュアドレスで動作させる実行モジュールとして作成し、
通常キャッシュアドレスで動作させるアプリケーション
プログラム101からの処理のコールは、処理ルーチン
登録テーブルを使用して別実行モジュールの実体関数へ
の間接コールを実現することができるようにするインタ
フェースライブラリによって実現する。
つまり、図3において、ソフトウェアカウンタ基準値測
定用インタフェース処理部302やソフトウェアカウン
タ基準値測定用疑似アイドルタスク303は、キャッシ
ュミスヒットの影響(特にソフトウェアカウンタ304
のインクリメント処理の誤差発生)が出ないようにする
ために、非キャッシュアドレスで動作させる実行モジュ
ールとして作成し、通常キャッシュアドレスで動作させ
るアプリケーションプログラム101を想定したソフト
ウェアカウンタ基準値測定用メインプログラム301か
らの処理のコールは、処理ルーチン登録テーブルを使用
して別実行モジュールの実体関数への間接コールを実現
するインタフェースライブラリを用意する。
図7に示すフローチャートを参照して、本発明による実
施の形態のCPU使用率測定時の動作について詳細に説
明する。
フトウェアカウンタとして、32ビットのカウンタを2
つ使用し、それぞれ下位カウンタ、上位カウンタとして
使用した例で説明している(以降、単にソフトウェアカ
ウンタと記載した場合には、下位と上位を総称したもの
を指している)。
期のものでよく、周期割り込み回数が32ビットで得ら
れるものであるとして説明している。
フローチャートである。
ンタ104のインクリメントを開始すべく、CPU使用
率測定用疑似アイドルタスク103の生成501と起動
502を実施する。
周期割り込み回数を取得して保存503する(この結
果、ソフトウェアカウンタ104は0からのインクリメ
ントを開始する)。
フローチャートである。
ンタ104がオーバフローしていないかどうかをチェッ
ク601する。チェックの結果、オーバフローしていた
場合には、CPU使用率の計算604の処理へ進む(こ
れは、図7の707の処理でソフトウェアカウンタ10
4(上位)のインクリメントの度にオーバフローの有無
のチェックを行っており、オーバフローだった場合には
周期割り込み回数の取得を実施済みなので図6の処理で
は不要なためである)。
た場合には、この測定終了時点の周期割り込み回数の取
得と保存602を行い、用なしとなったCPU使用率測
定用疑似アイドルタスクを削除603する。
U使用率測定用疑似アイドルタスク103の走行中の総
周期割り込み回数を計算605する。計算は、この時点
でのソフトウェアカウンタ104のカウンタ数を、図3
のモジュール構成で予め測定済みのソフトウェアカウン
タ基準値で割ることにより得る。
ルタスクの総走行時間を周期割り込み回数に置換した値
が得られる。
回数606を求める。計算は、測定終了時の周期割り込
み回数が、測定開始時の周期割り込み回数よりも大きか
った場合には、測定終了時の周期割り込み回数から測定
開始時の周期割り込み回数を引くことにより得られる。
始時の周期割り込み回数よりも小さかった場合には、ソ
フトウェアカウンタ104が1周りした後だと判断し、
(0xffffffff−測定開始の周期割り込み回数
+1)と測定終了時の周期割り込み回数の合計値より得
る。
る。計算は、605で得た値をA、606で得た値をB
としたときに、((B−A)×100)/Bで得られ
る。
変換して所定の場所へ格納608する。
スク処理フローチャートである。
期化701を行う。具体的には、測定開始/終了時に取
得する周期割り込み回数の格納先とソフトウェアカウン
タ104(下位/上位)の0クリアを行う。
スク103は、ソフトウェアカウンタ104のインクリ
メント処理702を繰り返し実行する。
ント処理は、まずソフトウェアカウンタ104(下位)
のオーバフローの有無をチェック705する。オーバフ
ローしていなかった場合には、単にソフトウェアカウン
タ104(下位)を1つインクリメント706する。
ェアカウンタ104(上位)への桁上がりと判断し、次
に、ソフトウェアカウンタ104(上位)のオーバフロ
ーの有無をチェック707する。
は、ソフトウェアカウンタ104(上位)を1つインク
リメント708すると共に、ソフトウェアカウンタ10
4(下位)を0クリア709する。
測定できないためにこれで測定終了と判断し、この時点
での周期割り込み回数の取得703を行い、用なしとな
ったCPU使用率測定用疑似アイドルタスクを削除70
4する。
ャートを参照して、本実施の形態のソフトウェアカウン
タ基準値測定時の動作について詳細に説明する。
6、図7と同様に、ソフトウェアカウンタとして、32
ビットのカウンタを2つ使用し、それぞれ下位カウン
タ、上位カウンタとして使用した例で説明している(以
降、単にソフトウェアカウンタと記載した場合には、下
位と上位を総称したものを指している)。
期のものでよく、周期割り込み回数が32ビットで得ら
れるものであるとして説明している。
用測定開始処理フローチャートである。
フトウェアカウンタ304のインクリメントを開始すべ
く、ソフトウェアカウンタ基準値測定用疑似アイドルタ
スク303の生成801と、起動802を実施する(こ
の結果、ソフトウェアカウンタ304は0からのインク
リメントを開始する)。
用測定終了処理フローチャートである。
フトウェアカウンタ基準値測定用疑似アイドルタスク3
03がソフトウェアカウンタ304(上位)を参照し指
定回数分実行が完了しているかどうかをチェック901
する。
いで終了する(これは、図10の1008の処理でソフ
トウェアカウンタ304(上位)のインクリメントの度
に指定回数分の実行が完了しているかどうかチェックを
行っており、完了している場合には周期割り込み回数の
取得を既に実施済みなので図9の処理では不要なためで
ある)。
た場合には、この測定終了時点の周期割り込み回数の取
得と保存902を行い、用なしとなったソフトウェアカ
ウンタ基準値測定用疑似アイドルタスクを削除903す
る。
定用疑似アイドルタスク処理フローチャートである。
初期化1101を行う。具体的には、測定開始/終了時
に取得した周期割り込み回数の格納先と、図3に示され
たソフトウェアカウンタ304(下位/上位)の0クリ
アを行う。
取得1102する。以後、図3に示されたソフトウェア
カウンタ基準値測定用疑似アイドルタスク303は、ソ
フトウェアカウンタ304のインクリメント処理110
3を繰り返し実行する。
ント処理1103は、まずソフトウェアカウンタ304
(下位)のオーバフローの有無をチェック1106す
る。
にソフトウェアカウンタ304(下位)を1つインクリ
メント1107する。
ェアカウンタ304(上位)への桁上がりと判断し、次
に、ソフトウェアカウンタ304(上位)が指定回数分
の実行が完了しているかどうかをチェック1108す
る。
った場合には、ソフトウェアカウンタ304(上位)を
1つインクリメント1109すると共に、ソフトウェア
カウンタ304(下位)を0クリア1110する。
測定終了と判断し、この時点での周期割り込み回数の取
得1104を行い、用なしとなったソフトウェアカウン
タ基準値測定用疑似アイドルタスク303を削除110
5する。
用メインプログラムの処理概要を示した図である。
アカウンタ基準値測定用メインプログラム301は、ま
ず、周期割り込みのタスクを解除401を行うと共に、
ソフトウェアカウンタ基準値測定用測定開始処理305
をコール402する。
メインプログラム301のタスクプライオリティをソフ
トウェアカウンタ基準値測定用疑似アイドルタスク30
3よりみづから低く設定する。
し、走行タスクは、ソフトウェアカウンタ基準値測定用
疑似アイドルタスク303に移行する。その後、ソフト
ウェアカウンタ基準値測定用疑似アイドルタスク303
は、インクリメントを開始405し、やがて指定分のイ
ンクリメントを終了し、みづから自タスクを終了させ
る。
し、走行タスクはWAIT状態にあったソフトウェアカ
ウンタ基準値測定用メインプログラム301へと変化す
る。
用測定終了処理306をコール408すると、前記図9
で説明した処理をソフトウェアカウンタ基準値測定用測
定終了処理306が実施される。
込みあたりのソフトウェアカウンタのインクリメント回
数=N3/(N2−N1) N1:402で取得した周期割り込み回数 N2:408で取得した周期割り込み回数 N3:ソフトウエアカウンタのインクリメント回数 この結果、ソフトウェアカウンタ基準値を、上記の式で
計算することができる。この結果得られる値は、1周期
割り込みあたりのソフトウェアカウンタのインクリメン
ト時間である。
率を測定する場合には、このソフトウェアカウンタ基準
値を使って、CPU使用率測定用アイドルタスクの走行
時間を、周期割り込み回数換算で得ることができるよう
になり、同じく周期割り込み回数を使って得た測定総区
間の値を分母とすることにより、CPU使用率測定用疑
似アイドルタスクの走行比率を得ることができるように
なる。
イムOSの場合には、周期割り込み回数を任意のタイミ
ングで知ることができるアプリケーションインタフェー
ス(システムコール)を提供している。従って、本発明
の実現に当たっては、この機能の利用が簡便である。し
かしながら、この機能がなくても、CPU、もしくはC
PUボード上の周期タイマから周期割り込み回数を得る
ソフトウェア手段を簡便に実現することができるため
に、本発明の方式を容易に実現することが可能となる。
ットのものを2つでなくてもかまわない。また、周期割
り込み回数のデータ幅も32ビットである必要性はな
い。
による更に他の実施の形態について図面を参照しながら
詳細に説明する。
を実施するデータ処理システムの構成を示すブロック図
である。
発明に係るCPU使用率測定用疑似アイドルタスク処理
プログラムを記録した記録媒体を示し、入力装置201
からの指示によりこの記録媒体203より疑似アイドル
タスク処理プログラムがデータ処理装置202に読み込
まれる。
タは一旦記憶装置204に格納され、記憶装置204か
らデータ処理装置202を介して出力装置205に出力
され、入力装置201の入力操作によりその都度出力装
置205にそのデータ即ち疑似アイドルタスク処理プロ
グラムが出力され、それと同時にモニタ206に表示さ
れる。オペレータはモニタ206を目視しながら入力操
作を実行することができる。
測定用疑似アイドルタスク処理プログラムは、図7のフ
ローチャートに示されたCPU使用率測定用疑似アイド
ルタスク処理プログラムである。
ルタスク処理プログラムは、第1の処理として、まず計
測データ群の初期化が行われる。具体的には、測定開始
/終了時に取得する周期割り込み回数の格納先とソフト
ウェアカウンタ104(下位/上位)の0クリアが行わ
れる。
スク103は、ソフトウェアカウンタ104のインクリ
メント処理を繰り返し実行する。
104のインクリメント処理は、まずソフトウェアカウ
ンタ104(下位)のオーバフローの有無をチェックす
る。オーバフローしていなかった場合には、単にソフト
ウェアカウンタ104(下位)を1つインクリメントす
る(第3の処理)。
場合には、ソフトウェアカウンタ104(上位)への桁
上がりと判断し、次に、ソフトウェアカウンタ104
(上位)のオーバフローの有無をチェックする(第5の
処理)。
は、ソフトウェアカウンタ104(上位)を1つインク
リメントする(第6の処理)、と共に、ソフトウェアカ
ウンタ104(下位)を0クリアする。
場合には、これ以上測定できないためにこれで測定終了
と判断し、この時点での周期割り込み回数の取得を行な
い、用なしとなったCPU使用率測定用疑似アイドルタ
スクを削除する(第8の処理)。
ものであり、本発明によれば以下に示すごとき効果が得
られる。
内部情報が公開されていないOS(オペレーティングシ
ステム)を使用したシステムにおいて、システム実働時
の指定区間内のアプリケーションプログラムのCPU使
用率を、ハードウェアカウンタやロジックアナライザと
いったハードウェア手段に頼らずに簡便なソフトウェア
手段のみにより正確に測定する方法が提供できる点にあ
る。
全てOS以外のソフトウェアにより実現しているからで
ある。
ヒットの影響を受けない点にある。
トウェアモジュールが、測定対象となるアプリケーショ
ンプログラムとは別の実行モジュールとして用意され
て、かつ非キャッシュアドレスに割り付けられているか
らである。
実施の形態を示すブロック構成図である。
ある。
モジュールのブロック構成図である。
方式の概念図である。
の動作例を示すフローチャートである。
の動作例を示すフローチャートである。
タスク処理の動作例を示すフローチャートである。
理の動作例を示すフローチャートである。
理の動作例を示すフローチャートである。
ドルタスク処理の動作例を示すフローチャートである。
データ処理システムの構成を示すブロック図である。
グラム 302…ソフトウェアカウンタ基準値測定用インタフェ
ース処理部 303…ソフトウェアカウンタ基準値測定用疑似アイド
ルタスク 304…ソフトウェアカウンタ 305…ソフトウェアカウンタ基準値測定用測定開始処
理 306…ソフトウェアカウンタ基準値測定用測定終了処
理
Claims (6)
- 【請求項1】 測定対象となるシステム上で動作するア
プリケーションプログラムと、該アプリケーションプロ
グラムに対し測定の基準となるソフトウェアカウンタ
と、該ソフトウェアカウンタを走行中常にインクリメン
トし続けるCPU使用率測定用疑似アイドルタスクと、
CPU使用率測定開始処理とCPU使用率測定用終了処
理を前記アプリケーションプログラムに対して提供する
CPU使用率測定用インタフェース処理部とを具備し、
システム稼働時に前記アプリケーションプログラムによ
り指定された任意の開始点から終了点までの間のCPU
使用率を測定するCPU使用率測定方式において、前記
CPU使用率測定用インタフェース処理部やCPU使用
率測定用疑似アイドルタスクは、キャッシュミスヒット
の影響が出ないようにするために、非キャッシュアドレ
スで動作させる実行モジュールとして作成され、通常キ
ャッシュアドレスで動作させる前記アプリケーションプ
ログラムからの処理のコールは、処理ルーチン登録テー
ブルを使用して別実行モジュールの実体関数への間接コ
ールを実現することができるインタフェースライブラリ
により実現されることを特徴とするCPU使用率測定方
式。 - 【請求項2】 前記請求項1に記載のモジュール構成を
使用してCPU使用率を測定する際に必要となるCPU
使用率測定用疑似アイドルタスクの走行比率算出用基準
値であるソフトウェアカウンタ基準値を測定するため
に、ソフトウェアカウンタ基準値測定用メインプログラ
ムと、第2のソフトウェアカウンタと、該第2のソフト
ウェアカウンタをインクリメントし続けるソフトウェア
カウンタ基準値測定用疑似アドレスタスクと、ソフトウ
ェアカウンタ基準値測定用開始処理とソフトウェアカウ
ンタ基準値測定用測定終了処理を提供するソフトウェア
カウンタ基準値測定用インタフェース処理部とを使用す
ることを更に特徴とする請求項1に記載のCPU使用率
測定方式。 - 【請求項3】 CPU使用率測定用疑似アイドルタスク
処理フローとして、まず計測データ群の初期化を行う第
1の工程と、ソフトウェアカウンタのインクリメント処
理として、まず該ソフトウェアカウンタ(下位)のオー
バフローの有無をチェックする第2の工程と、該第2の
工程によるチェックの結果オーバフローしていなかった
場合には単に前記ソフトウェアカウンタ(下位)を1つ
インクリメントする第3の工程と、前記第2の工程によ
るチェックの結果オーバフローしていた場合には前記ソ
フトウェアカウンタ(上位)への桁上がりと判断する第
4の工程と、次に前記ソフトウェアカウンタ(上位)の
オーバフローの有無をチェックする第5の工程と、も
し、該第5の工程によるチェックの結果オーバフローし
ていなかった場合には前記ソフトウェアカウンタ(上
位)を1つインクリメントする第6の工程と、該第6の
工程を実行すると共に前記ソフトウェアカウンタ(下
位)を0クリアする第7の工程と、前記第5の工程によ
るチェックの結果オーバフローしていた場合にはこれ以
上測定できないためにこれで測定終了と判断し、この時
点での周期割り込み回数の取得を行い、用なしとなった
前記CPU使用率測定用疑似アイドルタスクを削除する
第8の工程とを有することを特徴としたCPU使用率測
定方法。 - 【請求項4】 前記第1の工程の前記測定データ群の初
期化は、測定開始/終了時に取得する周期割り込み回数
の格納先と前記ソフトウェアカウンタ(下位/上位)の
0クリアを行うことであることを更に特徴とする請求項
3に記載のCPU使用率測定方法。 - 【請求項5】 前記CPU使用率測定用疑似アイドルタ
スクは、前記第2の工程〜第8の工程から成る前記ソフ
トウェアカウンタのインクリメント処理を繰り返して実
行することを更に特徴とする請求項3または4のいずれ
か一項に記載のCPU使用率測定方法。 - 【請求項6】 CPU使用率測定用疑似アイドルタス
ク処理フローとして、まず計測データ群の初期化を行う
第1の処理と、ソフトウェアカウンタのインクリメント
処理として、まず該ソフトウェアカウンタ(下位)のオ
ーバフローの有無をチェックする第2の処理と、該第2
の処理によるチェックの結果オーバフローしていなかっ
た場合には単に前記ソフトウェアカウンタ(下位)を1
つインクリメントする第3の処理と、前記第2の処理に
よるチェックの結果オーバフローしていた場合には前記
ソフトウェアカウンタ(上位)への桁上がりと判断する
第4の処理と、次に前記ソフトウェアカウンタ(上位)
のオーバフローの有無をチェックする第5の処理と、も
し、該第5の処理によるチェックの結果オーバフローし
ていなかった場合には前記ソフトウェアカウンタ(上
位)を1つインクリメントする第6の処理と、該第6の
処理を実行すると共に前記ソフトウェアカウンタ(下
位)を0クリアする第7の処理と、前記第5の処理によ
るチェックの結果オーバフローしていた場合にはこれ以
上測定できないためにこれで測定終了と判断し、この時
点での周期割り込み回数の取得を行い、用なしとなった
前記CPU使用率測定用疑似アイドルタスクを削除する
第8の処理と、前記CPU使用率測定用疑似アイドルタ
スクによる前記第2〜第8の処理を含む前記ソフトウェ
アカウンタのインクリメント処理を繰り返し実行する処
理とをコンピュータに実行させるプログラムを記録した
記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10132901A JP3099807B2 (ja) | 1998-05-15 | 1998-05-15 | Cpu使用率測定方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10132901A JP3099807B2 (ja) | 1998-05-15 | 1998-05-15 | Cpu使用率測定方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11327927A JPH11327927A (ja) | 1999-11-30 |
JP3099807B2 true JP3099807B2 (ja) | 2000-10-16 |
Family
ID=15092200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10132901A Expired - Fee Related JP3099807B2 (ja) | 1998-05-15 | 1998-05-15 | Cpu使用率測定方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3099807B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100613201B1 (ko) * | 2000-08-28 | 2006-08-18 | 마이크로코넥트 엘엘씨 | 씨피유 사용량 측정 방법 |
KR100469406B1 (ko) * | 2000-12-18 | 2005-01-31 | 엘지전자 주식회사 | 타스크를 이용한 중앙처리장치의 성능 측정 방법 |
KR100422132B1 (ko) * | 2001-09-06 | 2004-03-11 | 엘지전자 주식회사 | 실시간 시스템의 씨피유 타스크 점유율 측정장치 |
US9672132B2 (en) * | 2009-11-19 | 2017-06-06 | Qualcomm Incorporated | Methods and apparatus for measuring performance of a multi-thread processor |
JP5542700B2 (ja) * | 2011-01-05 | 2014-07-09 | 株式会社日立製作所 | Smtプロセッサにおけるプロセッサ使用率の算出方法 |
-
1998
- 1998-05-15 JP JP10132901A patent/JP3099807B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11327927A (ja) | 1999-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5940618A (en) | Code instrumentation system with non intrusive means and cache memory optimization for dynamic monitoring of code segments | |
US6658654B1 (en) | Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment | |
US7197586B2 (en) | Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler | |
US6223338B1 (en) | Method and system for software instruction level tracing in a data processing system | |
US7577943B2 (en) | Statistical memory leak detection | |
US8104036B2 (en) | Measuring processor use in a hardware multithreading processor environment | |
US6079032A (en) | Performance analysis of computer systems | |
US5446876A (en) | Hardware mechanism for instruction/data address tracing | |
US5896538A (en) | System and method for multi-phased performance profiling of single-processor and multi-processor systems | |
US6968547B2 (en) | Dynamic trap table interposition for efficient collection of trap statistics | |
US8850394B2 (en) | Debugging system and method | |
US7853929B2 (en) | Dynamically profiling consumption of CPU time in Java methods with respect to method line numbers while executing in a Java virtual machine | |
US20090064149A1 (en) | Latency coverage and adoption to multiprocessor test generator template creation | |
US5920689A (en) | System and method for low overhead, high precision performance measurements using state transitions | |
US6807522B1 (en) | Methods for predicting instruction execution efficiency in a proposed computer system | |
US6651153B1 (en) | Methods for predicting cache memory performance in a proposed computer system | |
US7617385B2 (en) | Method and apparatus for measuring pipeline stalls in a microprocessor | |
US6983450B2 (en) | User configurable operating system | |
JP3099807B2 (ja) | Cpu使用率測定方式 | |
US20080010555A1 (en) | Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost | |
US6725363B1 (en) | Method for filtering instructions to get more precise event counts | |
US9182958B2 (en) | Software code profiling | |
US20020188889A1 (en) | Performance measurement for embedded systems | |
US8656411B2 (en) | Technique for monitoring activity within an integrated circuit | |
Upp et al. | Using reservoir sampling and parallelization to improve dynamic binary instrumentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070818 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100818 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |