JPH09128268A - プログラム障害検出方法 - Google Patents
プログラム障害検出方法Info
- Publication number
- JPH09128268A JPH09128268A JP7281606A JP28160695A JPH09128268A JP H09128268 A JPH09128268 A JP H09128268A JP 7281606 A JP7281606 A JP 7281606A JP 28160695 A JP28160695 A JP 28160695A JP H09128268 A JPH09128268 A JP H09128268A
- Authority
- JP
- Japan
- Prior art keywords
- program
- failure
- information
- common memory
- detection method
- 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
Links
- 238000000034 method Methods 0.000 title description 8
- 238000001514 detection method Methods 0.000 claims description 16
- 125000004122 cyclic group Chemical group 0.000 description 23
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 プログラムの処理障害を検出する。
【解決手段】 周期割り込みが発生したときに、周期割
り込みハンドラは、共通メモリを読み込み、共通メモリ
内の値がAAHであれば、エラーカウントをクリアし
て、共通メモリに55H書き込む。共通メモリの内容が
AAH以外の値であれば、周期割り込みハンドラは、エ
ラーカウントが第1の基準値以上のときはCPUの動作
を停止させ、第1の基準値未満の時はエラーカウントを
1つ増加させて共通メモリに55H書き込む。モニタプ
ログラムは、共通メモリを読み込み、共通メモリ内の値
が55Hであれば、エラーカウントをクリアする。共通
メモリの内容が55H以外の値であれば、モニタプログ
ラムは、エラーカウントが第2の基準値以上のときはC
PUの動作を停止させ、第2の基準値未満の時はエラー
カウントを1つ増加させて共通メモリにAAH書き込
む。
り込みハンドラは、共通メモリを読み込み、共通メモリ
内の値がAAHであれば、エラーカウントをクリアし
て、共通メモリに55H書き込む。共通メモリの内容が
AAH以外の値であれば、周期割り込みハンドラは、エ
ラーカウントが第1の基準値以上のときはCPUの動作
を停止させ、第1の基準値未満の時はエラーカウントを
1つ増加させて共通メモリに55H書き込む。モニタプ
ログラムは、共通メモリを読み込み、共通メモリ内の値
が55Hであれば、エラーカウントをクリアする。共通
メモリの内容が55H以外の値であれば、モニタプログ
ラムは、エラーカウントが第2の基準値以上のときはC
PUの動作を停止させ、第2の基準値未満の時はエラー
カウントを1つ増加させて共通メモリにAAH書き込
む。
Description
【0001】
【発明の属する技術分野】本発明は、中央処理装置を備
えた処理装置における中央処理装置上で走行するプログ
ラムの処理障害を検出するプログラム障害検出方法に関
し、例えば、通信端末に適用し得るものである。
えた処理装置における中央処理装置上で走行するプログ
ラムの処理障害を検出するプログラム障害検出方法に関
し、例えば、通信端末に適用し得るものである。
【0002】
【従来の技術】近年、多機能電話機等の中央処理装置を
備えた通信端末では、中央処理装置上で走行するプログ
ラムの処理障害を検出するために、中央処理装置とは独
立したウォッチドッグタイマ回路(周期リセット生成回
路)による障害検出が行われている。
備えた通信端末では、中央処理装置上で走行するプログ
ラムの処理障害を検出するために、中央処理装置とは独
立したウォッチドッグタイマ回路(周期リセット生成回
路)による障害検出が行われている。
【0003】ウォッチドッグタイマ回路は、中央処理装
置上で走行するプログラムが周期的に出力するリセット
解除信号を一定時間内に検出できないときにハードウェ
アリセット信号を出力して当該通信端末の初期化を行う
ものである。
置上で走行するプログラムが周期的に出力するリセット
解除信号を一定時間内に検出できないときにハードウェ
アリセット信号を出力して当該通信端末の初期化を行う
ものである。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
中央処理装置とは独立したウォッチドッグタイマ回路を
用いたプログラム障害検出方法では、通信端末上で走行
するプログラムが動作異常を起こしても、ウォッチドッ
グタイマ回路に対してリセット解除信号を出力するプロ
グラムが動作していれば、ウォッチドッグタイマ回路は
障害を検出できないので、動作異常状態であっても当該
通信端末を初期化して自己復旧することができなかっ
た。
中央処理装置とは独立したウォッチドッグタイマ回路を
用いたプログラム障害検出方法では、通信端末上で走行
するプログラムが動作異常を起こしても、ウォッチドッ
グタイマ回路に対してリセット解除信号を出力するプロ
グラムが動作していれば、ウォッチドッグタイマ回路は
障害を検出できないので、動作異常状態であっても当該
通信端末を初期化して自己復旧することができなかっ
た。
【0005】
【課題を解決するための手段】本発明は、中央処理装置
を備えた処理装置における中央処理装置上で走行するプ
ログラムの処理障害を検出するプログラム障害検出方法
において、以下のようにしたことを特徴とする。
を備えた処理装置における中央処理装置上で走行するプ
ログラムの処理障害を検出するプログラム障害検出方法
において、以下のようにしたことを特徴とする。
【0006】すなわち、最後にアクセスしたプログラム
を特定できる情報を書き込み可能な共通記憶領域を設
け、第1のプログラム及び第2のプログラムは、共通記
憶領域に対して周期的にアクセスし、共通記憶領域に格
納された情報を読み出し、この情報に基づいて他方のプ
ログラムの障害を検出し、障害が発生していないときは
自己に割り当てられた情報を共通記憶領域に書き込む。
を特定できる情報を書き込み可能な共通記憶領域を設
け、第1のプログラム及び第2のプログラムは、共通記
憶領域に対して周期的にアクセスし、共通記憶領域に格
納された情報を読み出し、この情報に基づいて他方のプ
ログラムの障害を検出し、障害が発生していないときは
自己に割り当てられた情報を共通記憶領域に書き込む。
【0007】なお、共通記憶領域から読み出した情報に
基づいて他方のプログラムの障害を検出するときに、以
下の(イ)〜(ニ)の何れかのようにすることが好まし
い。
基づいて他方のプログラムの障害を検出するときに、以
下の(イ)〜(ニ)の何れかのようにすることが好まし
い。
【0008】(イ)第1のプログラム及び第2のプログ
ラムは、規定の回数連続して他方のプログラムの書き込
んだ情報を確認できなかったときに他方のプログラムに
障害が発生したと判断する。
ラムは、規定の回数連続して他方のプログラムの書き込
んだ情報を確認できなかったときに他方のプログラムに
障害が発生したと判断する。
【0009】(ロ)第1のプログラム及び第2のプログ
ラムが、規定の回数連続して自己のプログラムの書き込
んだ情報を確認したときに他方のプログラムに障害が発
生したと判断する。
ラムが、規定の回数連続して自己のプログラムの書き込
んだ情報を確認したときに他方のプログラムに障害が発
生したと判断する。
【0010】(ハ)第1のプログラム及び第2のプログ
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに他方のプログラムの書き込んだ情
報を確認できなかったときに他方のプログラムに障害が
発生したと判断する。
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに他方のプログラムの書き込んだ情
報を確認できなかったときに他方のプログラムに障害が
発生したと判断する。
【0011】(ニ)第1のプログラム及び第2のプログ
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに自己のプログラムの書き込んだ情
報とは別の情報を確認できなかったときに他方のプログ
ラムに障害が発生したと判断する。
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに自己のプログラムの書き込んだ情
報とは別の情報を確認できなかったときに他方のプログ
ラムに障害が発生したと判断する。
【0012】本発明のプログラム障害検出方法では、最
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第1のプログラム及び第
2のプログラムの双方が、この共通記憶領域に対して周
期的にアクセスし、共通記憶領域に格納された情報を読
み出し、この情報に基づいて他方のプログラムの障害を
検出し、障害が発生していないときは自己に割り当てら
れた情報を共通記憶領域に書き込むことにより他方のプ
ログラムが正常に作動しているか相互に監視する。
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第1のプログラム及び第
2のプログラムの双方が、この共通記憶領域に対して周
期的にアクセスし、共通記憶領域に格納された情報を読
み出し、この情報に基づいて他方のプログラムの障害を
検出し、障害が発生していないときは自己に割り当てら
れた情報を共通記憶領域に書き込むことにより他方のプ
ログラムが正常に作動しているか相互に監視する。
【0013】
【発明の実施の形態】以下、本発明によるプログラム障
害検出方法の実施の形態を、図面を参照しながら詳述す
る。
害検出方法の実施の形態を、図面を参照しながら詳述す
る。
【0014】(第1の実施の形態)図2に第1の実施の
形態のプログラム障害検出方法が適用されている通信端
末内の中央処理装置上で走行する呼処理ソフトウェアの
構成を示す。呼処理ソフトウェアは、モニタプログラム
K1、複数(図示のものは3つ)の割り込みハンドラH
1〜H3、及び複数(図示のものは4つ)のタスクT1
〜T4からなる。
形態のプログラム障害検出方法が適用されている通信端
末内の中央処理装置上で走行する呼処理ソフトウェアの
構成を示す。呼処理ソフトウェアは、モニタプログラム
K1、複数(図示のものは3つ)の割り込みハンドラH
1〜H3、及び複数(図示のものは4つ)のタスクT1
〜T4からなる。
【0015】モニタプログラムK1は割り込みハンドラ
H1〜H3及びタスクT1〜T4の実行を制御し、割り
込みハンドラ−タスク間、及びタスク−タスク間のメッ
セージによる通信機能を提供するものである。なお、第
1の実施の形態におけるモニタプログラムK1は、イベ
ントの発生順に当該イベントに対応する割り込みハンド
ラH1〜H3及びこの割り込みハンドラH1〜H3に対
応するタスクT1〜T4を起動(起床)させる。
H1〜H3及びタスクT1〜T4の実行を制御し、割り
込みハンドラ−タスク間、及びタスク−タスク間のメッ
セージによる通信機能を提供するものである。なお、第
1の実施の形態におけるモニタプログラムK1は、イベ
ントの発生順に当該イベントに対応する割り込みハンド
ラH1〜H3及びこの割り込みハンドラH1〜H3に対
応するタスクT1〜T4を起動(起床)させる。
【0016】タスクT1〜T4は、中央処理装置の制御
権の割り振りのスケジュール対象となる処理単位のこと
をいい、一般的にはタスク、スレッド、プロセスと呼ば
れているものである。
権の割り振りのスケジュール対象となる処理単位のこと
をいい、一般的にはタスク、スレッド、プロセスと呼ば
れているものである。
【0017】割り込みハンドラH1〜H3は、イベント
が発生したときに当該イベントに対応する割り込み処理
を行うプログラムである。
が発生したときに当該イベントに対応する割り込み処理
を行うプログラムである。
【0018】図3に上述の割り込みハンドラとタスクの
関係を示す。なお、図2との同一、対応部分には同一符
号を付して示した。
関係を示す。なお、図2との同一、対応部分には同一符
号を付して示した。
【0019】第1の割り込みハンドラH1は第1のタス
クT1にメッセージを送信できる。同様に、第2の割り
込みハンドラH2と第3の割り込みハンドラH3はそれ
ぞれ第2のタスクT2,第3のタスクT3にメッセージ
を送信できる。また、第1〜第3のタスクT1〜T3は
第4のタスクT4にメッセージを送信できる。さらに、
第4のタスクT4は第1〜第3のタスクT1〜T3にメ
ッセージを送信できる。
クT1にメッセージを送信できる。同様に、第2の割り
込みハンドラH2と第3の割り込みハンドラH3はそれ
ぞれ第2のタスクT2,第3のタスクT3にメッセージ
を送信できる。また、第1〜第3のタスクT1〜T3は
第4のタスクT4にメッセージを送信できる。さらに、
第4のタスクT4は第1〜第3のタスクT1〜T3にメ
ッセージを送信できる。
【0020】また、メッセージボックスm1〜m4は、
タスクT1〜T4に送られてきたメッセージを受け取る
窓口であり、メッセージを受け取ったタスクT1〜T4
はそれぞれに付属するメッセージボックスm1〜m4に
送信されたメッセージを解析して所望の動作を行う。
タスクT1〜T4に送られてきたメッセージを受け取る
窓口であり、メッセージを受け取ったタスクT1〜T4
はそれぞれに付属するメッセージボックスm1〜m4に
送信されたメッセージを解析して所望の動作を行う。
【0021】このような状態で、第1の割り込みハンド
ラH1がタスクT4を起床させるときの処理の流れを図
4を参照しながら説明する。なお、図2、図3との同
一、対応部分には同一符号を付して示した。
ラH1がタスクT4を起床させるときの処理の流れを図
4を参照しながら説明する。なお、図2、図3との同
一、対応部分には同一符号を付して示した。
【0022】イベントが発生したとき、このイベントに
対応した第1の割り込みハンドラH1がその割り込みを
検出し、この割り込みに対応する第1のタスクT1への
メッセージ送信要求をモニタプログラムK1に対して行
う。モニタプログラムK1は、第1のタスクT1のメッ
セージ送信要求を受けて、第1のタスクT1を起床させ
て、送信要求を受けたメッセージを第1のタスクT1付
属のメッセージボックスm1に送信する。付属のメッセ
ージボックスm1でメッセージを受信した第1のタスク
T1は、そのメッセージを解析してから所望の動作をす
る。
対応した第1の割り込みハンドラH1がその割り込みを
検出し、この割り込みに対応する第1のタスクT1への
メッセージ送信要求をモニタプログラムK1に対して行
う。モニタプログラムK1は、第1のタスクT1のメッ
セージ送信要求を受けて、第1のタスクT1を起床させ
て、送信要求を受けたメッセージを第1のタスクT1付
属のメッセージボックスm1に送信する。付属のメッセ
ージボックスm1でメッセージを受信した第1のタスク
T1は、そのメッセージを解析してから所望の動作をす
る。
【0023】また、あるタスクが他のタスクを起床させ
るときの処理の流れも、割り込みハンドラがタスクを起
床させるときの処理の流れと同様である。
るときの処理の流れも、割り込みハンドラがタスクを起
床させるときの処理の流れと同様である。
【0024】通常、図示しないウォッチドッグタイマ回
路へのリセット解除信号の出力は、モニタプログラムK
1、もしくはウォッチドッグタイマ処理タスク(ウォッ
チドッグタイマ回路に対して周期的にリセット解除信号
を出力するタスク)がおこなう。本実施の形態では、モ
ニタプログラムK1がウォッチドッグタイマがリセット
解除信号の出力をおこなうものとするが、ウォッチドッ
グタイマ処理タスクがリセット解除信号を出力するとき
の処理も同様である。
路へのリセット解除信号の出力は、モニタプログラムK
1、もしくはウォッチドッグタイマ処理タスク(ウォッ
チドッグタイマ回路に対して周期的にリセット解除信号
を出力するタスク)がおこなう。本実施の形態では、モ
ニタプログラムK1がウォッチドッグタイマがリセット
解除信号の出力をおこなうものとするが、ウォッチドッ
グタイマ処理タスクがリセット解除信号を出力するとき
の処理も同様である。
【0025】モニタプログラムK1は、イベントが発生
していないときには、ウォッチドッグタイマ回路に対し
てリセット解除信号を出力する処理のみを行う。また、
従来においては、割り込みハンドラが動作しなくなった
場合は、モニタプログラムK1はイベントを検出するこ
とができないので、ウォッチドッグタイマに対してリセ
ット解除信号を出力をし続けるので、ウォッチドッグタ
イマ回路は障害を検出できなかった(デッドロック状
態)。
していないときには、ウォッチドッグタイマ回路に対し
てリセット解除信号を出力する処理のみを行う。また、
従来においては、割り込みハンドラが動作しなくなった
場合は、モニタプログラムK1はイベントを検出するこ
とができないので、ウォッチドッグタイマに対してリセ
ット解除信号を出力をし続けるので、ウォッチドッグタ
イマ回路は障害を検出できなかった(デッドロック状
態)。
【0026】本実施の形態におけるプログラム障害検出
方法は、このようなデッドロック状態に陥らないように
するために、モニタプログラムK1と周期割り込みハン
ドラの双方が読み書きできる共通メモリ(例えば1バイ
トのエリア)を設け、モニタプログラムK1と周期割り
込みハンドラの双方が共通メモリを監視するものであ
る。ここで、周期割り込みハンドラとは、指定した一定
時間周期で起動する割り込みハンドラのことであり、図
示しないタイマーからの周期割り込みで呼び出される。
方法は、このようなデッドロック状態に陥らないように
するために、モニタプログラムK1と周期割り込みハン
ドラの双方が読み書きできる共通メモリ(例えば1バイ
トのエリア)を設け、モニタプログラムK1と周期割り
込みハンドラの双方が共通メモリを監視するものであ
る。ここで、周期割り込みハンドラとは、指定した一定
時間周期で起動する割り込みハンドラのことであり、図
示しないタイマーからの周期割り込みで呼び出される。
【0027】図1は、モニタプログラムと周期割り込み
ハンドラと共通メモリの関係を示したものである。
ハンドラと共通メモリの関係を示したものである。
【0028】モニタプログラムK1と周期割り込みハン
ドラH1は共に、共通メモリM1に対して読み書きでき
る。後述するように、モニタプログラムK1が共通メモ
リM1にAAH(16進表記のAA,以下ではHは16
進表記であることを示す)を書き込み、周期割り込みハ
ンドラH1が共通メモリにM1に55Hを書き込み、互
いに相手が規定値を書き込んでいるか監視する。本実施
の形態では、上述の割り込みハンドラH1〜H3の中の
第1の割り込みハンドラが周期割り込みハンドラである
とする。
ドラH1は共に、共通メモリM1に対して読み書きでき
る。後述するように、モニタプログラムK1が共通メモ
リM1にAAH(16進表記のAA,以下ではHは16
進表記であることを示す)を書き込み、周期割り込みハ
ンドラH1が共通メモリにM1に55Hを書き込み、互
いに相手が規定値を書き込んでいるか監視する。本実施
の形態では、上述の割り込みハンドラH1〜H3の中の
第1の割り込みハンドラが周期割り込みハンドラである
とする。
【0029】以下に、共通メモリを用いたプログラム障
害検出方法の処理の流れを図を参照しながら説明する。
害検出方法の処理の流れを図を参照しながら説明する。
【0030】通信端末が起動したとき、あるいは障害が
発生してその後復旧したときに共通メモリをAAHで初
期設定して図示しないエラーカウントをクリアして、そ
の後タイマーの周期割り込みを有効にする。
発生してその後復旧したときに共通メモリをAAHで初
期設定して図示しないエラーカウントをクリアして、そ
の後タイマーの周期割り込みを有効にする。
【0031】初期設定が終了して、通常運用状態にはい
ってからの周期割り込みハンドラH1の動作を図5を参
照しながら説明する。
ってからの周期割り込みハンドラH1の動作を図5を参
照しながら説明する。
【0032】周期割り込みが発生したときに、周期割り
込みハンドラH1は、共通メモリM1を読み込み、共通
メモリM1内の値がAAHであれば、エラーカウントを
クリアして、共通メモリM1に55Hを書き込む(ステ
ップ501〜503,507)。
込みハンドラH1は、共通メモリM1を読み込み、共通
メモリM1内の値がAAHであれば、エラーカウントを
クリアして、共通メモリM1に55Hを書き込む(ステ
ップ501〜503,507)。
【0033】共通メモリM1の内容がAAH以外の値で
あれば、周期割り込みハンドラH1は、エラーカウント
が第1の基準値以上のときは中央処理装置の動作を停止
させ、第1の基準値未満の時はエラーカウントを1つ増
加させて共通メモリに55H書き込む(ステップ504
〜507)。
あれば、周期割り込みハンドラH1は、エラーカウント
が第1の基準値以上のときは中央処理装置の動作を停止
させ、第1の基準値未満の時はエラーカウントを1つ増
加させて共通メモリに55H書き込む(ステップ504
〜507)。
【0034】中央処理装置の動作が停止すれば、ウォッ
チドッグタイマ回路は一定時間後にハードウェアリセッ
ト信号を出力して通信端末を端末を初期化して、端末は
自動復旧する。
チドッグタイマ回路は一定時間後にハードウェアリセッ
ト信号を出力して通信端末を端末を初期化して、端末は
自動復旧する。
【0035】第1の基準値は、モニタプログラムK1の
最大周期÷周期割り込みハンドラH1の周期×4で求め
た値の少数部を切り上げて求めた値とする。
最大周期÷周期割り込みハンドラH1の周期×4で求め
た値の少数部を切り上げて求めた値とする。
【0036】モニタプログラムK1の最大周期とは、周
期割り込みハンドラ以外の割り込みハンドラH2,H3
の中で、イベントが発生してから当該割り込みハンドラ
が起動してこの割り込みハンドラに対応するタスクが処
理を終えるまでの時間である。つまり、あるイベントに
対する処理を行うのに要する時間の中で最長のものをい
う。
期割り込みハンドラ以外の割り込みハンドラH2,H3
の中で、イベントが発生してから当該割り込みハンドラ
が起動してこの割り込みハンドラに対応するタスクが処
理を終えるまでの時間である。つまり、あるイベントに
対する処理を行うのに要する時間の中で最長のものをい
う。
【0037】周期割り込みハンドラH1の周期は、あら
かじめ定めたタイマーの周期割り込みの周期である。
かじめ定めたタイマーの周期割り込みの周期である。
【0038】なお、第1の基準値が小さすぎると、障害
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
4を乗算してある程度時間に幅を持たせている。
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
4を乗算してある程度時間に幅を持たせている。
【0039】同様に、通常運用状態にはいってからのモ
ニタプログラムK1の動作を図6を参照しながら以下に
説明する。
ニタプログラムK1の動作を図6を参照しながら以下に
説明する。
【0040】モニタプログラムK1は、共通メモリM1
を読み込み、共通メモリM1内の値が55Hであれば、
エラーカウントをクリアして、共通メモリM1にAAH
書き込みウォッチドッグタイマ回路にリセット解除信号
を出力する(ステップ601〜603,607,60
8)。
を読み込み、共通メモリM1内の値が55Hであれば、
エラーカウントをクリアして、共通メモリM1にAAH
書き込みウォッチドッグタイマ回路にリセット解除信号
を出力する(ステップ601〜603,607,60
8)。
【0041】共通メモリM1の内容が55H以外の値で
あれば、モニタプログラムK1は、エラーカウントが第
2の基準値以上のときは中央処理装置の動作を停止さ
せ、第2の基準値未満の時はエラーカウントを1つ増加
させて共通メモリM1にAAH書き込みウォッチドッグ
タイマ回路にリセット解除信号を出力する(ステップ6
04〜608)。
あれば、モニタプログラムK1は、エラーカウントが第
2の基準値以上のときは中央処理装置の動作を停止さ
せ、第2の基準値未満の時はエラーカウントを1つ増加
させて共通メモリM1にAAH書き込みウォッチドッグ
タイマ回路にリセット解除信号を出力する(ステップ6
04〜608)。
【0042】この場合も、中央処理装置の動作が停止す
れば、ウォッチドッグタイマ回路は一定時間後にハード
ウェアリセット信号を出力して通信端末を端末を初期化
して、端末は自動復旧する。
れば、ウォッチドッグタイマ回路は一定時間後にハード
ウェアリセット信号を出力して通信端末を端末を初期化
して、端末は自動復旧する。
【0043】第2の基準値は、周期割り込みハンドラH
1の周期÷モニタプログラムK1の最小周期×2で求め
た値の少数部を切り上げて求めた値とする。
1の周期÷モニタプログラムK1の最小周期×2で求め
た値の少数部を切り上げて求めた値とする。
【0044】周期割り込みハンドラH1の周期は、あら
かじめ定めたタイマーの周期割り込みの周期である。
かじめ定めたタイマーの周期割り込みの周期である。
【0045】モニタプログラムK1の最小周期とは、割
り込みハンドラH1〜H3の動作が完全に停止してモニ
タプログラムK1だけが作動しているときに、モニタプ
ログラムK1がウォッチドッグタイマ回路に対してリセ
ット解除信号を出力する周期である。
り込みハンドラH1〜H3の動作が完全に停止してモニ
タプログラムK1だけが作動しているときに、モニタプ
ログラムK1がウォッチドッグタイマ回路に対してリセ
ット解除信号を出力する周期である。
【0046】なお、第2の基準値が小さすぎると、障害
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
2を乗算してある程度時間に幅を持たせている。
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
2を乗算してある程度時間に幅を持たせている。
【0047】AAHは2進であらわすと1010101
0になり、55Hを2進であらわすと01010101
になり、互いにビット反転させたときの関係にある。本
実施の形態では、何らかの障害で共通メモリのビット値
が不本意に変化しても、AAHと55Hはビット反転の
関係にあるので、全ビットが変化しないかぎり誤動作を
おこすことはない。また、ビット反転の関係にある対の
一つをAAH(≠00H,FFH等)にしたのは、例え
ば何らかの誤動作で共通メモリM1の内容が書き換えら
れたときにその値がAAHである可能性が低いと判断し
たためである。
0になり、55Hを2進であらわすと01010101
になり、互いにビット反転させたときの関係にある。本
実施の形態では、何らかの障害で共通メモリのビット値
が不本意に変化しても、AAHと55Hはビット反転の
関係にあるので、全ビットが変化しないかぎり誤動作を
おこすことはない。また、ビット反転の関係にある対の
一つをAAH(≠00H,FFH等)にしたのは、例え
ば何らかの誤動作で共通メモリM1の内容が書き換えら
れたときにその値がAAHである可能性が低いと判断し
たためである。
【0048】以上の第1の実施の形態によれば、共通メ
モリを設けて、モニタプログラムと周期割り込みハンド
ラが互いに相手の動作状況を監視するようにしたので、
ウォッチドッグタイマ回路にリセット解除信号を出力す
るモニタプログラムに異常が発生していない場合でも障
害を検出できる確率が高くなる。
モリを設けて、モニタプログラムと周期割り込みハンド
ラが互いに相手の動作状況を監視するようにしたので、
ウォッチドッグタイマ回路にリセット解除信号を出力す
るモニタプログラムに異常が発生していない場合でも障
害を検出できる確率が高くなる。
【0049】(その他の実施の形態)第1の実施の形態
では、共通メモリにAAHと55Hを相互に書き込む例
を示したが、共通メモリのサイズ及び共通メモリに格納
する値は任意である。
では、共通メモリにAAHと55Hを相互に書き込む例
を示したが、共通メモリのサイズ及び共通メモリに格納
する値は任意である。
【0050】また、第1の実施の形態の第1の基準値及
び第2の基準値は他の方法で定めてもよい。
び第2の基準値は他の方法で定めてもよい。
【0051】さらに、第1の実施の形態では、モニタプ
ログラムと周期割り込みハンドラが相互に監視するもの
を示したが、2つの周期割り込みハンドラが相互に監視
するようにしてもよいし、周期的に作動する複数のプロ
グラムが相互に監視するようにすればプログラム種類及
び数は他のものでもよい。
ログラムと周期割り込みハンドラが相互に監視するもの
を示したが、2つの周期割り込みハンドラが相互に監視
するようにしてもよいし、周期的に作動する複数のプロ
グラムが相互に監視するようにすればプログラム種類及
び数は他のものでもよい。
【0052】なお、第1の実施の形態では共通メモリに
55H又はAAHを書き込んでエラーが発生したときに
エラーカウントを増加させるようにしたが、エラーが発
生したときに、エラーフラグをオンにして、エラーでな
いときにエラーフラグをオフにするようにして、既にエ
ラーフラグがオンになっている状態で再びエラーになっ
たときに、最後にエラーフラグをオフからオンにしたと
きからの経過時間が規定の時間を越えていれば障害が発
生したと判断して中央処理装置を停止させるようにして
もよい。
55H又はAAHを書き込んでエラーが発生したときに
エラーカウントを増加させるようにしたが、エラーが発
生したときに、エラーフラグをオンにして、エラーでな
いときにエラーフラグをオフにするようにして、既にエ
ラーフラグがオンになっている状態で再びエラーになっ
たときに、最後にエラーフラグをオフからオンにしたと
きからの経過時間が規定の時間を越えていれば障害が発
生したと判断して中央処理装置を停止させるようにして
もよい。
【0053】本発明は、プログラム障害検出方法に関す
るものであり、プログラムの障害を検出してからウォッ
チドッグタイマ回路を用いて当該装置の復旧を行う必要
はなく、障害検出後の動作は問わない。
るものであり、プログラムの障害を検出してからウォッ
チドッグタイマ回路を用いて当該装置の復旧を行う必要
はなく、障害検出後の動作は問わない。
【0054】
【発明の効果】以上説明したように本発明によれば、最
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第1のプログラム及び第
2のプログラムの双方が、共通記憶領域に対して周期的
にアクセスし、共通記憶領域に格納された情報を読み出
し、この情報に基づいて他方のプログラムの障害を検出
し、障害が発生していないときは自己に割り当てられた
情報を共通記憶領域に書き込むことにより他方のプログ
ラムが正常に作動しているか相互に監視するようにした
ので高確率で当該装置の障害を検出できる。
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第1のプログラム及び第
2のプログラムの双方が、共通記憶領域に対して周期的
にアクセスし、共通記憶領域に格納された情報を読み出
し、この情報に基づいて他方のプログラムの障害を検出
し、障害が発生していないときは自己に割り当てられた
情報を共通記憶領域に書き込むことにより他方のプログ
ラムが正常に作動しているか相互に監視するようにした
ので高確率で当該装置の障害を検出できる。
【図1】第1の実施の形態の共通メモリを利用した相互
監視の概念図である。
監視の概念図である。
【図2】第1の実施の形態のプログラムの構成図であ
る。
る。
【図3】第1の実施の形態の割り込みハンドラとタスク
の関係を示す図である。
の関係を示す図である。
【図4】第1の実施の割り込みハンドラがタスクを起床
するときの例を示す図である。
するときの例を示す図である。
【図5】第1の実施の周期割り込みハンドラ内の処理を
示すフローチャートである。
示すフローチャートである。
【図6】第1の実施の形態のモニタプログラム内の処理
を示すフローチャートである。
を示すフローチャートである。
K1 モニタプログラム H1,H2,H3 割り込みハンドラ T1,T2,T3,T4 タスク
Claims (5)
- 【請求項1】 中央処理装置を備えた処理装置における
中央処理装置上で走行するプログラムの処理障害を検出
するプログラム障害検出方法において、 最後にアクセスしたプログラムを特定できる情報を書き
込み可能な共通記憶領域を設け、 第1のプログラム及び第2のプログラムは、上記共通記
憶領域に対して周期的にアクセスし、上記共通記憶領域
に格納された情報を読み出し、この情報に基づいて他方
のプログラムの障害を検出し、障害が発生していないと
きは自己に割り当てられた情報を上記共通記憶領域に書
き込むことを特徴とするプログラム障害検出方法。 - 【請求項2】 第1のプログラム及び第2のプログラム
は、他方のプログラムの障害を検出する際に、規定の回
数連続して他方のプログラムの書き込んだ情報を確認で
きなかったときに障害が発生したと判断することを特徴
とする請求項1に記載のプログラム障害検出方法。 - 【請求項3】 第1のプログラム及び第2のプログラム
は、他方のプログラムの障害を検出する際に、規定の回
数連続して自己のプログラムの書き込んだ情報を確認し
たときに障害が発生したと判断することを特徴とする請
求項1に記載のプログラム障害検出方法。 - 【請求項4】 第1のプログラム及び第2のプログラム
は、他方のプログラムの障害を検出する際に、あるタイ
ミングで起点を定めてこの起点から規定時間経過するま
でに他方のプログラムの書き込んだ情報を確認できなか
ったときに障害が発生したと判断することを特徴とする
請求項1に記載のプログラム障害検出方法。 - 【請求項5】 第1のプログラム及び第2のプログラム
は、他方のプログラムの障害を検出する際に、あるタイ
ミングで起点を定めてこの起点から規定時間経過するま
でに自己のプログラムの書き込んだ情報とは別の情報を
確認できなかったときに障害が発生したと判断すること
を特徴とする請求項1に記載のプログラム障害検出方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7281606A JPH09128268A (ja) | 1995-10-30 | 1995-10-30 | プログラム障害検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7281606A JPH09128268A (ja) | 1995-10-30 | 1995-10-30 | プログラム障害検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09128268A true JPH09128268A (ja) | 1997-05-16 |
Family
ID=17641490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7281606A Pending JPH09128268A (ja) | 1995-10-30 | 1995-10-30 | プログラム障害検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09128268A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013041484A (ja) * | 2011-08-18 | 2013-02-28 | Mitsubishi Electric Corp | プログラム監視システム |
-
1995
- 1995-10-30 JP JP7281606A patent/JPH09128268A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013041484A (ja) * | 2011-08-18 | 2013-02-28 | Mitsubishi Electric Corp | プログラム監視システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6502206B1 (en) | Multi-processor switch and main processor switching method | |
JP2002517819A (ja) | 耐障害性演算用の冗長コンピュータ・ベース・システムを管理するための方法及び装置 | |
KR100252250B1 (ko) | 시스템복구장치 | |
CA2292991C (en) | Watch dog timer system | |
US5226151A (en) | Emergency resumption processing apparatus for an information processing system | |
US20070271486A1 (en) | Method and system to detect software faults | |
JP2007028118A (ja) | ノード装置の故障判断方法 | |
JPH09128268A (ja) | プログラム障害検出方法 | |
US7243257B2 (en) | Computer system for preventing inter-node fault propagation | |
JP2005092430A (ja) | ウォッチドッグタイマ | |
JP2508305B2 (ja) | 初期値決定装置 | |
CN108415788B (zh) | 用于对无响应处理电路作出响应的数据处理设备和方法 | |
JP2954040B2 (ja) | 割込監視装置 | |
JPH06266685A (ja) | 分散形制御システム | |
JP3152014B2 (ja) | タイマ回路 | |
EP1662396A2 (en) | Hardware error control method in an instruction control apparatus having an instruction processing suspension unit | |
JPH10269124A (ja) | チェックポイント情報の管理方法およびチェックポイント情報管理システム | |
JPS63100563A (ja) | 障害プロセツサ検出方式 | |
JPH0265339A (ja) | 分散形データ処理装置のループバス異常検出方法 | |
JP2020071492A (ja) | 情報処理システム | |
JP2002318643A (ja) | 情報処理装置 | |
JPH1139032A (ja) | マルチcpu型集中監視装置 | |
JP2001117785A (ja) | マルチタスク処理システム | |
JPH0916434A (ja) | Cpu暴走時の障害情報検出方法 | |
JPS60544A (ja) | 電源制御方式 |