JPH09258995A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH09258995A
JPH09258995A JP8062840A JP6284096A JPH09258995A JP H09258995 A JPH09258995 A JP H09258995A JP 8062840 A JP8062840 A JP 8062840A JP 6284096 A JP6284096 A JP 6284096A JP H09258995 A JPH09258995 A JP H09258995A
Authority
JP
Japan
Prior art keywords
software
failure
software failure
fault
computer system
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.)
Granted
Application number
JP8062840A
Other languages
English (en)
Other versions
JP3072048B2 (ja
Inventor
Tomofumi Shimada
智文 島田
Hideaki Hirayama
秀昭 平山
Masaharu Nozaki
正治 野崎
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】本発明は、ソフトウェア障害の発生を認識した
際、当該認識時点の状態情報及び採取を有効に活用して
ソフトウェア障害の発生要因を推定し、又はシステム環
境を変化させる等の手段を用いて、チェックポイント時
点までロールバック後、システムを再実行させて、ソフ
トウェア障害を回避する。 【解決手段】障害識別手段103により当該故障がソフ
トウェア障害と判断された場合に、障害発生時のシステ
ムの状況を記録するシステム状況記録手段104と、当
該ソフトウェア障害に関する発生要因を推定するソフト
ウェア障害発生要因推定手段105と、当該ソフトウェ
ア障害を回避する方法を推定するソフトウェア障害回避
方法推定手段106と、システム再実行前に、ソフトウ
ェア障害回避方法推定手段106により推定された当該
ソフトウェア障害回避方法を実施するソフトウェア障害
回避方法実施手段107とを具備することを特徴とす
る。

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】即ち、第1の発明は、計算機システムに障
害が発生した場合に、障害発生前の状態からデータ処理
を再実行することにより、耐障害性を実現するチェック
ポイントロールバック方式による故障回復機構を有する
計算機システムに於いて、ハードウェア故障に起因した
ハードウェア障害、又はソフトウェアバグに起因して発
生するシステムクラッシュ或いはプロセッサ無限ループ
状態のようなシステムクラッシュには至らないが正常な
システム稼働を阻害する状態となる所謂ソフトウェア障
害が発生した場合に、前記ハードウェア障害と前記ソフ
トウェア障害とを切り分ける障害識別手段と、前記ソフ
トウェア障害が発生した場合に障害発生時のシステムの
状況を記録するシステム状況記録手段と、前記ソフトウ
ェア障害に関する発生要因を推定するソフトウェア障害
発生要因推定手段と、前記ソフトウェア障害発生要因推
定手段により推定された、ソフトウェア障害発生要因に
関する回避方法を推定するソフトウェア障害回避方法推
定手段と、チェックポイント時点までロールバック後、
前記ソフトウェア障害回避方法推定手段によって推定さ
れた前記ソフトウェア障害発生要因に関する回避方法を
実施するソフトウェア障害回避方法実施手段とを具備し
て、システムを再実行することにより、前記ソフトウェ
アバグに起因して発生するソフトウェア障害を回避する
ことを特徴とする。
【0016】このように、ソフトウェア障害の発生に伴
う障害要因の解析手段、当該解析に基づく障害回避アク
ションの推定手段、ロールバックにより障害発生前の状
態に戻りこれらの障害回避アクションを実施する手段等
を備えて、ソフトウェア障害を積極的に除去した後、シ
ステムを再実行する機能を付加することにより、チェッ
クポイントロールバック方式によるハードウェアの間欠
故障のみを対象とした故障回復に加えて、ソフトウェア
障害からの故障回復を可能とし、計算機システムの可用
性を向上させることができる。
【0017】第2の発明は、計算機システムに障害が発
生した場合に、障害発生前の状態からデータ処理を再実
行することにより、耐障害性を実現するチェックポイン
トロールバック方式による故障回復機構を有する計算機
システムに於いて、ハードウェア故障に起因したハード
ウェア障害又はソフトウェアバグに起因して発生するソ
フトウェア障害が発生した場合に、前記ハードウェア障
害と前記ソフトウェア障害とを切り分ける障害識別手段
と、前記ソフトウェア障害が発生した場合に障害発生時
のシステムの状況を記録するシステム状況記録手段と、
チェックポイント時点までロールバック後、前記ソフト
ウェア障害に関してソフトウェア障害発生時の状況から
プログラム実行環境を変化させるソフトウェア実行環境
操作手段とを具備して、システムを再実行することによ
り、前記ソフトウェアバグに起因して発生する、ソフト
ウェア障害を回避することを特徴とする。
【0018】このように、ソフトウェア障害の発生を検
知し、ソフトウェア障害の発生に伴い、ロールバックに
より障害発生前の状態に戻り、障害発生をもたらしたソ
フトウェア実行環境を変化させた後、システムを再実行
する手段を付加した構成とすることにより、従来のチェ
ックポイントロールバック方式によるハードウェア間欠
故障のみを対象とした故障回復に加えて、ソフトウェア
障害からの故障回復を可能とし、計算機システムの可用
性を向上させることができる。
【0019】第3の発明は、システムに障害が発生した
とき障害発生前の状態からデータ処理を再実行すること
により耐障害性を実現するチェックポイントロールバッ
ク方式による故障回復機構を有する計算機システムであ
って、システムに障害が発生したとき、当該障害がソフ
トウェアバグに起因して発生するソフトウェア障害であ
ることを識別する障害識別手段と、前記障害識別手段で
ソフトウェア障害の発生を認識したとき障害発生時のシ
ステムの状況を記録するシステム状況記録手段と、前記
システム状況記録手段により記録された情報をもとにソ
フトウェア障害に関する発生要因を推定するソフトウェ
ア障害発生要因推定手段と、前記ソフトウェア障害発生
要因推定手段により推定された、ソフトウェア障害発生
要因に関する回避方法を推定するソフトウェア障害回避
方法推定手段と、前記ソフトウェア障害回避方法推定手
段によって推定された前記ソフトウェア障害発生要因に
関する回避方法をロールバック後に実施するソフトウェ
ア障害回避方法実施手段と、前記システム状況記録手段
により記録された情報をもとに、ロールバック後の再実
行時に於けるプログラム実行環境を変化させるソフトウ
ェア実行環境操作手段とを具備して、ソフトウェア障害
の発生時に於いて前記ソフトウェア障害に関する発生要
因の推定による回避方法の推定が困難な場合に前記ソフ
トウェア実行環境操作手段によりソフトウェア実行環境
を操作した後、システムを再実行して、ソフトウェアバ
グに起因して発生するソフトウェア障害を回避すること
を特徴とする。
【0020】このように、ソフトウェア障害回避方法推
定手段によって推定されたソフトウェア障害発生要因に
関する回避方法を実施するソフトウェア障害回避方法実
施手段により実現される、ソフトウェア障害を積極的に
除去した後にチェックポイントからのシステムを再スタ
ートする機能と、ソフトウェア障害発生時の状況からプ
ログラム実行環境を変化させる、ソフトウェア実行環境
操作手段により実現される、ソフトウェア実行環境を変
化させた後、チェックポイントからのシステムを再スタ
ートする機能とを組み合わせることにより、ソフトウェ
ア障害に関する回避率を向上させて、より計算機システ
ムの可用性を向上させることができる。
【0021】第4の発明は、少なくとも前記ソフトウェ
ア障害回避方法実施手段により実施されるソフトウェア
障害発生要因に関する回避方法、又は前記ソフトウェア
実行環境操作手段により実施される複数のソフトウェア
実行環境操作の方法による処理を、ソフトウェア障害が
回避されるまで、規定回数内で、繰り返し実施すること
を特徴とする。
【0022】このように、一つのソフトウェア障害に関
して、ソフトウェア障害回避方法実施手段により実施さ
れるソフトウェア障害発生要因に関する回避方法、及び
ソフトウェア実行環境操作手段により実施される複数の
ソフトウェア実行環境操作の方法が、当該ソフトウェア
障害の回避まで、規定回数内で、繰り返し実施されるこ
とにより、ソフトウェア障害に関する回避率を高めるこ
とができる。
【0023】第5の発明は、前記ソフトウェア障害回避
方法実施手段、或いは前記ソフトウェア実行環境操作手
段を実施し、システムを再実行した後に於いて、再びソ
フトウェア障害が出現したとき、障害要因を有するソフ
トウェアモジュールをシステムから切り離した後、シス
テムを再実行することにより、前記ソフトウェアバグに
起因して発生するソフトウェア障害を回避することを特
徴とする。
【0024】このように、関連するモジュールを切り離
して不具合発生を未然に防止することにより、最終的な
ソフトウェア障害を回避することが可能となる。第6の
発明は、前記ソフトウェア障害回避方法実施手段、又は
前記ソフトウェア実行環境操作手段を実施し、システム
を再実行した後に於いて、再びソフトウェア障害が出現
した場合、ソフトウェア障害を誘発させた、プロセス或
いはスレッドをシステムから抹消した後、システムを再
実行することを特徴とする。
【0025】このような機能を付加して、ソフトウェア
障害を誘発させたプロセス或いはスレッドを抹消するこ
とにより、不具合発生を未然に防いで、最終的なソフト
ウェア障害を回避することが可能となる。
【0026】第7の発明は、前記第5の発明に於いて、
障害要因を有するソフトウェアモジュールから、障害要
因を除去したソフトウェアモジュールに、動的且つシス
テム停止を伴うことなく切り替えることを特徴とする。
【0027】このような機能を付加して、切り離された
モジュールに関して不具合を修正後、ハードウェア部品
の部品交換のように入れ替え可能とすることによりシス
テムの可用性を高めることができる。
【0028】第8の発明は、少なくとも前記ソフトウェ
ア障害回避方法実施手段又は前記ソフトウェア実行環境
操作手段による動作をソフトウェア障害が回避されるま
で規定回数内で繰り返し実施した後に於いて、再びソフ
トウェア障害が出現した場合、システムの再立ち上げを
実施することを特徴とする。
【0029】このような機能を付加することにより、種
々のソフトウェア障害回避策を有限回実施することで、
回避策の無限回の適用を回避できる。第9の発明は、前
記システム状況記録手段が、ソフトウェア障害発生時の
システムの状況を、ソフトウェア障害発生要因を解析す
るための提供情報として、ロールバックされないメモリ
領域或いは不揮発性の記憶装置に記録することを特徴と
する。
【0030】このように、ソフトウェア障害に関する情
報をロールバックされないメモリ領域或いは不揮発性の
記憶装置に記録することにより、障害に関する原因解析
を可能としたシステムの保守性を高めることが可能とな
る。
【0031】第10の発明は、前記ソフトウェア障害発
生要因推定手段が、推定した障害発生要因を、障害発生
要因を解析するための提供情報として、ロールバックさ
れないメモリ或いは不揮発性の記憶装置に記録すること
を特徴とする。
【0032】このように、ソフトウェア障害回避に実施
された発生要因をロールバックされないメモリ或いは不
揮発性の記憶装置に記録することにより障害発生後のシ
ステムの保守性を高めることが可能となる。
【0033】第11の発明は、前記ソフトウェア障害回
避方法推定手段が、推定したソフトウェア障害発生要因
に関する回避方法を、障害回避方法を実施するための提
供情報として、ロールバックされないメモリ或いは不揮
発性の記憶装置に記録することを特徴とする。
【0034】このように、ソフトウェア障害回避に実施
された発生要因をロールバックされないメモリ或いは不
揮発性の記憶装置に記録することにより、障害発生後の
システムの保守性を高めることが可能となる。
【0035】第12の発明は、前記システム状況記録手
段が、ソフトウェア障害発生時のシステムのメモリ、各
種装置に関するデータ等のダンプを、ユーザの要求に応
じて外部記憶装置に書き出し、ソフトウェア障害発生要
因を解析するための情報として提供することを特徴とす
る。
【0036】このような機能を付加して、ソフトウェア
障害に関するシステムのダンプ情報を記録することによ
り、障害に関する原因解析を可能とし、システムの保守
性を高めることが可能となる。
【0037】第13の発明は、前記ソフトウェア実行環
境操作手段が、稼働するプロセッサ数を、ソフトウェア
実行環境操作の一つとして変更する手段を含むことを特
徴とする。
【0038】このような機能を備えて、稼働するプロセ
ッサ数を変更し、不具合発生を未然に防止することによ
り、ソフトウェア障害を回避することができる。第14
の発明は、前記ソフトウェア実行環境操作手段が、ソフ
トウェア障害を誘発させたプロセス或いはスレッドに関
するスタック上の自動変数領域を、ソフトウェア実行環
境操作の一つとしてクリアする手段を含むことを特徴と
する。
【0039】このように、自動変数初期化忘れ対策とし
て、これを積極的にクリアし、不具合の発生を未然に防
止することにより、ソフトウェア障害を回避することが
可能となる。
【0040】第15の発明は、前記ソフトウェア実行環
境操作手段が、ソフトウェア実行環境操作の一つとし
て、システムで使用するリソースを動的に補充する手段
を含むことを特徴とする。
【0041】このような手段を備えて、リソース不足に
よる不具合発生を未然に防止することにより、ソフトウ
ェア障害を回避することが可能とする。第16の発明
は、前記ソフトウェア実行環境操作手段が、ソフトウェ
ア実行環境操作の一つとして、入出力要求の発行タイミ
ングを調整する手段を含むことを特徴とする。
【0042】このような手段を備えて、入出力要求に関
する発行タイミングを変更し、不具合発生を未然に防止
することにより、ソフトウェア障害を回避することが可
能となる。
【0043】第17の発明は、前記ソフトウェア障害回
避方法実施手段に於いて、ソフトウェア障害発生要因
が、物理メモリ上にロードされていない仮想メモリへの
アクセスであるとソフトウェア障害発生要因推定手段に
より推定され、ソフトウェア障害回避方法推定手段に於
いて、当該ソフトウェア障害発生要因に関する回避方法
として、仮想メモリに関する物理メモリを確保すること
と推定されたとき、前記推定された回避方法を実施する
ことを特徴とする。
【0044】このような手段を備えて、ページング不可
状況の発生を未然に防止することにより、ソフトウェア
障害を回避することが可能となる。第18の発明は、前
記ソフトウェア障害回避方法実施手段に於いて、ソフト
ウェア障害発生要因が、マルチプロセッサ環境に於ける
排他制御に関するデッドロックであるとソフトウェア障
害発生要因推定手段により推定され、ソフトウェア障害
回避方法推定手段に於いて、当該ソフトウェア障害発生
要因に関する回避方法として、稼働するプロセッサ数の
変更、及び排他制御を実施するコードを変更することと
推定されたとき、前記推定された回避方法を実施するこ
とを特徴とする。
【0045】このような手段を備えて、デッドロック状
況の発生を未然に防止することにより、ソフトウェア障
害を回避することが可能となる。第19の発明は、前記
マルチプロセッサ環境に於ける排他制御に関するデッド
ロックに関する回避方法を実施して、システムの再実行
後、ソフトウェア障害の回避がなされた場合、その後の
チェックポイント採取手段の一環で、稼働するプロセッ
サ数及び排他制御を実施するコードを元の状態に戻し、
システムをソフトウェア障害発生前のシステムの運用状
態にすることを特徴とする。
【0046】このような手段を備えて、障害回避手段と
して実施したシステムへの変更(システム運用にあたっ
ての仕様縮小)状態を、障害回避後に於いて解除する
(元に戻す)ことにより、障害排除後、システムを通常
状態に戻すことができ、良好なシステム運用が可能とな
る。
【0047】第20の発明は、前記ロールバックされな
いメモリ或いは不揮発性の記憶装置に記載された情報
が、ソフトウェア障害回避後、チェックポイント採取手
段の一環として、計算機システムがもつシステムのログ
機構を介して記憶されることを特徴とする。
【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
は、当該ソフトウェア障害発生要因が推定できるか否か
を判断し、推定が不可能の場合、チェックポイントロー
ルバック手段101により、システムのロールバックを
実施する(図3ステップS4)。
【0068】又、当該ソフトウェア障害発生要因の推定
が可能な場合は、ソフトウェア障害発生要因推定手段1
05によって推定された当該ソフトウェア障害に関する
発生要因を、ソフトウェア障害発生要因ログ201,3
01に記録する(図3ステップS5)。
【0069】続いて、当該ソフトウェア障害を回避する
方法をソフトウェア障害回避方法推定手段106が推定
し(図3ステップS6)、当該ソフトウェア障害回避方
法を、ソフトウェア障害回避方法記録領域202,30
2に記録し(図3ステップS7)、チェックポイントロ
ールバック手段101により、システムのロールバック
を実施する(図3ステップS8)。
【0070】チェックポイントロールバック後、発生し
た障害が、ソフトウェアバグであるか、ハードウェア障
害であるかを判断し、ハードウェア障害と判断された場
合には、システム再実行手段102による再実行処理を
実施する(図3ステップS9,S14)。
【0071】ソフトウェア障害の場合には、当該ソフト
ウェア障害に関する一連のリカバリ処理が初めて実施さ
れたか否かを判断し(図3ステップS11)、初めて実
施の場合には、ソフトウェア障害回避方法推定手段10
6による、当該ソフトウェア障害回避方法が推定されて
いるか否かを、ソフトウェア障害回避方法記録領域20
2,302より判断し(図3ステップS12)、推定さ
れている場合には、前記ソフトウェア障害回避方法記録
領域202,302の情報から、当該ソフトウェア障害
回避方法を、ソフトウェア障害回避方法実施手段107
により実施した後(図3ステップS13)、システム再
実行手段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】チェックポイントロールバック後、故障原
因がソフトウェア障害に起因するものであるか、ハード
ウェア障害に起因するものであるかを判断し(図4ステ
ップF9)、ハードウェア障害に起因すると判断された
場合には、システム再実行手段102を実施する(図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】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどして、
クラッシュ後、リブートされる。本発明の実施形態で
は、前記ページング不可能と判断した後、その時点での
システム状況(プロセッサのレジスタ、オペレーティン
グシステムのスタック情報等)をロールバックされない
メモリ或いは不揮発性の記憶装置に記録し(図5の
(5))、障害要因を解析するための情報を提供する。
【0095】前記記録されたログ情報から、前記ソフト
ウェア障害発生要因推定手段(図1、図2の符号10
5)を介し、当該ソフトウェア障害発生要因を推定し、
前記ソフトウェア障害回避方法推定手段(図1、図2の
符号106)の一環として、リカバリ処理として実施す
べき動作を推定し、その動作をロールバックされないメ
モリ或いは不揮発性の記録装置に記録する(図5の
(6))。
【0096】その後、チェックポイント時点までロール
バックする(図5の(7))。ロールバック後、前記リ
カバリ処理として推定され、ロールバックされないメモ
リ或いは不揮発性の記録装置に記録された動作を、前記
ソフトウェア障害回避方法実施手段(図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】この際、デッドロックが発生したこと、デ
ッドロックが発生したロックの種類、デッドロック発生
に至ったオペレーティングシステムでの関数の呼び出し
状況等を前記ロールバックされないメモリ或いは不揮発
性の記憶装置に記録し、障害要因を解析するための情報
を提供する。
【0102】前記記録されたログ情報から、前記ソフト
ウェア障害発生要因推定手段を介し当該ソフトウェア障
害発生要因を推定し、前記ソフトウェア障害回避方法推
定手段の一環として、リカバリ処理として実施すべき動
作を推定し、その動作をロールバックされないメモリ或
いは不揮発性の記録装置に記録する(図6の(4))。
【0103】その後、チェックポイント時点までロール
バックする(図6の(5))。ロールバック後、前記リ
カバリ処理として推定され、ロールバックされないメモ
リ或いは不揮発性の記録装置に記録された動作を前記ソ
フトウェア障害回避方法実施手段(図1、図2の符号1
07)の一環として実施する(図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】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどして、
クラッシュ後、リブートされる。本発明の実施形態で
は、この時点でのシステム状況(プロセッサのレジス
タ、オペレーティングシステムのスタック情報等)をロ
ールバックされないメモリ或いは不揮発性の記憶装置に
記録し(図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】通常のオペレーティングシステムでは、こ
の後、システムのメモリダンプ等を採取するなどして、
クラッシュ後、リブートされる。本発明の実施の形態で
は、この時点でシステム状況(プロセッサのレジスタ、
オペレーティングシステムのスタック情報等)をロール
バックされないメモリ或いは不揮発性の記憶装置に記録
し(図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】即ち、第1の発明によれば、ハードウェア
故障に起因したハードウェア障害、又はソフトウェアバ
グに起因して発生するシステムクラッシュ或いはプロセ
ッサ無限ループ状態のようなシステムクラッシュには至
らないが正常なシステム稼働を阻害する状態となる所謂
ソフトウェア障害が発生した場合に、前記ハードウェア
障害と前記ソフトウェア障害とを切り分ける障害識別手
段と、前記ソフトウェア障害が発生した場合に障害発生
時のシステムの状況を記録するシステム状況記録手段
と、前記ソフトウェア障害に関する発生要因を推定する
ソフトウェア障害発生要因推定手段と、前記ソフトウェ
ア障害発生要因推定手段により推定された、ソフトウェ
ア障害発生要因に関する回避方法を推定するソフトウェ
ア障害回避方法推定手段と、チェックポイント時点まで
ロールバック後、前記ソフトウェア障害回避方法推定手
段によって推定された前記ソフトウェア障害発生要因に
関する回避方法を実施するソフトウェア障害回避方法実
施手段とを具備して、システムを再実行することによ
り、前記ソフトウェアバグに起因して発生するソフトウ
ェア障害を回避する構成としたことにより、チェックポ
イントロールバック方式によるハードウェアの間欠故障
のみを対象とした故障回復に加えて、ソフトウェア障害
からの故障回復を可能とし、計算機システムの可用性を
向上させることができる。
【0126】又、第2の発明によれば、ハードウェア故
障に起因したハードウェア障害又はソフトウェアバグに
起因して発生するソフトウェア障害が発生した場合に、
前記ハードウェア障害と前記ソフトウェア障害とを切り
分ける障害識別手段と、前記ソフトウェア障害が発生し
た場合に障害発生時のシステムの状況を記録するシステ
ム状況記録手段と、チェックポイント時点までロールバ
ック後、前記ソフトウェア障害に関してソフトウェア障
害発生時の状況からプログラム実行環境を変化させるソ
フトウェア実行環境操作手段とを具備して、システムを
再実行することにより、前記ソフトウェアバグに起因し
て発生する、ソフトウェア障害を回避する構成としたこ
とにより、従来のチェックポイントロールバック方式に
よるハードウェア間欠故障のみを対象とした故障回復に
加えて、ソフトウェア障害からの故障回復を可能とし、
計算機システムの可用性を向上させることができる。
【0127】又、第3の発明によれば、システムに障害
が発生したとき、当該障害がソフトウェアバグに起因し
て発生するソフトウェア障害であることを識別する障害
識別手段と、前記障害識別手段でソフトウェア障害の発
生を認識したとき障害発生時のシステムの状況を記録す
るシステム状況記録手段と、前記システム状況記録手段
により記録された情報をもとにソフトウェア障害に関す
る発生要因を推定するソフトウェア障害発生要因推定手
段と、前記ソフトウェア障害発生要因推定手段により推
定された、ソフトウェア障害発生要因に関する回避方法
を推定するソフトウェア障害回避方法推定手段と、前記
ソフトウェア障害回避方法推定手段によって推定された
前記ソフトウェア障害発生要因に関する回避方法をロー
ルバック後に実施するソフトウェア障害回避方法実施手
段と、前記システム状況記録手段により記録された情報
をもとに、ロールバック後の再実行時に於けるプログラ
ム実行環境を変化させるソフトウェア実行環境操作手段
とを具備して、ソフトウェア障害の発生時に於いて前記
ソフトウェア障害に関する発生要因の推定による回避方
法の推定が困難な場合に前記ソフトウェア実行環境操作
手段によりソフトウェア実行環境を操作した後、システ
ムを再実行して、ソフトウェアバグに起因して発生する
ソフトウェア障害を回避する構成としたことにより、ソ
フトウェア障害に関する回避率を向上させて、より計算
機システムの可用性を向上させることができる。
【0128】又、第4の発明によれば、少なくとも前記
ソフトウェア障害回避方法実施手段により実施されるソ
フトウェア障害発生要因に関する回避方法、又は前記ソ
フトウェア実行環境操作手段により実施される複数のソ
フトウェア実行環境操作の方法による処理を、ソフトウ
ェア障害が回避されるまで、規定回数内で、繰り返し実
施する構成としたことにより、ソフトウェア障害に関す
る回避率を高めることができる。
【0129】又、第5の発明によれば、前記ソフトウェ
ア障害回避方法実施手段、或いは前記ソフトウェア実行
環境操作手段を実施し、システムを再実行した後に於い
て、再びソフトウェア障害が出現したとき、障害要因を
有するソフトウェアモジュールをシステムから切り離し
た後、システムを再実行することにより、前記ソフトウ
ェアバグに起因して発生するソフトウェア障害を回避す
る構成としたことにより、関連するモジュールを切り離
して不具合発生を未然に防止し、最終的なソフトウェア
障害を回避することが可能となる。
【0130】又、第6の発明によれば、前記ソフトウェ
ア障害回避方法実施手段、又は前記ソフトウェア実行環
境操作手段を実施し、システムを再実行した後に於い
て、再びソフトウェア障害が出現した場合、ソフトウェ
ア障害を誘発させた、プロセス或いはスレッドをシステ
ムから抹消した後、システムを再実行する機能を付加す
ることにより、ソフトウェア障害に伴う不具合の発生を
未然に防いで、最終的なソフトウェア障害を回避するこ
とが可能となる。
【0131】又、第7の発明によれば、前記第5の発明
に於いて、障害要因を有するソフトウェアモジュールか
ら、障害要因を除去したソフトウェアモジュールに、動
的且つシステム停止を伴うことなく切り替える機能を付
加することにより、切り離されたモジュールに関して不
具合を修正後、ハードウェア部品の部品交換のように入
れ替え可能とすることでシステムの可用性を高めること
ができる。
【0132】又、第8の発明によれば、少なくとも前記
ソフトウェア障害回避方法実施手段又は前記ソフトウェ
ア実行環境操作手段による動作をソフトウェア障害が回
避されるまで規定回数内で繰り返し実施した後に於い
て、再びソフトウェア障害が出現した場合、システムの
再立ち上げを実施する機能を付加することにより、種々
のソフトウェア障害回避策を有限回実施することで、回
避策の無限回の適用を回避できる。
【0133】又、第9の発明によれば、前記システム状
況記録手段が、ソフトウェア障害発生時のシステムの状
況を、ソフトウェア障害発生要因を解析するための提供
情報として、ロールバックされないメモリ領域或いは不
揮発性の記憶装置に記録することにより、障害に関する
原因解析を可能としたシステムの保守性を高めることが
可能となる。
【0134】又、第10の発明によれば、前記ソフトウ
ェア障害発生要因推定手段が、推定した障害発生要因
を、障害発生要因を解析するための提供情報として、ロ
ールバックされないメモリ或いは不揮発性の記憶装置に
記録することにより、障害発生後のシステムの保守性を
高めることが可能となる。
【0135】又、第11の発明によれば、前記ソフトウ
ェア障害回避方法推定手段が、推定したソフトウェア障
害発生要因に関する回避方法を、障害回避方法を実施す
るための提供情報として、ロールバックされないメモリ
或いは不揮発性の記憶装置に記録することにより、障害
発生後のシステムの保守性を高めることが可能となる。
【0136】又、第12の発明によれば、前記システム
状況記録手段が、ソフトウェア障害発生時のシステムの
メモリ、各種装置に関するデータ等のダンプを、ユーザ
の要求に応じて外部記憶装置に書き出し、ソフトウェア
障害発生要因を解析するための情報として提供すること
により、障害に関する原因解析を可能とし、システムの
保守性を高めることが可能となる。
【0137】又、第13の発明によれば、前記ソフトウ
ェア実行環境操作手段が、稼働するプロセッサ数を、ソ
フトウェア実行環境操作の一つとして変更する手段を含
むことにより、稼働するプロセッサ数を変更した際の不
具合発生を未然に防止して、ソフトウェア障害を回避す
ることができる。
【0138】又、第14の発明によれば、前記ソフトウ
ェア実行環境操作手段が、ソフトウェア障害を誘発させ
たプロセス或いはスレッドに関するスタック上の自動変
数領域を、ソフトウェア実行環境操作の一つとしてクリ
アする手段を含むことにより、自動変数初期化忘れ対策
としてこれを積極的にクリアし、不具合の発生を未然に
防止して、ソフトウェア障害を回避することが可能とな
る。
【0139】又、第15の発明によれば、前記ソフトウ
ェア実行環境操作手段が、ソフトウェア実行環境操作の
一つとして、システムで使用するリソースを動的に補充
する手段を含むことにより、リソース不足による不具合
発生を未然に防止して、ソフトウェア障害を回避するこ
とが可能とする。
【0140】又、第16の発明によれば、前記ソフトウ
ェア実行環境操作手段が、ソフトウェア実行環境操作の
一つとして、入出力要求の発行タイミングを調整する手
段を含むことにより、入出力要求に関する発行タイミン
グを変更した際の不具合発生を未然に防止して、ソフト
ウェア障害を回避することが可能となる。
【0141】又、第17の発明によれば、前記ソフトウ
ェア障害回避方法実施手段に於いて、ソフトウェア障害
発生要因が、物理メモリ上にロードされていない仮想メ
モリへのアクセスであるとソフトウェア障害発生要因推
定手段により推定され、ソフトウェア障害回避方法推定
手段に於いて、当該ソフトウェア障害発生要因に関する
回避方法として、仮想メモリに関する物理メモリを確保
することと推定されたとき、前記推定された回避方法を
実施することにより、ページング不可状況の発生を未然
に防止して、ソフトウェア障害を回避することが可能と
なる。
【0142】又、第18の発明によれば、前記ソフトウ
ェア障害回避方法実施手段に於いて、ソフトウェア障害
発生要因が、マルチプロセッサ環境に於ける排他制御に
関するデッドロックであるとソフトウェア障害発生要因
推定手段により推定され、ソフトウェア障害回避方法推
定手段に於いて、当該ソフトウェア障害発生要因に関す
る回避方法として、稼働するプロセッサ数の変更、及び
排他制御を実施するコードを変更することと推定された
とき、前記推定された回避方法を実施することにより、
デッドロック状況の発生を未然に防止して、ソフトウェ
ア障害を回避することが可能となる。
【0143】又、第19の発明によれば、前記マルチプ
ロセッサ環境に於ける排他制御に関するデッドロックに
関する回避方法を実施して、システムの再実行後、ソフ
トウェア障害の回避がなされた場合、その後のチェック
ポイント採取手段の一環で、稼働するプロセッサ数及び
排他制御を実施するコードを元の状態に戻し、システム
をソフトウェア障害発生前のシステムの運用状態にする
ことにより、障害回避手段として実施したシステムへの
変更(システム運用にあたっての仕様縮小)状態を、障
害回避後に於いて解除する(元に戻す)ことで、障害排
除後、システムを通常状態に戻すことができ、良好なシ
ステム運用が可能となる。
【0144】又、第20の発明によれば、前記ロールバ
ックされないメモリ或いは不揮発性の記憶装置に記載さ
れた情報が、ソフトウェア障害回避後、チェックポイン
ト採取手段の一環として、計算機システムがもつシステ
ムのログ機構を介して記憶されることにより、ソフトウ
ェア障害回避に実施された状況を、障害回復後のチェッ
クポイント時点でシステムのログ機構を陽に起動しシス
テムのログに残すことで、障害発生後のシステムの保守
性を高めることが可能となる。
【図面の簡単な説明】
【図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…ソフトウェア障害回避方法記録領域。

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 システムに障害が発生したとき障害発生
    前の状態からデータ処理を再実行することにより耐障害
    性を実現するチェックポイントロールバック方式による
    故障回復機構を有する計算機システムであって、 システムに障害が発生したとき、当該障害がソフトウェ
    アバグに起因して発生するソフトウェア障害であること
    を識別する障害識別手段と、 前記障害識別手段でソフトウェア障害の発生を認識した
    とき障害発生時のシステムの状況を記録するシステム状
    況記録手段と、 前記システム状況記録手段により記録された情報をもと
    にソフトウェア障害に関する発生要因を推定するソフト
    ウェア障害発生要因推定手段と、 前記ソフトウェア障害発生要因推定手段により推定され
    た、ソフトウェア障害発生要因に関する回避方法を推定
    するソフトウェア障害回避方法推定手段と、 前記ソフトウェア障害回避方法推定手段によって推定さ
    れた前記ソフトウェア障害発生要因に関する回避方法に
    従う障害回避アクションをロールバック後に実施するソ
    フトウェア障害回避方法実施手段とを具備し、 システムにソフトウェア障害が発生したとき、システム
    を再実行して、ソフトウェアバグ等に起因して発生する
    ソフトウェア障害を回避する故障回復機能を備えたこと
    を特徴とする計算機システム。
  2. 【請求項2】 システムに障害が発生したとき障害発生
    前の状態からデータ処理を再実行することにより、耐障
    害性を実現するチェックポイントロールバック方式によ
    る故障回復機構を有する計算機システムであって、 ソフトウェアバグに起因して発生するソフトウェア障害
    が発生したとき当該ソフトウェア障害を識別する障害識
    別手段と、 前記障害識別手段でソフトウェア障害の発生を認識した
    とき障害発生時のシステムの状況を記録するシステム状
    況記録手段と、 前記システム状況記録手段により記録された情報をもと
    に、ロールバック後の再実行時に於けるプログラム実行
    環境を変化させるソフトウェア実行環境操作手段とを具
    備し、 システムにソフトウェア障害が発生したとき、システム
    を再実行して、ソフトウェアバグ等に起因して発生する
    ソフトウェア障害を回避する故障回復機能を備えたこと
    を特徴とする計算機システム。
  3. 【請求項3】 システムに障害が発生したとき障害発生
    前の状態からデータ処理を再実行することにより耐障害
    性を実現するチェックポイントロールバック方式による
    故障回復機構を有する計算機システムであって、 システムに障害が発生したとき、当該障害がソフトウェ
    アバグに起因して発生するソフトウェア障害であること
    を識別する障害識別手段と、 前記障害識別手段でソフトウェア障害の発生を認識した
    とき障害発生時のシステムの状況を記録するシステム状
    況記録手段と、 前記システム状況記録手段により記録された情報をもと
    にソフトウェア障害に関する発生要因を推定するソフト
    ウェア障害発生要因推定手段と、 前記ソフトウェア障害発生要因推定手段により推定され
    た、ソフトウェア障害発生要因に関する回避方法を推定
    するソフトウェア障害回避方法推定手段と、 前記ソフトウェア障害回避方法推定手段によって推定さ
    れた前記ソフトウェア障害発生要因に関する回避方法を
    ロールバック後に実施するソフトウェア障害回避方法実
    施手段と、 前記システム状況記録手段により記録された情報をもと
    に、ロールバック後の再実行時に於けるプログラム実行
    環境を変化させるソフトウェア実行環境操作手段とを具
    備し、 ソフトウェア障害の発生時に於いて前記ソフトウェア障
    害に関する発生要因の推定による回避方法の推定が困難
    な場合に前記ソフトウェア実行環境操作手段によりソフ
    トウェア実行環境を操作した後、システムを再実行し
    て、ソフトウェアバグに起因して発生するソフトウェア
    障害を回避することを特徴とする計算機システム。
  4. 【請求項4】 少なくともソフトウェア障害回避方法実
    施手段又はソフトウェア実行環境操作手段による動作を
    ソフトウェア障害が回避されるまで規定回数内で繰り返
    し実施する請求項1又は2又は3記載の計算機システ
    ム。
  5. 【請求項5】 ソフトウェア障害回避方法実施手段又は
    ソフトウェア実行環境操作手段を実施し、システムを再
    実行した後に於いて、再びソフトウェア障害が出現した
    場合、障害要因を有するソフトウェアモジュールをシス
    テムから切り離した後、システムを再実行する請求項1
    又は2又は3又は4記載の計算機システム。
  6. 【請求項6】 ソフトウェア障害回避方法実施手段又は
    ソフトウェア実行環境操作手段を実施し、システムを再
    実行した後に於いて、再びソフトウェア障害が出現した
    場合、ソフトウェア障害を誘発させた、プロセス或いは
    スレッドをシステムから抹消した後、システムを再実行
    する請求項1又は2又は3又は4記載の計算機システ
    ム。
  7. 【請求項7】 システムから切り離されたソフトウェア
    モジュールは、システム稼働状態に於いて、障害要因を
    有するソフトウェアモジュールから、障害要因を除去し
    たソフトウェアモジュールに、動的かつシステム停止を
    伴うことなく切り替え可能である請求項5記載の計算機
    システム。
  8. 【請求項8】 少なくともソフトウェア障害回避方法実
    施手段又はソフトウェア実行環境操作手段による動作を
    ソフトウェア障害が回避されるまで規定回数内で繰り返
    し実施した後に於いて、再びソフトウェア障害が出現し
    た場合、システムの再立ち上げを実施する請求項1又は
    2又は3又は4記載の計算機システム。
  9. 【請求項9】 システム状況記録手段は、ソフトウェア
    障害発生時のシステムの状況を、ソフトウェア障害発生
    要因を解析するための提供情報として、ロールバックさ
    れないメモリ領域或いは不揮発性の記憶装置に記録する
    請求項1又は2又は3記載の計算機システム。
  10. 【請求項10】 ソフトウェア障害発生要因推定手段
    は、推定した障害発生要因を、障害発生要因を解析する
    ための提供情報として、ロールバックされないメモリ或
    いは不揮発性の記憶装置に記録する請求項1又は2又は
    3記載の計算機システム。
  11. 【請求項11】 ソフトウェア障害回避方法推定手段
    は、推定したソフトウェア障害発生要因に関する回避方
    法を、障害回避方法を実施するための提供情報として、
    ロールバックされないメモリ或いは不揮発性の記憶装置
    に記録する請求項1又は3記載の計算機システム。
  12. 【請求項12】 システム状況記録手段は、ソフトウェ
    ア障害発生時のシステムのメモリ、各種装置に関するデ
    ータ等のダンプを、ユーザの要求に応じて外部記憶装置
    に書き出し、ソフトウェア障害発生要因を解析するため
    の情報として提供する請求項1又は2又は3記載の計算
    機システム。
  13. 【請求項13】 ソフトウェア実行環境操作手段は、稼
    働するプロセッサ数を、ソフトウェア実行環境操作の一
    つとして変更する請求項2又は3記載の計算機システ
    ム。
  14. 【請求項14】 ソフトウェア実行環境操作手段は、ソ
    フトウェア障害を誘発させたプロセス或いはスレッドに
    関するスタック上の自動変数領域を、ソフトウェア実行
    環境操作の一つとしてクリアする請求項2又は3記載の
    計算機システム。
  15. 【請求項15】 ソフトウェア実行環境操作手段は、ソ
    フトウェア実行環境操作の一つとして、システムで使用
    するリソースを動的に補充することを特徴とする請求項
    2又は3記載の計算機システム。
  16. 【請求項16】 ソフトウェア実行環境操作手段は、ソ
    フトウェア実行環境操作の一つとして、入出力要求の発
    行タイミングを調整する請求項2又は3記載の計算機シ
    ステム。
  17. 【請求項17】 ソフトウェア障害回避方法実施手段
    は、ソフトウェア障害発生要因が、物理メモリ上にロー
    ドされていない仮想メモリへのアクセスであるとソフト
    ウェア障害発生要因推定手段により推定され、ソフトウ
    ェア障害回避方法推定手段により、当該ソフトウェア障
    害発生要因に関する回避方法として、仮想メモリに関す
    る物理メモリを確保することと推定されたとき、前記推
    定された回避方法を実施する請求項1又は3記載の計算
    機システム。
  18. 【請求項18】 ソフトウェア障害回避方法実施手段
    は、ソフトウェア障害発生要因が、マルチプロセッサ環
    境に於ける排他制御に関するデッドロックであるとソフ
    トウェア障害発生要因推定手段により推定され、ソフト
    ウェア障害回避方法推定手段により、当該ソフトウェア
    障害発生要因に関する回避方法として、稼働するプロセ
    ッサ数の変更、及び排他制御を実施するコードを変更す
    ることと推定されたとき、前記推定された回避方法を実
    施する請求項1又は3記載の計算機システム。
  19. 【請求項19】 マルチプロセッサ環境に於ける排他制
    御に関するデッドロックに関する回避方法を実施して、
    システムの再実行後、ソフトウェア障害の回避がなされ
    た場合、その後のチェックポイント採取手段の一環で、
    稼働するプロセッサ数及び排他制御を実施するコードを
    元の状態に戻し、システムをソフトウェア障害発生前の
    システムの運用状態にする請求項18記載の計算機シス
    テム。
  20. 【請求項20】 ロールバックされないメモリ或いは不
    揮発性の記憶装置に記載された情報は、ソフトウェア障
    害回避後、チェックポイント採取手段の一環として、計
    算機システムがもつシステムのログ機構を介して記憶さ
    れる請求項9又は10又は11記載の計算機システム。
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 true JPH09258995A (ja) 1997-10-03
JP3072048B2 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532478B1 (en) 1999-07-14 2003-03-11 Fujitsu Limited File loader in information processing system of multiprocessor configuration
CN100343816C (zh) * 2004-09-24 2007-10-17 华为技术有限公司 恢复单板软件版本的方法
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP2012121304A (ja) * 2010-12-10 2012-06-28 Seiko Epson Corp 印刷装置、及び、印刷方法
JP2014119964A (ja) * 2012-12-17 2014-06-30 Hitachi Ltd 計算機システムおよびプログラム
JP2018165860A (ja) * 2017-03-28 2018-10-25 日本電気株式会社 分散コンピューティングシステム、処理選択装置、処理選択方法及びプログラム

Families Citing this family (76)

* 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 株式会社日立製作所 計算機の再起動方法
US6662358B1 (en) 1997-12-12 2003-12-09 International Business Machines Corporation Minimizing profiling-related perturbation using periodic contextual information
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
US6553564B1 (en) 1997-12-12 2003-04-22 International Business Machines Corporation Process and system for merging trace data for primarily interpreted methods
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
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
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
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
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
JP4345334B2 (ja) * 2003-03-28 2009-10-14 日本電気株式会社 耐障害計算機システム、プログラム並列実行方法およびプログラム
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
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
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
US7558986B2 (en) * 2005-05-26 2009-07-07 United Parcel Service Of America, Inc. Software process monitor
US7823021B2 (en) * 2005-05-26 2010-10-26 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
WO2008092162A2 (en) * 2007-01-26 2008-07-31 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
JP4945663B2 (ja) 2010-06-30 2012-06-06 株式会社東芝 情報処理装置およびデータの復旧方法
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
DE112012001761T5 (de) * 2011-04-21 2014-02-06 International Business Machines Corp. Hochverfügbarkeit von virtuellen Maschinen
US9489251B2 (en) * 2011-12-06 2016-11-08 Bio-Rad Laboratories, Inc. Supervising and recovering software components associated with medical diagnostics instruments
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 緯創資通股份有限公司 自動除錯與防錯方法、裝置與電腦程式產品
EP3090336A1 (en) 2013-12-30 2016-11-09 Paul A. Leveille Checkpointing systems and methods of using data forwarding
WO2015102873A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
US9760442B2 (en) 2013-12-30 2017-09-12 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
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
JP6853883B2 (ja) * 2017-06-15 2021-03-31 株式会社日立製作所 コントローラ
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532478B1 (en) 1999-07-14 2003-03-11 Fujitsu Limited File loader in information processing system of multiprocessor configuration
CN100343816C (zh) * 2004-09-24 2007-10-17 华为技术有限公司 恢复单板软件版本的方法
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP2012121304A (ja) * 2010-12-10 2012-06-28 Seiko Epson Corp 印刷装置、及び、印刷方法
JP2014119964A (ja) * 2012-12-17 2014-06-30 Hitachi Ltd 計算機システムおよびプログラム
JP2018165860A (ja) * 2017-03-28 2018-10-25 日本電気株式会社 分散コンピューティングシステム、処理選択装置、処理選択方法及びプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH09258995A (ja) 計算機システム
US5815651A (en) Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US7853825B2 (en) Methods and apparatus for recovering from fatal errors in a system
US7516361B2 (en) Method for automatic checkpoint of system and application software
Qin et al. Rx: treating bugs as allergies---a safe method to survive software failures
US7831857B2 (en) Method and system for recovering from operating system crash or failure
US8234521B2 (en) Systems and methods for maintaining lock step operation
US6516429B1 (en) Method and apparatus for run-time deconfiguration of a processor in a symmetrical multi-processing system
US6728668B1 (en) Method and apparatus for simulated error injection for processor deconfiguration design verification
US7900090B2 (en) Systems and methods for memory retention across resets
Qin et al. Rx: Treating bugs as allergies—a safe method to survive software failures
JPH0820965B2 (ja) プログラムの実行を続行する方法
Mushtaq et al. Survey of fault tolerance techniques for shared memory multicore/multiprocessor systems
US20170147422A1 (en) External software fault detection system for distributed multi-cpu architecture
KR100304319B1 (ko) 시간 지연 이중화 기술을 구현하는 장치 및 방법
Bovenzi et al. Towards fast OS rejuvenation: An experimental evaluation of fast OS reboot techniques
JP3030658B2 (ja) 電源故障対策を備えたコンピュータシステム及びその動作方法
Le et al. Applying microreboot to system software
US7613950B2 (en) Detecting floating point hardware failures
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
JPH02294739A (ja) 障害検出方式
Qin System Support for Improving Software Dependability During Production Runs
US7356733B2 (en) System and method for system firmware causing an operating system to idle a processor
JP2001109635A (ja) 障害対処方法及びコンピュータシステム読み取り可能な記録媒体
JP3516428B2 (ja) 計算機

Legal Events

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