JP3339708B2 - イベント記録方式 - Google Patents

イベント記録方式

Info

Publication number
JP3339708B2
JP3339708B2 JP28319792A JP28319792A JP3339708B2 JP 3339708 B2 JP3339708 B2 JP 3339708B2 JP 28319792 A JP28319792 A JP 28319792A JP 28319792 A JP28319792 A JP 28319792A JP 3339708 B2 JP3339708 B2 JP 3339708B2
Authority
JP
Japan
Prior art keywords
event
task
recording
information
switching
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
JP28319792A
Other languages
English (en)
Other versions
JPH06131203A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP28319792A priority Critical patent/JP3339708B2/ja
Publication of JPH06131203A publication Critical patent/JPH06131203A/ja
Application granted granted Critical
Publication of JP3339708B2 publication Critical patent/JP3339708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、オペレーティングシ
ステム(以下、OSという)上で動作し、かつ複数のタ
スクから構成された利用者プログラムの実行中において
発生するイベントを記録するイベント記録方式に関す
る。
【0002】
【従来の技術】一般的に、マルチタスク・プログラムの
デバッグを行うためには、各タスクで発生するイベント
の発生順序及びそのイベントの内容を調べて、それらの
情報をイベント履歴として記録し、また記録したイベン
ト履歴を利用してプログラムの動作を再現してプログラ
ムの動作の調査を行う必要がある。
【0003】従来、プログラムの動作を再現するために
イベント履歴を記録するモニタをソフトウェアによって
実現する方法として、 (1)各タスクをモニタするモニタ用タスクを用意し
て、このモニタ用タスクによって、タスクで発生したシ
ステムコールや割り込みによって発生するイベントを集
めてイベント履歴を記録する方法。すなわちタスクの実
行順序をOSのスケジューリングに任せておいて、モニ
タ用タスクがシステムコールや割り込みを監視すること
でイベント及びタスク切り換えを調査する方法。
【0004】(2)OSにイベントモニタを組み込んで
イベント履歴を記録する方法。すなわちイベント発生順
序を記録するためにOS内にイベント記録機能を付け加
える方法。
【0005】(3)OSシミュレータにイベント調査機
能を持たせてイベント履歴を記録する方法。つまりイベ
ントの発生時間及び内容、並びにタスク切り換えの発生
時間及び内容を記録するために、OS上で動作するイベ
ント及びタスク切り換えの記録機能を持ったOSシミュ
ーレータを用いる方法。
【0006】が採用されている。
【0007】
【発明が解決しようとする課題】しかしながら、上記従
来のイベント履歴を記録するモニタをソフトウェアによ
って実現する方法では、次のような欠点がある。
【0008】上記(1)の方法においては、モニタ用タ
スクもOSから見るとタスクの1つとして制御されてい
るため、タスク切り換えをイベントと認識し、タスク切
り換えがいつ行われたかを調査し記録するのが困難であ
った。つまり、タスク切り換えがいつ行われたかを検出
するためには、タスク切り換えが起こり得るイベントや
割り込みが発生する度に、OSからモニタ用タスクに制
御を移して、このモニタ用タスクによって、全タスクの
状態の調査を行ってタスクが切り替わるか否かを予測し
なくてはならず、効率的ではなかった。
【0009】また上記(2)の方法においては、イベン
ト発生順序を一意に決定でき、またタスク切り換えも容
易に判別できるが、OSそのものを書き換える必要が生
じ、OS提供者以外の者がその作業を行うことは極めて
困難であり、モニタの実現法としては現実的ではない。
【0010】また上記(3)の方法においては、イベン
ト発生順序を一意に決定でき、またタスク切り換えも容
易に判別できるが、多くの計算機資源を必要とするので
実行速度が遅く、また実現も困難であった。
【0011】さらに上記各方法において、イベントの記
録を行う場合は、イベントの発生量が一般的に不規則で
あるため、予め決定しておいた対象のイベントが大量に
発生する場合は、記録されるイベント履歴データが非常
に増加することになり、記録媒体の許容量を越えること
も有り得る。また、大量に発生したイベントを頻繁に記
録する必要があり、そのためスループットの低下を招い
ていた。
【0012】以上説明したように、従来においては、イ
ベント履歴を用いてプログラムの動作を正確に再現する
ためには、OSによるタスク切り換えのタイミングと実
行されるタスク名の履歴も必要であるにも関わらず、タ
スク切り換えのタイミング及び実行されるタスク名の履
歴を記録するようにしていないので、タスク切り換えの
記録を、OS上で動作するソフトウェアによるモニタを
用いて行うのは極めて困難であった。
【0013】この発明は、マルチタスク・オペレーティ
ングシステム上で動作するソフトウェアによるタスクモ
ニタによって、マルチタスクプログラムの実行中におい
て発生するイベントを記録するイベント記録方式を提供
することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するた
め、第1の発明は、オペレーティングシステム上で動作
し、かつ複数のタスクから構成されたプログラムの実行
中において発生するイベントを記録するためのイベント
記録方式において、前記オペレーティングシステムとは
独立したタスクスケジューリングのアルゴリズムに従っ
て前記複数のタスクを動作させ、かかる動作中に前記複
数のタスクを所定のタスク切換アルゴリズムに従ってタ
スク切り換えし、該タスク切り換えに関する情報を認識
するタスク制御手段と、前記プログラムの実行中におけ
るイベントの発生を検出し、当該イベントに関する情報
を取得するイベント検出手段と、前記タスク制御手段が
認識したタスク切り換えに関する情報と、前記イベント
検出手段が取得したイベントに関する情報とを記録する
イベント記録手段とを具備したことを特徴とする。
【0015】また、第2の発明は、オペレーティングシ
ステム上で動作し、かつ複数のタスクから構成されたプ
ログラムの実行中において発生するイベントを記録する
ためのイベント記録方式において、前記オペレーティン
グシステムとは独立したタスクスケジューリングのアル
ゴリズムに従って前記複数のタスクを動作させ、かかる
動作中に前記複数のタスクを所定のタスク切換アルゴリ
ズムに従ってタスク切り換えし、該タスク切り換えに関
する情報を認識するタスク制御手段と、前記プログラム
における検出対象イベントを設定する検出イベント設定
手段と、前記プログラムの実行中におけるイベントの発
生を検出し、前記検出対象イベントに関する情報を取得
するイベント検出手段と、前記タスク制御手段が認識し
たタスク切り換えに関する情報と、前記イベント検出手
段が取得したイベントに関する情報とを記録するイベン
ト記録手段とを具備したことを特徴とする。
【0016】また、第3の発明は、第1の発明または第
2の発明において、前記タスク切り換えに関する情報
は、タスク切り換えのタイミング情報と、タスク切り換
えが行なわれるまで実行されていたタスクの名前と、実
行中断時のアドレス情報と、次に実行されるタスクの名
前と、実行開始アドレス情報とを含むことを特徴とす
る。また、第4の発明は、第1の発明または第2の発明
において、前記プログラム中から記録対象となるイベン
トを発生させる実行文を指定する入力手段と、前記入力
手段により指定された実行文を記録対象となるイベント
として記憶する対象イベント登録手段と、を更に具備
し、前記イベント検出手段は、検出したイベントが、前
記対象イベント登録手段に記録されている記録対象とな
るイベントである場合のみ、当該イベントに関する情報
を取得することを特徴とする。
【0017】
【作用】第1の発明においては、タスク制御手段は、オ
ペレーティングシステムとは独立したタスクスケジュー
リングのアルゴリズムに従ってプログラムのタスクを動
作させ、かかる動作中に前記タスクを所定のタスク切換
アルゴリズムに従ってタスク切り換えし、タスク切り換
えが発生した場合は当該タスク切り換えに関する情報を
認識し、この認識結果をイベント記録手段に通知する。
また、イベント検出手段は、プログラムの実行中におけ
るイベントの発生を検出し、当該イベントに関する情報
を取得してイベント記録手段に通知する。そして、イベ
ント記録手段は、タスク制御手段から通知されたタスク
切り換えに関する情報をタスク切り換え履歴として記録
すると共に、イベント検出手段から通知されたイベント
に関する情報をイベント履歴として記録する。
【0018】第2の発明においては、タスク制御手段
は、オペレーティングシステムとは独立したタスクスケ
ジューリングのアルゴリズムに従ってプログラムのタス
クを動作させ、かかる動作中に前記タスクを所定のタス
ク切換アルゴリズムに従ってタスク切り換えし、タスク
切り換えが発生した場合は当該タスク切り換えに関する
情報を認識し、この認識結果をイベント記録手段に通知
する。また、イベント検出手段は、プログラムの実行中
におけるイベントの発生を検出し、設定された検出対象
イベントに関する情報を取得してイベント記録手段に通
知する。そして、イベント記録手段は、タスク制御手段
から通知されたタスク切り換えに関する情報をタスク切
り換え履歴として記録すると共に、イベント検出手段か
ら通知されたイベントに関する情報をイベント履歴とし
て記録する。
【0019】第3の発明においては、第1の発明または
第2の発明において、タスク切り換えが発生した場合
は、タスク切り換えのタイミング情報と、タスク切り換
えが行なわれるまで実行されていたタスクの名前と、実
行中断時のアドレス情報と、次に実行されるタスクの名
前と、実行開始アドレス情報とを含むタスク切り換えに
関する情報が、タスク制御手段によって認識され、更に
イベント記録手段に通知される。また、第4の発明にお
いては、第1の発明または第2の発明において、プログ
ラム中から記録対象となるイベントを発生させる実行文
を入力手段によって指定すると、その実行文は記録対象
となるイベントとして対象イベント登録手段に記憶され
る。そして、イベント検出手段は、検出したイベント
が、対象イベント登録手段に記憶されている記録対象と
なるイベントである場合のみ、当該イベントに関する情
報を取得してイベント記録手段に通知する。
【0020】
【実施例】以下、本発明の実施例を添付図面を参照して
説明する。
【0021】図1は本発明に係るイベント記録方式を適
用したイベント記録装置の一実施例を示す機能ブロック
図である。
【0022】イベント記録装置は、マルチタスク・オペ
レーティングシステム(以下、OSという)1と、OS
1上で動作するイベント記録タスク2及びユーザプログ
ラム(利用者プログラム)3と、外部記録装置4と、端
末装置5とを有して構成されている。
【0023】イベント記録タスク2は、イベント記録対
象プログラムとしてのユーザプログラム3を構成する各
タスクA、B、Cの動作を記録するためのタスクであ
り、イベント検出調査部21、タスク制御部22、イベ
ント記録制御部23、対象イベント登録部24、記録対
象イベントテーブル25を有して構成されている。なお
図1には図示していないが、イベント記録装置にはメモ
リが設けられている。
【0024】なおOS1から見ると、タスクA、タスク
B、タスクCはイベント記録タスク2のサブタスクに当
たり、またイベント記録タスク2は通常のタスクにな
る。
【0025】イベント検出調査部21は、外部からの割
り込みとタスクが発行するシステムコールとを検出する
機能と、タスクに関する情報をイベント記録対象プログ
ラムのタスク及びOS1から取得する機能と、イベント
の発生とその内容をイベント記録制御部23に知らせる
機能とを有しており、これらの機能によって、タスクが
発行するシステムコールを受け取るか、又は割り込みが
発生した場合にタスクを調査し、イベント発生時間とそ
のイベントの内容をイベント記録制御部23に知らせ
る。このとき、イベント記録制御部23へそれらの情報
を知らせるかどうかは、対象イベント登録部24によっ
て記録対象イベントテーブル25に登録された利用者か
らの指定イベントであるかどうかで判断される。もし、
登録されていないイベントであれば、そのイベント情報
は、イベント記録制御部23へは通知されない。なおこ
の実施例では、タスクA、タスクB、タスクCによるメ
ッセージの交換をイベントとしている。
【0026】タスク制御部22は、OS1のタスクスケ
ジューリングとタスク切り換えのアルゴリズムとをシミ
ュレートすることによりタスクを動作させる時間を決定
するためのタスクスケジューリングアルゴリズムと、こ
のタスクスケジューリングアルゴリズムに従ってイベン
ト記録対象プログラムのタスクの生成・制御・終了をO
S1に要求する機能と、タスクがシステムコールを発行
した場合にそれを調査する機能と、タスク切り換えが発
生した場合にその内容をイベント記録制御部23に送る
機能とを有している。この実施例では、タスクスケジュ
ーリングアルゴリズムは、時分割方式のスケジューリン
グアルゴリズムをシミュレートするものを適用し、各タ
スクをタスクAから順番に一定時間ずつ実行するという
ものである。まず、最初にタスクA、B、Cを生成し直
ちに停止してタスクのIDを記録し、後にタスクを1つ
ずつ動作させ、タスクを切り換える毎に、タスク切り換
え発生時間、実行終了タスク名、実行終了アドレス、次
実行タスク名、次実行開始アドレスを、イベント記録制
御部23に送る。なおこの実施例においては、イベント
及びタスク切り換えの発生時間の記録に用いる時計は、
プログラムを1ステップ実行すると1進み、最大値を越
えると0に戻る論理時計である。この論理時計によっ
て、タスク切り換えのタイミング情報としてのタスク切
り換え発生時間、及びイベントのタイミング情報として
イベント発生時間が計時される。
【0027】イベント記録制御部23は、端末装置5か
らの入力内容に基づいて、イベント検出調査部21に対
して検出すべきイベントを設定すると共に、タスク制御
部22に対して調査すべきプログラム(タスク)を与
え、これによって発生したイベン及びタスク切り換えの
履歴を、イベント発生時間、イベント発生タスク名、イ
ベント発生アドレス、イベントの内容の順、またはタス
ク切り換え発生時間、タスク切り換え発生タスク名、タ
スク切り換え発生アドレス、タスク切り換えの内容(実
行開始アドレス)の順にメモリ内に格納し、その後、外
部記録装置4に保存する。
【0028】対象イベント登録部24は、イベント記録
タスク2の起動時に、これから実行するタスクA、タス
クB、タスクCのソースプログラムを、端末装置5上に
提示し、各プログラム上で対象イベントの発生に関与す
る実行文を利用者に選択させる。また対象イベント登録
部24は、イベント記録タスクのデータ領域に記録対象
イベントテーブル25を作成し、このテーブル25に、
利用者によって選択された実行文を記録対象イベントと
して登録する。
【0029】外部記録装置4は、イベント履歴・タスク
切り換え等の情報を保存するものであり、端末装置5
は、利用者からの入力情報をイベント記録制御部23及
び対象イベント登録部24に与えるものである。
【0030】係る構成において、イベント記録装置のイ
ベント記録処理について詳細に説明する。ここでは、イ
ベント記録タスク内で行われる処理を準備段階とタスク
スケジューリングの1サイクルの様子とに分けて説明す
る。
【0031】まず準備段階では、イベント記録制御部2
3は、端末装置5からの指示に従って、タスクA、B、
Cの生成とその停止をタスク制御部22に要求する。こ
の要求に応答したタスク制御部22によるタスクの生成
及び停止作業が終了すると、対象イベント登録部24
は、利用者に対して記録対象とするイベントを問い合せ
し、この問合せに応答した利用者からの入力情報を記録
対象イベントテーブル25に記録する。次に、OS1
は、スケジューリングアルゴリズムとして各タスクをタ
スクAから順番に一定時間ずつ実行するというアルゴリ
ズムを、タスク制御部22に渡す。ここまでが準備段階
であり、これ以降はタスク制御部22による処理が行わ
れる。
【0032】次に、タスク制御部22による処理につい
て、図2に示すフローチャートを参照して説明する。
【0033】最初に、タスク制御部22は、次に実行す
るタスクをタスクスケジューリングアルゴリズムに従っ
て決定する。この実施例ではタスクA、タスクB、タス
クCの順番に実行されることとなる。またスケジューリ
ングの結果を、イベント記録制御部23に送る(ステッ
プ201)。
【0034】次に、タスク制御部22は、タスクスケジ
ューリングアルゴリズムに従って選ばれたタスクを、タ
スク切り換えのアルゴリズムに従って実行する(ステッ
プ202)。
【0035】なおこのタスクの実行中にシステムコール
又は割り込みが発生すると、イベント検出調査部21
は、タスクの動作を停止するようにタスク制御部22に
依頼する。この依頼に応答したタスク制御部22がタス
クの動作を停止すると、イベント検出調査部21はイベ
ントの発生か否かを判断する(ステップ202A)。
【0036】ステップ202Aにおいてイベント発生で
ある場合は、イベント検出調査部21は、対象イベント
登録部24によって作成された記録対象イベントテーブ
ル25の内容を調べ、今回発生したイベントが、そのテ
ーブル25に登録されている記録対象イベントに該当す
る場合に限り、今回発生したイベントの内容及び発生時
間をイベント記録制御部23へ送る(ステップ202
B)。
【0037】イベント記録制御部23では、渡されたイ
ベント及び発生時間を、メモリ内のイベント履歴表に保
存する。発生時間は、上述した論理時計によって計時さ
れた時間であって、現在動作中のタスクに切り換わって
からイベントが発生するまでに要した時間である。
【0038】ステップ202Bが終了すると、タスク制
御部22は、タスク切り換えが発生したか否かを判断す
る(ステップ202C)。ステップ202Cにおいてタ
スク切り換えが発生しない場合は、タスクの実行を再開
する(ステップ202D)、ステップ202Dが終了し
た後は、上記ステップ202Aに戻り、このステップ以
降が実行される。
【0039】なおステップ202Aにおいてイベント発
生でない場合はステップ202Cに進む。
【0040】ステップ202Cにおいてタスク切り換え
が発生した場合は、タスク制御部22は、イベント記録
制御部23からの、タスク切り換えの履歴を記録したの
で、次のタスクの実行が可能である旨を示す命令の有無
を確認した後(ステップ203)、上記ステップ201
に戻り、このステップ以降を実行する。つまり次のサイ
クルへと進む。
【0041】次に具体例を挙げて、上記処理について説
明する。
【0042】最初に、イベント記録対象としてのユーザ
プログラム3を構成するタスクA、タスクB、タスクC
の一例を以下に示す。
【0043】 [タスクAの内容] task-A { /* 0行目 */ 変数y=1; /* 1行目 */ 変数z=0; /* 2行目 */ while (z<10) { /* 3行目 */ [ メイルボックスmを参照する] ; /* 4行目 */ if (メッセージがある) { /* 5行目 */ [ メッセージを読む]; /* 6行目 */ if (タスクBからのメール) /* 7行目 */ zからy を引く; /* 8行目 */ } /* 9行目 */ else { /*10行目 */ z にy を加える; /*11行目 */ } /*12行目 */ } /*13行目 */ yに1 を加える; /*14行目 */ } /*15行目 */ } /*16行目 */ [タスクBの内容] task-B { /* 0行目 */ 変数b=0; /* 1行目 */ while (b<10) { /* 2行目 */ [ タスクAにメッセージを送る]; /* 3行目 */ 変数b に1 を加える; /* 4行目 */ } /* 5行目 */ } /* 6行目 */ [タスクCの内容] task-C { /* 0行目 */ 変数c=0; /* 1行目 */ while (c<10) { /* 2行目 */ [ タスクAにメッセージを送る]; /* 3行目 */ 変数c に1 を加える; /* 4行目 */ } /* 5行目 */ } /* 6行目 */ なお上記3つのタスクの動作は本来非決定的である。つ
まり、タスクA、B、Cのどのタスクから実行が開始さ
れるか、また切り換えがいつ行われるか等によって、プ
ログラムの実行結果は変化する。例えば、ユーザがこの
3つのタスクを「同時」に起動したとする。この時、オ
ペレーティングシステムのスケジューリングの結果、タ
スクBが先にメッセージを送るか、あるいはタスクCが
先にメッセージを送るかによって、異なったプログラム
の実行結果となる。そのため、これらのプログラムの実
行結果の過程、つまりここでいうイベント履歴を記録し
た結果が、デバッグ作業を行う上で非常に有益な情報と
なる。
【0044】次に、上述したようなタスクA、B、Cの
動作を調査するために、イベント記録タスク2にOS1
の時分割方式のスケジューリングアルゴリズムを適用
し、タスクA、タスクB、タスクCによるメッセージの
交換をイベントとして登録し実行する場合のイベント記
録タスク2の処理動作について説明する。
【0045】ここでは、タスクA、タスクB、タスクC
によるメッセージの交換をイベントとして捕らえるよう
にしているので、利用者によって指定された実行文、す
なわちタスクAの4行目[メイルボックスを参照す
る]、タスクBの3行目[タスクAにメッセージを送
る]、タスクCの3行目[タスクAにメッセージを送
る]が記録対象イベントとして記録対象イベントテーブ
ル25に登録されている。
【0046】なお以下の説明においては、あるタスク
(タスク名)の何行目のことを、“タスク名−何行目で
あるかを示す行数”で記述する。例えばタスクAの0行
目はタスクA−0と記述し、またタスクBの3行目はタ
スクB−3と記述する。
【0047】最初に、イベント記録タスク2のタスク制
御部22がタスクA−0を実行する(これは1つ目のイ
ベントとなる)と、タスク制御部22は、タスクAにタ
スク切り換えが行われたと解釈し、その旨をイベント記
録制御部23に通知する。
【0048】この場合は最初なので、タスク制御部22
は、タスク切り換え発生時間“0”、タスク切り換え内
容(タスクA−0に切り換え)をイベント記録制御部2
3に通知することになる。以降タスクが切り換えられる
毎にタスク切り換えに関する情報をイベント記録制御部
23に知らせる。
【0049】なおタスク切り換えに関する情報は、タス
ク切り換え発生時間、タスク切り換え発生タスク名、タ
スク切り換え発生アドレス、タスク切り換えの内容の順
にメモリ内に格納される。しかし初期時には、タスク切
り換え発生タスク名およびタスク切り換え発生アドレス
は記録されない(ブランクとなっている)。
【0050】タスク制御部22がタスクA−1〜タスク
A−3を順次実行し、次にタスクA−4を実行した時
に、タスクAからは[メイルボックスmを参照する]シ
ステムコールが発生する(これは2つ目のイベントとな
る)。
【0051】このシステムコールのイベントの発生をイ
ベント検出調査部21が検出すると、タスク制御部22
によってタスクAの動作が停止されるので、イベント検
出調査部21は、そのイベントが記録対象イベントとし
て、記録対象イベントテーブル25に登録されているか
を調査する。ここで、そのイベントは、記録対象イベン
トテーブル25に登録されているイベントに該当するの
で、記録対象イベントであると認識する。
【0052】この場合、タスクAにスケジューリングさ
れてから5ステップ目に発生したので、イベント検出調
査部21は、イベントの発生時間“5”及びイベントの
内容“[メイルボックスmを参照する]”をイベント記
録制御部23に通知する。このとき、イベント記録制御
部23には、タスク制御部22からイベント発生タスク
名“タスクA”及びイベント発生アドレス“4”が通知
されるので、イベント記録制御部23は、イベントの発
生時間“5”、イベント発生タスク名“タスクA”、イ
ベント発生アドレス“4”、イベントの内容“[メイル
ボックスmを参照する]”の順にメモリに格納する。
【0053】イベント記録タスク2がタスクA−5を実
行したところでタスク切り換えが発生すると(これは3
つ目のイベントとなる)、この結果としてタスクBに切
り換わる。
【0054】この場合、タスクAに切り換ってから6ス
テップ目に発生したので、切り換え発生時間は“6”で
ある。そしてタスク制御部22は、タスク切り換え発生
時間“6”、実行終了アドレス(タスクAのアドレス)
は“5”、次実行タスク名は“タスクB”、実行開始ア
ドレス(タスクBのアドレス)は“0”であると認識す
ると共に、これらタスク切り換えに関する情報をイベン
ト記録制御部23に通知する。この通知されたタスク切
り換えに関する情報は、上記同様にしてメモリ内に格納
される。
【0055】タスクBにスケジューリングされると、タ
スク制御部22がタスクB−0〜タスクB−2まで順次
実行し、タスクB−3を実行した時に、[タスクAにメ
ッセージを送る]イベントが発生する(これは4つ目の
イベントとなる)。
【0056】この場合、イベントは、6ステップ目にタ
スク切り換え行われてから3ステップ目に発生したの
で、切り換え発生時間は“9”となる。この結果、イベ
ント検出調査部21は、イベント発生時間“9”、イベ
ントの内容“[タスクAにメッセージを送る]”をイベ
ント記録制御部23に通知する。このときイベント記録
制御部23には、タスク制御部22からイベント発生タ
スク名“タスクB”及びイベント発生アドレス“3”が
通知されるので、イベント記録制御部23は、上記同様
に、通知されたイベントに関する情報をメモリに格納す
る。
【0057】続いて、タスク制御部22がタスクB−
4、タスクB−5を実行した後、再びタスクB−1を実
行し、更にタスクB−2を実行したところで、タスク切
り換えが発生すると(これは5つ目のイベントとな
る)、この結果としてタスクCに切り換わる。
【0058】この場合、タスク制御部22は、タスク切
り換えは9ステップ目で[タスクAにメッセージを送
る]イベントが発生してから4ステップ目で発生したの
で、タスク切り換え発生時間は“13”、実行終了アド
レス(タスクBのアドレス)は“2”、次実行タスク名
は“タスクC”、実行開始アドレス(タスクCのアドレ
ス)は“0”であると認識し、これらタスク切り換えに
関する情報をイベント記録制御部23に通知する。この
タスク切り換えに関する情報は上記同様にしてメモリ内
に格納される。
【0059】次にタスク制御部22がタスクC−0〜タ
スクC−2を実行し、タスクC−3を実行したところ
で、[タスクAにメッセージを送る]イベントが発生す
る(これは6つ目のイベントとなる)。
【0060】この場合は、上記同様に、イベント記録制
御部23には、イベント検出調査部21からイベント発
生時間“16”及びイベントの内容“[タスクAにメッ
セージを送る]”が通知されるとともに、タスク制御部
22からイベント発生タスク“タスクC”及びイベント
発生アドレス“3”が通知される。これら通知されたイ
ベントに関する情報は上記同様にしてメモリに格納され
る。
【0061】引き続いて、タスク制御部22がタスクC
−4、C−5を実行した後、再びタスクC−1を実行し
更にC−2を実行したとろこで、タスク切り換えが発生
すると(これは7つ目のイベントとなる)、この結果と
してタスクAにタスクが切り換わる。
【0062】この場合は、タスク切り換え発生時間は
“20”、実行終了アドレス(タスクCのアドレス)は
“2”、次実行タスク名は“タスクA”及び実行開始ア
ドレス(タスクAのアドレス)は“13”となる。なお
実行開始アドレスは、前回タスクAを実行した時に5行
目でメイルがなかったため、“13”となっている。こ
れらのイベント情報は、イベント記録制御部23に通知
された後、メモリ内に格納される。
【0063】この時点において、イベント記録制御部2
3によってメモリ内に格納されたイベントに関する情報
及びタスク切り換えに関する情報の様子を図3に示す。
図3において、A−0はタスクA−0、B−0はタスク
B−0、C−0はタスクC−0、A−13はタスクA−
13をそれぞれ示し、AはタスクA、BはタスクB、C
はタスクCをそれぞれ示し、0、5、4などの数値はア
ドレスすなわちタスク(プログラム)の行数を示してい
る。また#1は1つ目のイベント、#2は2つ目のイベ
ント、…、#7は7つ目のイベントを示しており、上述
したイベントに対応している。更に#1、#3、#5、
#7はタスク切り換えのイベントであることを示してお
り、#2、#4、#6はシステムコールによるイベント
であることを示している。
【0064】なお図3から明らかなように、#1、#
3、#5、#7においては、タスク切り換え発生時間、
タスク切り換え発生タスク、タスク発生アドレス、タス
ク切り換えの内容(実行開始アドレス)の順にメモリに
格納されており、#2、#4、#6においては、イベン
ト発生時間、イベント発生タスク、イベント発生アドレ
ス、イベントの内容の順にメモリに格納されている。
【0065】そしてイベント記録制御部23は、図3に
示したメモリ内の記録結果に基づいて、メモリ内に図4
に示す様なイベント履歴を作成し、その後、外部記録装
置4に格納する。
【0066】上述した図4に示したイベント履歴を利用
してマルチタスク・プログラムの動作を再現してプログ
ラムの動作の調査を行うことによって、マルチタスク・
プログラムのデバッグ作業を効率良く行うことができ
る。
【0067】以上説明したように本実施例によれば、調
査対象のタスクのスケジューリングとタスク切り換えの
時期の決定をイベント記録タスクが行うことにより、タ
スク切り換え情報の取得を容易にし、また、タスクを動
作させるためのタスクのスワッピング等の処理をOSに
任せることにより、イベント記録タスクの負荷を軽く
し、現在実行中のタスクを認識しながらシステムコール
の発行や割り込みを監視することで、イベントの取得及
び記録を容易に行うことができる。従って、マルチタス
ク・プログラムのデバッグ作業効率を向上させることが
できる。
【0068】またオペレーティングシステムのスケジュ
ーリングをシミュレートしてタスクを動作させる順序と
動作時間とを決定し実行するタスク制御部(イベント記
録タスク)をオペレーティングシステムとは別に独自に
持ったことにより、タスク切り換えの発生を容易に検出
し記録することができる。
【0069】
【発明の効果】以上説明したように本発明によれば、オ
ペレーティングシステムのスケジューリングとタスク切
り換えアルゴリズムとをシミュレートし、該シミュレー
トに基づいて発生したタスク切り換えに関する情報を記
録するようにしているので、タスク切り換えの発生を容
易に検出し記録することができる。
【0070】また、上述したことから、現在どのタスク
が動作しているかを容易に知ることができるため、利用
者プログラムで発生したイベントの調査及び記録が効率
的になり、更に、得られたイベント履歴を用いればプロ
グラムの動作の正確な再現が可能となる。従って、ユー
ザプログラムのデバッグ作業時間を大幅に短縮すること
ができる。
【0071】更に利用者プログラムの実行中において発
生したイベントが、予め指定されたイベントであった場
合は、当該イベントに関する情報を記録するようにして
いるので、従来の如く全てのイベントに関する情報を記
録するようにした場合に比べ、データ量を大幅に削減す
ることができることとなり、よって、ファイル容量を小
さくすることができると共に、記録時間を減少すること
ができる。従って、全体のスループットを向上させるこ
とができる。
【図面の簡単な説明】
【図1】本発明に係るイベント記録方式を適用したイベ
ント記録装置の一実施例を示す機能ブロック図。
【図2】本実施例におけるタスクスケジューリングの処
理動作を示すフローチャート。
【図3】本実施例におけるイベントに関する情報及びタ
スク切り換えに関する情報のメモリへの格納例を示す
図。
【図4】図3に示した情報に基づいたイベント履歴の一
例を示す図。
【符号の説明】
1…マルチタスク・オペレーティングシステム 2…イベント記録タスク 3…ユーザプログラム 4…外部記録装置 5…端末装置 21…イベント検出調査部 22…タスク制御部 23…イベント記録制御部 24…対象イベント登録部 25…記録対象イベントテーブル
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−76639(JP,A) 特開 昭59−136854(JP,A) 特開 平4−24841(JP,A) 特開 昭60−11948(JP,A) 特開 平2−271435(JP,A) 安田剛,「異種OSのシミュレート方 式の一手法」,情報処理学会研究報告 (SE−74),日本,1990年 9月11 日,Vol.90,No.69,p.74. 2.1−74.2.8 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 11/28 - 11/36

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 オペレーティングシステム上で動作し、
    かつ複数のタスクから構成されたプログラムの実行中に
    おいて発生するイベントを記録するためのイベント記録
    方式において、 前記オペレーティングシステムとは独立したタスクスケ
    ジューリングのアルゴリズムに従って前記複数のタスク
    を動作させ、かかる動作中に前記複数のタスクを所定の
    タスク切換アルゴリズムに従ってタスク切り換えし、該
    タスク切り換えに関する情報を認識するタスク制御手段
    と、 前記プログラムの実行中におけるイベントの発生を検出
    し、当該イベントに関する情報を取得するイベント検出
    手段と、 前記タスク制御手段が認識したタスク切り換えに関する
    情報と、前記イベント検出手段が取得したイベントに関
    する情報とを記録するイベント記録手段とを具備したこ
    とを特徴とするイベント記録方式。
  2. 【請求項2】 オペレーティングシステム上で動作し、
    かつ複数のタスクから構成されたプログラムの実行中に
    おいて発生するイベントを記録するためのイベント記録
    方式において、 前記オペレーティングシステムとは独立したタスクスケ
    ジューリングのアルゴリズムに従って前記複数のタスク
    を動作させ、かかる動作中に前記複数のタスクを所定の
    タスク切換アルゴリズムに従ってタスク切り換えし、該
    タスク切り換えに関する情報を認識するタスク制御手段
    と、 前記プログラムにおける検出対象イベントを設定する検
    出イベント設定手段と、 前記プログラムの実行中におけるイベントの発生を検出
    し、前記検出対象イベントに関する情報を取得するイベ
    ント検出手段と、 前記タスク制御手段が認識したタスク切り換えに関する
    情報と、前記イベント検出手段が取得したイベントに関
    する情報とを記録するイベント記録手段とを具備したこ
    とを特徴とするイベント記録方式。
  3. 【請求項3】 前記タスク切り換えに関する情報は、タ
    スク切り換えのタイミング情報と、タスク切り換えが行
    なわれるまで実行されていたタスクの名前と、実行中断
    時のアドレス情報と、次に実行されるタスクの名前と、
    実行開始アドレス情報とを含むことを特徴とする請求項
    1または請求項2に記載のイベント記録方式。
  4. 【請求項4】 前記プログラム中から記録対象となるイ
    ベントを発生させる実行文を指定する入力手段と、 前記入力手段により指定された実行文を記録対象となる
    イベントとして記憶する対象イベント登録手段と、 を更に具備し、 前記イベント検出手段は、検出したイベントが、前記対
    象イベント登録手段に記録されている記録対象となるイ
    ベントである場合のみ、当該イベントに関する情報を取
    得することを特徴とする請求項1または請求項2に記載
    のイベント記録方式。
JP28319792A 1992-10-21 1992-10-21 イベント記録方式 Expired - Fee Related JP3339708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28319792A JP3339708B2 (ja) 1992-10-21 1992-10-21 イベント記録方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28319792A JP3339708B2 (ja) 1992-10-21 1992-10-21 イベント記録方式

Publications (2)

Publication Number Publication Date
JPH06131203A JPH06131203A (ja) 1994-05-13
JP3339708B2 true JP3339708B2 (ja) 2002-10-28

Family

ID=17662395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28319792A Expired - Fee Related JP3339708B2 (ja) 1992-10-21 1992-10-21 イベント記録方式

Country Status (1)

Country Link
JP (1) JP3339708B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4974638B2 (ja) * 2006-10-16 2012-07-11 キヤノン株式会社 シミュレーション装置及びシミュレーション方法
US8201029B2 (en) 2008-01-31 2012-06-12 International Business Machines Corporation Method and apparatus for operating system event notification mechanism using file system interface
JP5294002B2 (ja) * 2008-07-22 2013-09-18 株式会社日立製作所 文書管理システム、文書管理プログラム及び文書管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
安田剛,「異種OSのシミュレート方式の一手法」,情報処理学会研究報告(SE−74),日本,1990年 9月11日,Vol.90,No.69,p.74.2.1−74.2.8

