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
Application number
JP7281606A
Other languages
English (en)
Inventor
Takashi Kagehisa
孝志 影久
Hisashi Yabaneta
寿 矢羽田
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.)
OKI TSUSHIN SYST KK
Oki Electric Industry Co Ltd
Original Assignee
OKI TSUSHIN SYST KK
Oki Electric Industry Co 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 OKI TSUSHIN SYST KK, Oki Electric Industry Co Ltd filed Critical OKI TSUSHIN SYST KK
Priority to JP7281606A priority Critical patent/JPH09128268A/ja
Publication of JPH09128268A publication Critical patent/JPH09128268A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 プログラムの処理障害を検出する。 【解決手段】 周期割り込みが発生したときに、周期割
り込みハンドラは、共通メモリを読み込み、共通メモリ
内の値が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のプログラムは、共通記
憶領域に対して周期的にアクセスし、共通記憶領域に格
納された情報を読み出し、この情報に基づいて他方のプ
ログラムの障害を検出し、障害が発生していないときは
自己に割り当てられた情報を共通記憶領域に書き込む。
【0007】なお、共通記憶領域から読み出した情報に
基づいて他方のプログラムの障害を検出するときに、以
下の(イ)〜(ニ)の何れかのようにすることが好まし
い。
【0008】(イ)第1のプログラム及び第2のプログ
ラムは、規定の回数連続して他方のプログラムの書き込
んだ情報を確認できなかったときに他方のプログラムに
障害が発生したと判断する。
【0009】(ロ)第1のプログラム及び第2のプログ
ラムが、規定の回数連続して自己のプログラムの書き込
んだ情報を確認したときに他方のプログラムに障害が発
生したと判断する。
【0010】(ハ)第1のプログラム及び第2のプログ
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに他方のプログラムの書き込んだ情
報を確認できなかったときに他方のプログラムに障害が
発生したと判断する。
【0011】(ニ)第1のプログラム及び第2のプログ
ラムが、あるタイミングで起点を定めてこの起点から規
定時間経過するまでに自己のプログラムの書き込んだ情
報とは別の情報を確認できなかったときに他方のプログ
ラムに障害が発生したと判断する。
【0012】本発明のプログラム障害検出方法では、最
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第1のプログラム及び第
2のプログラムの双方が、この共通記憶領域に対して周
期的にアクセスし、共通記憶領域に格納された情報を読
み出し、この情報に基づいて他方のプログラムの障害を
検出し、障害が発生していないときは自己に割り当てら
れた情報を共通記憶領域に書き込むことにより他方のプ
ログラムが正常に作動しているか相互に監視する。
【0013】
【発明の実施の形態】以下、本発明によるプログラム障
害検出方法の実施の形態を、図面を参照しながら詳述す
る。
【0014】(第1の実施の形態)図2に第1の実施の
形態のプログラム障害検出方法が適用されている通信端
末内の中央処理装置上で走行する呼処理ソフトウェアの
構成を示す。呼処理ソフトウェアは、モニタプログラム
K1、複数(図示のものは3つ)の割り込みハンドラH
1〜H3、及び複数(図示のものは4つ)のタスクT1
〜T4からなる。
【0015】モニタプログラムK1は割り込みハンドラ
H1〜H3及びタスクT1〜T4の実行を制御し、割り
込みハンドラ−タスク間、及びタスク−タスク間のメッ
セージによる通信機能を提供するものである。なお、第
1の実施の形態におけるモニタプログラムK1は、イベ
ントの発生順に当該イベントに対応する割り込みハンド
ラH1〜H3及びこの割り込みハンドラH1〜H3に対
応するタスクT1〜T4を起動(起床)させる。
【0016】タスクT1〜T4は、中央処理装置の制御
権の割り振りのスケジュール対象となる処理単位のこと
をいい、一般的にはタスク、スレッド、プロセスと呼ば
れているものである。
【0017】割り込みハンドラH1〜H3は、イベント
が発生したときに当該イベントに対応する割り込み処理
を行うプログラムである。
【0018】図3に上述の割り込みハンドラとタスクの
関係を示す。なお、図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にメ
ッセージを送信できる。
【0020】また、メッセージボックスm1〜m4は、
タスクT1〜T4に送られてきたメッセージを受け取る
窓口であり、メッセージを受け取ったタスクT1〜T4
はそれぞれに付属するメッセージボックスm1〜m4に
送信されたメッセージを解析して所望の動作を行う。
【0021】このような状態で、第1の割り込みハンド
ラH1がタスクT4を起床させるときの処理の流れを図
4を参照しながら説明する。なお、図2、図3との同
一、対応部分には同一符号を付して示した。
【0022】イベントが発生したとき、このイベントに
対応した第1の割り込みハンドラH1がその割り込みを
検出し、この割り込みに対応する第1のタスクT1への
メッセージ送信要求をモニタプログラムK1に対して行
う。モニタプログラムK1は、第1のタスクT1のメッ
セージ送信要求を受けて、第1のタスクT1を起床させ
て、送信要求を受けたメッセージを第1のタスクT1付
属のメッセージボックスm1に送信する。付属のメッセ
ージボックスm1でメッセージを受信した第1のタスク
T1は、そのメッセージを解析してから所望の動作をす
る。
【0023】また、あるタスクが他のタスクを起床させ
るときの処理の流れも、割り込みハンドラがタスクを起
床させるときの処理の流れと同様である。
【0024】通常、図示しないウォッチドッグタイマ回
路へのリセット解除信号の出力は、モニタプログラムK
1、もしくはウォッチドッグタイマ処理タスク(ウォッ
チドッグタイマ回路に対して周期的にリセット解除信号
を出力するタスク)がおこなう。本実施の形態では、モ
ニタプログラムK1がウォッチドッグタイマがリセット
解除信号の出力をおこなうものとするが、ウォッチドッ
グタイマ処理タスクがリセット解除信号を出力するとき
の処理も同様である。
【0025】モニタプログラムK1は、イベントが発生
していないときには、ウォッチドッグタイマ回路に対し
てリセット解除信号を出力する処理のみを行う。また、
従来においては、割り込みハンドラが動作しなくなった
場合は、モニタプログラムK1はイベントを検出するこ
とができないので、ウォッチドッグタイマに対してリセ
ット解除信号を出力をし続けるので、ウォッチドッグタ
イマ回路は障害を検出できなかった(デッドロック状
態)。
【0026】本実施の形態におけるプログラム障害検出
方法は、このようなデッドロック状態に陥らないように
するために、モニタプログラムK1と周期割り込みハン
ドラの双方が読み書きできる共通メモリ(例えば1バイ
トのエリア)を設け、モニタプログラムK1と周期割り
込みハンドラの双方が共通メモリを監視するものであ
る。ここで、周期割り込みハンドラとは、指定した一定
時間周期で起動する割り込みハンドラのことであり、図
示しないタイマーからの周期割り込みで呼び出される。
【0027】図1は、モニタプログラムと周期割り込み
ハンドラと共通メモリの関係を示したものである。
【0028】モニタプログラムK1と周期割り込みハン
ドラH1は共に、共通メモリM1に対して読み書きでき
る。後述するように、モニタプログラムK1が共通メモ
リM1にAAH(16進表記のAA,以下ではHは16
進表記であることを示す)を書き込み、周期割り込みハ
ンドラH1が共通メモリにM1に55Hを書き込み、互
いに相手が規定値を書き込んでいるか監視する。本実施
の形態では、上述の割り込みハンドラH1〜H3の中の
第1の割り込みハンドラが周期割り込みハンドラである
とする。
【0029】以下に、共通メモリを用いたプログラム障
害検出方法の処理の流れを図を参照しながら説明する。
【0030】通信端末が起動したとき、あるいは障害が
発生してその後復旧したときに共通メモリをAAHで初
期設定して図示しないエラーカウントをクリアして、そ
の後タイマーの周期割り込みを有効にする。
【0031】初期設定が終了して、通常運用状態にはい
ってからの周期割り込みハンドラH1の動作を図5を参
照しながら説明する。
【0032】周期割り込みが発生したときに、周期割り
込みハンドラH1は、共通メモリM1を読み込み、共通
メモリM1内の値がAAHであれば、エラーカウントを
クリアして、共通メモリM1に55Hを書き込む(ステ
ップ501〜503,507)。
【0033】共通メモリM1の内容がAAH以外の値で
あれば、周期割り込みハンドラH1は、エラーカウント
が第1の基準値以上のときは中央処理装置の動作を停止
させ、第1の基準値未満の時はエラーカウントを1つ増
加させて共通メモリに55H書き込む(ステップ504
〜507)。
【0034】中央処理装置の動作が停止すれば、ウォッ
チドッグタイマ回路は一定時間後にハードウェアリセッ
ト信号を出力して通信端末を端末を初期化して、端末は
自動復旧する。
【0035】第1の基準値は、モニタプログラムK1の
最大周期÷周期割り込みハンドラH1の周期×4で求め
た値の少数部を切り上げて求めた値とする。
【0036】モニタプログラムK1の最大周期とは、周
期割り込みハンドラ以外の割り込みハンドラH2,H3
の中で、イベントが発生してから当該割り込みハンドラ
が起動してこの割り込みハンドラに対応するタスクが処
理を終えるまでの時間である。つまり、あるイベントに
対する処理を行うのに要する時間の中で最長のものをい
う。
【0037】周期割り込みハンドラH1の周期は、あら
かじめ定めたタイマーの周期割り込みの周期である。
【0038】なお、第1の基準値が小さすぎると、障害
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
4を乗算してある程度時間に幅を持たせている。
【0039】同様に、通常運用状態にはいってからのモ
ニタプログラムK1の動作を図6を参照しながら以下に
説明する。
【0040】モニタプログラムK1は、共通メモリM1
を読み込み、共通メモリM1内の値が55Hであれば、
エラーカウントをクリアして、共通メモリM1にAAH
書き込みウォッチドッグタイマ回路にリセット解除信号
を出力する(ステップ601〜603,607,60
8)。
【0041】共通メモリM1の内容が55H以外の値で
あれば、モニタプログラムK1は、エラーカウントが第
2の基準値以上のときは中央処理装置の動作を停止さ
せ、第2の基準値未満の時はエラーカウントを1つ増加
させて共通メモリM1にAAH書き込みウォッチドッグ
タイマ回路にリセット解除信号を出力する(ステップ6
04〜608)。
【0042】この場合も、中央処理装置の動作が停止す
れば、ウォッチドッグタイマ回路は一定時間後にハード
ウェアリセット信号を出力して通信端末を端末を初期化
して、端末は自動復旧する。
【0043】第2の基準値は、周期割り込みハンドラH
1の周期÷モニタプログラムK1の最小周期×2で求め
た値の少数部を切り上げて求めた値とする。
【0044】周期割り込みハンドラH1の周期は、あら
かじめ定めたタイマーの周期割り込みの周期である。
【0045】モニタプログラムK1の最小周期とは、割
り込みハンドラH1〜H3の動作が完全に停止してモニ
タプログラムK1だけが作動しているときに、モニタプ
ログラムK1がウォッチドッグタイマ回路に対してリセ
ット解除信号を出力する周期である。
【0046】なお、第2の基準値が小さすぎると、障害
が発生していないのにもかかわらず、障害が発生したと
誤判断してしまう危険があるので、上述の計算方法では
2を乗算してある程度時間に幅を持たせている。
【0047】AAHは2進であらわすと1010101
0になり、55Hを2進であらわすと01010101
になり、互いにビット反転させたときの関係にある。本
実施の形態では、何らかの障害で共通メモリのビット値
が不本意に変化しても、AAHと55Hはビット反転の
関係にあるので、全ビットが変化しないかぎり誤動作を
おこすことはない。また、ビット反転の関係にある対の
一つをAAH(≠00H,FFH等)にしたのは、例え
ば何らかの誤動作で共通メモリM1の内容が書き換えら
れたときにその値がAAHである可能性が低いと判断し
たためである。
【0048】以上の第1の実施の形態によれば、共通メ
モリを設けて、モニタプログラムと周期割り込みハンド
ラが互いに相手の動作状況を監視するようにしたので、
ウォッチドッグタイマ回路にリセット解除信号を出力す
るモニタプログラムに異常が発生していない場合でも障
害を検出できる確率が高くなる。
【0049】(その他の実施の形態)第1の実施の形態
では、共通メモリにAAHと55Hを相互に書き込む例
を示したが、共通メモリのサイズ及び共通メモリに格納
する値は任意である。
【0050】また、第1の実施の形態の第1の基準値及
び第2の基準値は他の方法で定めてもよい。
【0051】さらに、第1の実施の形態では、モニタプ
ログラムと周期割り込みハンドラが相互に監視するもの
を示したが、2つの周期割り込みハンドラが相互に監視
するようにしてもよいし、周期的に作動する複数のプロ
グラムが相互に監視するようにすればプログラム種類及
び数は他のものでもよい。
【0052】なお、第1の実施の形態では共通メモリに
55H又はAAHを書き込んでエラーが発生したときに
エラーカウントを増加させるようにしたが、エラーが発
生したときに、エラーフラグをオンにして、エラーでな
いときにエラーフラグをオフにするようにして、既にエ
ラーフラグがオンになっている状態で再びエラーになっ
たときに、最後にエラーフラグをオフからオンにしたと
きからの経過時間が規定の時間を越えていれば障害が発
生したと判断して中央処理装置を停止させるようにして
もよい。
【0053】本発明は、プログラム障害検出方法に関す
るものであり、プログラムの障害を検出してからウォッ
チドッグタイマ回路を用いて当該装置の復旧を行う必要
はなく、障害検出後の動作は問わない。
【0054】
【発明の効果】以上説明したように本発明によれば、最
後にアクセスしたプログラムを特定できる情報を書き込
み可能な共通記憶領域を設け、第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】 中央処理装置を備えた処理装置における
    中央処理装置上で走行するプログラムの処理障害を検出
    するプログラム障害検出方法において、 最後にアクセスしたプログラムを特定できる情報を書き
    込み可能な共通記憶領域を設け、 第1のプログラム及び第2のプログラムは、上記共通記
    憶領域に対して周期的にアクセスし、上記共通記憶領域
    に格納された情報を読み出し、この情報に基づいて他方
    のプログラムの障害を検出し、障害が発生していないと
    きは自己に割り当てられた情報を上記共通記憶領域に書
    き込むことを特徴とするプログラム障害検出方法。
  2. 【請求項2】 第1のプログラム及び第2のプログラム
    は、他方のプログラムの障害を検出する際に、規定の回
    数連続して他方のプログラムの書き込んだ情報を確認で
    きなかったときに障害が発生したと判断することを特徴
    とする請求項1に記載のプログラム障害検出方法。
  3. 【請求項3】 第1のプログラム及び第2のプログラム
    は、他方のプログラムの障害を検出する際に、規定の回
    数連続して自己のプログラムの書き込んだ情報を確認し
    たときに障害が発生したと判断することを特徴とする請
    求項1に記載のプログラム障害検出方法。
  4. 【請求項4】 第1のプログラム及び第2のプログラム
    は、他方のプログラムの障害を検出する際に、あるタイ
    ミングで起点を定めてこの起点から規定時間経過するま
    でに他方のプログラムの書き込んだ情報を確認できなか
    ったときに障害が発生したと判断することを特徴とする
    請求項1に記載のプログラム障害検出方法。
  5. 【請求項5】 第1のプログラム及び第2のプログラム
    は、他方のプログラムの障害を検出する際に、あるタイ
    ミングで起点を定めてこの起点から規定時間経過するま
    でに自己のプログラムの書き込んだ情報とは別の情報を
    確認できなかったときに障害が発生したと判断すること
    を特徴とする請求項1に記載のプログラム障害検出方
    法。
JP7281606A 1995-10-30 1995-10-30 プログラム障害検出方法 Pending JPH09128268A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041484A (ja) * 2011-08-18 2013-02-28 Mitsubishi Electric Corp プログラム監視システム

Cited By (1)

* Cited by examiner, † Cited by third party
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) 電源制御方式