JP3055271B2 - タスク同定方式 - Google Patents

タスク同定方式

Info

Publication number
JP3055271B2
JP3055271B2 JP3326877A JP32687791A JP3055271B2 JP 3055271 B2 JP3055271 B2 JP 3055271B2 JP 3326877 A JP3326877 A JP 3326877A JP 32687791 A JP32687791 A JP 32687791A JP 3055271 B2 JP3055271 B2 JP 3055271B2
Authority
JP
Japan
Prior art keywords
task
address
data
execution history
cpu execution
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
JP3326877A
Other languages
English (en)
Other versions
JPH05143369A (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 JP3326877A priority Critical patent/JP3055271B2/ja
Publication of JPH05143369A publication Critical patent/JPH05143369A/ja
Application granted granted Critical
Publication of JP3055271B2 publication Critical patent/JP3055271B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ・プログラ
ムの動作解析に用いられるタスク同定方式に関するもの
である。
【0002】
【従来の技術】プログラムの動作解析を行う方法は、一
般に、ソフトウェアによる測定とハードウェアによる測
定との2つに大別される。
【0003】ソフトウェアによる測定は、一般にソフト
ウェア・モニタと呼ばれるツールを用いるものであり、
メモリやレジスタに格納されている値を自由に獲得する
ことが可能である。
【0004】しかし、それらの値を獲得するためのソフ
トウェア・モニタの処理時間がアプリケーション・プロ
グラムの処理時間に含まれてしまうため、アプリケーシ
ョン・プログラムを単独で実行させた場合の処理時間よ
りも長くなってしまい、測定結果に誤差が生じてしまう
という欠点がある。
【0005】一方、ハードウェアによる測定は、一般に
ハードウェア・トレーサと呼ばれるツールを用いるもの
であり、プログラムの動作状態をCPU実行履歴として
そのままリアルタイムにメモリに格納して行くため、ソ
フトウェアによる測定のように測定結果に誤差が生じる
欠点はない。ただし、CPU実行履歴からはCPUが実
際にメモリ・アクセスしたメモリの内容等しか知ること
ができないため、獲得できる情報が限られるという欠点
はある。
【0006】従って、プログラムの動作解析を時間的に
精密に行う必要がある場合には、ハードウェアによる測
定が一般に行われる。本発明はこのようなハードウェア
による測定を前提としている。
【0007】ところで、プログラムの動作解析において
はタスクを同定する必要が生じる場合が多々あるが、従
来、上記のハードウェアによる測定においては、CPU
実行履歴に含まれるプログラムの実行アドレスと、各タ
スクがロードされているメモリのアドレス領域とを比較
し、実行アドレスがあるタスクがロードされているアド
レス領域に含まれる場合、そのアドレス領域に予め与え
ておいたIDをその領域にロードされているタスクのI
Dとみなし、これによりタスクの同定を行っていた。
【0008】
【発明が解決しようとする課題】従来のタスク同定は上
述したようにして行われていたが、タスクのディスパッ
チ時においては正確なタイミングでのタスク同定が行え
ないという欠点があった。
【0009】すなわち、タスクのディスパッチ時にタス
ク・コンテキストを切り替える処理はオペレーティング
システムのカーネル内で行われるため、その際に得られ
るCPU実行履歴に含まれる実行アドレスはオペレーテ
ィングシステムのカーネルがロードされているアドレス
領域内の値となり、タスクがロードされているアドレス
領域とはならないからである。
【0010】そのため、タスクの切り替わりの概略は知
ることができても、正確なディスパッチのタイミングで
タスクを同定することができず、精密な動作解析が行え
ないという欠点があった。
【0011】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、正確なディスパッチの
タイミングでタスクを同定することのできるタスク同定
方式を提供することにある。
【0012】
【課題を解決するための手段】本発明は上記の目的を達
成するため、タスク・コントロール・ブロックのアドレ
スもしくはディスパッチ用のレディ・キューに格納され
るデータをタスクIDとして登録可能なテーブルと、プ
ログラムの実行アドレスとメモリ・アクセス・アドレス
とデータの情報を含むCPU実行履歴を読み込むデータ
読み込み手段と、オペレーティング・システムによるデ
ィスパッチ時のタスク・コンテキストのロード,ストア
もしくはレディ・キューからのデータの取り出しという
所定の動作が行われたのをCPU実行履歴から検出する
条件判定手段と、条件判定手段で所定の動作が検出され
た際にテーブルをCPU実行履歴に含まれるメモリ・ア
クセス・アドレスもしくはデータで検索し、一致したも
のに対応するタスクであると同定するテーブル検索手段
と、一致しなかったメモリ・アクセス・アドレスもしく
はデータを新たなタスクIDとしてテーブルに登録する
テーブル登録手段とを備えるようにしている。
【0013】すなわち、オペレーティング・システムに
よってディスパッチ時にレジスタにロード,ストアされ
るタスク・コンテキストの内容であるタスク・コントロ
ール・ブロックのアドレスやレディ・キューから取り出
されるデータはタスクに固有のものであるため、本発明
ではこれらを用いてタスクの同定を行っている。
【0014】
【作用】本発明のタスク同定方式にあっては、タスク・
コントロール・ブロックのアドレスもしくはディスパッ
チ用のレディ・キューに格納されるデータをタスクID
として登録可能なテーブルを予め設けておく。そして、
データ読み込み手段はプログラムの実行アドレスとメモ
リ・アクセス・アドレスとデータの情報を含むCPU実
行履歴を読み込み、条件判定手段はオペレーティング・
システムによるディスパッチ時のタスク・コンテキスト
のロード,ストアもしくはレディ・キューからのデータ
の取り出しという所定の動作が行われたのをCPU実行
履歴から検出し、条件判定手段で所定の動作が検出され
た際にテーブル検索手段はテーブルをCPU実行履歴に
含まれるメモリ・アクセス・アドレスもしくはデータで
検索し、一致したものに対応するタスクであると同定
し、一致しなかったメモリ・アクセス・アドレスもしく
はデータはテーブル登録手段が新たなタスクIDとして
テーブルに登録する。
【0015】
【実施例】以下、本発明の実施例につき、図面を参照し
て説明する。
【0016】図1は本発明のタスク同定方式の一実施例
を示す構成図である。
【0017】図1において、本実施例は、解析の対象と
なるプログラムが実行されるターゲット・コンピュータ
1と、ターゲット・コンピュータ1からCPU実行履歴
を採取するハードウェア・トレーサ2と、ハードウェア
・トレーサ2の採取したCPU実行履歴に基づいてタス
クの同定等を行う動作解析部3とから構成されている。
【0018】動作解析部3は本発明の主要部分であり、
テーブル31と、データ読み込み手段32と、条件判定
手段33と、テーブル検索手段34と、テーブル登録手
段35とを含んでいる。各部の機能等の詳細について
は、重複を避けるため、後述の動作を通して説明するこ
ととする。
【0019】実施例をより細分化すると、着目するタイ
ミングおよびタスク同定に用いる情報により、次の3つ
の方式に分かれる。 第1の方式……オペレーティング・システムがディス
パッチ時にタスク・コントロール・ブロック(TCB)
の内容(タスク・コンテキスト)をレジスタにロードす
るタイミングを検出し、TCBのアドレス(先頭アドレ
ス)からタスクを同定する方式 第2の方式……オペレーティング・システムがディス
パッチ時にタスク・コンテキストをレジスタにストアす
るタイミングを検出し、TCBのアドレスからタスクを
同定する方式 第3の方式……オペレーティング・システムがディス
パッチ時にディスパッチ用のレディ・キューからタスク
を特定するデータを取り出すタイミングを検出し、その
データの内容からタスクを同定する方式
【0020】それぞれの方式は検出するタイミングが微
妙に異なり、また、同定されるタスクが異なるので、解
析する際に都合のよい方式を選択する。
【0021】以下、各方式に分けて説明する。
【0022】(1)第1の方式 この場合のテーブル31の構成は、図2に示すように、
タスクを識別するために便宜的に付した名前であるタス
クT1,T2,…と、これらのタスクT1,T2,…の
TCBが格納されるメモリの先頭アドレスであるTCB
アドレスA1,A2,…とを対応付けたものである。な
お、動作開始前にテーブル31の内容を格納しておく必
要はなく、動作の進行に伴って登録されて行く。
【0023】処理は図3のフローチャートに示すように
して行われる。
【0024】予めターゲット・コンピュータ1からハー
ドウェア・トレーサ2によってプログラムの実行アドレ
スとメモリ・アクセス・アドレスとデータの情報を含む
CPU実行履歴が採取されているものとする。
【0025】動作解析部3において、データ読み込み手
段32はハードウェア・トレーサ2からCPU実行履歴
のデータを読み込む(ステップS1)。
【0026】次いで、条件判定手段33は、読み込んだ
CPU実行履歴に含まれる実行アドレスから、「オペレ
ーティング・システムがタスク・コンテキストのロード
のためにTCBの格納されているメモリにアクセスし
た」という条件を満たしたか否かを判断する(ステップ
S2)。一般には、このTCBへのアクセスを行う命令
コードはオペレーティング・システムのカーネル内の1
箇所に存在するため、予めその実行アドレスを調べて記
憶しておき、そのアドレスをCPU実行履歴から抽出し
た実行アドレスと比較して一致すれば上記の条件を満た
したと判断することができる。
【0027】条件を満たさなかった場合(ステップS2
のN)には、再びCPU実行履歴の読み込み(ステップ
S1)に戻る。
【0028】条件を満たした場合(ステップS2の
Y)、テーブル検索手段34は、CPU実行履歴に含ま
れるTCBへのアクセスの際のアドレスをキーにしてテ
ーブル31を検索する(ステップS3)。
【0029】そして、テーブル31のTCBアドレスA
1,A2,…の中に一致するものがあるか否かを判断し
(ステップS4)、ある場合(ステップS4のY)に
は、対応するタスクをこれから実行されるタスクである
と同定する(ステップS6)。
【0030】また、一致するものがなかった場合(ステ
ップS4のN)、テーブル登録手段35は、検索のキー
に用いたTCBのアドレスを新たなタスクIDとしてテ
ーブル31に登録し(ステップS5)、新たなタスクと
して同定する(ステップS6)。
【0031】(2)第2の方式 この場合、テーブル31の構成は図2に示したものと同
じであり、処理は図3のフローチャートにおいて、ステ
ップS2の条件を除いて同じである。すなわち、ステッ
プS2の条件は、「オペレーティング・システムがタス
ク・コンテキストのストアのためにTCBの格納されて
いるメモリにアクセスした」か否かということになる。
なお、この場合も、TCBへのアクセスを行う命令コー
ドはオペレーティング・システムのカーネル内の1箇所
に存在するため、予めその実行アドレスを調べて記憶し
ておき、そのアドレスをCPU実行履歴から抽出した実
行アドレスと比較して一致すれば上記の条件を満たした
と判断することができる。
【0032】なお、同定されるタスクは、第1の方式と
異なり、これから実行されるタスクではなく、今まで実
行されていたタスクである。
【0033】(3)第3の方式 この場合、テーブル31の構成は図4に示すようにな
る。すなわち、タスクを識別するために便宜的に付した
名前であるタスクT1,T2,…と、これらのタスクT
1,T2,…を特定するデータとしてディスパッチ用の
レディ・キューに格納されるデータD1,D2,…とを
対応付けたものである。なお、この場合も動作開始前に
テーブル31の内容を格納しておく必要はなく、動作の
進行に伴って登録されて行く。
【0034】また、処理は図3のフローチャートにおい
て、ステップS2の条件と、ステップS3,S4のテー
ブル31を検索するキーと、ステップS5で登録する値
とが異なる。
【0035】すなわち、ステップS2の条件は、「オペ
レーティング・システムがレディ・キューの先頭からデ
ィスパッチ対象となるタスクを特定するデータを取り出
した」か否かということになる。なお、この場合も、レ
ディ・キューにアクセスを行う命令コードはオペレーテ
ィング・システムのカーネル内の1箇所に存在するた
め、予めその実行アドレスを調べて記憶しておき、その
アドレスをCPU実行履歴から抽出した実行アドレスと
比較して一致すれば上記の条件を満たしたと判断するこ
とができる。
【0036】テーブル31を検索する際のキーおよび不
一致の場合にテーブル31に登録するデータとしては、
レディ・キューから取り出されたデータ(CPU実行履
歴に含まれるアクセスにかかるデータ)となる。
【0037】なお、同定されるタスクは、第1の方式と
同様に、これから実行されるタスクである。
【0038】一方、上記の実施例に比して適用できる場
合が限定されるが、ディスパッチ時に本来のタスクID
をリードもしくはライトする処理がオペレーティング・
システムの処理に含まれている場合には、その処理が実
際に行われたことをCPU実行履歴に含まれる実行アド
レスから検出し、その際のアクセスにかかるデータであ
るタスクIDそのものを取得し、テーブルに登録しつつ
比較することによっても、タスクの同定を行うことがで
きる。この場合、図3のステップS2の条件は「タスク
IDの格納されているメモリにアクセスした」か否かと
なり、テーブル31の内容としてはタスクIDそのもの
が設定されることとなる。
【0039】
【発明の効果】以上説明したように、本発明のタスク同
定方式にあっては、オペレーティング・システムによっ
てディスパッチ時にレジスタにロード,ストアされるタ
スク・コンテキストの内容であるタスク・コントロール
・ブロックのアドレスやレディ・キューから取り出され
るデータからタスクを同定するようにしているので、タ
スクのディスパッチ時における正確なタイミングでのタ
スク同定が行えるという効果がある。
【図面の簡単な説明】
【図1】本発明のタスク同定方式の一実施例を示す構成
図である。
【図2】図1におけるテーブルの論理的構成の例を示す
図である。
【図3】実施例の処理の例を示すフローチャートであ
る。
【図4】テーブルの他の例を示す図である。
【符号の説明】
1……ターゲット・コンピュータ 2……ハードウェア・トレーサ 3……動作解析部 31…テーブル 32…データ読み込み手段 33…条件判定手段 34…テーブル検索手段 35…テーブル登録手段

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 タスク・コントロール・ブロックのアド
    レスもしくはディスパッチ用のレディ・キューに格納さ
    れるデータをタスクIDとして登録可能なテーブルと、 プログラムの実行アドレスとメモリ・アクセス・アドレ
    スとデータの情報を含むCPU実行履歴を読み込むデー
    タ読み込み手段と、 オペレーティング・システムによるディスパッチ時のタ
    スク・コンテキストのロード,ストアもしくはレディ・
    キューからのデータの取り出しという所定の動作が行わ
    れたのをCPU実行履歴から検出する条件判定手段と、 条件判定手段で所定の動作が検出された際にテーブルを
    CPU実行履歴に含まれるメモリ・アクセス・アドレス
    もしくはデータで検索し、一致したものに対応するタス
    クであると同定するテーブル検索手段と、 一致しなかったメモリ・アクセス・アドレスもしくはデ
    タを新たなタスクIDとしてテーブルに登録するテー
    ブル登録手段とを備えたことを特徴とするタスク同定方
    式。
JP3326877A 1991-11-15 1991-11-15 タスク同定方式 Expired - Fee Related JP3055271B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3326877A JP3055271B2 (ja) 1991-11-15 1991-11-15 タスク同定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3326877A JP3055271B2 (ja) 1991-11-15 1991-11-15 タスク同定方式

Publications (2)

Publication Number Publication Date
JPH05143369A JPH05143369A (ja) 1993-06-11
JP3055271B2 true JP3055271B2 (ja) 2000-06-26

Family

ID=18192739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3326877A Expired - Fee Related JP3055271B2 (ja) 1991-11-15 1991-11-15 タスク同定方式

Country Status (1)

Country Link
JP (1) JP3055271B2 (ja)

Also Published As

Publication number Publication date
JPH05143369A (ja) 1993-06-11

Similar Documents

Publication Publication Date Title
US5404470A (en) Information processing apparatus for processing instructions by out-of-order execution
JP2557239B2 (ja) プログラム内データ名称標準化方法
US20070255771A1 (en) Method and system for renewing an index
JP3055271B2 (ja) タスク同定方式
US5898875A (en) Method and computer system for loading objects
CN114443418A (zh) 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置
JP2716310B2 (ja) 関数コール・リターン検出方式
JPH07191882A (ja) メモリアクセス頻度測定方式
US20040049511A1 (en) Method for acquiring and monitoring hardware data of computer system
JP2006092149A (ja) 文書ファイルコピー移動監視システム、方法及びプログラム
JP2821300B2 (ja) 関数コ─ルおよびリタ─ンの検出方式
JP2580734B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JP2980327B2 (ja) 命令処理装置
JPH10254887A (ja) データベースシステム
JPH07334379A (ja) デッドロック検出法
JP3106989B2 (ja) シミュレーションデバッガのシミュレーション方式
JPH05143389A (ja) タスク・タイプ判別方式
JPH08314766A (ja) 情報処理装置
JP2007257385A (ja) ダイナミックリンクライブラリの競合検出方法及びこれを用いた計算機システム
JPH02139640A (ja) 調査情報出力方式
JP2000305808A (ja) マイクロコンピュータ組み込みシステムにおけるイベント検出方法ならびに装置
JP2004078790A (ja) 命令トレース出力方法
JPH04215167A (ja) データディクショナリ管理システム
JPH0736783A (ja) プログラムキャッシュ方法
JPH0981460A (ja) データの呼び出し方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees