JP3072048B2 - 計算機システムおよび計算機システムのソフトウェア故障回復方法 - Google Patents

計算機システムおよび計算機システムのソフトウェア故障回復方法

Info

Publication number
JP3072048B2
JP3072048B2 JP8062840A JP6284096A JP3072048B2 JP 3072048 B2 JP3072048 B2 JP 3072048B2 JP 8062840 A JP8062840 A JP 8062840A JP 6284096 A JP6284096 A JP 6284096A JP 3072048 B2 JP3072048 B2 JP 3072048B2
Authority
JP
Japan
Prior art keywords
software
failure
fault
computer system
recorded
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
JP8062840A
Other languages
English (en)
Other versions
JPH09258995A (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 JP8062840A priority Critical patent/JP3072048B2/ja
Priority to CN97104512A priority patent/CN1164708A/zh
Priority to US08/820,718 priority patent/US5948112A/en
Priority to KR1019970009258A priority patent/KR970066876A/ko
Publication of JPH09258995A publication Critical patent/JPH09258995A/ja
Application granted granted Critical
Publication of JP3072048B2 publication Critical patent/JP3072048B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、システムに障害が
発生したとき障害発生前の状態からデータ処理を再実行
することにより耐障害性を実現するチェックポイントロ
ールバック方式による故障回復機構を有する計算機シス
テムに係り、特にソフトウェアバグ等に起因して発生す
るソフトウェア障害に関しての故障回復機能をもつ計算
穂システムおよび計算機システムのプログラム障害回復
方法に関する。
【0002】
【従来の技術】計算機システムに於いては、信頼性確保
の面から種々の故障回復手段が開発され実施されてい
る。特に近年では計算機システムの普及に伴って障害対
応等の信頼性に対する要求も年々厳しいものとなってき
ている。
【0003】この耐障害性を確保する計算機システムの
構成法の一つとして、チェックポイントロールバック方
式が存在する。このチェックポイントロールバック方式
の計算機システムを実現する方法として、例えばUSP
−4740969「METHOD AND APPARATUS FOR RECOVER
ING FROM HARDWARE FAULTS」、或いは、Sequoia:A Faul
t-Tolerant Tightly Coupled Multiprocessor for Tran
saction Processing,IEEE Computer,February 1988 に
開示されるものがある。
【0004】これらが、どのようにしてチェックポイン
トロールバック方式を実現しているのかを図9を参照し
てその概略を説明する。尚、図中の実線はタイムフレー
ムを示す。
【0005】これらの技術は、計算機システムを構成す
るハードウェアの間欠故障からのシステムの回復に備
え、システムで稼働するプロセス或いはスレッドのロー
ルバック後の再実行に必要な情報を定期的に保存する。
【0006】この情報を保存する時点をチェックポイン
トと呼び、その情報を保存することをチェックポイント
の採取と呼ぶ(図9の(1),(2)参照)。計算機シ
ステムを構成するハードウェアの間欠故障の発生(図9
の(3)参照)によってプログラム実行が中断されたと
き、その中断されたプロセス或いはスレッドの状態は障
害発生前のチェックポイントまでロールバックされ(図
9の(4)参照)、プログラムは、そのチェックポイン
トから再実行される(図9の(5)参照)。
【0007】ここで上記チェックポイント採取処理で保
存される情報には、プロセッサの内部状態、キャッシュ
メモリ、メインメモリ等がある。計算機システムにこの
ような故障回復方式を具備することにより、ハードウェ
アの間欠故障が発生した場合に於いても、システムを停
止させることなく継続して運用することが可能となる。
【0008】一般に計算機システムに於ける障害には、
上記したようなハードウェアに起因するものと、ソフト
ウェアに起因するものが存在する。上記した従来技術に
於いては、回復の対象とする故障は、ハードウェアの間
欠故障であり、所謂ソフトウェアバグによる、次に挙げ
る各種の障害(以下これらの障害をまとめて「ソフトウ
ェア障害」と称す)がある。
【0009】その一つは回復が困難なシステムクラッシ
ュであり、他の一つはプロセッサ無限ループ状態といっ
たシステムクラッシュには至らないが、正常なシステム
稼働を阻害する不具合が発生した場合にシステムを継続
して運用することができないソフトウェア障害である。
【0010】従来では、このようなソフトウェアバグ等
に起因して発生するソフトウェア障害に対して、そのソ
フトウェア障害を除いてシステムを正常復帰させる有効
な回復機能をもつ技術が存在しなかった。
【0011】即ち、従来では、ハードウェア故障に起因
したハードウェア障害については回復を可能とする有効
な手段が存在したが、ソフトウェアバグに起因して発生
するソフトウェア障害については有効な回復手段が存在
しなかった。
【0012】
【発明が解決しようとする課題】上述したように、従来
では、ソフトウェアバグ等に起因して発生するソフトウ
ェア障害に対して、そのソフトウェア障害を除いてシス
テムを正常復帰させる有効な回復機能をもつ技術が存在
しなかった。
【0013】本発明は上記実情に鑑みなされたもので、
ハードウェアの間欠故障からの故障回復のみならず、ソ
フトウェア障害が発生した場合に於いても計算機システ
ムを継続して運用させ、システムの可用性を大幅に向上
させることができる故障回復機能を備えた計算横システ
および計算機システムのソフトウェア故障回復方法
提供することを目的とする。
【0014】
【課題を解決するための手段】本発明は、ソフトウェア
バグに起因して発生するシステムクラッシュ或いはプロ
セッサ無限ループ状態のようなシステムクラッシュには
至らないが正常なシステム稼働を阻害する状態となる所
謂ソフトウェア障害の発生を認識して、そのソフトウェ
ア障害の発生を認識した際、当該認識時点の状態情報及
び採取を有効に活用してソフトウェア障害の発生要因を
推定し、又はシステム環境を変化させる等の手段を用い
て、チェックポイント時点までロールバック後、システ
ムを再実行させることにより、前記ソフトウェアバグに
起因して発生するソフトウェア障害を回避することを特
徴とする。
【0015】本発明によれば、ソフトウェア障害の発生
を認識すると、障害発生時のシステム状況からその障害
発生要因を推定し、その推定した障害発生要因から障害
発生要因の回避方法を推定し、この推定された回避方法
をソフトウェア障害のリカバリ処理としてチェックポイ
ントにロールバック後に実施することによりプログラム
障害を容易に回復することが出来る。
【0016】また、本発明は上記目的を達成するため
に、ソフトウェア障害のリカバリ処理が2回目の場合、
障害要因を有するソフトウェアモジュールをシステムか
ら切り離すか、或いは、障害要因を誘発したと考えられ
るプロセス又はスレッドをシステムから抹消してシステ
ムを再実行することを特徴とする。 これにより、最初に
実施したソフトウェア障害の回避方法が有効でなく再び
ソフトウェア障害が発生した場合には、その障害要因を
取り除いてシステムを再実行することによりソフトウェ
ア障害の回復を行う。
【0017】また、本発明は上記目的を達成するため
に、ソフトウェア障害の回避方法が推定されていない場
合、ソフトウェア実行環境操作を実施してソフトウェア
の実行環境を変えてシステムを再実行することを特徴と
する。 これにより、ソフトウェア障害の回避方法が推定
できない場合には、ソフトウェアの実行環境を変えてシ
ステムを再実行させることによりソフトウェア障害の回
復を行う。
【0018】
【0019】
【0020】
【0021】
【0022】
【0023】
【0024】
【0025】
【0026】
【0027】
【0028】
【0029】
【0030】
【0031】
【0032】
【0033】
【0034】
【0035】
【0036】
【0037】
【0038】
【0039】
【0040】
【0041】
【0042】
【0043】
【0044】
【0045】
【0046】
【0047】
【0048】
【0049】
【発明の実施の形態】以下図面を参照して本発明の実施
の形態を説明する。図1は本発明の一実施の形態に係る
計算機システム全体の構成を示すブロック図である。
【0050】図1に於いて、10はシステムの制御を司
るプロセッサであり、20はプロセッサ10にバスを介
して接続された主記憶をなすメモリ、30は同じくバス
を介して接続された不揮発性メモリである。ここでは、
ソフトウェア障害発生時のシステムの状況、ソフトウェ
ア障害発生要因、ソフトウェア障害回避方法等の各情報
が、少なくとも、メモリ20のロールバックされないメ
モリ領域、又は不揮発性メモリ30のいずれかに記憶さ
れる。
【0051】100乃至108はそれぞれプロセッサ1
0がもつ故障回復機構を実現するためのオペレーティン
グシステムの構成要素をなすもので、100はシステム
のチェックポイントを採取するチェックポイント採取手
段、101は故障発生時にチェックポイントへロールバ
ックするチェックポイントロールバック手段、102は
システムを再スタートさせるシステム再実行手段であ
る。
【0052】103はハードウェア故障に起因したハー
ドウェア障害、或いはソフトウェアバグに起因したソフ
トウェア障害の発生時に、ハードウェア障害、或いはソ
フトウェア障害を切り分ける障害識別手段である。
【0053】104は前記障害識別手段103により当
該故障がソフトウェア障害と判断された場合に、障害発
生時のシステムの状況(プロセッサのレジスタ、スタッ
クの内容等)を記録するシステム状況記録手段である。
【0054】105はソフトウェア障害の発生時に当該
ソフトウェア障害に関する発生要因を推定するソフトウ
ェア障害発生要因推定手段、106は当該ソフトウェア
障害を回避する方法を推定するソフトウェア障害回避方
法推定手段である。
【0055】107は前記システム再実行手段102に
よるシステム再実行前に、前記ソフトウェア障害回避方
法推定手段106によって推定された、当該ソフトウェ
ア障害回避方法を実施するソフトウェア障害回避方法実
施手段である。
【0056】108は前記ソフトウェア障害発生要因推
定手段105により、当該ソフトウェア障害に関する発
生要因を推定することが困難な場合にロールバック後、
実施されるソフトウェア実行環境操作手段である。
【0057】メモリ20には、障害識別手段103によ
って、故障がソフトウェア障害であると判断された場
合、当該ソフトウェア障害発生時のシステムの状況(プ
ロセッサのレジスタ、スタックの内容等)が、前記シス
テム状況記録手段104によって記録されるソフトウェ
ア障害発生状況記録領域200、ソフトウェア障害発生
要因推定手段105によって推定された当該ソフトウェ
ア障害に関する発生要因が記録されるソフトウェア障害
発生要因ログ201、及び、当該ソフトウェア障害に関
してソフトウェア障害回避方法推定手段106によって
推定される当該ソフトウェア障害回避方法が記録される
ソフトウェア障害回避方法記録領域202等が設けられ
る。
【0058】不揮発性メモリ30には、上記ソフトウェ
ア障害発生状況記録領域200と同様の内容が記録され
るソフトウェア障害発生状況記録領域300、上記ソフ
トウェア障害発生要因ログ201と同様の内容が記録さ
れるソフトウェア障害発生要因ログ301、及び、上記
ソフトウェア障害回避方法記録領域202と同様の内容
が記録されるソフトウェア障害回避方法記録領域302
等が設けられる。
【0059】上記メモリ20と、不揮発性メモリ30と
は、計算機システムにその双方或いはいずれかを選択的
に具備することができる。但し、メモリ20を具備する
場合には、チェックポイントロールバックによって、ロ
ールバックされないメモリである必要がある。
【0060】図2は上記プロセッサ10上で動作する上
記一連の手段の関係を示すブロック図であり、図1と同
一部分に同一符号を付して示している。通常のシステム
運用に於いて、チェックポイント採取手段100は、チ
ェックポイント採取の条件が成立すると、システムのチ
ェックポイントを採取し、何等かの障害が発生した場合
に、チェックポイントロールバック手段101によりチ
ェックポイント時点にロールバックし、システム再実行
手段102によりチェックポイント時点からデータ処理
を再実行することにより耐障害性を実現する。
【0061】以上を念頭に、図3に示すフローチャート
を参照しながら故障発生に伴う本発明の第1の実施形態
に係る計算機システムの動作の流れを説明する。システ
ムに障害が発生すると、障害識別手段103は、発生し
た障害が、ハードウェア障害(ハードウェアの故障に起
因するもの)であるか、ソフトウェア障害(ソフトウェ
アのバグに起因するもの)であるかの切り分けを実施す
る(図3ステップS1)。
【0062】一般に、ハードウェア障害の検出は、ハー
ドウェア機構により実施され、故障割り込みによりソフ
トウェアに通知される。一方、ソフトウェア障害の検出
は、ソフトウェアによるロジック一貫性チェック(アサ
ートやパニックルーチン等)、或いはエクセプション等
により検出される。
【0063】前記障害識別手段103は、これら検出機
構を通じて実施され、障害の識別を行なう。ここで、故
障要因がハードウェア障害であると判断された場合に
は、チェックポイントロールバック手段101により、
システムのロールバックを実施する(図3ステップS
1,S8)。
【0064】この実施形態では、ハードウェア障害に関
する対応については、一般のチェックポイントロールバ
ック方式の計算機と同じであるため、その詳細な説明は
省略する。
【0065】故障要因がソフトウェア障害と判断された
場合には、システム状況記録手段104によって、障害
発生時のシステムの状況(プロセッサのレジスタ、スタ
ックの内容等)を、ソフトウェア障害発生状況記録領域
200,300に記録する(図3ステップS3)。尚、
オプションによって、この時点で、不具合発生時のシス
テムのメモリ、各種装置に関するデータ等のダンプを外
部記憶装置に書き出すことも可能である。
【0066】上記ソフトウェア障害に関して、ここでは
[故障回復に要するシステムリカバリ時間(ダウンタイ
ムの短縮化による早期回復)]、[不具合発生時、より
詳細なシステム情報の獲得]のいずれを必要とするかに
より、適宜、ユーザに処理を選択させる。
【0067】ソフトウェア障害発生要因推定手段105
は、当該ソフトウェア障害発生要因が推定できるか否か
を判断し(図3ステップS4)、推定が不可能場合、
チェックポイントロールバック手段101により、シス
テムのロールバックを実施する(図3ステップS8)。
【0068】又、当該ソフトウェア障害発生要因の推定
が可能な場合は、ソフトウェア障害発生要因推定手段1
05によって推定された当該ソフトウェア障害に関する
発生要因を、ソフトウェア障害発生要因ログ201,3
01に記録する(図3ステップS5)。
【0069】続いて、当該ソフトウェア障害を回避する
方法をソフトウェア障害回避方法推定手段106が推定
し(図3ステップS6)、当該ソフトウェア障害回避方
法を、ソフトウェア障害回避方法記録領域202,30
2に記録し(図3ステップS7)、チェックポイントロ
ールバック手段101により、システムのロールバック
を実施する(図3ステップS8)。
【0070】チェックポイントロールバック後、発生し
た障害が、ソフトウェアバグであるか、ハードウェア障
害であるかをステップS1に基づき判断し、ハードウェ
ア障害と判断された場合には、システム再実行手段10
2による再実行処理を実施する(図3ステッアS9、S
14)。
【0071】ソフトウェア障害の場合には、当該ソフト
ウェア障害に関する一連のリカバリ処理が初めて実施さ
れたか否かを判断し(図3ステップS11)、初めて実
される場合には、ソフトウェア障害回避方法推定手段
106による、当該ソフトウェア障害回避方法が推定さ
れているか否かを、ソフトウェア障害回避方法記録領域
202、302の情報より判断し(図3ステップS1
2)、推定されている場合には、前記ソフトウェア障害
回避方法記録領域202、302の情報から、当該ソフ
トウェア障害回避方法を、ソフトウェア障害回避方法実
施手段107により実施した後(図3ステップS1
3)、システム再実行手段102を実施する(図3ステ
ップS14)。
【0072】ソフトウェア障害回避方法推定手段106
により、当該ソフトウェア障害回避方法が推定されてい
ない場合には、ソフトウェア実行環境操作手段108を
実施した後(図3ステップS15)、システム再実行手
段102を実施する(図3ステップS14)。
【0073】当該ソフトウェア障害に関する一連のリカ
バリ処理が2回目の実施である場合(初めに実施したソ
フトウェア障害回避方法が有効でなく再びソフトウェア
障害が発生した場合)には(図3ステップS16)、
ペレーティングシステムは障害要因を有するソフトウェ
アモジュールをシステムから切り離すか、或いは、障害
要因を誘発したと考えられるプロセス(或いはスレッ
ド)をシステムから抹消する(図3ステップS17)。
【0074】当該ソフトウェア障害に関する一連のリカ
バリ処理が3回目以上の場合(2回目までに実施した処
理が有効でなく、再びソフトウェア障害が発生した場
合)には、オペレーティングシステムはシステムの再立
ち上げを実施する(図3ステップS18)。
【0075】次に図4に示すフローチャートを参照しな
がら故障発生に伴う本発明の第2実施形態に係る計算機
システムの動作の流れを説明する。システムに障害が発
生すると、障害識別手段103は、発生した障害がハー
ドウェア障害であるか、ソフトウェア障害であるかの切
り分けを実施する(図4ステップF1)。
【0076】故障要因がハードウェア障害と判断された
場合には、チェックポイントロールバック手段101に
より、システムのロールバックを実施する(図4ステッ
プF1,F8)。
【0077】故障要因がソフトウェア障害と判断された
場合には、システム状況記録手段104によって、障害
発生時のシステムの状況(プロセッサのレジスタ、スタ
ックの内容等)を、ソフトウェア障害発生状況記録領域
200,300に記録する(図4ステップF3)。尚、
オプションによって、この時点で、不具合発生時のシス
テムのメモリ、各種装置に関するデータ等のダンプを外
部記憶装置に書き出すことも可能である。
【0078】上記第1実施形態と同様に[故障回復に要
するシステムリカバリ時間(ダウンタイムの短縮化によ
る早期回復)]、[不具合発生時、より詳細なシステム
情報の獲得]のいずれを必要とするかにより、適宜、ユ
ーザに処理を選択させる。
【0079】ソフトウェア障害発生要因推定手段105
は、当該ソフトウェア障害発生要因が推定できるか否か
を判断し、推定が不可能の場合は、チェックポイントロ
ールバック手段101により、システムのロールバック
を実施する(図4ステップF4)。
【0080】又、当該ソフトウェア障害発生要因の推定
が可能な場合は、ソフトウェア障害発生要因推定手段1
05によって推定された当該ソフトウェア障害に関する
発生要因を、ソフトウェア障害発生要因ログ201,3
01に記録する(図4ステップF5)。
【0081】続いて、当該ソフトウェア障害を回避する
方法をソフトウェア障害回避方法推定手段106が推定
し(図4ステップF6)、当該ソフトウェア障害回避方
法を、ソフトウェア障害回避方法記録領域202,30
2に記録し(図4ステップF7)、チェックポイントロ
ールバック手段101により、システムのロールバック
を実施する(図4ステップF8)。
【0082】チェックポイントロールバック後、故障原
因がソフトウェア障害に起因するものであるか、ハード
ウェア障害に起因するものであるかをステップF1に基
づき判断し(図4ステップF9)、ハードウェア障害に
起因すると判断された場合には、システム再実行手段1
02を実施する(図4ステップF9、F14)。
【0083】故障原因がソフトウェア障害に起因する場
合には、オペレーティングシステムは当該ソフトウェア
障害による一連のリカバリ処理が規定回数「N」以内の
実施か否かを判断し(図4ステップF11)、規定回数
「N」以内の実施の場合には、ソフトウェア障害回避方
法推定手段106により、当該ソフトウェア障害回避方
法が推定されているか否かを、ソフトウェア障害回避方
法記録領域202、302の情報により判断し(図4ス
テップF12)、推定されている場合には、前記ソフト
ウェア障害回避方法記録領域202、302の情報か
ら、当該ソフトウェア障害回避方法をソフトウェア障害
回避方法実施手段107により実施した後(図4ステッ
プF13)、システム再実行手段102を実施する(図
4ステップF14)。
【0084】ソフトウェア障害回避方法推定手段106
により当該ソフトウェア障害回避方法が推定されていな
い場合には、ソフトウェア実行環境操作手段108を実
施した後(図4ステップF15)、システム再実行手段
102を実施する(図4ステップF14)。
【0085】当該ソフトウェア障害による一連のリカバ
リ処理が規定回数「N」以内の実施でない場合には、
ペレーティングシステムはシステムの立ち上げを実施す
る(図4ステップF16)。一つのソフトウェア障害発
生に関して、これがシステムから回避されるまでの間、
オペレーティングシステムは上記ステップF1乃至ステ
ッアF14の処理を、規定回数「N」回を上限に繰り返
し実施する。
【0086】一般に、第1のソフトウェア障害発生に関
して、第1の障害回避方法を実施し、システムを再実行
した後、第2のソフトウェア障害が発生する場合、その
発生要因は、第1のソフトウェア障害発生時の発生要因
と同一か或いは異なる要因となる。以降、規定回数
「N」以内の一連の処理については、個々に障害発生要
因を分析し各障害要因に応じた処理を個別に実施するこ
とを特徴とする。
【0087】次に、本発明の実施形態を具体的なソフト
ウェア障害を例に説明する。先ず、第1の具体的なソフ
トウェア障害を例に本発明の実施形態を説明する。この
実施形態では、仮想メモリに関するアクセスでエクセプ
ションが発生した場合に関する。
【0088】一般にページング機構を有するオペレーテ
ィングシステムでは、物理メモリ上に存在しない、仮想
メモリへのアクセスに関して、プロセッサからのページ
フォルトのエクセプションをトリガとして、該当ページ
を外部記憶装置等からローディング(ページイン)する
ことによりデマンドページングを実現している。
【0089】この場合、ページングの対象となる仮想メ
モリページでは、ページング入出力処理が可能な状況で
アクセスされなければならない。即ち、オペレーティン
グシステムの割込みハンドラ等、割り込みの延長として
プログラム実行される部分は、一般にページングの対象
としてはならず、ソフトウェアモジュールを作成する際
に、常に、物理メモリ上に常駐するように考慮する必要
がある。
【0090】一般に、上記割込みハンドラの物理ページ
への常駐処理の考慮を怠った場合、オペレーティングシ
ステムは、当該仮想メモリへのページイン処理を不可能
と判断し、システムをクラッシュさせる。
【0091】図5は、上記障害発生時に、本発明によっ
てどのように回復処理を実施するかを示す概念図であ
る。尚、図中の実線はタイムフレームを示す。チェック
ポイント採取後(図5の(1))、上記のような状況に
於いて、本来常駐されていて、その仮想ページに関する
アクセス時点(図5の(2))でページフォルトを発生
すべきでないページへのアクセスによりページフォルト
のエクセプションがプロセッサからオペレーティングシ
ステムに通知される(図5の(3))。
【0092】一般にオペレーティングシステムでは、前
記ページフォルトのエクセプション発生から、ページフ
ォルトハンドラが実施され、当該ページフォルトのエク
セプションによるページング処理が可能か否かのチェッ
クを実施する(図5の(4))。
【0093】このチェックは、ページフォルト発生時、
[仮想ページが割り込みハンドラである]、[割り込み
マスクがページング入出力で使用される割り込みより高
い]等の条件に合致する場合、ページング不可能と判断
する。
【0094】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどしてク
ラッシュ後、リブートされる。本発明の実施形態では、
前記ページング不可能と判断した後、その時点でのシス
テム状況(プロセッサのレジスタ、オペレーティングシ
ステムのスタック情報等)をロールバックされないメモ
(図1の200)或いは不揮発性の記憶装置(図1の
300)に記録し(図5の(5))、障害要因を解析す
るための情報を提供する。
【0095】前記記録されたログ情報から、前記ソフト
ウェア障害発生要因推定手段(図1、図2の符号10
5)当該ソフトウェア障害発生要因を推定してロール
バックされないメモリ(図1の201)或いは不揮発性
の記憶装置(図1の301)に記録し、前記ソフトウェ
ア障害回避方法推定手段(図1、図2の符号106)
記録された障害発生要因の推定情報からリカバリ処理と
して実施すべき動作を推定し、その動作をロールバック
されないメモリ(図1の202)或いは不揮発性の記憶
装置(図1の302)に記録する(図5の(6))。
【0096】その後、チェックポイント時点までロール
バックする(図5の(7))。ロールバック後、前記リ
カバリ処理として推定され、ロールバックされないメモ
(図1の202)或いは不揮発性の記憶装置(図1の
302)に記録された動作を、前記ソフトウェア障害回
避方法実施手段(図1、図2の符号107)が実行する
(図5の(8))。
【0097】この実施形態の場合には、当該ソフトウェ
ア障害回避方法実施手段(図1、図2の符号107)
は、先にページフォルトのエクセプションが発生した仮
想ページをページインするものである。
【0098】この後、システム再実行手段(図1、図2
の符号102)によりシステムをチェックポイント時点
から再スタートさせる(図5の(9))。これらの処理
を実施することにより、再実行によりページフォルトが
発生した当該仮想ページに関するアクセスが再び発生し
た場合に於いて(図5の(10))、ページフォルトの
発生を抑止し、システムクラッシュを回避することによ
り良好なシステム運用を可能とするものである。
【0099】次に、第2の具体的なソフトウェア障害を
例に本発明の実施形態を説明する。この実施形態では、
マルチプロセッサ環境に於ける排他制御処理で同一のス
ピンロックを二重に確保することによるデッドロックに
関する。
【0100】図6は、上記障害発生時に、本発明によっ
てどのように回復処理を実施するかを示す概念図であ
る。尚、図中の実線はタイムフレームを示す。チェック
ポイント採取後(図6の(1))、同一のスピンロック
を二重に確保することによるデッドロックが発生(図6
の(2))し、スピンロック処理に予め規定されたスピ
ンロックカウンタを設け、このカウンタのオーバフロー
によりデッドロックを検出するデッドロック故障検出処
理を具備することにより、デッドロック発生時に、オペ
レーティングシステムに故障発生を通知する(図6の
(3))。
【0101】この際、システム状況記録手段104は
ッドロックが発生したこと、デッドロックが発生したロ
ックの種頬、デッドロック発生に至ったオペレーティン
グシステムでの関数の呼び出し状況等を前記ロールバッ
クされないメモリ(図1の200)或いは不揮発性の記
憶装置(図1の300)に記録し、障害要因を解析する
ための情報を提供する。
【0102】前記記録されたログ情報から、前記ソフト
ウェア障害発生要因推定手段105は当該ソフトウェア
障害発生要因を推定してロールバックされないメモリ
(図1の201)或いは不揮発性の記憶装置(図1の3
01)に記録し、前記ソフトウェア障害回避方法推定手
106は、記録された障害発生要因の推定情報から
カバリ処理として実施すべき動作を推定し、その動作を
ロールバックされないメモリ(図1の202)或いは不
揮発性の記憶装置(図1の302)に記録する(図6の
(4))。
【0103】その後、チェックポイント時点までロール
バックする(図6の(5))。 ロールバック後、前記
リカバリ処理として推定され、ロールバックされないメ
モリ(図1の202)或いは不揮発性の記憶装置(図1
の302)に記録された動作を前記ソフトウェア障害回
避方法実施手段(図1、図2の符号107)が実行する
(図6の(6))。
【0104】この実施形態の場合には、当該ソフトウェ
ア障害回避方法実施手段(図1、図2の符号107)
は、システムをシングルプロセッサモードに移行する
(例えば、単一のプロセッサに全てのスレッドをバイン
ド、ロック処理プリミティブ関数を、ロック変数を操作
しない割り込みマスク処理関数に変更する)等の処理を
実施する。
【0105】この後、システム再実行手段(図1、図2
の符号102)によりシステムをチェックポイント時点
から再スタートさせる(図6の(7))。これらの処理
を実施することにより、再実行により同一のロックを二
重に確保することが再び発生した場合に於いて(図6の
(8))、デッドロックの発生を抑止し、プロセッサ無
限ループ状態のようなシステムクラッシュには至らない
が正常なシステム稼働を阻害するソフトウェア障害を回
避して、良好なシステム運用を可能とする。
【0106】尚、或る時間を経過して、前記ソフトウェ
ア障害が回避された後は、シングルプロセッサモードか
らマルチプロセッサモードに戻し、計算機システムを通
常の状態に戻す(図6の(9))。
【0107】次に、第3の具体的なソフトウェア障害を
例に本発明の実施形態を説明する。この実施形態では、
ソフトウェアモジュールでのロジックミスによる、デー
タ破壊等のソフトウェア障害発生に関する。
【0108】図7は上記障害発生時に本発明によってど
のように回復処理を実施するかを示す概念図である。
尚、図の実線はタイムフレームを示す。チェックポイン
ト採取後(図7の(1))、或るソフトウェアモジュー
ルでのロジックミスにより、データ破壊が発生し(図7
の(2))し、これを原因として、不正アドレスへのア
クセスによるエクセプションの発生、或いは、ソフトウ
ェアによるロジック一貫性チェックルーチン(アサート
やパニックルーチン等)によりソフトウェア障害が検出
され(図7の(3))、オペレーティングシステムに通
知される(図7の(4))。
【0109】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどして、
クラッシュ後、リブートされる。本発明の実施形態で
は、この時点でのシステム状況(プロセッサのレジス
タ、オペレーティングシステムのスタック情報等)をロ
ールバックされないメモリ(図1の200)或いは不揮
発性の記憶装置(図1の300)に記録し(図7の
(5))、障害要因を解析するための情報を提供する。
【0110】前記記録されたログ情報から、前記ソフト
ウェア障害発生要因推定手段(図1、図2の符号10
5)を介して、当該ソフトウェア障害発生要因の推定を
試みる。
【0111】一般にこの実施形態にあるような、ソフト
ウェアモジュールのロジックミスによるデータ破壊に関
しては、前記第1及び第2実施形態にあるような典型的
な障害要因の推定は困難である。
【0112】そこで、この種の障害発生要因を推定する
ことが困難な状況に於いては、チェックポイント時点ま
でロールバック(図7の(6))した後、前記ソフトウ
ェア実行環境操作手段により、[シングルプロセッサモ
ードへ移行(全てのスレッド、資源を単一プロセッサに
バインド)]、[稼働していたスレッドのスタック上の
自動変数領域をクリア(自動変数の初期化忘れを回
避)]、[システムで使用するリソースの補充(リソー
ス枯渇によるクラッシュ回避)]、[入出力要求発行の
タイミングを調整(入出力要求に伴う発行タイミング、
割込みタイミングの変更による障害発生ケースの回
避)]等、ソフトウェア障害の発生するタイミングを変
化させることにより、前記ソフトウェア障害発生要因を
回避する可能性のある一連のソフトウェア障害回避方法
を実施(図7の(7))した後、システム再実行手段
(図1、図2の符号102)により、システムをチェッ
クポイント時点から再スタートさせる(図7の(8))
手続きを介して、ソフトウェア実行環境を操作すること
により、ソフトウェア障害発生を回避する。
【0113】以上の一連の処理を実施後、再度ソフトウ
ェア障害に起因した故障が発生する場合も考えられる。
このような状況に於ける処理方法については、次に示す
第4の具体的なソフトウェア障害を例にした本発明の実
施形態に於ける障害回避処理を実施する。
【0114】次に、第4の具体的なソフトウェア障害を
例に本発明の実施形態を説明する。この実施の形態で
は、前記第3の具体的なソフトウェア障害を例にした実
施形態によるソフトウェア障害回避策を適用した後、再
びソフトウェア障害が発生して、ソフトウェア障害を回
避することが困難な状況にある場合に関する。
【0115】図8は、上記障害発生時に本発明によって
どのように回復処理を実施するかを示す概念図である。
尚、図中の実線はタイムフレームを示す。前記第3の具
体的なソフトウェア障害を例にした実施形態によるソフ
トウェア障害回避処理を実施後、再びソフトウェア障害
が発生(図8(2))し、これを原因とした不正アドレ
スへのアクセスによるエクセプションの発生、或いはソ
フトウェアによるロジック一貫性チェックルーチン(ア
サートやパニックルーチン等)によりソフトウェア障害
が検出され(図8の(3))、オペレーティングシステ
ムに通知される(図8の(4))。
【0116】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどして、
クラッシュ後、リブートされる。本発明の実施形態で
は、この時点でのシステム状況(プロセッサのレジス
タ、オペレーティングシステムのスタック情報等)をロ
ールバックされないメモリ(図1の200)或いは不揮
発性の記憶装置(図1の300)に記録し(図8の
(5))、障害要因を解析するための情報を提供する。
【0117】チェックポイント時点までロールバック
(図8(6))後、この時点で、今回発生のソフトウェ
ア障害が、既に一連の回避策を実施後に、再び発生した
ものと判断されると(既に一連の回避策を実施したこと
はフラグなどにより管理する)(図8の(7))、[不
具合を発生させたソフトウェアモジュールをシステムか
ら切り離す。]、[不具合を誘発させたと考えられるプ
ロセス(或いはスレッド)をシステムから抹消する。]
等の処理を実施(図8の(8))した後、システム再実
行手段(図1、図2の符号102)によりシステムをチ
ェックポイント時点から再スタートさせる(図8の
(9))ことにより、ソフトウェアの不具合発生を回避
する。
【0118】尚、上記[不具合を発生させたソフトウェ
アモジュールをシステムから切り離す。]手段によりシ
ステムから切り離されたソフトウェアモジュールは、前
記システム状況(ロールバックされないメモリ或いは不
揮発性の記憶装置に記録)から、ソフトウェア障害要因
に関する原因究明、ソフトウェアモジュールの修正を実
施した後、修正されたソフトウェアモジュールに動的か
つシステム停止を伴うことなく切り替え可能である。
【0119】例えば、UNIXオペレーティングシステ
ムでは、個々のデバイスドライバに関する入出力インタ
フェースは、デバイススイッチテーブルと呼ばれる共通
の構造を有しており、このテーブル上の当該デバイスド
ライバエントリを変更、デバイスドライバの使用してい
るリソースの解放、等の処理を実施することにより、シ
ステムからの切り離しが可能となる。
【0120】尚、これらの処理を実施しても、再びソフ
トウェア障害が発生する場合には、システム再立ち上げ
を実施することにより、一連のソフトウェア障害回避処
理が無限に実施されることを回避する。
【0121】以上、具体的なソフトウェア障害を例に本
発明の実施形態を説明したが、前記チェックポイント採
取手段100によって採取されるチェックポイント時の
システムの状態は、「安定した状態」であることが望ま
しい。ここで、「安定した状態」とは次にあげるような
条件を満たす状態である。 (1)割り込み処理中でない。 (2)スピンロックを獲得していない。 (3)入出力要求を処理中でない。
【0122】その理由は、例えば(2)について、スピ
ンロックを獲得した状態でチェックポイントが採取され
たことを許容すると、前記した具体的なソフトウェア障
害を例に示した第2の具体的なソフトウェア障害の例に
あるようなマルチプロセッサ環境に於ける排他制御処理
で同一のスピンロックを二重に確保することによるデッ
ドロック状態が発生後、チェックポイントが採取され、
その後、デッドロック発生が検出されるような状況に於
いては、ロールバック後のシステムの状態は、デッドロ
ック状態のままであり、チェックポイントロールバック
しても、デッドロック状態を抜け出すことが不可能とな
り、ソフトウェア障害を回避することが困難となるため
である。
【0123】上記(1)乃至(3)を考慮したチェック
ポイント採取方式は、例えば特願平8−15660号
(計算機システム)に開示されている。尚、この計算機
システムに於けるチェックポイント採取は、故障などに
よって処理が中断された場合に備え、その中断された処
理を再開始するためのチェックポイントを定期的に取得
しながら処理を進めていく耐障害性の計算機システムに
おいて、前記チェックポイントを取得するチェックポイ
ント取得プロセスを前記計算機システムのもつプロセッ
サそれぞれに対応して設け、前記チェックポイントの取
得時に、前記チェックポイント取得プロセスを実行可能
状態とし、そのチェックポイント取得プロセスが前記チ
ェックポイントを取得した後に、そのチェックポイント
取得プロセスを再度待機状態とする手段を具備してなる
ことを特徴とする。また、故障などによって処理が中断
された場合に備え、その中断された処理を再開始するた
めのチェックポイントを定期的に取得しながら処理を進
めていく耐障害性の計算機システムにおいて、前記計算
機システムを制御するオペレーティングシステムのディ
スパッチャに、前記チェックポイントを取得する手段を
設け、前記ディスパッチャは、前記計算機システムのも
つプロセッサそれぞれで実行中である処理すべてが完結
した際に前記チェックポイントを取得することを特徴と
する。この発明によれば、チェックポイントは、必ずチ
ェックポイント取得プロセスの実行中、あるいはプロセ
ッサがいずれの処理も実行していない状態でのディスパ
ッチャ中でのみ取得されることになり、従来のチェック
ポイントの取得方式では考慮する必要のあった、ロック
ランアウト機構が不要になり、チェックポイント採取機
能を含むオペレーティングシステムが大幅に簡単化でき
る。
【0124】
【発明の効果】以上、詳記したように本発明によれば、
ソフトウェア障害の発生を認識すると、障害発生時のシ
ステム状況からその障害発生要因を推定し、その推定し
た障害発生要因から障害発生要因の回避方法を推定し、
この推定された回避方法をソフトウェア障害のリカバリ
処理としてチェックポイントにロールバック後に実施す
ることにより、ハードウェアの間欠故障からの故障回復
のみならず、ソフトウェア障害が発生した場合において
も計算機システムを継続して運用させ、システムの可用
性を大幅に向上させることが出来る。また、最初に実施
したソフトウェア障害の回避方法が有効でなく再びソフ
トウェア障害が発生した場合には、その障害要因を取り
除いてシステムを再実行することによりソフトウェア障
害の回復を行うことが出来る。更に、ソフトウェア障害
の回避方法が推定できない場合には、ソフトウェアの実
行環境を変えてシステムを再実行させることによりソフ
トウェア障害の回復を行うことが出来る。
【0125】
【0126】
【0127】
【0128】
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
【0136】
【0137】
【0138】
【0139】
【0140】
【0141】
【0142】
【0143】
【0144】
【図面の簡単な説明】
【図1】本発明の実施形態に係る計算機システム全体の
構成を示すブロック図。
【図2】本発明の実施形態に係る一連の手段の関係を示
すブロック図。
【図3】本発明の第1実施形態に係る計算機システムの
動作の流れを説明するためのフローチャート。
【図4】本発明の第2実施形態に係る計算機システムの
動作の流れを説明するためのフローチャート。
【図5】本発明の実施形態に於ける、第1の具体的なソ
フトウェア障害を例に示す動作概念図。
【図6】本発明の実施形態に於ける、第2の具体的なソ
フトウェア障害を例に示す動作概念図。
【図7】本発明の実施形態に於ける、第3の具体的なソ
フトウェア障害を例に示す動作概念図。
【図8】本発明の実施形態に於ける、第4の具体的なソ
フトウェア障害を例に示す動作概念図。
【図9】チェックポイントロールバック方式の概念を示
す図。
【符号の説明】
10…プロセッサ、 20…メモリ、 30…不揮発性メモリ、 100…チェックポイント採取手段、 101…チェックポイントロールバック手段、 102…システム再実行手段、 103…障害識別手段、 104…システム状況記録手段、 105…ソフトウェア障害発生要因推定手段、 106…ソフトウェア障害回避方法推定手段、 107…ソフトウェア障害回避方法実施手段、 108…ソフトウェア実行環境操作手段、 200…ソフトウェア障害発生状況記録領域、 201…ソフトウェア障害発生要因ログ、 202…ソフトウェア障害回避方法記録領域、 300…ソフトウェア障害発生状況記録領域、 301…ソフトウェア障害発生要因障害識別手段、 302…ソフトウェア障害回避方法記録領域。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−125389(JP,A) 特開 平6−131208(JP,A) 特開 昭48−47238(JP,A) 特開 平4−171517(JP,A) 特開 平3−122753(JP,A) 特開 平8−30476(JP,A) 特公 平7−117903(JP,B2) (58)調査した分野(Int.Cl.7,DB名) G06F 11/14 - 11/22 G06F 11/00 G06F 11/34 G06F 15/16 - 15/177

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 システムに障害が発生したとき障害発生
    前の状態からデータ処理を再実行することにより耐障害
    性を実現するチェックポイントロールバック方式による
    故障回復機構を有する計算機システムであって、 システムに障害が発生したとき、当該障害がソフトウェ
    アバグに起因して発生するソフトウェア障害であること
    を識別する障害識別手段と、 前記障害識別手段でソフトウェア障害の発生を認識した
    時、障害発生時のシステムの状況をメモリに記録するシ
    ステム状況記録手段と、 前記システム状況記録手段により記録された情報をもと
    ソフトウェア障害に関する発生要因を推定してメモ
    リに記録するソフトウェア障害発生要因推定手段と、 前記ソフトウェア障害発生要因推定手段により記録され
    た障害発生要因をもとに、ソフトウェア障害発生要因に
    関する回避方法を推定してメモリに記録するソフトウェ
    ア障害回避方法推定手段と、 前記ソフトウェア障害回避方法推定手段により記録され
    前記ソフトウェア障害発生要因に関する回避方法に従
    う障害回避アクションをロールバック後に実施するソフ
    トウェア障害回避方法実施手段とを具備し、 システムにソフトウェア障害が発生したとき、システム
    を再実行して、ソフトウェアバグ等に起因して発生する
    ソフトウェア障害を回避する故障回復機能を備えたこと
    を特徽とする計算機システム。
  2. 【請求項2】 システムに障害が発生したとき障害発生
    前の状態からデータ処理を再実行することにより耐障害
    性を実現するチェックポイントロールバック方式による
    故障回復機構を有する計算機システムであって、 システムに障害が発生したとき、当該障害がソフトウェ
    アバグに起因して発生するソフトウェア障害であること
    を識別する障害識別手段と、 前記障害識別手投でソフトウェア障害の発生を認識した
    とき障害発生時のシステムの状況をメモリに記録するシ
    ステム状況記録手段と、 前記システム状況記録手段により記録された情報をもと
    にソフトウェア障害に関する発生要因を推定してメモリ
    に記録するソフトウェア障害発生要因推定手段と、 前記ソフトウェア障害発生要因推定手段により記録され
    た障害発生要因から、ソフトウェア障害発生要因に関す
    る回避方法を推定してメモリに記録するソフトウェア障
    害回避方法推定手段と、 前記ソフトウェア障害回避方法推定手段により記録され
    前記ソフトウェア障害発生要因に関する回避方法をロ
    ールバック後に実施するソフトウェア障害回避方法実施
    手段と、 前記システム状況記録手段により記録された情報をもと
    に、ロールバック後の再実行時に於けるプログラム実行
    環境を変化させるソフトウェア実行環境操作手段とを具
    備し、 ソフトウェア障害の発生時に於いて前記ソフトウェア障
    害に関する発生要因の推定による回避方法の推定が困難
    な場合に前記ソフトウェア実行環境操作手段によりソフ
    トウェア実行環境を操作した後、システムを再実行し
    て、ソフトウェアバグに起因して発生するソフトウェア
    障害を回避することを特徴とする計算機システム。
  3. 【請求項3】 前記メモリはロールバックされないメモ
    リ或いは不揮発性の記憶装置であることを特徴とする請
    求項1又は2記載の計算機システム。
  4. 【請求項4】 前記ソフトウェア障害回避方法実施手段
    又は前記ソフトウェア実行環境操作手投による動作をソ
    フトウェア障害が回避されるまで規定回数内で繰り返し
    実施して、障害回復が出来ない場合システムを再立ち上
    げすることを特徴とする請求項1又は2記載の計算機シ
    ステム。
  5. 【請求項5】 前記ソフトウェア障害回避方法実施手段
    又は前記ソフトウェア実行環境操作手段を実施し、シス
    テムを再実行した後に於いて、再びソフトウェア障害が
    出現した場合、障害要因を有するソフトウェアモジュー
    ルをシステムから切り離した後、システムを再実行する
    ことを特徴とする請求項1又は2記載の計算機システ
    ム。
  6. 【請求項6】 前記ソフトウェア障害回避方法実施手段
    又は前記ソフトウェア実行環境操作手段を実施し、シス
    テムを再実行した後に於いて、再びソフトウェア障害が
    出現した場合、ソフトウェア障害を誘発させたプロセス
    或いはスレッドをシステムから抹消した後、システムを
    再実行することを特徴とする請求項1又は2記載の計算
    機システム。
  7. 【請求項7】 システムから切り離されたソフトウェア
    モジュールは、システム稼動状態に於いて、障害要因を
    有するソフトウェアモジュールから障害要因を除去した
    ソフトウェアモジュールに修正後、入れ替えることを特
    徴とする請求項記載の計算機システム。
  8. 【請求項8】 前記ソフトウェア障害回避方法実施手段
    又は前記ソフトウェア実行環境操作手段による動作をソ
    フトウェア障害が回避されるまで規定回数内で繰り返し
    実施した後に於いて、再びソフトウェア障害が出現した
    場合、システムの再立ち上げを実施することを特徴とす
    請求項記載の計算機システム。
  9. 【請求項9】 前記ソフトウェア障害回避方法実施手段
    は、ソフトウェア障害発生要因が、物理メモリ上にロー
    ドされていない仮想メモリヘのアクセスであると前記
    フトウェア障害発生要因推定手段により推定され、前記
    ソフトウェア障害回避方法推定手段により、当該ソフト
    ウェア障害発生要因に関する回避方法として、仮想ペー
    ジをページインできるように物理メモリを確保するよう
    推定して記録されたときその記録された回避方法を実
    施することを特徴とする請求項1又は記載の計算機シ
    ステム。
  10. 【請求項10】 システムに障害が発生したとき障害発
    生前の状態からデータ処理を再実行することにより耐障
    害性を実現するチェックポイントロールバック方式によ
    る故障回復機構を有する計算機システムのソフトウェア
    故障回復方法であって、 システムに障害が発生した時、当該障害がソフトウェア
    バグに起因して発生するソフトウェア障害であることを
    認識した時、障害発生時のシステムの状況をメモリに記
    録し、 記録されたシステムの状況をもとにソフトウェア障害発
    生要因の推定が可能な場合、ソフトウェア障害に関する
    発生要因を推定して、その推定された発生要因をメモリ
    に記録し、 記録されたソフトウェア障害の発生要因をもとに、その
    ソフトウェア障害発生要因に関する回避方法を推定し
    て、その回避方法をメモリに記録し、 チェックポイントにロールバックされた後に、初めての
    ソフトウェア障害のリカバリ処理であると判断された場
    合、記録された回避方法に従う障害回避を実施してシス
    テムを再実行することを特徽とする計算機システムのソ
    フトウェア障害回復方法。
  11. 【請求項11】 前記ソフトウェア障害のリカバリ処理
    が2回目の場合、障害要因を有するソフトウェアモジュ
    ールをシステムから切り離すか、或いは、障害要因を誘
    発したと考えられるプロセス又はスレッドをシステムか
    ら抹消してシステムを再実行することを特徴とする請求
    項10記載の計算機システムのソフトウェア障害回復方
    法。
  12. 【請求項12】 前記ソフトウェア障害のリカバリ処理
    が規定回数以上の場合、システムの再立ち上げを実施す
    ることを特徴とする請求項10記載の計算機システムの
    ソフトウェア障害回復方法。
  13. 【請求項13】 前記ソフトウェア障害の回避方法が推
    定されていない場合、ソフトウェア実行環境操作を実施
    してソフトウェアの実行環境を変えてシステムを再実行
    することを特徴とする請求項10記載の計算機システム
    のソフトウェア障害回復方法。
JP8062840A 1996-03-19 1996-03-19 計算機システムおよび計算機システムのソフトウェア故障回復方法 Expired - Fee Related JP3072048B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP8062840A JP3072048B2 (ja) 1996-03-19 1996-03-19 計算機システムおよび計算機システムのソフトウェア故障回復方法
CN97104512A CN1164708A (zh) 1996-03-19 1997-03-18 计算机系统及其软件故障恢复方法
US08/820,718 US5948112A (en) 1996-03-19 1997-03-18 Method and apparatus for recovering from software faults
KR1019970009258A KR970066876A (ko) 1996-03-19 1997-03-19 계산기 시스템 및 그 소프트웨어 고장 회복 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8062840A JP3072048B2 (ja) 1996-03-19 1996-03-19 計算機システムおよび計算機システムのソフトウェア故障回復方法

Publications (2)

Publication Number Publication Date
JPH09258995A JPH09258995A (ja) 1997-10-03
JP3072048B2 true JP3072048B2 (ja) 2000-07-31

Family

ID=13211916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8062840A Expired - Fee Related JP3072048B2 (ja) 1996-03-19 1996-03-19 計算機システムおよび計算機システムのソフトウェア故障回復方法

Country Status (4)

Country Link
US (1) US5948112A (ja)
JP (1) JP3072048B2 (ja)
KR (1) KR970066876A (ja)
CN (1) CN1164708A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
US8335901B2 (en) 2010-06-30 2012-12-18 Kabushiki Kaisha Toshiba Information processing apparatus and data restoration method

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3253883B2 (ja) * 1997-01-31 2002-02-04 株式会社東芝 プロセスリスタート方法及びプロセス監視装置
US6275955B1 (en) * 1997-05-14 2001-08-14 Steeplechase Software, Inc. Diagnostic software for facilitating flowchart programming
US6134566A (en) * 1997-06-30 2000-10-17 Microsoft Corporation Method for controlling an electronic mail preview pane to avoid system disruption
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
US6732357B1 (en) 1997-12-12 2004-05-04 International Business Machines Corporation Determining and compensating for temporal overhead in trace record generation and processing
US6158024A (en) * 1998-03-31 2000-12-05 International Business Machines Corporation Method and apparatus for structured memory analysis of data processing systems and applications
US6546548B1 (en) 1997-12-12 2003-04-08 International Business Machines Corporation Method and system for compensating for output overhead in trace data using initial calibration information
US6513155B1 (en) 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
US6662358B1 (en) 1997-12-12 2003-12-09 International Business Machines Corporation Minimizing profiling-related perturbation using periodic contextual information
US6560773B1 (en) 1997-12-12 2003-05-06 International Business Machines Corporation Method and system for memory leak detection in an object-oriented environment during real-time trace processing
US6751789B1 (en) 1997-12-12 2004-06-15 International Business Machines Corporation Method and system for periodic trace sampling for real-time generation of segments of call stack trees augmented with call stack position determination
US6308270B1 (en) * 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
FR2784475B1 (fr) * 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
US6401216B1 (en) * 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6393583B1 (en) 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
JP2001027951A (ja) 1999-07-14 2001-01-30 Fujitsu Ltd マルチプロセッサ構成の情報処理システムにおけるファイルロード装置と記録媒体
US7761857B1 (en) 1999-10-13 2010-07-20 Robert Bedichek Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts
US7111307B1 (en) 1999-11-23 2006-09-19 Microsoft Corporation Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
JP2001249828A (ja) * 1999-12-28 2001-09-14 Toshiba Lsi System Support Kk 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム
US6594821B1 (en) 2000-03-30 2003-07-15 Transmeta Corporation Translation consistency checking for modified target instructions by comparing to original copy
US6728907B1 (en) * 2000-04-14 2004-04-27 Microsoft Corporation System and method for self-diagnosing system crashes
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
US6785848B1 (en) * 2000-05-15 2004-08-31 Microsoft Corporation Method and system for categorizing failures of a program module
US6701454B1 (en) * 2000-06-05 2004-03-02 Microsoft Corporation Method and system for recovering information during a program failure
US6691250B1 (en) 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US6681348B1 (en) * 2000-12-15 2004-01-20 Microsoft Corporation Creation of mini dump files from full dump files
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US7168008B2 (en) * 2002-01-18 2007-01-23 Mobitv, Inc. Method and system for isolating and protecting software components
US6961874B2 (en) * 2002-05-20 2005-11-01 Sun Microsystems, Inc. Software hardening utilizing recoverable, correctable, and unrecoverable fault protocols
US7058849B2 (en) * 2002-07-02 2006-06-06 Micron Technology, Inc. Use of non-volatile memory to perform rollback function
US7318171B2 (en) * 2003-03-12 2008-01-08 Intel Corporation Policy-based response to system errors occurring during OS runtime
US7310723B1 (en) 2003-04-02 2007-12-18 Transmeta Corporation Methods and systems employing a flag for deferring exception handling to a commit or rollback point
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US7225448B2 (en) * 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US7356665B2 (en) * 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US20050204199A1 (en) * 2004-02-28 2005-09-15 Ibm Corporation Automatic crash recovery in computer operating systems
US7684654B2 (en) * 2004-06-30 2010-03-23 General Electric Company System and method for fault detection and recovery in a medical imaging system
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
US7984220B2 (en) * 2004-09-02 2011-07-19 International Business Machines Corporation Exception tracking
CN100343816C (zh) * 2004-09-24 2007-10-17 华为技术有限公司 恢复单板软件版本的方法
US7823021B2 (en) * 2005-05-26 2010-10-26 United Parcel Service Of America, Inc. Software process monitor
US7558986B2 (en) * 2005-05-26 2009-07-07 United Parcel Service Of America, Inc. Software process monitor
US8332826B2 (en) * 2005-05-26 2012-12-11 United Parcel Service Of America, Inc. Software process monitor
US8078919B2 (en) * 2005-06-14 2011-12-13 Hitachi Global Storage Technologies Netherlands B.V. Method, apparatus and program storage device for managing multiple step processes triggered by a signal
US8413162B1 (en) * 2005-06-28 2013-04-02 Guillermo J. Rozas Multi-threading based on rollback
WO2007006592A2 (en) * 2005-07-12 2007-01-18 International Business Machines Corporation Method and system for reconfiguring functional capabilities in a data processing system with dormant resources
WO2007015800A1 (en) * 2005-07-20 2007-02-08 Wms Gaming Inc. Master control program for a gaming device
US7702966B2 (en) * 2005-09-07 2010-04-20 Intel Corporation Method and apparatus for managing software errors in a computer system
US7823029B2 (en) * 2005-09-07 2010-10-26 International Business Machines Corporation Failure recognition, notification, and prevention for learning and self-healing capabilities in a monitored system
US20070174484A1 (en) * 2006-01-23 2007-07-26 Stratus Technologies Bermuda Ltd. Apparatus and method for high performance checkpointing and rollback of network operations
US7962798B2 (en) * 2006-04-17 2011-06-14 The Trustees Of Columbia University In The City Of New York Methods, systems and media for software self-healing
US8924782B2 (en) * 2007-01-26 2014-12-30 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for recovering an application from a fault or attack
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
CN101290577A (zh) * 2007-04-20 2008-10-22 鸿富锦精密工业(深圳)有限公司 嵌入式设备及其加载方法
JP4838226B2 (ja) * 2007-11-20 2011-12-14 富士通株式会社 ネットワークロギング処理プログラム,情報処理システムおよびネットワークロギング情報自動退避方法
US8281185B2 (en) * 2009-06-30 2012-10-02 Oracle America, Inc. Advice-based feedback for transactional execution
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
US9038048B2 (en) 2010-07-22 2015-05-19 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for protecting applications from races
JP5736757B2 (ja) * 2010-12-10 2015-06-17 セイコーエプソン株式会社 印刷装置、及び、印刷方法
US9448895B2 (en) * 2011-04-21 2016-09-20 International Business Machines Corporation Recording activity of software threads in a concurrent software environment
US9489251B2 (en) * 2011-12-06 2016-11-08 Bio-Rad Laboratories, Inc. Supervising and recovering software components associated with medical diagnostics instruments
JP2014119964A (ja) * 2012-12-17 2014-06-30 Hitachi Ltd 計算機システムおよびプログラム
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
CN103150222B (zh) * 2013-01-28 2016-02-10 中兴通讯股份有限公司 嵌入式系统异常恢复的方法和装置
TWI528173B (zh) * 2013-10-25 2016-04-01 緯創資通股份有限公司 自動除錯與防錯方法、裝置與電腦程式產品
US9652338B2 (en) 2013-12-30 2017-05-16 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
ES2652262T3 (es) 2013-12-30 2018-02-01 Stratus Technologies Bermuda Ltd. Método de retardar puntos de comprobación inspeccionando paquetes de red
US9645879B2 (en) * 2014-02-27 2017-05-09 International Business Machines Corporation Salvaging hardware transactions with instructions
CN103914523A (zh) * 2014-03-24 2014-07-09 小米科技有限责任公司 页面回退控制方法及装置
US9679076B2 (en) 2014-03-24 2017-06-13 Xiaomi Inc. Method and device for controlling page rollback
GB2542370B (en) * 2015-09-16 2020-05-27 Arm Ip Ltd A system for monitoring a plurality of distributed devices
JP6866724B2 (ja) * 2017-03-28 2021-04-28 日本電気株式会社 分散コンピューティングシステム、処理選択装置、処理選択方法及びプログラム
EP3614216B1 (en) * 2017-06-15 2022-11-23 Hitachi, Ltd. Controller
CN109032022B (zh) * 2018-08-08 2021-01-15 江苏拓米洛环境试验设备有限公司 试验箱报警秒接续程序智能无缝衔接运转方法
CN109254877A (zh) * 2018-09-11 2019-01-22 广州骏凯永卓信息科技有限公司 一种企业用计算机软件故障的监测维修系统
CN110083488B (zh) * 2019-04-21 2023-03-17 哈尔滨工业大学 一种面向gpgpu的细粒度低开销的容错系统
CN113625696B (zh) * 2021-08-31 2023-03-24 东风商用车有限公司 车载控制器过流保护的安全处理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222952A (ja) * 1993-01-27 1994-08-12 Toshiba Corp デバッグ支援装置
US5590277A (en) * 1994-06-22 1996-12-31 Lucent Technologies Inc. Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
US8335901B2 (en) 2010-06-30 2012-12-18 Kabushiki Kaisha Toshiba Information processing apparatus and data restoration method

Also Published As

Publication number Publication date
US5948112A (en) 1999-09-07
KR970066876A (ko) 1997-10-13
JPH09258995A (ja) 1997-10-03
CN1164708A (zh) 1997-11-12

Similar Documents

Publication Publication Date Title
JP3072048B2 (ja) 計算機システムおよび計算機システムのソフトウェア故障回復方法
US5815651A (en) Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US7516361B2 (en) Method for automatic checkpoint of system and application software
US7853825B2 (en) Methods and apparatus for recovering from fatal errors in a system
JP3675802B2 (ja) 計算の状態を再構成する方法ならびにシステム
JP3154942B2 (ja) 分散チェックポイント生成方法および同方法が適用される計算機システム
US5530802A (en) Input sequence reordering method for software failure recovery
US5664088A (en) Method for deadlock recovery using consistent global checkpoints
EP1966697B1 (en) Software assisted nested hardware transactions
EP0750259B1 (en) Computer system with two phase checkpoints
US6851074B2 (en) System and method for recovering from memory failures in computer systems
JPH0820965B2 (ja) プログラムの実行を続行する方法
KR100304319B1 (ko) 시간 지연 이중화 기술을 구현하는 장치 및 방법
JP3481737B2 (ja) ダンプ採取装置およびダンプ採取方法
JP3030658B2 (ja) 電源故障対策を備えたコンピュータシステム及びその動作方法
Bovenzi et al. Towards fast OS rejuvenation: An experimental evaluation of fast OS reboot techniques
US6275930B1 (en) Method, computer, and article of manufacturing for fault tolerant booting
Le et al. Applying microreboot to system software
JP3919274B2 (ja) 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001109635A (ja) 障害対処方法及びコンピュータシステム読み取り可能な記録媒体
JP2785992B2 (ja) サーバプログラムの管理処理方式
JP3516428B2 (ja) 計算機
JPH06282496A (ja) 二重化共有メモリにおける排他制御命令のリカバリ方法
JPH1139178A (ja) 計算機システム及び計算機システムにおけるチェックポイントスレッド方法
Bowen et al. Restart services for highly available systems

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees