JPH02207347A - ソフトウェア障害検出方法 - Google Patents

ソフトウェア障害検出方法

Info

Publication number
JPH02207347A
JPH02207347A JP1027686A JP2768689A JPH02207347A JP H02207347 A JPH02207347 A JP H02207347A JP 1027686 A JP1027686 A JP 1027686A JP 2768689 A JP2768689 A JP 2768689A JP H02207347 A JPH02207347 A JP H02207347A
Authority
JP
Japan
Prior art keywords
program
processing
software
execution
time
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
JP1027686A
Other languages
English (en)
Inventor
Takao Dobashi
土橋 孝男
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 JP1027686A priority Critical patent/JPH02207347A/ja
Publication of JPH02207347A publication Critical patent/JPH02207347A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) 本発明は計算機システム等で使用されるソフトウェア障
害検出方法に関する。
(従来の技術) 近年、計算機システムは増々高い信頼性を要求されおり
、重要なシステムではハードウェアの二重化が実施され
ている。また、ソフトウェアについても信頼性を向上さ
せるため様々な対策が実施されているが、万一障害が発
生した場合にはこれを直ちに検出して復旧対策を行なう
ことが重要である。
この場合、障害の発生検知方法としては種々の方法がと
られている。
例えば、計算機内部に定周期のタイマを設置し、計算機
のO8(Oprating 5ystcv )がこのタ
イマによって得られた時刻により各プログラムの実行管
理を行ない、一定時間以上O8側に管理が戻らないとき
警報装置を動作させ警報(ストールアラーム)を出力さ
せる方法がとられている。
また他の方法として、プログラムの暴走などに起因して
実行不可能な命令(イリーガル命令)が検出された場合
、警報装置を動作させる方法もとられている。
(発明が解決しようとする課題) しかしながら上述した従来の障害発生検知方法において
は次に述べるような問題があった。
即ち、これら各障害発生検知方法では、ストールアラー
ム、イリーガル命令以外のソフトウェア障害、例えば割
込み許可状態でのループ発生、長時間に渡る待ち状態の
発生、プツトロックの発生、機能未実行の発生等を検知
することができないという間通があった。
このため、このようなソフトウェア障害が発生した場合
には、異常に気がついた時点で保守員がこれに対処する
という方法をとっているので、ハード系を二重にしてい
る場合でも、切り換えが遅れて誤った処理が行われてし
まうことがあった。
またこのようなソフトウェア障害は、障害が発生した時
点でこれを検出することができないので、障害発生時点
のデータを採取することができず、障害の原因解析がで
きないことが多い。
そして、このようなソフトウェア障害の原因となるバグ
は、極めてまれなタイミングで発生することが多いため
、障害発見後に計算機を再スタート(リスタート)させ
たとき、バグに起因するデータが既に書き換えられてい
て障害の原因が分からないことが多かった。
本発明は上記の事情に鑑み、ストールアラーム、イリー
ガル命令以外のソフトウェア障害、例えば割込み許可状
態でのループ発生、長時間に渡る待ち状態の発生、プツ
トロックの発生、機能未実行の発生等を検知することが
でき、これによって障害時のデータを採取して障害原因
を解析することができるとともに、障害を早期に復旧さ
せることができるソフトウェア障害検出方法を提供する
ことを目的としている。
〔発明の構成〕
(課題を解決するための手段) 上記の目的を達成するために本発明によるソフトウェア
障害検出方法は、計算機システムで使用されるソフトウ
ェア障害検出方法において、各プログラムの実行所要時
間と処理完了状態とを一定時間毎にチェックし、各プロ
グラムが所定時間内に終了していない場合あるいは実行
終了時に全処理が完了していない場合に異常と判定し、
この時点で障害原因の解析に必要な主メモリの内容を保
存することを特徴としている。
(作用) 上記の構成において、各プログラムの実行所要時間と処
理完了状態とを一定時間毎にチェックし、各プログラム
が所定時間内に終了していない場合あるいは実行終了時
に全処理が完了していない場合に異常と判定し、この時
点で障害原因の解析に必要な主メモリの内容を保存する
ので、ストールアラーム、イリーガル命令以外のソフト
ウェア障害、例えば割込み許可状態でのループ発生、長
時間に渡る待ち状態の発生、プツトロックの発生、機能
未実行の発生等を検知することができ、これによって障
害時のデータを採取して障害原因を解析することができ
るとともに、障害を早期に復旧させることができる。
(実施例) 第1図は本発明によるソフトウェア障害検出方法の一実
施例を適用した計算機システムの一例を示すブロック図
である。
この図に示す計算機システムは、2つの計算機1.2を
備えており、そのうちの一方、例えば計算機1が現用と
して、また他方が予備用として使用される。
現用として使用される計算機1はオンライン処理を行な
う主処理部10と、計時動作を行なうタイマ処理部3と
、このタイマ処理部3からの信号によって周期的に起動
されて前記主処理部10の処理内容をチェックしソフト
ウェア障害の発生を検知するソフトウェア障害検出処理
部4と、このソフトウェア障害検出処理部4によってソ
フトウェア障害の発生が検知されたとき主メモリの内容
を保存させる主メモリ保存処理部5と、前記ソフトウェ
ア障害検出処理部4によってソフトウェア障害の発生が
検知されたとき故障信号を発生する故障信号出力装置6
とを備えている。
前記主処理部10は複数のプログラムに基づいてオンラ
イン処理を行ないながらその内部に設けられた処理状況
記述テーブル20に各プログラムの処理状況を記述する
。
処理状況記述テーブル20は第2図に示す如く各プログ
ラムの処理状況が各々記述される複数のプログラム実行
状況記述エリア21a〜21nを備えている。そして、
これら各プログラム実行状況記述エリア21a〜21n
には各々対応するプログラムが実行中かどうかを示すプ
ログラム実行中フラグ18と、対応するプログラムの各
モジュールが処理される毎に順次セットされる複数の処
理実行済フラグ19a〜19mとが設けられている。
また、前記ソフトウェア障害検出処理部4は各プログラ
ムが正常に処理されているかどうかを判定するのに必要
な情報テーブル13を備えている。
情報テーブル13は第3図に示す如く各プログラムの実
行情報が各々記述される複数のプログラム実行情報記述
子12a〜12nを備えており、これら各プログラム実
行情報記述子12a〜12nには各々対応するプログラ
ムの実行開始時刻が記述される実行開始時刻記述エリア
14と、対応するプログラムの実行所要時間が記述され
る実行所要時間記述エリア15と、対応するプログラム
を実行するのに必要な時間の最大値が記述される実行所
要時間最大値記述エリア16と、対応するプログラムを
構成するモジュール数が記述されるモジュール数記述エ
リア17とが設けられている。
そして、ソフトウェア障害検出処理部4は前記タイマ処
理部3によって所定時間毎に起動されて前記情報テーブ
ル13の内容と前記処理状況記述テーブル20の内容と
をチェックしソフトウェア障害の有無を検知する。
そして、ソフトウェア障害が発生したとき主メモリ保存
処理部5を動作させて主メモリの内容を保存させるとと
もに、故障信号出力装置6を起動させて故障信号を発生
させこれを計算機2に出力させる。
計算機2は前記計算機1の主処理部10と同様に構成さ
れる主処理部11と、前記計算機1から故障信号が出力
されたときこれを受ける故障信号入力装置7と、この故
障信号入力装置7によって故障信号が取り込まれたとき
前記主処理部11を起動させるリスタート処理部8とを
備えている。
そして、前記計算機1から故障信号が出力されたときこ
れを検知して主処理部11を起動させ前記計算機1に代
わりオンライン処理を開始する。
次に、第4図ないし第6図を参照しながらこの実施例の
動作を説明する。
まず、計算機1の主処理部10はO8の制御の下に各プ
ログラムの処理を実行する。
この処理では、主、処理部10はまず情報テーブル13
を構成する各プログラム実行情報記述子12a〜12n
の実行所要時間最大値記述エリア16に各プログラム毎
に予め設定されている実行所要時間最大値を書き込む。
この後、主処理部10は各プログラムの処理を開始する
。
そして、各プログラムの処理において、主処理部10は
第4図に示す如くまず今実行対象となっているプログラ
ムに対応するプログラム実行状況記述エリア、例えば第
1プログラムを処理するときにはこの第1プログラムに
対応したプログラム実行状況記述エリア21aのプログ
ラム実行中フラグ18をセットするとともに(ステップ
5TI)このプログラム実行記述子12aの各処理実行
済フラグ19a〜19mをクリアする(ステップ5T2
)。
次いで、主処理部10は今実行対象となっている第1プ
ログラムに対応するプログラム実行情報記述子12aの
実行開始時刻記述エリア14に現在の時刻を書込み(ス
テップ5T3)、この後この第1プログラムを構成する
各モジュールの処理を順次行ないながら、各モジュール
の処理が完了する毎にプログラム実行記述子12aの各
処理実行済フラグ19a〜19mを1フラグずつ端から
順次セットする(ステップST4〜5T7)。
そして、各モジュールの処理が全て完了したとき主処理
部10はプログラム実行記述子12aの実行開始時刻記
述エリア14に記述されている実行開始時刻と現在の時
刻とを比較して第1プログラムの処理に要した時間(実
行所要時間)を求め3、これをプログラム実行記述子1
2aの実行所要貼間記述エリア15に書き込む(ステッ
プ5T8)。
この後、主処理部10はプログラム実行状況記述エリア
21aのプログラム実行中フラグ18をリセットする(
ステップ5T9)。
以下同様に、主処理部10はO8の制御の下に第5図に
示す如く残りの各プログラムおよび上述した第1プログ
ラムをサイクリックに実行しながら各プログラムに対応
するプログラム実行情報記述子12a〜12nの実行開
始時刻記述エリア14の内容、実行所要時間記述エリア
15の内容および各プログラム実行状況記述エリア21
a〜21nのプログラム実行中フラグ18の内容、各処
理実行済フラグ19a〜19mの内容を更新する。
またこの動作と並行して、計算機1のソフトウェア障害
検出処理部4はタイマ処理部3がら所定時間毎に、起動
させられて以下に述べる処理を実行する。
この処理では、ソフトウェア障害検出処理部4は第6図
に示す如くまずチェック対象となるプログラムの番号を
示す変数lを初期化する(ステップ5TIO)。
この後、ソフトウェア障害検出処理部4は変数iによっ
て指定されたプログラムに対応するプログラム実行状況
記述エリア(この場合、変数lが初期化された直後であ
るから第1プログラムに対応するプログラム実行状況記
述エリア21a)のプログラム実行中フラグ18がセッ
トされているか否かをチェックする(ステップ5TII
)。
そして、このプログラム実行中フラグ18がセットされ
ていれば、即ちこの第1プログラムが現在実行中であり
実行所要時間がまだ求められていなければ、ソフトウェ
ア障害検出処理部4は前記主処理部10に代わりプログ
ラム実行情報記述子12aの実行開始時刻記述エリア1
4に記述されている実行開始時刻と現在の時刻とを比較
してこの第1プログラムの実行が開始されてから現在ま
での時間を求める(ステップ5T12)。
また、前記プログラム実行中フラグ18がリセットされ
ていれば、ソフトウェア障害検出処理部4はこの第1プ
ログラムの処理が完了していると判断してプログラム実
行情報記述子12aの実行所要時間記述エリア15に記
述されている実行所要時間を読み出す。
この後、ソフトウェア障害検出処理部4は第1゜プログ
ラムに対する実行所要時間の値が計算されれているかを
チェックしくステップ5T13)、計算されていれば、
プログラム実行情報記述子12aの実行所要時間最大値
記述エリア16に記述されている実行所要時間最大値を
読出し、この実行所要時間最大値と前記実行所要時間の
値とを比較する(ステップ5T14)。
そして、実行所要時間の値が実行所要時間最大値よりも
大きいとき、ソフトウェア障害検出処理部4はこの第1
プログラムの処理を行なったとき、割込み許可状態での
ループ、長時間の待ち状態、デッドロック等のソフトウ
ェア障害が発生したと判断して主メモリ保存処理部5を
動作させ主メモリの内容を保存させるとともに(ステッ
プ5T25)、故障信号出力装置6を起動させて故障信
号を発生させ計算機2の動作を開始させる(ステップ5
T26)。
また、前記実行所要時間の値が実行所要時間最大値より
も小さいときには、ソフトウェア障害検出処理部4はプ
ログラム実行情報記述子12aの実行所要時間記述エリ
ア15の内容を消去した後(ステップ5T15)、プロ
グラム実行状況記述子エリア21aのプログラム実行中
フラグ18がリセットされているか否か(実行済みが否
が)をチェックする(ステップ5T16)。
そして、このプログラム実行中フラグ18がリセットさ
れていれば、ソフトウェア障害検出処理部4はプログラ
ム実行状況記述子エリア21aの各処理済フラグ19a
〜19mのセット状況を読出し、そのセット数と、プロ
グラム実行記述子12aのモジュール数記述エリア17
に記述されているモジュール数とが一致しているかどう
かをチェックする(ステップ5T17)。
そして、これらが一致していなければ、ソフトウェア障
害検出処理部4は第1プログラムの処理においていずれ
かのモジュール処理が抜ける等のソフトウェア障害が発
生したと判断して上述した主メモリの保存処理、計算機
2の起動処理を行なう(ステップ5T25.5T26)
。
また、これらが一致していれば、ソフトウェア障害検出
処理部4は第1プログラムの各モジュールが全て正常に
処理されていると判断してプログラム実行状況記述エリ
ア21aの各処理実行済フラグ19a〜19mをクリア
する(ステップ5T18)。
また上述した動作において、実行時間が計算されていな
いときには(ステップ5T13)、上述した実行所要時
間の判定処理、モジュールの処理状況判定処理が、また
プログラム実行中フラグ18がセットされているときに
(プログラム実行中のとき)は前記モジュールの処理状
況判定処理がスキップされる。
次いで、ソフトウェア障害検出処理部4は変数iをイン
クリメントして(ステップ5T19)、この変数1の値
が処理対象となっているプログラムの数以下かどうかを
チェックする(ステップ5T20)。
そして、変数lの値が全プログラムの数より小さいとき
、ソフトウェア障害検出処理部4は全プログラムのチェ
ック処理が完了していないと判断して残りのプログラム
に対して上述したチェック処理を実行する。
そして、処理対象となっているプログラムの全てに対し
て上述した処理が完了したとき、ソフトウェア障害検出
処理部4はタイマ処理部3から次の起動がかけられるま
でチェック処理を停止する。
このようにこの実施例においては、各プログラム毎に実
行所要時間をチェックしているので、第5図の処理T2
1のような割込み許可状態でのループ発生、長時間に渡
る待ち状態の発生、プツトロックの発生等を検知するこ
とができ、これによってこのようなソフトウェア障害が
発生したとき、計算機2を直ちに起動させることができ
るとともに、障害時点のデータを採取することができる
。
また、各プログラムを構成する各モジュールが確実に処
理されているかどうかをチェックしているので、機能未
実行等のソフトウェア障害をも検知することができ、こ
のようなソフトウェア障害が発生したときにも障害時の
データを採取して障害原因を解析することができるとと
もに、障害を早期に復旧させることができる。
また上述した実施例においては、2つの計算機1.2を
備えた計算機システムを用いて本発明を説明したが、例
えば第7図に示すように1つの計算機1aのみシステム
にも本発明を適用できるのは勿論である。
但しこの場合、ソフトウェア障害検出処理部4によって
ソフトウェア障害が検出されて主メモリ保存部5が主メ
モリの内容を保存させた後、リスタート処理部8によっ
て主処理部10に再起動がかけられる。
〔発明の効果〕
以上説明したように本発明によれば、ストールアラーム
、イリーガル命令以外のソフトウェア障害、例えば割込
み許可状態でのループ発生、長時間に渡る待ち状態の発
生、プツトロックの発生、機能未実行の発生等を検知す
ることができ、これによって障害時のデータを採取して
障害原因を解析することができるとともに、障害を早期
に復旧させることができる。
【図面の簡単な説明】
第1図は本発明によるソフトウェア障害検出方法の一実
施例を適用した計算機システムの一例を示すブロック図
、第2図は第1図に示す処理状況記述テーブルの一例を
示す模式図、第3図は第1図に示す情報テーブルの一例
を示す模式図、第4図は第1図に示す主処理部の動作例
を示すフローチャートおよび動作模式図、第5図は同実
施例の各プログラム処理タイミング図、第6図は第1図
に示すソフトウェア障害検出処理部の動作例を示すフロ
ーチャート、第7図は本発明によるソフトウェア障害検
出方法の一実施例を適用した計算機システムの他の一例
を示すブロック図である。 1・・・計算機 3・・・タイマ処理部 4・・・ソフトウェア陣書検出処理部 5・・・主メモリ保存部 0・・・主処理部 3・・・情報テーブル 0・・・処理状況記述テーブル

Claims (1)

    【特許請求の範囲】
  1. (1)計算機システムで使用されるソフトウェア障害検
    出方法において、 各プログラムの実行所要時間と処理完了状態とを一定時
    間毎にチェックし、各プログラムが所定時間内に終了し
    ていない場合あるいは実行終了時に全処理が完了してい
    ない場合に異常と判定し、この時点で障害原因の解析に
    必要な主メモリの内容を保存することを特徴とするソフ
    トウェア障害検出方法。
JP1027686A 1989-02-08 1989-02-08 ソフトウェア障害検出方法 Pending JPH02207347A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1027686A JPH02207347A (ja) 1989-02-08 1989-02-08 ソフトウェア障害検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1027686A JPH02207347A (ja) 1989-02-08 1989-02-08 ソフトウェア障害検出方法

Publications (1)

Publication Number Publication Date
JPH02207347A true JPH02207347A (ja) 1990-08-17

Family

ID=12227850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1027686A Pending JPH02207347A (ja) 1989-02-08 1989-02-08 ソフトウェア障害検出方法

Country Status (1)

Country Link
JP (1) JPH02207347A (ja)

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監視システム、装置、及び方法
WO2007116930A1 (ja) * 2006-04-07 2007-10-18 Daikin Industries, Ltd. 制御処理の停止方法
US7702966B2 (en) * 2005-09-07 2010-04-20 Intel Corporation Method and apparatus for managing software errors in a computer system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702966B2 (en) * 2005-09-07 2010-04-20 Intel Corporation Method and apparatus for managing software errors in a computer system
JP2007264856A (ja) * 2006-03-28 2007-10-11 Kyocera Corp Cpu監視システム、装置、及び方法
WO2007116930A1 (ja) * 2006-04-07 2007-10-18 Daikin Industries, Ltd. 制御処理の停止方法

Similar Documents

Publication Publication Date Title
US5948112A (en) Method and apparatus for recovering from software faults
CN110609778A (zh) 一种保存服务器宕机日志的方法及系统
US20020116670A1 (en) Failure supervising method and apparatus
JPH02294739A (ja) 障害検出方式
US7734956B2 (en) Process management system
JP2774770B2 (ja) デバッグ方式
JPH01205343A (ja) 電子計算機システムにおけるプロセスの中断再開方式
JP2882459B2 (ja) エラー情報収集試験システム
CN121501570A (zh) 一种模型训练方法、装置、电子设备及存储介质
JPH04124735A (ja) システム起動方式
JPH0773076A (ja) トレース情報採取方式
JPH0469744A (ja) マイクロコンピュータの暴走検知装置
JPH0433138A (ja) Cpu暴走監視方式
JPH01134637A (ja) 情報処理システムのストール監視方式
JPH10198578A (ja) デバッグ方式およびデバッグ方法
JPH0322148A (ja) μCPUの暴走検出回路
JPH0395634A (ja) 計算機システム再起動制御方式
JPS63150742A (ja) コンピュータシステムの誤動作からの復帰方法
JPH1069417A (ja) 常駐型ファイル監視方法
JPH04195437A (ja) プログラム暴走監視装置
JPH02129744A (ja) データ転送装置
JPH04338842A (ja) エラー検出機能付き情報処理装置
JPH0227449A (ja) ソフトウェア障害時の情報収集方式
JPS61101845A (ja) 情報処理装置の試験方式
JPH0827748B2 (ja) メモリ情報自動収集装置