JP2000242522A - マルチタスクデバッグ装置及びその方法 - Google Patents

マルチタスクデバッグ装置及びその方法

Info

Publication number
JP2000242522A
JP2000242522A JP11040556A JP4055699A JP2000242522A JP 2000242522 A JP2000242522 A JP 2000242522A JP 11040556 A JP11040556 A JP 11040556A JP 4055699 A JP4055699 A JP 4055699A JP 2000242522 A JP2000242522 A JP 2000242522A
Authority
JP
Japan
Prior art keywords
task
time
execution
system call
state
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.)
Withdrawn
Application number
JP11040556A
Other languages
English (en)
Inventor
Hiroyasu Watanabe
浩康 渡辺
Seiji Sasaki
誠司 佐々木
Toshio Yabe
俊夫 矢部
Masahiro Ogawara
将広 大河原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP11040556A priority Critical patent/JP2000242522A/ja
Publication of JP2000242522A publication Critical patent/JP2000242522A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】マルチタスクデバッグにおいて、どのタスクが
許容時間内に処理が間に合わなくなりそうであるかの推
定を容易に行えるようにする。 【解決手段】 マルチタスクOS370上で稼働するプ
ログラムをデバッグするために、実行トレース情報収集
機構500はプログラムの実行中に発生するシステムコ
ールが検出された場合、システムコール発生のタイムス
タンプと当該システムコールによるタスクの状態遷移を
表わすトレース情報を生成、保持し、これを通信回線1
10を介して開発ホスト600のマルチタスクシミュレ
ーション機構700に提供する。マルチタスクシミュレ
ーション機構700では、システムコールによって任意
のタスクがCPUを占有する実行状態へ移行した場合
に、該タスクの実行待機状態から実行状態へ移行するま
での待機時間情報をトレース情報に基づいて算出し、こ
れをタスク付加情報保存領域800に保持する

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクシス
テムにおけるマルチタスクデバッグ装置及び方法に関す
るものである。
【0002】
【従来の技術】従来マルチタスクデバッグにおいては、
システム負荷を把握するために以下のような方法がとら
れていた。 (1)マルチタスクデバッガを用い、ある時点でシステ
ム内の各タスク状態を表示させ、中断状態(SUSPEND)
と実行待状態(READY)のタスク数を比較する。 (2)ロジックアナライザを用いて実行トレースをと
り、アイドルタスクとOSとユーザタスクの実行時間比
率を比較する。 (3)マルチタスクデバッガを用いてタスク切換えトレ
ースをとり、各タスク切換えの履歴をグラフィカルにタ
イミングチャートとして表示させ、ある時点でのタスク
が時間内に終了しているかチェックする。 (4)特開平07−021036のように特別なマルチ
タスク試験装置を使用し、タスク内にチェックポイント
を設け、チェックポイント通過間隔が許容範囲に収まっ
ているかチェックする。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
方法(1)(2)では、システム全体のおおまかな負荷
を把握することは出来るが、それによってどのタスクの
処理が許容時間内に間に合わなくなるかまでは特定でき
ない。
【0004】また、(3)の方法は、あるタスクのある
時点に注目して、そのタスクの処理が時間内に終了して
いるかチェックするもので、すでにある条件下で動作が
不安定であるといった場合の原因の絞り込みの際には有
効であるが、現状システムが正常に動作している際には
不向きである。
【0005】また、(4)の方法は、周期起動タスクの
チェックポイント通過間隔をチェックすることで各タス
クの負荷を知ることができるが、実際にその原因が何か
までは特定できない。また、周期起動タスクでない場合
は有効でない。
【0006】本発明は上記の課題に鑑みてなされたもの
であり、マルチタスクデバッグにおいて、どのタスクが
許容時間内に処理が間に合わなくなりそうであるかを推
定可能とすることを目的とする。
【0007】また、本発明の他の目的は、現時点でシス
テムが正常に動作している場合において、事前にシステ
ム中の不安定動作箇所を予測可能とすることにある。
【0008】また、本発明の他の目的は、デバッグ対象
が周期起動タスクでなく、負荷測定を行えない場合であ
っても、タスクの処理が許容時間を守れない場合にその
原因の特定を容易とすることにある。
【0009】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の一態様によるマルチタスクデバッグ装置に
よれば、マルチタスクOS上で稼働するプログラムをデ
バッグするマルチタスクデバッグ装置であって、前記プ
ログラムの実行中に発生するシステムコールを検出する
検出手段と、前記検出手段によってシステムコールが検
出された場合、該システムコール発生の時刻と該システ
ムコールによるタスクの状態遷移を表わすトレース情報
を保持する第1保持手段と、前記システムコールによっ
て任意のタスクがCPUを占有する実行状態へ移行した
場合に、該タスクの実行待機状態から実行状態へ移行す
るまでの待機時間情報を前記トレース情報に基づいて算
出する第1算出手段と、各タスクについて、前記第1算
出手段で算出された待機時間情報を保持する第2保持手
段とを備える。
【0010】また、好ましくは、前記プログラムに含ま
れるタスクのそれぞれについて、一方の軸に時刻を取
り、他方の軸に待機時間を取って表わされる座標上に、
前記第2保持手段に保持された待機時間に基づいて、当
該タスクが実行状態へ移行した時刻とその待機時間によ
って決定される座標位置を明示したグラフを生成する生
成手段と、前記生成手段で生成されたグラフを可視表示
する表示手段とをさらに備える。
【0011】
【発明の実施の形態】以下、添付の図面を参照して本発
明の好適な実施形態を詳細に説明する。
【0012】[第1の実施形態]図1は 第1の実施形
態によるシステム構成を示すブロック図である。図1に
おいて、ROM220には、RAM300上に示される
全ての処理ユニットに係るプログラムコード、及び初期
化データ400が存在している。CPU210にリセッ
トがかかった場合等、システムは立ち上げ処理を実行す
る。立ち上げ処理においては、ROM220に格納され
た上記プログラムコードや初期化データの全てがRAM
300上にコピーされる。さらに、I/O240及びタ
イマ230等のハードウェアの初期化が行われ、I/O
割込処理350及びタイマ割込処理360を有効にする
とともに、初期化データ400を元にリアルタイムOS
370に起動がかかる。こうして、一般的なマルチタス
ク環境が立ち上がる。そして、タスク1310、タスク
2320、タスク3330、タスク4340が並行に動
作を開始する。
【0013】実行トレース情報収集機構500は、マル
チタスクOS370のシステムコールをフックし、図6
に示すような実行トレース情報501を作成し、パケッ
トとして通信回線110を介してデバッグ用の開発ホス
ト600に送信する。実行トレース情報501は、シス
テムコールの起動に対応して毎回作成されるため、時系
列的に表現すると、例えば図7の511から598に示
すようになる。
【0014】開発ホスト600側のマルチタスクシミュ
レーション機構700は、実行トレース情報501を受
けて、図2に示すような実行待キュー770や中断キュ
ー790といった、本来ターゲット100上のマルチタ
スクOS370の内部で管理されている情報を再現す
る。さらに、これと並行して、マルチタスクシミュレー
ション機構700は、実行トレース情報501のシステ
ムコール実行情報503(図6)とその実行時のタイム
スタンプ504とを元に、あるタスクが実行待状態(RE
ADY)に遷移してから実際にCPUを占有し実行状態(E
XECUTE)に遷移するまでの時間を計算し、その結果をタ
スク負荷情報保存領域800に図8で示す如き形式で保
存する。
【0015】全てのタスクについてこのタスク負荷情報
保存領域800に保存された計算結果をユーザに示すこ
とで、どのタスクが許容時間内に処理が間に合わなくな
りそうであるかを特定或いは推定することができる。こ
のため、現時点ではシステムが正常に動作していても、
事前にシステム中の不安定動作箇所を予測できる。
【0016】以下、第1の実施形態についてさらに詳細
に説明する。
【0017】図2は、図1で示されるマルチタスクシミ
ュレーション機構700の構成を示すブロック図であ
る。マルチタスクシミュレーション機構700の装備す
る処理701は、初期化処理710、終了処理720、
中断処理730、中断解除処理740である。また、マ
ルチタスクシミュレーション機構700の保持するデー
タ702は、現在CPUを占有しているタスクを示す現
実行タスク703、各タスク毎にタスク状態等を管理す
るTCB(タスクコントロールブロック)750であ
る。なお、TCB750は、以下に説明するキューに
(実行待キュー770、中断キュー790)リンクされ
る。
【0018】また、ターゲット100上のマルチタスク
OS370と同様なタスクのスケジューリングを再現す
るため、マルチタスクシミュレーション機構700は、
実行待キュー770、中断キュー790を保持してい
る。実行待キュー770は、優先順位毎に実行待状態7
63のタスクのTCB750をリスト上に保持し、その
並び順は、待ち行列としてFIFOのキューとして管理
している。マルチタスクシミュレーション機構700の
最高優先順位実行待キュー771にリンクされたTCB
750の中で先頭のタスクが図4の実行状態(EXECUT
E)764であることを示す。また、中断キュー790
は、中断状態765のタスクのTCB750をリスト上
に保持し、その並び順は、待ち行列としてFIFOのキ
ューとして管理している。
【0019】図3は図2に示したTCB750の格納情
報例を示す図である。図3によれば、TCB(タスクコ
ントロールブロック)750は、タスクID752、タ
スクアドレス(PC)753、タスクスタックアドレス
(SP)754、優先順位755、タスク状態756、
リンクポインタ757、READY遷移時タイムスタンプ7
58、SUSPEND遷移時タイムスタンプ759を含んで格
納されている。TCB750は各タスク毎に、すなわち
TCB[0]751、TCB[1]760、TCB
[2]761…毎に上記のデータを保持し、マルチタス
クシミュレーション機構700のデータとして保持され
る。
【0020】なお、タスク状態756の取り得る値は、
4つの遷移状態、すなわち初期状態、実行待状態(READ
Y)、実行状態(EXECUTE)、中断状態(SUSPEND)であ
る。状態遷移及びその発生要因について図4を参照して
以下に説明する。
【0021】図4は、図3で示したTCB750におい
て管理されるタスク状態756の遷移を説明する図であ
る。タスクは、初期状態762、実行待状態(READY)
763、実行状態(EXECUTE)764、中断状態(SUSPE
ND)765の4つの状態のいずれかを取り得る。それぞ
れの状態間の遷移は、初期化処理710、中断処理73
0、中断解除処理740の起動によって発生する。タス
クの状態は各タスク毎にTCB750内のタスク状態7
56に保持される。
【0022】各状態について説明すると次のとおりであ
る。すなわち、 ・初期状態762は、TCB750が確保された直後の
立ち上がり時の状態である。 ・実行状態(EXECUTE)は、タスクがCPU210を占
有し実行している状態で優先順位が最高の実行待ちキュ
ー771の先頭の1タスクのみがなり得る。この状態の
タスクはTCB750が実行待キュー770にリンクさ
れている。 ・実行待状態(READY)763は、実行可能であるが優
先順位等の関係で他のタスクがCPUを占有しているた
めこれが空くのを待っている状態で、この状態のタスク
はTCB750が実行待キュー770にリンクされてい
る。 ・中断状態(SUSPEND)765は、他のタスクやI/O
240等からのイベント待ちの状態で、この状態の間は
CPUが空いても実行されることはない。この状態のタ
スクはTCB750が中断キュー790にリンクされて
いる。
【0023】図5は、図1に示した初期化データ400
の格納情報例を示す図である。図5において、初期化デ
ータ400は、全タスク数410及び全タスク情報42
0を含んで格納されている。全タスク情報420は、各
タスク毎にタスクの実行アドレス(PC)、優先順位を
含んで格納されている。図5の例では、タスク1(42
1)、タスク2(422)、タスク3(423)、タス
ク4(424)の4つが初期状態で存在し、すべて優先
順位は1を示している。
【0024】図6は図1に示される実行トレース情報収
集機構500で収集される実行トレース情報を示す図で
ある。図6において、実行トレース情報501が、シス
テムコールを呼び出したタスクのID502及び、呼び
出したシステムコール名とパラメータを含むシステムコ
ール実行情報503、実行時のタイムスタンプ504を
含んで格納されている。なお、呼び出しタスクID50
2は、タスクIDまたはOS、割り込みの識別子を指定
する。また、システムコール実行情報503は、システ
ムコール名及びパラメータ群を含む。実施形態では初期
化システムコール(create(タスクID,優先順
位))、タスク中断システムコール(suspend(タスク
ID))、中断解除システムコール(resume(タスクI
D))が代表例としてあげられる。
【0025】図7は,図6に示された実行トレース情報
501を時系列的に累積した例を示す図である。図7に
示される例は、図5に示す初期化データ421〜424
のケースでマルチタスクOS370が実行を開始した場
合、実行トレース情報収集機構500がこれをフックし
て生成したものである。図5における421から424
が、図7における511から522に相当する。以降
の、図7における523から597までの実行トレース
情報は、図10のタイミングチャートに示されるように
マルチタスクOS370上のタスク1(310)、タス
ク2(320)、タスク3(330)、タスク4(34
0)が動作した際に,実行トレース情報収集機構500
が生成したものである。これら511から597までの
実行トレース情報群は、通信回線110を介してマルチ
タスクシミュレーション機構700に送信される。
【0026】図8は図1に示されるタスク負荷情報保存
領域800の格納情報を示す図である。図8に示される
格納情報の例は、実行トレース情報収集機構500によ
り生成された図7に示す511から597までの実行ト
レース情報群を、マルチタスクシミュレーション機構7
00が通信回線110を介して受信し、変換して得られ
たものである。図7における523から597が、図8
における523から597に相当する。マルチタスクシ
ミュレーション機構700は、これら実行トレース情報
(502,503,504)に、READY時間801及び
実行状態遷移タスク802の情報を付加する。これらの
付加情報は、図8の803から852に示してある通り
である。
【0027】図9は、図2に示したマルチタスクシミュ
レーション機構700における、図5に示す初期化デー
タ400の例を用いた場合の初期化直後の実行待ちキュ
ー及び中断キューの内容を示す図である。
【0028】また、図10は、第1の実施形態におけ
る、ターゲット100上のタスク1からタスク4の動作
タイミングチャートを示す図である。図10において、
●はタスクが実行状態(EXECUTE)764に遷移したこ
とを表す。×はタスクが自分自身のシステムコールによ
って中断状態(SUSPEND)765に遷移したことを表
す。実線は実行状態(EXECUTE)764を表す。点線は
実行待状態(READY)763を表す。線無しは中断状態
(SUSPEND)765を表す。suspend()、resume()は
システムコールが実行されたことを表す。矢印はresume
()のパラメータで指定されたタスクを指し示す。
【0029】図11は、図2に示したマルチタスクシミ
ュレーション機構の処理701における制御手順を示す
フローチャートである。まず、通信回線110から実行
トレース情報501を受信する(ステップS704)。
これには、システムコール実行情報503が1セット含
まれている。そして、このシステムコール実行情報に基
づいて以下処理を分岐する。まず、システムコール実行
情報705がcreateであれば、初期化処理710をコー
ルする(ステップS705、S710)。また、システ
ムコール実行情報705がsuspendであれば、中断処理
730をコールする(ステップS706、S730)。
また、システムコール実行情報705がresumeであれ
ば、中断解除処理740をコールする(ステップS70
7、S740)。さらに、システムコール実行情報70
5がEOFであれば、終了処理720をコールする(ス
テップS708、S720)。なお、ステップS720
がコールされた後は、ループを抜け、本処理を終了す
る。
【0030】図12は、図2に示したマルチタスクシミ
ュレーション機構における初期化処理710を示すフロ
ーチャートである。この処理は、マルチタスクシミュレ
ーション機構処理701において、システムコール実行
情報がcreateであった場合にコールされるものである
(図11のステップS710)。まず、システムコール
実行情報503のパラメータとして指定されているタス
クIDで示される初期化すべきタスクのTCBを作成す
る(ステップS711)。次に、作成したTCBを初期
化する(ステップS712)。ここで、タスクID75
2にシステムコール実行情報503の示すタスクID
を、優先順位755にシステムコール実行情報が示す優
先順位を設定する。また、図4に示されるように、crea
te後は実行待状態(READY)763となるので、タスク
状態756にREADYを設定し、さらに、READY遷移タイム
スタンプ758を現在のタイムスタンプ504に設定す
る。なお、このREADY遷移タイムスタンプ758は、こ
のタスクが実行状態(EXECUTE)764に遷移する際、
その時点のタイムスタンプ504との差分をとり、READ
Y時間801を算出するために用いられる。最後に、作
成した初期化したタスクのTCBを実行待キュー770
の該当優先順位755後尾へ追加する(ステップS71
3)。
【0031】以上の一連の処理がタスク1からタスク4
について行われることとなる。結果的に、実行トレース
情報511から522までの情報に基づいて図9に示す
ような初期化直後の実行待ち770キュー、中断キュー
790が作成される。
【0032】図13は、図2に示すマルチタスクシミュ
レーション機構の中断処理730を示すフローチャート
である。この処理は、指定タスクを中断状態765に遷
移させ、また、それと同時に、タスク付加情報保存領域
800のREADY時間801と実行状態遷移タスク802
を記録する処理である。
【0033】まず、システムコール実行情報503のタ
スクIDで示される中断すべきタスクのTCBを実行待
キュー770から取り出す(ステップS731)。次
に、取り出した中断タスクのTCB内のタスク状態75
6を中断状態(SUSPEND)にセットし、中断キュー79
0の後尾へ追加する(ステップS732)。次にタスク
負荷情報保存領域800に、呼び出しタスクID50
2、システムコール実行情報503、タイムスタンプ5
04を保存する(ステップS733)。この処理では、
例えば、図7における呼び出しタスクID523、シス
テムコール実行情報524、タイムスタンプ525を、
図8における呼び出しタスクID523、システムコー
ル実行情報524、タイムスタンプ525に、そのまま
セットすることになる。
【0034】次に、呼び出しタスクID502とシステ
ムコール実行情報503に含まれるタスクIDを比較
し、処理を分岐する(ステップS734)。この処理で
は、例えば図7における呼び出しタスクID523(=
タスク1)とシステムコール実行情報524に含まれる
タスクID(=タスク2)のように、両者のタスクID
が異なる場合は、他タスクを強制的に中断状態765に
遷移させることと判断し、処理をステップS735に進
める。また、図7における呼び出しタスクID532
(=タスク3)とシステムコール実行情報534に含ま
れるタスクID(タスク3)のように両者が等しい場合
は、自タスクで実行権を放棄し中断状態765に遷移す
ることと判断し、処理をステップS737へ進める。
【0035】すなわち、ステップS734で呼び出しタ
スクIDとシステムコール実行情報中のタスクIDとが
等しくないと判断された場合、指定された他タスクを強
制的に中断状態765に遷移させる。従って、当該他タ
スクのREADY時間801(図8)に、タイムスタンプ5
04と当該他タスクTCB内のREADY遷移時間タイムス
タンプ758との差分を保存する(ステップS73
5)。次に、実行状態764のタスクは呼び出しタスク
であるため状態遷移に変化はないので、実行状態遷移タ
スク802にNULLをセットする(ステップS73
6)。図7中の523,524の場合、他タスクに相当
するのは、タスク2である。タスク2は、READY時間8
03で示される分だけ実行待状態763で待ったにもか
かわらず、実行状態764に遷移することなく、中断状
態765になってしまったことになる。タスクの動作と
しては問題であると判断できる。
【0036】一方、ステップS734で両タスクIDが
等しいと判断された場合は、自タスクで実行権を放棄し
中断状態765に遷移することを意味する。従って、そ
の実行権放棄が要因で実行状態764に遷移したタスク
のREADY時間801に、タイムスタンプ504と実行状
態に遷移するタスクのTCB内のREADY遷移時間タイム
スタンプ758の差分をセットする(ステップS73
7)。次に、実行状態遷移タスク802に実行待ちキュ
ー771の先頭TCBのタスクをセットする(ステップ
S738)。例えば、図8中の526,527の場合、
自タスクに相当するのは、タスク1である。タスク1が
中断状態765に遷移することによってタスク3は、RE
ADY時間805で示される分だけ実行待状態763で待
って、実行状態764に遷移することができたことにな
る。タスクの動作としては問題はないが、READY時間8
05の長さがあまり長いとシステム負荷が大きいと判断
できる。
【0037】図14は、図2に示されるマルチタスクシ
ミュレーション機構中断解除処理740を示すフローチ
ャートである。この処理は、指定タスクを中断状態76
5から実行待状態763に遷移させる処理である。それ
と同時に、中断処理730でのREADY時間801計算の
ために、中断を解除したタスク(READYに遷移したタス
ク)のTCB内に含まれるREADY遷移タイムスタンプ7
58を現在のタイムスタンプ504に更新する。
【0038】まず、システムコール実行情報503のタ
スクIDで示される中断を解除すべきタスクのTCBを
中断キュー790から取り出す(ステップS741)。
次に、取り出した中断を解除すべきタスクのTCB内の
タスク状態756を実行待状態(READY)763にセッ
トし、READY遷移タイムスタンプ758を現在のタイム
スタンプ504に更新して、実行待ちキュー770の後
尾へ追加する(ステップS742)。次にタスク負荷情
報保存領域800に、呼び出しタスクID502、シス
テムコール実行情報503、タイムスタンプ504を保
存する(ステップS743)。この処理は、例えば、図
7における呼び出しタスクID529、システムコール
実行情報530、タイムスタンプ531を、図8におけ
る呼び出しタスクID529、システムコール実行情報
530、タイムスタンプ531に、そのままセットする
ことになる。
【0039】以上説明したように、第1の実施形態によ
れば、実行トレース情報収集機構500により収集され
たシステムコール実行情報とその実行時のタイムスタン
プを元に、マルチタスクシミュレーション機構700で
指定した任意のタスクが実行待状態(READY)に遷移し
てから実際にCPUを占有し実行状態(EXECUTE)に遷
移するまでの時間が毎回計算される。全てのタスクにつ
いてこの計算結果をユーザに示すことで、各タスクがそ
れぞれ許容された時間内に処理を開始しているか確認す
るのに有用な情報を提供することができる。このため、
どのタスクが許容時間内に処理が間に合わなくなりそう
であるかを特定でき、現時点でシステムが正常に動作し
ていても、事前にシステム中の不安定動作箇所を予測す
ることが可能となる。これにより、特別なハードウェア
増設を行ってパフォーマンスを向上させる前に、動作不
安定なタスクを特定できソフトウェア的に修正を施すこ
とが容易に可能になりコストを削減する効果がある。
【0040】[第2の実施形態]次に、第2の実施形態
について説明する。第2の実施形態では、第1の実施形
態で説明した方法を用いて、どのタスクが許容時間内に
処理が間に合わなくなりそうであるか特定可能とし、現
時点でシステムが正常に動作していても、事前にシステ
ム中の不安定動作箇所を予測できるようにするためのタ
スク負荷情報保存領域800に保存された結果をよりわ
かりやすいグラフィカルな形式でユーザに表示する。
【0041】図1において、タスク負荷情報表示機構9
00は、各タスク毎に第1の方向(例えば横軸方向)に
タイムスタンプをとり、これに垂直な第2の方向(例え
ば縦軸方向)に実行待状態(READY)763に遷移して
から実際にCPUを占有し実行状態(EXECUTE)764
に遷移するまでの時間を表すことで、システムコール実
行情報の2次元グラフとして表示する。
【0042】このような2次元グラフによれば、READY
時間801とシステムコール実行情報503が関連付け
て表示されるため、タスクの処理が許容時間を守れない
場合その原因の詳細が明確になる。また、READY時間8
01を計測しているので、対象が周期起動タスクでない
場合(単発タスクの場合)でもこれらの予測が可能とな
る。
【0043】以下、本発明の実施形態2を図面に基づい
て詳細に説明する。なお、図8に示すタスク負荷情報保
存機構800に格納するための計算結果を導き出す方法
は、第1の実施形態に示したものを使用する。
【0044】図16は、第2の実施形態による、タスク
2のREADY時間の変位をグラフィカルに表示した様子を
示す図である。図16には、図1中のタスク負荷情報表
示機構900がタスク負荷情報保存領域800の情報を
元にタスク2についてREADY時間の変位をグラフィカル
に表示した様子が示される。この図16は、図10のタ
イミングチャート及び図8のタスク負荷情報保存領域8
00と対応が取られている。図16において、●はタス
ク2が実行状態764に遷移した時点を表し、また、×
は、タスク2が強制的に中断状態にされた時点を表す。
【0045】図16において、タスク2は、10msの
時点(×で示した点)でsuspendをかけられ強制的に中
断状態765に陥っている。この時のREADY時間は10
msである。これは、10msのREADY待機後、実行さ
れることなく中断状態765に遷移したと判断できるの
でタスク動作上問題である。また、READY時間が最高3
0msに達していることも直ちにわかる。また、60m
sの時点(●で示した点の最も左のもの)において、実
行状態764に遷移しており、このときのREADY時間3
0msで、その時の遷移要因となったシステムコール
は、suspend(タスク4)であることがわかる。
【0046】図17は、第2の実施形態による、タスク
3のREADY時間の変位をグラフィカルに表示した様子を
示す図である。図17には、図1のタスク負荷情報表示
機構900がタスク負荷情報保存領域800の情報を元
にタスク3についてREADY時間の変位をグラフィカルに
表示した様子が示されている。なお、この図17は、図
10のタイミングチャート及び図8のタスク負荷情報保
存領域800と対応が取れている。図16と同様に、●
は、タスク3が実行状態764に遷移した時点を表し、
四角枠内はシステムコール実行情報である。
【0047】図17において、タスク3は、190ms
の時点(●で示した点)で、実行状態764に遷移して
おり、READY時間30msで、その時の遷移要因となっ
たシステムコールは、suspend(タスク2)である。こ
こで、他の●で示した点におけるREADY時間が20ms
以下なのに、この時点だけ30msとなっているのは、
システム負荷上問題がないかを確認するために有用な情
報である。
【0048】次に、第2の実施形態によるタスク付加情
報表示機構900の動作について説明する。図15は、
図1のタスク負荷情報表示機構900の処理を示すフロ
ーチャートである。図15に基づき、タスク負荷情報表
示機構900の処理の詳細を説明する。この処理は、ユ
ーザ端末620から指定されたタスクについて、図8に
示すタスク負荷情報保存領域800に保存されたタスク
負荷情報を、図16や図17で示した如く、一方の軸に
タイムスタンプ504、もう一方の軸にREADY時間80
1という形の2次元グラフとしてユーザにわかりやすく
表示するものである。なお、図16、図17で説明した
ように、本実施形態では、●は指定したタスクが実行状
態764に遷移した時点を表し、×は指定したタスクが
強制的に中断状態にされた時点を表す。また、四角枠内
にはシステムコール実行情報が示される。
【0049】まず、ユーザ端末(キーボード)620か
ら表示したいタスクIDを入力する(ステップS90
1)。次に、以下に示すステップS902〜S907の
処理をループする。まず、タスク負荷情報保存領域80
0からタスク負荷情報を1セット(1行分、すなわち、
呼び出しタスクID502、システムコール実行情報5
03、タイムスタンプ504、READY時間801及び実
行状態遷移タスク)を読み込む(ステップS902)。
次に、読み込んだタスク負荷情報がEOFであれば、処
理を終了する(ステップS903)。そうでなければ、
実行状態遷移タスク802に示されているタスクID
と、ステップS901にて端末620から入力した表示
タスクIDとを比較する(ステップS904)。もし、
等しければ(x,y)=(タイムスタンプ504、READ
Y時間801)の示す座標に、●印とシステムコール実
行情報503とを描画する(ステップS905)。一
方、ステップS904で両タスクIDが等しくなけれ
ば、実行状態遷移タスク802がNULLでかつ、シス
テムコール実行情報503に示すIDと端末620から
入力した表示タスクIDがいっちするどうかを判定する
(ステップS906)。条件が不成立ならば、ループの
先頭に戻る。また、条件が成立したならば、(x,y)
=(タイムスタンプ504,READY時間801)の示す
座標に、×印とシステムコール実行情報503を描画す
る(ステップS907)。
【0050】以上のように、第2の実施形態によれば、
実行トレース情報収集機構500により収集されたシス
テムコール実行情報とその実行時のタイムスタンプを元
に、マルチタスクシミュレーション機構700で、指定
した任意のタスクが実行待状態(READY)に遷移してか
ら実際にCPUを占有し実行状態(EXECUTE)に遷移す
るまでの時間を毎回計算する。全てのタスクについてこ
の計算を行い、その結果をタスク付加情報保存領域80
0に保持する。そして、さらに、タスク負荷情報表示機
構900により、ユーザ端末620を介して指定された
タスクについて図16、図17に示されるような2次元
グラフ表示を行う。すなわち、第1の軸方向にタイムス
タンプを取り、これに垂直な第2の軸方向に実行待状態
(READY)に遷移してから実際にCPUを占有し実行状
態(EXECUTE)に遷移するまでの時間(READY時間)を取
り、この座標空間上に指定された所望のタスクの実行タ
イミングと中断タイミングを表す。
【0051】これにより、どのタスクが許容時間内に処
理が間に合わなくなりそうであるか特定できるようにな
り、現時点でシステムが正常に動作していても、事前に
システム中の不安定動作箇所を予測できる。また、2次
元グラフ上に、READY時間とシステムコール実行情報が
関連付けて表示されるため、タスクの処理が許容時間を
守れない場合にその原因の詳細が明確になり、さらにRE
ADY時間を計測しているので、対象が周期起動タスクで
ない場合(単発タスク)でもこれらの予測が可能とな
る。このように、よりユーザにわかりやすく情報を表示
することが可能になるので、第1の実施形態によって達
成される効果に加えて、開発効率の向上、重要な情報の
見落としといったミスをより確実に防ぐ効果がある。
【0052】なお、第1の実施形態、第2の実施形態2
において、立上げ時のコード及び初期化データ400の
格納場所はROM220としているが、これに限られる
ものではなく、フロッピーディスクやハードディスク等
の記録媒体で置き換えることも可能である。
【0053】すなわち、本発明の目的は、前述した実施
形態の機能を実現するソフトウェアのプログラムコード
を記録した記憶媒体を、システムあるいは装置に供給
し、そのシステムあるいは装置のコンピュータ(または
CPUやMPU)が記憶媒体に格納されたプログラムコ
ードを読出し実行することによっても、達成されるもの
である。
【0054】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0055】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0056】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0057】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0058】以上のように、本発明を実装するために、
専用のハードウェアを新規に開発する必要はなく、固定
優先順位のプリエンプトスケジュール機能を持ったマル
チタスクOSに簡単に組込むことが可能である。このた
め、既存システムであっても低コストでデバッグ装置の
信頼性及び性能を向上させることができる。
【0059】
【発明の効果】以上説明したように、本発明によれば、
マルチタスクデバッグにおいて、どのタスクが許容時間
内に処理が間に合わなくなりそうであるかの推定が容易
となる。また、本発明によれば、現時点でシステムが正
常に動作している場合であっても、事前にシステム中の
不安定動作箇所を予測することが可能となる。また、本
発明によれば、デバッグ対象が周期起動タスクでなく、
負荷測定を行えない場合であっても、タスクの処理が許
容時間を守れない場合にその原因を特定することが容易
となる。
【図面の簡単な説明】
【図1】第1の実施形態によるシステム構成を示すブロ
ック図である。
【図2】図1で示されるマルチタスクシミュレーション
機構700の構成を示すブロック図である。
【図3】図2に示したTCB750の格納情報例を示す
図である。
【図4】図3で示したTCB750において管理される
タスク状態756の遷移を説明する図である。
【図5】図1に示した初期化データ400の格納情報例
を示す図である。
【図6】図1に示される実行トレース情報収集機構50
0で収集される実行トレース情報を示す図である。
【図7】,図6に示された実行トレース情報501を時
系列的に累積した例を示す図である。
【図8】図1に示されるタスク負荷情報保存領域800
の格納情報を示す図である。
【図9】図2に示したマルチタスクシミュレーション機
構700における、図5に示す初期化データ400の例
を用いた場合の初期化直後の実行待ちキュー及び中断キ
ューの内容を示す図である。
【図10】第1の実施形態における、ターゲット100
上のタスク1からタスク4の動作タイミングチャートを
示す図である。
【図11】図2に示したマルチタスクシミュレーション
機構の処理701における制御手順を示すフローチャー
トである。
【図12】図2に示したマルチタスクシミュレーション
機構における初期化処理710を示すフローチャートで
ある。
【図13】図2に示すマルチタスクシミュレーション機
構の中断処理730を示すフローチャートである。
【図14】図2に示されるマルチタスクシミュレーショ
ン機構中断解除処理740を示すフローチャートであ
る。
【図15】図1のタスク負荷情報表示機構900の処理
を示すフローチャートである。
【図16】第2の実施形態による、タスク2のREADY時
間の変位をグラフィカルに表示した様子を示す図であ
る。
【図17】第2の実施形態による、タスク3のREADY時
間の変位をグラフィカルに表示した様子を示す図であ
る。
【符号の説明】
100 ターゲット 110 通信回線 200 CPUバス 210 CPU 220 ROM 230 タイマ 240 I/O 300 RAM 310 タスク1 320 タスク2 330 タスク3 340 タスク4 350 I/O割込処理 360 タイマ割込処理 370 マルチタスクOS 400 初期化データ 500 実行トレース情報収集機構 600 開発ホスト 610 CRT 620 ユーザ端末 700 マルチタスクシミュレーション機構 800 タスク負荷情報保存領域 900 タスク負荷情報表示機構
───────────────────────────────────────────────────── フロントページの続き (72)発明者 矢部 俊夫 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 大河原 将広 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 Fターム(参考) 5B042 GA23 LA11 MA08 MB04 MC21 MC28 MC34 MC35 NN09

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 マルチタスクOS上で稼働するプログラ
    ムをデバッグするマルチタスクデバッグ装置であって、 前記プログラムの実行中に発生するシステムコールを検
    出する検出手段と、 前記検出手段によってシステムコールが検出された場
    合、該システムコール発生の時刻と該システムコールに
    よるタスクの状態遷移を表わすトレース情報を保持する
    第1保持手段と、 前記システムコールによって任意のタスクがCPUを占
    有する実行状態へ移行した場合に、該タスクの実行待機
    状態から実行状態へ移行するまでの待機時間情報を前記
    トレース情報に基づいて算出する第1算出手段と、 各タスクについて、前記第1算出手段で算出された待機
    時間情報を保持する第2保持手段とを備えることを特徴
    とするマルチタスクデバッグ装置。
  2. 【請求項2】 各タスク毎に、システムコールによって
    自身が実行待機状態へ移行した時点の時刻を保持する第
    3保持手段をさらに備え、 前記第1算出手段は実行状態へ移行したタスクの前記第
    3保持手段で保持された時刻と当該システムコールの発
    生時刻との差を前記待機時間情報として算出することを
    特徴とする請求項1に記載のマルチタスクデバッグ装
    置。
  3. 【請求項3】 前記検出手段で検出されたシステムコー
    ルが実行待機状態にあるタスクを中断状態へ移行させる
    場合、中断状態へ移行したタスクが実行待機状態であっ
    た期間を算出する第2算出手段と、 各タスクについて、前記第2算出手段で算出された期間
    を期間情報として保持する第4保持手段とをさらに備え
    ることを特徴とする請求項1に記載のマルチタスクデバ
    ッグ装置。
  4. 【請求項4】 各タスク毎に、システムコールによって
    自身が実行待機状態へ移行した時点の時刻を保持する第
    3保持手段をさらに備え、 前記第2算出手段は中断状態へ移行したタスクの前記第
    3保持手段で保持された時刻と当該システムコールの発
    生時刻との差を前記待機時間として算出することを特徴
    とする請求項1に記載のマルチタスクデバッグ装置。
  5. 【請求項5】 前記プログラムに含まれるタスクのそれ
    ぞれについて、一方の軸に時刻を取り、他方の軸に待機
    時間を取って表わされる座標上に、前記第2保持手段に
    保持された待機時間に基づいて、当該タスクが実行状態
    へ移行した時刻とその待機時間によって決定される座標
    位置を明示したグラフを生成する生成手段と、 前記生成手段で生成されたグラフを可視表示する表示手
    段とをさらに備えることを特徴とする請求項1に記載の
    マルチタスクデバッグ装置。
  6. 【請求項6】 前記プログラムに含まれるタスクのそれ
    ぞれについて、一方の軸に時刻を取り、他方の軸に待機
    時間を取って表わされる座標上に、前記第2保持手段に
    保持された待機時間情報に基づいて、当該タスクが実行
    状態へ移行した時刻とその待機時間によって決定される
    座標位置を明示するとともに、前記第4保持手段に保持
    された期間情報に基づいて、当該タスクが実行中壇上タ
    イへ移行した時刻とその期間によって決定される座標位
    置を明示したグラフを生成する生成手段と、 前記生成手段で生成されたグラフを可視表示する表示手
    段とをさらに備えることを特徴とする請求項3に記載の
    マルチタスクデバッグ装置。
  7. 【請求項7】 マルチタスクOS上で稼働するプログラ
    ムをデバッグするマルチタスクデバッグ方法であって、 前記プログラムの実行中に発生するシステムコールを検
    出する検出工程と、 前記検出工程によってシステムコールが検出された場
    合、該システムコール発生の時刻と該システムコールに
    よるタスクの状態遷移を表わすトレース情報を保持する
    第1保持工程と、 前記システムコールによって任意のタスクがCPUを占
    有する実行状態へ移行した場合に、該タスクの実行待機
    状態から実行状態へ移行するまでの待機時間情報を前記
    トレース情報に基づいて算出する第1算出工程と、 各タスクについて、前記第1算出工程で算出された待機
    時間情報を保持する第2保持工程とを備えることを特徴
    とするマルチタスクデバッグ方法。
  8. 【請求項8】 各タスク毎に、システムコールによって
    自身が実行待機状態へ移行した時点の時刻を保持する第
    3保持工程をさらに備え、 前記第1算出工程は実行状態へ移行したタスクの前記第
    3保持工程で保持された時刻と当該システムコールの発
    生時刻との差を前記待機時間情報として算出することを
    特徴とする請求項7に記載のマルチタスクデバッグ方
    法。
  9. 【請求項9】 前記検出工程で検出されたシステムコー
    ルが実行待機状態にあるタスクを中断状態へ移行させる
    場合、中断状態へ移行したタスクが実行待機状態であっ
    た期間を算出する第2算出工程と、 各タスクについて、前記第2算出工程で算出された期間
    を期間情報として保持する第4保持工程とをさらに備え
    ることを特徴とする請求項7に記載のマルチタスクデバ
    ッグ方法。
  10. 【請求項10】 各タスク毎に、システムコールによっ
    て自身が実行待機状態へ移行した時点の時刻を保持する
    第3保持工程をさらに備え、 前記第2算出工程は中断状態へ移行したタスクの前記第
    3保持工程で保持された時刻と当該システムコールの発
    生時刻との差を前記待機時間として算出することを特徴
    とする請求項7に記載のマルチタスクデバッグ方法。
  11. 【請求項11】 前記プログラムに含まれるタスクのそ
    れぞれについて、一方の軸に時刻を取り、他方の軸に待
    機時間を取って表わされる座標上に、前記第2保持工程
    に保持された待機時間に基づいて、当該タスクが実行状
    態へ移行した時刻とその待機時間によって決定される座
    標位置を明示したグラフを生成する生成工程と、 前記生成工程で生成されたグラフを可視表示する表示工
    程とをさらに備えることを特徴とする請求項7に記載の
    マルチタスクデバッグ方法。
  12. 【請求項12】 前記プログラムに含まれるタスクのそ
    れぞれについて、一方の軸に時刻を取り、他方の軸に待
    機時間を取って表わされる座標上に、前記第2保持工程
    に保持された待機時間情報に基づいて、当該タスクが実
    行状態へ移行した時刻とその待機時間によって決定され
    る座標位置を明示するとともに、前記第4保持工程に保
    持された期間情報に基づいて、当該タスクが実行中壇上
    タイへ移行した時刻とその期間によって決定される座標
    位置を明示したグラフを生成する生成工程と、 前記生成工程で生成されたグラフを可視表示する表示工
    程とをさらに備えることを特徴とする請求項9に記載の
    マルチタスクデバッグ方法。
  13. 【請求項13】 コンピュータにマルチタスクOS上で
    稼働するプログラムをデバッグさせるための制御プログ
    ラムを格納した記憶媒体であって、該制御プログラム
    が、 前記プログラムの実行中に発生するシステムコールを検
    出する検出工程のコードと、 前記検出工程によってシステムコールが検出された場
    合、該システムコール発生の時刻と該システムコールに
    よるタスクの状態遷移を表わすトレース情報を保持する
    第1保持工程のコードと、 前記システムコールによって任意のタスクがCPUを占
    有する実行状態へ移行した場合に、該タスクの実行待機
    状態から実行状態へ移行するまでの待機時間情報を前記
    トレース情報に基づいて算出する第1算出工程のコード
    と、 各タスクについて、前記第1算出工程で算出された待機
    時間情報を保持する第2保持工程のコードとを備えるこ
    とを特徴とする記憶媒体。