Also Published As

Publication number Publication date
JPH06131203A (ja) 1994-05-13

Similar Documents

Publication Publication Date Title
US5630049A (en) Method and apparatus for testing software on a computer network
US5297274A (en) Performance analysis of program in multithread OS by creating concurrently running thread generating breakpoint interrupts to active tracing monitor
US8250543B2 (en) Software tracing
US20040268317A1 (en) Method and apparatus for controlling execution of a child process generated by a modified parent process
JPH0581082A (ja) 同期ジヤーナリングシステム
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
US6131109A (en) Multitask processor, a multitask processing method, a multitask processing display method and a storage medium for processing by correlating task and object
US20050022063A1 (en) Kernel-level method of flagging problems in applications
JP3339708B2 (ja) イベント記録方式
JP3207564B2 (ja) イベント記録方法及び装置
CN112463626A (zh) 内存泄漏定位方法、装置、计算机设备及存储介质
JP2006039763A (ja) ゲストosデバッグ支援方法及び仮想計算機マネージャ
JP3159357B2 (ja) マルチコンピュータデバッガ
US20030225838A1 (en) Method and apparatus for implementing extended breakpoint notification
JP2800577B2 (ja) デバッグ装置
JPH0581051A (ja) リソース破壊監視方式
CN118312385A (zh) 数据竞争访问监测方法、系统、设备、介质和程序产品
JPH0229833A (ja) 保守診断方式
CN113704088A (zh) 一种进程追溯方法、进程追溯系统及相关装置
JPS638946A (ja) プログラムデバツグサポ−ト方式
Ashton An interaction network monitor for Amoeba
JPH01211129A (ja) 情報処理装置
JPH03127234A (ja) 計算機システムのプログラムデバッグ装置
JPH05324416A (ja) システムエラーヒストリー退避方式
JPH0764802A (ja) リアルタイムシステムのシミュレーション装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070816

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080816

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090816

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees