JPS63280345A - プログラム異常検出方法 - Google Patents

プログラム異常検出方法

Info

Publication number
JPS63280345A
JPS63280345A JP62114459A JP11445987A JPS63280345A JP S63280345 A JPS63280345 A JP S63280345A JP 62114459 A JP62114459 A JP 62114459A JP 11445987 A JP11445987 A JP 11445987A JP S63280345 A JPS63280345 A JP S63280345A
Authority
JP
Japan
Prior art keywords
task
flag
program
time
group
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.)
Pending
Application number
JP62114459A
Other languages
English (en)
Inventor
Hajime Sugano
肇 菅野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62114459A priority Critical patent/JPS63280345A/ja
Publication of JPS63280345A publication Critical patent/JPS63280345A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔1既  要) コンピュータシステムにおけるプログラム異常検出方法
であって、マルチタスクオペレーティングシステムを用
いて、タスクレベルの最も低いタスクが所定の時間毎に
行うフラグ操作をタスクレベルの最も高いタスクが監視
することにより、それらの間のレベルのタスクにおける
実行中プログラムの異常を検出するものである。
〔産業上の利用分野〕
本発明はコンピュータシステムにおけるプログラム異常
検出方法に関する。
通常、中型以上のコンピュータシステムにおいては、プ
ログラム異常検出のために、専用のハードウェア構成に
よるウォッチ・ドッグ・タイマ(watch dog 
timer)が備えられているが、パーソナルコンピュ
ータ等においては、このようなハードウェア構成による
ウォッチ・ドッグ・タイマは備えられていない。
そのため、このようなウォッチ・ドッグ・タイマを備え
ていないパーソナルコンピュータ等においても、実行中
のプログラムにおける異常が検出されるようなプログラ
ム異常検出方法が要望されていた。
〔従来の技術〕
前項に述べた、通常、中型以上のコンピュータシステム
に備えられている、ハードウェア構成によるウォッチ・
ドッグ・タイマとは、例えば、図示しないが、一定周期
のハードクロックを発生するハードクロック発生部、該
ハードクロ・、りをカウントするカウンタ、カウンタか
らキャリー信号(オーバ70−)が出力されるとCPU
に対して割込み要求信号を出力する割込発生回路を備え
ており、CPUからプログラム処理終了により出力され
るリセット信号によってこのカウンタをリセットするよ
うに構成したものである。すなわち、CPUが1つのプ
ログラム処理終了毎にカウンタをリセットすることによ
り、正常な状態では常にCPUにより、カウンタがリセ
ットされるが、プログラム処理が終了しない障害状態で
はカウンタはリセットされず、カウンタのカウント数が
所定の値に達することにより、CPUに対して、割込み
信号を出力するとともにプログラムの異常を検出するも
のである。
また、前項にも述べたように、従来、通常のパーソナル
コンピュータ等においては、上記のようなハードウェア
構成によるウォッチ・ドッグ・タイマの機能は備えられ
ていない。
〔発明が解決しようとする問題点〕
従来、コンピュータシステムにおいてプログラム異常を
検出するには、前述のような特別なハードウェア構成に
よるウォッチ・ドッグ・タイマを備える必要があり、そ
のようなハードウェア構成を備えていないパーソナルコ
ンピュータ等においては、適当なプログラム異常検出方
法がないという問題があった。
本発明は上記の問題点に鑑み、なされたもので、特別な
ハードウェア構成によるウォッチ・ドッグ・タイマを備
えることなく、プログラムの異常を検出できるような方
法を堤供することを目的としている。
〔問題点を解決するための手段〕
第1図は本発明の基本的構成図である。
本発明においては、まず第1に、マルチタスク管理機能
とタイマ機能とを有するオペレーティングシステムを備
えるコンピュータシステムを前提としている。
上記のようなコンピュータシステムにおいて、異常検出
の対象となるプログラムが実行されるタスクを一般に単
数または複数のタスクからなる第1のタスク群1とし、 該第1のタスク群lのいずれのタスクよりも低いタスク
レベルに第2のタスク2を設定し、該第1のタスク群l
のいずれのタスクよりも高いタスクレベルに第3のタス
ク3を設定する。
前記第2のタスク2は、前記第1のタスク群Iの連続動
作(実行)時間の最大値より長く定められた第1の時間
待機した後、所定のフラグ4を操作する。
前記第3のタスク3は、前記所定のフラグ4を監視し、
所定の第2の時間前記フラグ(4)の操作が行われなか
ったときには、これをプログラム異常として検出する。
〔作 用〕
マルチタスク管理機能を有するオペレーティングシステ
ムを備えることにより、マルチタスク処理が行い得る。
各タスクには優先順位が付与され、異常検出の対象とな
るプログラムが実行される゛第1のタスク群lよりも低
いタスクレベルに設定された第2のタスク2は、上記第
1のタスク群1における動作が全て停止しているときの
みに実行状態となり得る。動作が全て停止しているとき
とは、例えば、プログラムがシステムの資源の割当てや
事象の発生を待っている状B(待ち状態)あるいは、全
ての処理を終えた状B(終了状B)にあるときである。
前項目における第1のタスク群1の連続的動作時間の最
大値とは、第1のタスク群lにおける上記のような停止
から停止までの時間の最大値のことである。
該第2のタスク2は、オペレーティングシステムが備え
るタイマ機能を用いて前記タスクの連続動作時間の最大
値より長く設定された第1の時間待機した後に所定のフ
ラグ4を操作する。このとき、該第1の時間が経過して
フラグ4を操作しようとしたときに、再びCPUが第1
のタスク群lの実行状態に戻っていた場合には、該第2
のタスク2は実行可能状態(タスクが実行するのに必要
なシステム資源はすでに確保し、CPUでの実行を待っ
ている状態)のまま、第1のタスク群1の動作が再び停
!ヒするまで待つ。このときの第2のタスク2の実行可
能状態における待ち時間は、該第1のタスク群lの構成
およびオペレーティングシステムにより異なるが、最大
でも前記第1の時間を一ヒまわることはない。したがっ
て前記第2のタスク2がフラグ4を操作する間隔は、ど
のようなシステムであっても高々前記第1の時間の2倍
以下である。
第3のタスク3は、上記所定のフラグ4を監視し、所定
の第2の時間内に、フラグ4が操作されていればプログ
ラム異常とは判断されない。
もし、第1のタスク群1の実行中のプログラムに何らか
の異常が発生して、閉ループ内を繰り返し回るような事
態が生ずると、前述の、正常時における、第1のタスク
群1の連続動作時間を超えても、第1のタスク群1の動
作が終了しない。そのため第1のタスク群1よりタスク
レベルの低い第2のタスク2は、前記第2の時間経過し
ても第1のタスク群lの動作が停止しないため、実行状
態に移ってフラグ4を操作することができない。
第3のタスク3は、このフラグ4の操作が所定の第2の
時間待われないことにより、プログラム異常の発生を検
出する。
なお、フラグ4が操作されないままの状態で、第3のタ
スク3がプログラムの異常を検出する(プログラム異常
と判断する)までの時間である第2の時間は、第1のタ
スク群lのプログラムが正常に実行された場合に第2の
タスク2がフラグ4を操作する間隔が最大どれだけにな
るかを考慮して、この最大時間を下まわらないように定
められる。前述のようにこれは第1のタスク群1の構成
およびオペレーティングシステムに依存する。
このようにして、マルチタスク管理機能およびタイマ機
能を有するオペレーティングシステムを用いることによ
り、ハードウェア構成によるウォッチ・ドッグ・タイマ
を備えることなしに、実行中のプログラム異常検出がな
される。
〔実施例〕
第2図は本発明により実行中の異常検出が行われるプロ
グラムの実行単位である第1のタスク群1よりも低いタ
スクレベルに設定されている第2のタスク2の動作フロ
ーの1例を示す図である。
第2のタスクでは、所定のフラグ4を′1”とするとい
う動作(ステップ21)とフラグ4を“1”としだ後0
秒待つという動作(ステップ22)とを繰り返す。ここ
で0秒とは、前述の第1の時間である。前述のように、
第2のタスク2は前記第1のタスク群lよりも低いタス
クレベルにあるので、より上位のタスクレベルのタスク
の実行が行われていない(待ち状態あるいは終了状態に
ある)ときのみ実行状態となり、その他のときは、上記
n秒間待った後も実行可能状態のまま待機する。
第3図は前記第1のタスク群lよりも上位のタスクレベ
ルに設定された第3のタスクの動作フローの1例を示す
ものである。本実施例においては、パーソナルコンピュ
ータのオペレーティングシステムに備えられているタイ
マ割込みの機能を用い、第3のタスクは該タイマ割込み
を受けて動作する割込みハンドラ(割込み処理ルーチン
)となっている。本実施例では上記タイマ割込みは1秒
毎に発生するように設定され、この割込みを受けて第3
図のルーチンが実行される。前述のように、第3のタス
ク3は第2のタスク2はもちろん、第1のタスク群1の
いずれよりも上位のタスクレベルにあるので、第3図の
割込み処理ルーチンはこれらの全てに優先して行われる
。すなわち確実に1秒毎に行われる。
ステップ30のスタートの後、ステップ31において、
前記フラグ4が“l”となっているかどうかを判断する
。もし“1″となっていれば、前記第1のタスク群1が
正常な時間内で連続した動作を停止もしくは終了したこ
とにより、第2のタスク2が実行状態となって、フラグ
4の操作(フラグ4を“1”とすること)を実行したと
いうことが6!認されたことになる。このとき、ステッ
プ32においてこのフラグ4を0″に戻し、さらに、ス
テップ33において、第2のタスク2がフラグ4を“1
”とするまでの時間をカウントしている内部カウンタの
計数値をリセット(“0″と)して、次にステップ35
へ進む。
もし、ステップ31においてフラグ4が“1”となって
いなかったときには、上記の、第2のタスク2がフラグ
4を“1”とするまでの時間をカウントする内部カウン
タをインクリメントしてステップ35へ進む。
ステップ35では前記内部カウンタの計数値を前述の第
2の時間に対応する判定値mと比較し、これを超えるこ
とがなければステップ36で割込み処理を終了する。も
し、内部カウンタの計数値が判定値mを超えるときはこ
れにより、プログラム異常であることが検出される(ス
テップ31)。
第4図は本発明のプログラム異常検出方法のタイミング
を示す図である。本図においては、各タスクの状態の時
間変化が、タスクが実行状態にあるときは実線で、タス
クが実行状態にないときについては破線で示されている
。第1のタスク群lを構成するタスクを第3図では1例
として、タスクAおよびタスクBによって示している。
第1のタスク群1のタスクの各々は第2のタスクより高
いタスクレベルにあるので、第1のタスク群のタスクの
いずれもが実行状態あるいは実行可能状態にないときに
のみ、第2のタスクは実行状態となり得る。例えば、第
4図の例では、時刻t1より前、時刻t2〜t3、時刻
t、〜【1、および時刻り、〜t9が、第2のタスクの
実行状態となっている。この間は第1のタスク群の全て
のタスクは、待ち状態あるいは終了状態にある。
他方第3のタスクは第1のタスク群のいずれのタスクよ
りも高いタスクレベルにあるので、第1のタスク群のタ
スクおよび第一2のタスクの実行状態に無関係に、1秒
毎のタイマ割込みを受けて前述の第3図に示される割込
み処理を行う。
第4図で、時刻t0に第2のタスクが前述のフラグ4を
“l”とすると、すぐ次のタイマ割込みにより第3のタ
スクがこのフラグ4を“0”としてその内部カウンタの
計数値を“O”にリセットする。第2のタスクは時刻t
6でフラグ4を“l”とした後、オペレーティングシス
テムが提供するタイマ機能により0秒待った後、再びフ
ラグ4を“1″としようとする(時刻t4)。ここで0
秒は第2図の説明において述べたように、前記第1の時
間、すなわち、第1のタスク群における連続する動作時
間(第1のタスク群が連続して実行状態にある時間)の
最大値より長く定められた時間である。第4図において
も、上記0秒が経過する前に時刻t2において第1のタ
スク群の全てのタスクが待ち状態に入り、第1のタスク
群における連続する動作時間がここで中断している。し
かし、前記n秒経過する前に、時刻t、より、再び第1
のタスク群のタスクBが実行状態に入り、ml n秒経
過してフラグ4を“1゛にしようとする時刻t4におい
ても、より上位レベルのタスクBの実行状態は続いてお
り、第2のタスクはそのままの状態(実行可能状態)で
待機する。時刻t、になって、ようやく、第1のタスク
群の実行状態が中断し、直ちに、第2のタスクはフラグ
4を“1′とする。
この間第3のタスクは、1秒毎のタイマ割込みによって
カウント(前記内部カウンタ計数値)をインクリメント
しているが、プログラム異常かどうかの判断基準となる
前述の第2の時間(第3図のステップ35におけるm(
秒))は、第1のタスク群の構成やオペレーティングシ
ステムの特性を考慮して定められており、第3のタスク
のカウンタの計数値がmを超える前に第1のタスク群に
おける連続する動作(実行)は中断される(時刻ts)
時刻1.にて第2のタスクがフラグ4を“1″としてn
秒待った時刻む、においては、第1のタスク群は待ち状
態にあり、第2のレベルは、直ちにフラグ4を“1″と
することができる。
ところで、第4図には、時刻t、。から始まった第1の
タスク群のタスクAの実行状態が停止することな←続い
ている様子が示されている。第2のタスクが時刻t@で
フラグ4を“l”とした後、第3のタスクはその次のタ
イマ割込みにより該フラグ4を“0”とし、新たに1秒
毎のカウントを行なっており、上記タスクAの実行状態
が長引くにつれ、該カウント値は増大し、ついに、前記
の上限値m(秒)を超える。このようにしてプログラム
に何らかの異常があったことが検出される。
なお、以上の説明においては、第1のタスク群と称して
、異常検出の対象になるプログラムが実行されるタスク
は複数であるとしていたが、もちろん第1のタスク群は
単1のタスクからなるものであってもよく、この場合に
も上述の説明は当てはまるものである。
〔発明の効果〕
本発明によれば、特別なハードウェア構成によるウォッ
チ・ドッグ・タイマ等を備えることなく、実行中のプロ
グラムの異常を検出することができる。
【図面の簡単な説明】
第1図は本発明の基本的構成図、 第2図は第2のタスクの動作フローの1例を示す図、 第3図は第3のタスクの動作フローの1例を示す図、そ
して 第4図は本発明のプログラム異常検出方法のタイミング
図である。 (符号の説明)

Claims (2)

    【特許請求の範囲】
  1. 1. マルチタスク管理機能とタイマ機能とを有するオ
    ペレーティングシステムを備えてなるコンピュータシス
    テムにおける、実行するプログラムの異常を検出するプ
    ログラム異常検出方法であって、 前記プログラムが実行される第1のタスク群(1)のい
    ずれのタスクよりも低いタスクレベルに第2のタスク(
    2)を設定し、該第1のタスク群(1)のいずれのタス
    クよりも高いタスクレベルに第3のタスク(3)を設定
    し、 前記第2のタスク(2)は、前記第1のタスク群(1)
    の連続動作時間の最大値より長く定められた第1の時間
    待機した後、所定のフラグ(4)を操作し、 前記第3のタスク(3)は、前記所定のフラグ(4)を
    監視し、所定の第2の時間前記フラグ(4)の操作が行
    われなかったときにはプログラムの異常として検出する
    ことを特徴とするプログム異常検出方法。
  2. 2. 前記第3のタスク(3)は所定の監視時間毎に前
    記フラグ(4)の操作が行われているかどうかを監視し
    、該操作が行われていないときには所定の計数値をイン
    クリメントし、該操作が行われているときには、該フラ
    グ(4)を該操作前の状態に戻すと共に前記計数値をク
    リアする特許請求の範囲第1項記載のプログラム異常検
    出方法。
JP62114459A 1987-05-13 1987-05-13 プログラム異常検出方法 Pending JPS63280345A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62114459A JPS63280345A (ja) 1987-05-13 1987-05-13 プログラム異常検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62114459A JPS63280345A (ja) 1987-05-13 1987-05-13 プログラム異常検出方法

Publications (1)

Publication Number Publication Date
JPS63280345A true JPS63280345A (ja) 1988-11-17

Family

ID=14638264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62114459A Pending JPS63280345A (ja) 1987-05-13 1987-05-13 プログラム異常検出方法

Country Status (1)

Country Link
JP (1) JPS63280345A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264856A (ja) * 2006-03-28 2007-10-11 Kyocera Corp Cpu監視システム、装置、及び方法
JP2008033890A (ja) * 2006-06-30 2008-02-14 Denso Corp マイクロコンピュータシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264856A (ja) * 2006-03-28 2007-10-11 Kyocera Corp Cpu監視システム、装置、及び方法
JP2008033890A (ja) * 2006-06-30 2008-02-14 Denso Corp マイクロコンピュータシステム
US8127183B2 (en) 2006-06-30 2012-02-28 Denso Corporation Microcomputer system

Similar Documents

Publication Publication Date Title
US7043729B2 (en) Reducing interrupt latency while polling
US20020116670A1 (en) Failure supervising method and apparatus
JP2965075B2 (ja) プログラム実行状態監視方法
JPS63280345A (ja) プログラム異常検出方法
JP2006227962A (ja) アプリケーションタスク監視システムおよび方法
JP3859564B2 (ja) イベント通知タスク制御処理方式及び方法並びにプログラム
JPS62145336A (ja) 計算機システムのプログラムル−プ検出方式
JPH10269110A (ja) 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。
JPS5920061A (ja) ウオツチ・ドツグ・タイマ
JP2677175B2 (ja) コンピュータシステムの外部イベント検出方式
JPH04280329A (ja) プログラム異常検出方式
JPH05257748A (ja) マイクロプロセッサ装置
JPH0581080A (ja) マイクロプロセツサの暴走監視装置
JPH01154258A (ja) ウォッチドッグタイマによる誤動作検出装置
JPS6051141B2 (ja) プログラム暴走検出方式
JP3090054B2 (ja) ストール監視方式
JPH04195437A (ja) プログラム暴走監視装置
JPH04148246A (ja) ウオツチドツグタイマ
JPS63271545A (ja) ウオツチドツグタイマ
JPH05346877A (ja) マルチタスクシステムの動作監視方式
JPS59148961A (ja) プロセツサの動作監視方式
JPH0581078A (ja) マイクロプログラム異常走行検出方法およびマイクロコンピユータシステム並びにマイクロコンピユータ制御処理装置
JPH0561694A (ja) プログラムストール発生検出方式
JPS5868166A (ja) プロセツサ異常監視装置
JPH041831A (ja) プログラム暴走監視方式