JP11040556A 1999-02-18 1999-02-18 マルチタスクデバッグ装置及びその方法 Withdrawn JP2000242522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11040556A JP2000242522A (ja) 1999-02-18 1999-02-18 マルチタスクデバッグ装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11040556A JP2000242522A (ja) 1999-02-18 1999-02-18 マルチタスクデバッグ装置及びその方法

Publications (1)

Publication Number Publication Date
JP2000242522A true JP2000242522A (ja) 2000-09-08

Family

ID=12583735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11040556A Withdrawn JP2000242522A (ja) 1999-02-18 1999-02-18 マルチタスクデバッグ装置及びその方法

Country Status (1)

Country Link
JP (1) JP2000242522A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114323A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Microelectronics Limited プロセッサ・システム最適化支援装置、および支援方法
JP2009265823A (ja) * 2008-04-23 2009-11-12 Yokogawa Digital Computer Corp 情報端末装置及びログデータ取得プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114323A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Microelectronics Limited プロセッサ・システム最適化支援装置、および支援方法
US8612805B2 (en) 2007-03-20 2013-12-17 Spansion Llc Processor system optimization supporting apparatus and supporting method
US8972795B2 (en) 2007-03-20 2015-03-03 Spansion Llc Processor system optimization
JP2009265823A (ja) * 2008-04-23 2009-11-12 Yokogawa Digital Computer Corp 情報端末装置及びログデータ取得プログラム

Similar Documents

Publication Publication Date Title
KR930000592B1 (ko) 타스크 추적장치
US5632032A (en) Cross address space thread control in a multithreaded environment
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
TWI511049B (zh) 用於虛擬處理設備之中斷控制的方法及設備
US8484006B2 (en) Method for dynamically adjusting speed versus accuracy of computer platform simulation
US8793115B2 (en) Interface converter for unified view of multiple computer system simulations
JP3936737B2 (ja) 設計確認用疑似ランダム命令を生成するためのシステム、及びその方法
US20010034751A1 (en) Real-time OS simulator
EP1870810A2 (en) Kernel-aware debugging system, medium, and method
US20040098722A1 (en) System, method, and computer program product for operating-system task management
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
US20020052726A1 (en) Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
JP2000242522A (ja) マルチタスクデバッグ装置及びその方法
JP2693916B2 (ja) タスクスケジュール方法
JP2643804B2 (ja) デバッグ方式
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
Mächtel et al. Measuring the influence of real-time operating systems on performance and determinism
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
CN108140363A (zh) 基于翻转队列管理的图形上下文调度
WO2006093762A1 (en) Computer platform simulation
Pontremoli et al. Hardware support for distributed real-time operating systems
JPH09114683A (ja) 計算機システムの制御方法
JP2000250777A (ja) 情報処理装置と情報処理方法、及び記憶媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060509