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
Application number
JP10132901A
Other languages
English (en)
Other versions
JPH11327927A (ja
Inventor
英樹 奥山
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP10132901A priority Critical patent/JP3099807B2/ja
Publication of JPH11327927A publication Critical patent/JPH11327927A/ja
Application granted granted Critical
Publication of JP3099807B2 publication Critical patent/JP3099807B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPU使用率測定
方式に関し、詳しくは、タスクスケジュールなどの内部
情報が公開されていないOS(オペレーティングシステ
ム)を使用したシステムにおいて、システム実働時の指
定区間内のアプリケーションプログラムのCPU使用率
を、ハードウェアカウンタやロジックアナライザといっ
たハードウェア手段に頼らずに簡便なソフトウェア手段
のみにより正確に測定することができるCPU使用率測
定方式に関するものである。
【0002】更に具体的に説明するに、本発明は、図1
において、測定対象となるアプリケーションプログラム
101に対して、ソフトウェアカウンタ104と、その
ソフトウェアカウンタ104をインクリメントし続ける
CPU使用率測定用疑似アイドルタスク103と、CP
U使用率測定用測定開始処理105とCPU使用率測定
用測定終了処理106を提供するCPU使用率測定用イ
ンタフェース処理部102とを用意することにより、シ
ステム稼働時の指定区間内のCPU使用率をソフトウェ
ア手段のみにより測定する方式に関している。
【0003】なお、ここでCPU使用率とは、OS(オ
ペレーティングシステム)を適用したシステムにおい
て、例えば図2に示すようにアプリケーションタスク
A、BやCPU使用率測定用疑似アイドルタスク103
が走行している場合に、計測区間の時間(T2−T1)
に対するCPU使用率測定用疑似アイドレタスク103
の総走行時間(t1+t2+t3+t4)以外の走行比
率として表わされる。
【0004】また、本発明は、図3において、ソフトウ
ェアカウンタ基準値測定用メインプログラム301と、
ソフトウェアスウンタ304と、そのソフトウェアカウ
ンタ304をインクリメントし続けるソフトウェアカウ
ンタ基準値測定用疑似アドルスタスク303と、ソフト
ウェアカウンタ基準値測定用測定開始処理305とソフ
トウェアカウンタ基準値測定用測定終了処理306を提
供するソフトウェアカウンタ基準値測定用インタフェー
ス処理部302とを使用し、図1のモジュール構成を使
用してCPU使用率を測定する際に必要となるCPU使
用率測定用疑似アイドルタスク103の走行比率算出用
基準値であるソフトウェアカウンタ基準値を測定する方
式を提供することも特徴とする。
【0005】また、図1において、CPU使用率測定用
インタフェース処理部102やCPU使用率測定用疑似
アイドルタスク103は、キャッシュミスヒットの影響
(特にソフトウェアカウンタ104のインクリメント処
理の誤差発生)が出ないようにするために、非キャッシ
ュアドレスで動作させる実行モジュールとして作成し、
通常キャッシュアドレスで動作させるアプリケーション
プログラム101からの処理のコールは、処理ルーチン
登録テーブルを使用して別実行モジュールの実体関数へ
の間接コールを実現することができるインタフェースラ
イブラリによって実現することも特徴とする。
【0006】この関係は、図3においても同様である。
つまり、ソフトウェアカウンタ基準値測定用インタフェ
ース処理部302やソフトウェア基準値測定用疑似アイ
ドルタスク303は、キャッシュミスヒットの影響(特
にソフトウェアカウンタ304のインクリメント処理の
誤差発生)が出ないようにするために、非キャッシュア
ドレスで動作させる実行モジュールとして作成し、通常
キャッシュアドレスで動作させるアプリケーションプロ
グラム101を想定したソフトウェアカウンタ基準値測
定用メインプログラム301からの処理のコールは、処
理ルーチン登録テーブルを使用して別実行モジュールの
実体関数への間接コールを実現するインタフェースライ
ブラリを用意することも特徴とする。
【0007】
【従来の技術】従来の技術として、CPU使用率の測定
に、OSのタスクスケジューリングの情報を前提とした
ものは存在していた。
【0008】また、OSから情報を得られない場合に
は、アプリケーションプログラム自体への走行時間出力
処理を追加したり、ロジックアナライザなどのハードウ
ェア手段によりソフトウェアの走行アドレスを直接ハー
ドウェアから取得し、何も処理を行なわないアイドルタ
スクの走行を区間を特定するといった方法が採られてい
た。
【0009】
【発明が解決しようとする課題】しかしながら、叙上の
従来技術には、次のような問題点があった。
【0010】タスクスケジュールの情報などを一切公開
していないOSではCPU使用率は確定することができ
ない。
【0011】測定すること自体がアプリケーションプロ
グラムの状態を変化させてしまう。
【0012】ハードウェアなしではCPU使用率を測定
することができない。また、その接続の手間、多量のシ
ステムでの適用などが無理であるなどの欠点があった。
【0013】本発明は従来の上記実情に鑑みてなされた
ものであり、従って本発明の目的は、従来の技術に内在
する上記諸欠点を解消することを可能とした新規なCP
U使用率測定方式を提供することにある。
【0014】
【課題を解決するための手段】上記目的を達成する為
に、本発明に係るCPU使用率測定方式は、測定対象と
なるシステム上で動作するアプリケーションプログラム
と、該アプリケーションプログラムに対し測定の基準と
なるソフトウェアカウンタと、該ソフトウェアカウンタ
を走行中常にインクリメントし続けるCPU使用率測定
用疑似アイドルタスクと、CPU使用率測定開始処理と
CPU使用率測定用終了処理を前記アプリケーションプ
ログラムに対して提供するCPU使用率測定用インタフ
ェース処理部とを具備し、システム稼働時に前記アプリ
ケーションプログラムにより指定された任意の開始点か
ら終了点までの間のCPU使用率を測定することを特徴
としている。
【0015】前記CPU使用率測定用疑似アイドルタス
クは、ソフトウェアカウンタをインクリメントし続ける
タスクであり、動作中の前記アプリケーションプログラ
ムのどのタスクよりも低いプライオリティを付与され、
動作中の前記アプリケーションプログラムの全てのタス
クが動作していない場合においてのみ走行し、この場合
だけ前記ソフトウェアカウンタをインクリメントし続け
ることを特徴としている。
【0016】前記CPU使用率測定用疑似アイドルタス
クのプライオリティは、OSが用意した最低位のタスク
のプライオリティより高いものである。
【0017】前記CPU使用率測定用インタフェース処
理部やCPU使用率測定用疑似アイドルタスクは、キャ
ッシュミスヒットの影響が出ないようにするために、非
キャッシュアドレスで動作させる実行モジュールとして
作成され、通常キャッシュアドレスで動作させる前記ア
プリケーションプログラムからの処理のコールは、処理
ルーチン登録テーブルを使用して別実行モジュールの実
体関数への間接コールを実現することができるインタフ
ェースライブラリにより実現されることを特徴としてい
る。
【0018】前記請求項1に記載のモジュール構成を使
用してCPU使用率を測定する際に必要となるCPU使
用率測定用疑似アイドルタスクの走行比率算出用基準値
であるソフトウェアカウンタ基準値を測定するために、
ソフトウェアカウンタ基準値測定用メインプログラム
と、第2のソフトウェアカウンタと、該第2のソフトウ
ェアカウンタをインクリメントし続けるソフトウェアカ
ウンタ基準値測定用疑似アイドルタスクと、ソフトウェ
アカウンタ基準値測定用測定開始処理とソフトウェアカ
ウンタ基準値測定用測定終了処理を提供するソフトウェ
アカウンタ基準値測定用インタフェース処理部とを使用
することを特徴としている。
【0019】CPU使用率測定用疑似アイドルタスク処
理フローとして、まず計測データ群の初期化を行う第1
の工程と、ソフトウェアカウンタのインクリメント処理
として、まず該ソフトウェアカウンタ(下位)のオーバ
フローの有無をチェックする第2の工程と、該第2の工
程によるチェックの結果オーバフローしていなかった場
合には単に前記ソフトウェアカウンタ(下位)を1つイ
ンクリメントする第3の工程と、前記第2の工程による
チェックの結果オーバフローしていた場合には前記ソフ
トウェアカウンタ(上位)への桁上がりと判断する第4
の工程と、次に前記ソフトウェアカウンタ(上位)のオ
ーバフローの有無をチェックする第5の工程と、もし、
該第5の工程によるチェックの結果オーバフローしてい
なかった場合には前記ソフトウェアカウンタ(上位)を
1つインクリメントする第6の工程と、該第6の工程を
実行すると共に前記ソフトウェアカウンタ(下位)を0
クリアする第7の工程と、前記第5の工程によるチェッ
クの結果オーバフローしていた場合にはこれ以上測定で
きないためにこれで測定終了と判断し、この時点での周
期割り込み回数の取得を行い、用なしとなった前記CP
U使用率測定用疑似アイドルタスクを削除する第8の工
程とを有することを特徴としている。
【0020】前記第1の工程の前記測定データ群の初期
化は、測定開始/終了時に取得する周期割り込み回数の
格納先と前記ソフトウェアカウンタ(下位/上位)の0
クリアを行うことであることを特徴としている。
【0021】前記CPU使用率測定用疑似アイドルタス
クは、前記第2の工程〜第8の工程から成る前記ソフト
ウェアカウンタのインクリメント処理を繰り返して実行
することを特徴としている。
【0022】また本発明によれば、CPU使用率測定用
疑似アイドルタスク処理フローとして、まず計測データ
群の初期化を行う第1の処理と、ソフトウェアカウンタ
のインクリメント処理として、まず該ソフトウェアカウ
ンタ(下位)のオーバフローの有無をチェックする第2
の処理と、該第2の処理によるチェックの結果オーバフ
ローしていなかった場合には単に前記ソフトウェアカウ
ンタ(下位)を1つインクリメントする第3の処理と、
前記第2の処理によるチェックの結果オーバフローして
いた場合には前記ソフトウェアカウンタ(上位)への桁
上がりと判断する第4の処理と、次に前記ソフトウェア
カウンタ(上位)のオーバフローの有無をチェックする
第5の処理と、もし、該第5の処理によるチェックの結
果オーバフローしていなかった場合には前記ソフトウェ
アカウンタ(上位)を1つインクリメントする第6の処
理と、該第6の処理を実行すると共に前記ソフトウェア
カウンタ(下位)を0クリアする第7の処理と、前記第
5の処理によるチェックの結果オーバフローしていた場
合にはこれ以上測定できないためにこれで測定終了と判
断し、この時点での周期割り込み回数の取得を行い、用
なしとなった前記CPU使用率測定用疑似アイドルタス
クを削除する第8の処理と、前記CPU使用率測定用疑
似アイドルタスクによる前記第2〜第8の処理を含む前
記ソフトウェアカウンタのインクリメント処理を繰り返
し実行する処理とをコンピュータに実行させるプログラ
ムを記録した記録媒体が得られる。
【0023】
【発明の実施の形態】次に、本発明をその好ましい一実
施の形態について図面を参照しながら詳細に説明する。
【0024】[実施の形態の構成]図1は、本発明に係
るCPU使用率測定方式において、システム稼働時にC
PU使用率を測定するモジュール構成の一実施の形態を
示すブロック構成図である。
【0025】図1を参照するに、本発明による一実施の
形態は、測定対象となるシステム上で動作するアプリケ
ーションプログラム101に対し、測定の基準となるソ
フトウェアカウンタ104と、そのソフトウェアカウン
タ104を走行中常にインクリメントし続けるCPU使
用率測定用疑似アイドルタスク103と、CPU使用率
測定開始処理105とCPU使用率測定用終了処理10
6をアプリケーションプログラム101に対して提供す
るCPU使用率測定用インタフェース処理部102とか
ら構成され、システム稼働時にアプリケーションプログ
ラム101により指定された任意の開始点から終了点ま
での間のCPU使用率の測定値を提供する。
【0026】ここで、CPU使用率測定用疑似アイドル
タスク103は、ソフトウェアカウンタ104をインク
リメントし続けるタスクであり、動作中のアプリケーシ
ョンプログラムのどのタスクよりも低いプライオリティ
を付与されたタスクである。したがって、CPU使用率
測定用疑似アイドルタスク103は、動作中のアプリケ
ーションプログラムの全てのタスクが動作していない場
合においてのみ走行し、つまり、この場合だけ、ソフト
ウェアカウンタ104をインクリメントし続けるタスク
である。「疑似」としたのは、通常のOS(オペレーテ
ィングシステム)においては、OSが用意した最低位の
タスクが存在するために、それと区別するためである。
CPU使用率測定用疑似アイドルタスク103のプライ
オリティは、OSが用意した最低位のタスクのプライオ
リティより高いものである必要がある。
【0027】本発明は、測定対象時間の間にどのくらい
図1に示すソフトウェアカウンタ104がカウントアッ
プされるかを測定してCPU使用率を測定する方式であ
る。従って、ソフトウェアカウンタ104のカウントア
ップ数を測定すると共に、測定対象時間を測定すること
も必要である。
【0028】本発明では、測定対象時間にOSの提供す
るシステムコールで得られる周期割り込み発生回数を使
用している。例えば、ある時点aで得られた値がxで、
その後のb時点で得られた値がyならば、(y−x)が
測定対象時間を示す値であると見做している。
【0029】測定は、まず周期割り込みの1周期当たり
のソフトウェアカウンタ104のカウントアップ数を基
準値として測定しておく。次に、実際のCPU使用率の
測定を実施する。
【0030】具体的には測定対象区間において、周期割
り込みがN回発生し、そしてその間にソフトウェアカウ
ンタ104がどのくらいカウントアップするかを測定す
る。
【0031】基準値がQ、ソフトウェアカウンタ104
のカウンタ数がR、測定対象時間を示す周期割り込み回
数がN回だったとすると、 (N−(R/Q))/N×100 でCPU使用率が%で得られる。
【0032】ここで、(R/Q)を得たいために基準値
Qが必要なわけである。つまり、カウンタ数Rを周期割
り込み数換算するために必要な値となる。これがソフト
ウェアカウンタ基準値である。
【0033】本発明においては、図1に示されたこのソ
フトウェアカウンタ104の基準値を、図3に示された
ソフトウェアカウンタ基準値測定モジュールによって測
定している。
【0034】図3は、CPU使用率測定用疑似アイドル
タスク103の走行比率を得るために、図1のモジュー
ル構成でCPU使用率を測定する前に実施してソフトウ
ェアカウンタ基準値を得るためのモジュール構成の一実
施例を示すブロック構成図である。
【0035】図3を参照するに、このソフトウェアカウ
ンタ基準値を得るモジュール構成は、ソフトウェアカウ
ンタ基準値測定用メインプログラム301と、測定の基
準となるソフトウェアカウンタ304と、このソフトウ
ェアカウンタ304を走行中常にインクリメントし続
け、適宜その値をリードするソフトウェアカウンタ基準
値測定用疑似アイドルタスク303と、ソフトウェアカ
ウンタ基準値測定用測定開始処理305とソフトウェア
カウンタ基準値測定用測定終了処理306をソフトウェ
アカウンタ基準値測定用メインプログラム301に対し
て提供するソフトウェアカウンタ基準値測定用インタフ
ェース処理部302とから構成され、ソフトウェアカウ
ンタ基準値測定用メインプログラム301により指定さ
れた区間に関して得られたデータを基に、ソフトウェア
カウンタの基準値を算出する。
【0036】また、図1において、CPU使用率測定用
インタフェース処理部102やCPU使用率測定用疑似
アイドルタスク103は、キャッシュミスヒットの影
響、特にソフトウェアカウンタ104のインクリメント
処理の誤差発生が出ないようにするために、非キャッシ
ュアドレスで動作させる実行モジュールとして作成し、
通常キャッシュアドレスで動作させるアプリケーション
プログラム101からの処理のコールは、処理ルーチン
登録テーブルを使用して別実行モジュールの実体関数へ
の間接コールを実現することができるようにするインタ
フェースライブラリによって実現する。
【0037】この関係は、図3においても同様である。
つまり、図3において、ソフトウェアカウンタ基準値測
定用インタフェース処理部302やソフトウェアカウン
タ基準値測定用疑似アイドルタスク303は、キャッシ
ュミスヒットの影響(特にソフトウェアカウンタ304
のインクリメント処理の誤差発生)が出ないようにする
ために、非キャッシュアドレスで動作させる実行モジュ
ールとして作成し、通常キャッシュアドレスで動作させ
るアプリケーションプログラム101を想定したソフト
ウェアカウンタ基準値測定用メインプログラム301か
らの処理のコールは、処理ルーチン登録テーブルを使用
して別実行モジュールの実体関数への間接コールを実現
するインタフェースライブラリを用意する。
【0038】[実施の形態の動作]次に、図5、図6、
図7に示すフローチャートを参照して、本発明による実
施の形態のCPU使用率測定時の動作について詳細に説
明する。
【0039】本発明による一実施の形態においては、ソ
フトウェアカウンタとして、32ビットのカウンタを2
つ使用し、それぞれ下位カウンタ、上位カウンタとして
使用した例で説明している(以降、単にソフトウェアカ
ウンタと記載した場合には、下位と上位を総称したもの
を指している)。
【0040】また、周期割り込みはmsecオーダの周
期のものでよく、周期割り込み回数が32ビットで得ら
れるものであるとして説明している。
【0041】図5は、CPU使用率測定用測定開始処理
フローチャートである。
【0042】図5を参照するに、まずソフトウェアカウ
ンタ104のインクリメントを開始すべく、CPU使用
率測定用疑似アイドルタスク103の生成501と起動
502を実施する。
【0043】次に、CPU使用率測定開始時点における
周期割り込み回数を取得して保存503する(この結
果、ソフトウェアカウンタ104は0からのインクリメ
ントを開始する)。
【0044】図6は、CPU使用率測定用測定終了処理
フローチャートである。
【0045】図6を参照するに、まずソフトウェアカウ
ンタ104がオーバフローしていないかどうかをチェッ
ク601する。チェックの結果、オーバフローしていた
場合には、CPU使用率の計算604の処理へ進む(こ
れは、図7の707の処理でソフトウェアカウンタ10
4(上位)のインクリメントの度にオーバフローの有無
のチェックを行っており、オーバフローだった場合には
周期割り込み回数の取得を実施済みなので図6の処理で
は不要なためである)。
【0046】チェックの結果オーバフローしていなかっ
た場合には、この測定終了時点の周期割り込み回数の取
得と保存602を行い、用なしとなったCPU使用率測
定用疑似アイドルタスクを削除603する。
【0047】CPU使用率の計算604では、まずCP
U使用率測定用疑似アイドルタスク103の走行中の総
周期割り込み回数を計算605する。計算は、この時点
でのソフトウェアカウンタ104のカウンタ数を、図3
のモジュール構成で予め測定済みのソフトウェアカウン
タ基準値で割ることにより得る。
【0048】この結果、CPU使用率測定用疑似アイド
ルタスクの総走行時間を周期割り込み回数に置換した値
が得られる。
【0049】次に、総測定区間における総周期割り込み
回数606を求める。計算は、測定終了時の周期割り込
み回数が、測定開始時の周期割り込み回数よりも大きか
った場合には、測定終了時の周期割り込み回数から測定
開始時の周期割り込み回数を引くことにより得られる。
【0050】測定終了時の周期割り込み回数が、測定開
始時の周期割り込み回数よりも小さかった場合には、ソ
フトウェアカウンタ104が1周りした後だと判断し、
(0xffffffff−測定開始の周期割り込み回数
+1)と測定終了時の周期割り込み回数の合計値より得
る。
【0051】次に、CPU使用率(%)607を求め
る。計算は、605で得た値をA、606で得た値をB
としたときに、((B−A)×100)/Bで得られ
る。
【0052】次に、得られたCPU使用率を文字列等に
変換して所定の場所へ格納608する。
【0053】図7はCPU使用率測定用疑似アイドルタ
スク処理フローチャートである。
【0054】図7を参照するに、まず計測データ群の初
期化701を行う。具体的には、測定開始/終了時に取
得する周期割り込み回数の格納先とソフトウェアカウン
タ104(下位/上位)の0クリアを行う。
【0055】以後、CPU使用率測定用疑似アイドルタ
スク103は、ソフトウェアカウンタ104のインクリ
メント処理702を繰り返し実行する。
【0056】ソフトウェアカウンタ104のインクリメ
ント処理は、まずソフトウェアカウンタ104(下位)
のオーバフローの有無をチェック705する。オーバフ
ローしていなかった場合には、単にソフトウェアカウン
タ104(下位)を1つインクリメント706する。
【0057】オーバフローしていた場合には、ソフトウ
ェアカウンタ104(上位)への桁上がりと判断し、次
に、ソフトウェアカウンタ104(上位)のオーバフロ
ーの有無をチェック707する。
【0058】もし、オーバフローしていなかった場合に
は、ソフトウェアカウンタ104(上位)を1つインク
リメント708すると共に、ソフトウェアカウンタ10
4(下位)を0クリア709する。
【0059】オーバフローしていた場合には、これ以上
測定できないためにこれで測定終了と判断し、この時点
での周期割り込み回数の取得703を行い、用なしとな
ったCPU使用率測定用疑似アイドルタスクを削除70
4する。
【0060】次に、図8、図9、図10に示すフローチ
ャートを参照して、本実施の形態のソフトウェアカウン
タ基準値測定時の動作について詳細に説明する。
【0061】この一実施の形態においては、図5、図
6、図7と同様に、ソフトウェアカウンタとして、32
ビットのカウンタを2つ使用し、それぞれ下位カウン
タ、上位カウンタとして使用した例で説明している(以
降、単にソフトウェアカウンタと記載した場合には、下
位と上位を総称したものを指している)。
【0062】また、周期割り込みはmsecオーダの周
期のものでよく、周期割り込み回数が32ビットで得ら
れるものであるとして説明している。
【0063】図8は、ソフトウェアカウンタ基準値測定
用測定開始処理フローチャートである。
【0064】図8を参照するに、まず図3に示されたソ
フトウェアカウンタ304のインクリメントを開始すべ
く、ソフトウェアカウンタ基準値測定用疑似アイドルタ
スク303の生成801と、起動802を実施する(こ
の結果、ソフトウェアカウンタ304は0からのインク
リメントを開始する)。
【0065】図9は、ソフトウェアカウンタ基準値測定
用測定終了処理フローチャートである。
【0066】図9を参照するに、まず図3に示されたソ
フトウェアカウンタ基準値測定用疑似アイドルタスク3
03がソフトウェアカウンタ304(上位)を参照し指
定回数分実行が完了しているかどうかをチェック901
する。
【0067】チェックの結果終了していれば、何もしな
いで終了する(これは、図10の1008の処理でソフ
トウェアカウンタ304(上位)のインクリメントの度
に指定回数分の実行が完了しているかどうかチェックを
行っており、完了している場合には周期割り込み回数の
取得を既に実施済みなので図9の処理では不要なためで
ある)。
【0068】チェックの結果オーバフローしていなかっ
た場合には、この測定終了時点の周期割り込み回数の取
得と保存902を行い、用なしとなったソフトウェアカ
ウンタ基準値測定用疑似アイドルタスクを削除903す
る。
【0069】図10は、ソフトウェアカウンタ基準値測
定用疑似アイドルタスク処理フローチャートである。
【0070】図10を参照するに、まず計測データ群の
初期化1101を行う。具体的には、測定開始/終了時
に取得した周期割り込み回数の格納先と、図3に示され
たソフトウェアカウンタ304(下位/上位)の0クリ
アを行う。
【0071】次に、測定開始時点の周期割り込み回数を
取得1102する。以後、図3に示されたソフトウェア
カウンタ基準値測定用疑似アイドルタスク303は、ソ
フトウェアカウンタ304のインクリメント処理110
3を繰り返し実行する。
【0072】ソフトウェアカウンタ304のインクリメ
ント処理1103は、まずソフトウェアカウンタ304
(下位)のオーバフローの有無をチェック1106す
る。
【0073】オーバフローしていなかった場合には、単
にソフトウェアカウンタ304(下位)を1つインクリ
メント1107する。
【0074】オーバフローしていた場合には、ソフトウ
ェアカウンタ304(上位)への桁上がりと判断し、次
に、ソフトウェアカウンタ304(上位)が指定回数分
の実行が完了しているかどうかをチェック1108す
る。
【0075】もし、指定回数分の実行が完了していなか
った場合には、ソフトウェアカウンタ304(上位)を
1つインクリメント1109すると共に、ソフトウェア
カウンタ304(下位)を0クリア1110する。
【0076】指定回数分の実行が完了していた場合には
測定終了と判断し、この時点での周期割り込み回数の取
得1104を行い、用なしとなったソフトウェアカウン
タ基準値測定用疑似アイドルタスク303を削除110
5する。
【0077】図4は、ソフトウェアカウンタ基準値測定
用メインプログラムの処理概要を示した図である。
【0078】図4において、図3に示されたソフトウェ
アカウンタ基準値測定用メインプログラム301は、ま
ず、周期割り込みのタスクを解除401を行うと共に、
ソフトウェアカウンタ基準値測定用測定開始処理305
をコール402する。
【0079】次に、ソフトウェアカウンタ基準値測定用
メインプログラム301のタスクプライオリティをソフ
トウェアカウンタ基準値測定用疑似アイドルタスク30
3よりみづから低く設定する。
【0080】その結果、プリエンプション404が発生
し、走行タスクは、ソフトウェアカウンタ基準値測定用
疑似アイドルタスク303に移行する。その後、ソフト
ウェアカウンタ基準値測定用疑似アイドルタスク303
は、インクリメントを開始405し、やがて指定分のイ
ンクリメントを終了し、みづから自タスクを終了させ
る。
【0081】その結果プリエンプションが発生407
し、走行タスクはWAIT状態にあったソフトウェアカ
ウンタ基準値測定用メインプログラム301へと変化す
る。
【0082】ここで、ソフトウェアカウンタ基準値測定
用測定終了処理306をコール408すると、前記図9
で説明した処理をソフトウェアカウンタ基準値測定用測
定終了処理306が実施される。
【0083】ソフトウェアカウンタ基準値=1周期割り
込みあたりのソフトウェアカウンタのインクリメント回
数=N3/(N2−N1) N1:402で取得した周期割り込み回数 N2:408で取得した周期割り込み回数 N3:ソフトウエアカウンタのインクリメント回数 この結果、ソフトウェアカウンタ基準値を、上記の式で
計算することができる。この結果得られる値は、1周期
割り込みあたりのソフトウェアカウンタのインクリメン
ト時間である。
【0084】図1で示したモジュール構成でCPU使用
率を測定する場合には、このソフトウェアカウンタ基準
値を使って、CPU使用率測定用アイドルタスクの走行
時間を、周期割り込み回数換算で得ることができるよう
になり、同じく周期割り込み回数を使って得た測定総区
間の値を分母とすることにより、CPU使用率測定用疑
似アイドルタスクの走行比率を得ることができるように
なる。
【0085】[発明の他の実施の形態]通常のリアルタ
イムOSの場合には、周期割り込み回数を任意のタイミ
ングで知ることができるアプリケーションインタフェー
ス(システムコール)を提供している。従って、本発明
の実現に当たっては、この機能の利用が簡便である。し
かしながら、この機能がなくても、CPU、もしくはC
PUボード上の周期タイマから周期割り込み回数を得る
ソフトウェア手段を簡便に実現することができるため
に、本発明の方式を容易に実現することが可能となる。
【0086】ソフトウェアカウンタのデータ幅は32ビ
ットのものを2つでなくてもかまわない。また、周期割
り込み回数のデータ幅も32ビットである必要性はな
い。
【0087】[発明の更に他の実施の形態]次に本発明
による更に他の実施の形態について図面を参照しながら
詳細に説明する。
【0088】図11は本発明による更に他の実施の形態
を実施するデータ処理システムの構成を示すブロック図
である。
【0089】図11を参照するに、参照符号203は本
発明に係るCPU使用率測定用疑似アイドルタスク処理
プログラムを記録した記録媒体を示し、入力装置201
からの指示によりこの記録媒体203より疑似アイドル
タスク処理プログラムがデータ処理装置202に読み込
まれる。
【0090】データ処理装置202に読み込まれたデー
タは一旦記憶装置204に格納され、記憶装置204か
らデータ処理装置202を介して出力装置205に出力
され、入力装置201の入力操作によりその都度出力装
置205にそのデータ即ち疑似アイドルタスク処理プロ
グラムが出力され、それと同時にモニタ206に表示さ
れる。オペレータはモニタ206を目視しながら入力操
作を実行することができる。
【0091】記録媒体203に記録されるCPU使用率
測定用疑似アイドルタスク処理プログラムは、図7のフ
ローチャートに示されたCPU使用率測定用疑似アイド
ルタスク処理プログラムである。
【0092】即ち、そのCPU使用率測定用疑似アイド
ルタスク処理プログラムは、第1の処理として、まず計
測データ群の初期化が行われる。具体的には、測定開始
/終了時に取得する周期割り込み回数の格納先とソフト
ウェアカウンタ104(下位/上位)の0クリアが行わ
れる。
【0093】以後、CPU使用率測定用疑似アイドルタ
スク103は、ソフトウェアカウンタ104のインクリ
メント処理を繰り返し実行する。
【0094】第2の処理としてのソフトウェアカウンタ
104のインクリメント処理は、まずソフトウェアカウ
ンタ104(下位)のオーバフローの有無をチェックす
る。オーバフローしていなかった場合には、単にソフト
ウェアカウンタ104(下位)を1つインクリメントす
る(第3の処理)。
【0095】第4の処理として、オーバフローしていた
場合には、ソフトウェアカウンタ104(上位)への桁
上がりと判断し、次に、ソフトウェアカウンタ104
(上位)のオーバフローの有無をチェックする(第5の
処理)。
【0096】もし、オーバフローしていなかった場合に
は、ソフトウェアカウンタ104(上位)を1つインク
リメントする(第6の処理)、と共に、ソフトウェアカ
ウンタ104(下位)を0クリアする。
【0097】第7の処理として、オーバフローしていた
場合には、これ以上測定できないためにこれで測定終了
と判断し、この時点での周期割り込み回数の取得を行な
い、用なしとなったCPU使用率測定用疑似アイドルタ
スクを削除する(第8の処理)。
【0098】
【発明の効果】本発明は以上の如く構成され、作用する
ものであり、本発明によれば以下に示すごとき効果が得
られる。
【0099】第1の効果は、タスクスケジュールなどの
内部情報が公開されていないOS(オペレーティングシ
ステム)を使用したシステムにおいて、システム実働時
の指定区間内のアプリケーションプログラムのCPU使
用率を、ハードウェアカウンタやロジックアナライザと
いったハードウェア手段に頼らずに簡便なソフトウェア
手段のみにより正確に測定する方法が提供できる点にあ
る。
【0100】その理由は、本発明に必要なモジュールを
全てOS以外のソフトウェアにより実現しているからで
ある。
【0101】第2の効果は、キャッシュのヒット/ミス
ヒットの影響を受けない点にある。
【0102】その理由は、本発明のために用意するソフ
トウェアモジュールが、測定対象となるアプリケーショ
ンプログラムとは別の実行モジュールとして用意され
て、かつ非キャッシュアドレスに割り付けられているか
らである。
【図面の簡単な説明】
【図1】本発明に係るCPU使用率測定モジュールの一
実施の形態を示すブロック構成図である。
【図2】本発明に係るCPU使用率測定方式の概念図で
ある。
【図3】本発明に係るソフトウェアカウンタ基準値測定
モジュールのブロック構成図である。
【図4】本発明に係るソフトウェアカウンタ基準値測定
方式の概念図である。
【図5】本発明に係るCPU使用率測定用測定開始処理
の動作例を示すフローチャートである。
【図6】本発明に係るCPU使用率測定用測定終了処理
の動作例を示すフローチャートである。
【図7】本発明に係るCPU使用率測定用疑似アイドル
タスク処理の動作例を示すフローチャートである。
【図8】ソフトウェアカウンタ基準値測定用測定開始処
理の動作例を示すフローチャートである。
【図9】ソフトウェアカウンタ基準値測定用測定終了処
理の動作例を示すフローチャートである。
【図10】ソフトウェアカウンタ基準値測定用疑似アイ
ドルタスク処理の動作例を示すフローチャートである。
【図11】本発明による更に他の実施の形態を実施する
データ処理システムの構成を示すブロック図である。
【符号の説明】
101…アプリケーションプログラム 102…CPU使用率測定用インタフェース処理部 103…CPU使用率測定用疑似アイドルタスク 104…ソフトウェアカウンタ 105…CPU使用率測定用測定開始処理 106…CPU使用率測定用測定終了処理 201…入力装置 202…データ処理装置 203…記録媒体 204…記憶装置 205…出力装置 206…モニタ 301…ソフトウェアカウンタ基準値測定用メインプロ
グラム 302…ソフトウェアカウンタ基準値測定用インタフェ
ース処理部 303…ソフトウェアカウンタ基準値測定用疑似アイド
ルタスク 304…ソフトウェアカウンタ 305…ソフトウェアカウンタ基準値測定用測定開始処
理 306…ソフトウェアカウンタ基準値測定用測定終了処
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 11/34

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 測定対象となるシステム上で動作するア
    プリケーションプログラムと、該アプリケーションプロ
    グラムに対し測定の基準となるソフトウェアカウンタ
    と、該ソフトウェアカウンタを走行中常にインクリメン
    トし続けるCPU使用率測定用疑似アイドルタスクと、
    CPU使用率測定開始処理とCPU使用率測定用終了処
    理を前記アプリケーションプログラムに対して提供する
    CPU使用率測定用インタフェース処理部とを具備し、
    システム稼働時に前記アプリケーションプログラムによ
    り指定された任意の開始点から終了点までの間のCPU
    使用率を測定するCPU使用率測定方式において、前記
    CPU使用率測定用インタフェース処理部やCPU使用
    率測定用疑似アイドルタスクは、キャッシュミスヒット
    の影響が出ないようにするために、非キャッシュアドレ
    スで動作させる実行モジュールとして作成され、通常キ
    ャッシュアドレスで動作させる前記アプリケーションプ
    ログラムからの処理のコールは、処理ルーチン登録テー
    ブルを使用して別実行モジュールの実体関数への間接コ
    ールを実現することができるインタフェースライブラリ
    により実現されることを特徴とするCPU使用率測定方
    式。
  2. 【請求項2】 前記請求項1に記載のモジュール構成を
    使用してCPU使用率を測定する際に必要となるCPU
    使用率測定用疑似アイドルタスクの走行比率算出用基準
    値であるソフトウェアカウンタ基準値を測定するため
    に、ソフトウェアカウンタ基準値測定用メインプログラ
    ムと、第2のソフトウェアカウンタと、該第2のソフト
    ウェアカウンタをインクリメントし続けるソフトウェア
    カウンタ基準値測定用疑似アドレスタスクと、ソフトウ
    ェアカウンタ基準値測定用開始処理とソフトウェアカウ
    ンタ基準値測定用測定終了処理を提供するソフトウェア
    カウンタ基準値測定用インタフェース処理部とを使用す
    ることを更に特徴とする請求項1に記載のCPU使用率
    測定方式。
  3. 【請求項3】 CPU使用率測定用疑似アイドルタスク
    処理フローとして、まず計測データ群の初期化を行う第
    1の工程と、ソフトウェアカウンタのインクリメント処
    理として、まず該ソフトウェアカウンタ(下位)のオー
    バフローの有無をチェックする第2の工程と、該第2の
    工程によるチェックの結果オーバフローしていなかった
    場合には単に前記ソフトウェアカウンタ(下位)を1つ
    インクリメントする第3の工程と、前記第2の工程によ
    るチェックの結果オーバフローしていた場合には前記ソ
    フトウェアカウンタ(上位)への桁上がりと判断する第
    4の工程と、次に前記ソフトウェアカウンタ(上位)の
    オーバフローの有無をチェックする第5の工程と、も
    し、該第5の工程によるチェックの結果オーバフローし
    ていなかった場合には前記ソフトウェアカウンタ(上
    位)を1つインクリメントする第6の工程と、該第6の
    工程を実行すると共に前記ソフトウェアカウンタ(下
    位)を0クリアする第7の工程と、前記第5の工程によ
    るチェックの結果オーバフローしていた場合にはこれ以
    上測定できないためにこれで測定終了と判断し、この時
    点での周期割り込み回数の取得を行い、用なしとなった
    前記CPU使用率測定用疑似アイドルタスクを削除する
    第8の工程とを有することを特徴としたCPU使用率測
    方法
  4. 【請求項4】 前記第1の工程の前記測定データ群の初
    期化は、測定開始/終了時に取得する周期割り込み回数
    の格納先と前記ソフトウェアカウンタ(下位/上位)の
    0クリアを行うことであることを更に特徴とする請求項
    に記載のCPU使用率測定方法
  5. 【請求項5】 前記CPU使用率測定用疑似アイドルタ
    スクは、前記第2の工程〜第8の工程から成る前記ソフ
    トウェアカウンタのインクリメント処理を繰り返して実
    行することを更に特徴とする請求項3または4のいずれ
    か一項に記載のCPU使用率測定方法
  6. 【請求項6】 CPU使用率測定用疑似アイドルタス
    ク処理フローとして、まず計測データ群の初期化を行う
    第1の処理と、ソフトウェアカウンタのインクリメント
    処理として、まず該ソフトウェアカウンタ(下位)のオ
    ーバフローの有無をチェックする第2の処理と、該第2
    の処理によるチェックの結果オーバフローしていなかっ
    た場合には単に前記ソフトウェアカウンタ(下位)を1
    つインクリメントする第3の処理と、前記第2の処理に
    よるチェックの結果オーバフローしていた場合には前記
    ソフトウェアカウンタ(上位)への桁上がりと判断する
    第4の処理と、次に前記ソフトウェアカウンタ(上位)
    のオーバフローの有無をチェックする第5の処理と、も
    し、該第5の処理によるチェックの結果オーバフローし
    ていなかった場合には前記ソフトウェアカウンタ(上
    位)を1つインクリメントする第6の処理と、該第6の
    処理を実行すると共に前記ソフトウェアカウンタ(下
    位)を0クリアする第7の処理と、前記第5の処理によ
    るチェックの結果オーバフローしていた場合にはこれ以
    上測定できないためにこれで測定終了と判断し、この時
    点での周期割り込み回数の取得を行い、用なしとなった
    前記CPU使用率測定用疑似アイドルタスクを削除する
    第8の処理と、前記CPU使用率測定用疑似アイドルタ
    スクによる前記第2〜第8の処理を含む前記ソフトウェ
    アカウンタのインクリメント処理を繰り返し実行する処
    理とをコンピュータに実行させるプログラムを記録した
    記録媒体。
JP10132901A 1998-05-15 1998-05-15 Cpu使用率測定方式 Expired - Fee Related JP3099807B2 (ja)

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)

* Cited by examiner, † Cited by third party
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プロセッサにおけるプロセッサ使用率の算出方法

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
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
US8782629B2 (en) Associating program execution sequences with performance counter events
US20090064149A1 (en) Latency coverage and adoption to multiprocessor test generator template creation
US20090178036A1 (en) Method and Apparatus for Call Stack Sampling Using a Virtual Machine
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
US20090083716A1 (en) Profiling method and program
US6983450B2 (en) User configurable operating system
JP3099807B2 (ja) Cpu使用率測定方式
US7735067B1 (en) Avoiding signals when tracing user processes
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

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