JPH10187616A - 状態記録再現方法、ならびに同方法を実現する計算機システム、及び同方法がプログラムされ記憶されるメモリ装置 - Google Patents
状態記録再現方法、ならびに同方法を実現する計算機システム、及び同方法がプログラムされ記憶されるメモリ装置Info
- Publication number
- JPH10187616A JPH10187616A JP8347693A JP34769396A JPH10187616A JP H10187616 A JPH10187616 A JP H10187616A JP 8347693 A JP8347693 A JP 8347693A JP 34769396 A JP34769396 A JP 34769396A JP H10187616 A JPH10187616 A JP H10187616A
- Authority
- JP
- Japan
- Prior art keywords
- service
- information
- state
- operating system
- processing
- 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
Links
Landscapes
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ために定義した特殊なサブルーチンを呼び出さなければ
ならなかった従来の不都合を解消し、プログラマの負担
軽減をはかる。 【解決手段】 デーモンプロセス15とライブラリ11
(12)等を用いて、コンピュータシステムの上位層で
実現されるフォールトトレラントミドルウェアに、アプ
リケーションプログラムがシステムコールを発行する前
に制御権を獲得し、プロセスのチェックポイント13
(14)採取のために必要な情報を記録した上で、OS
に処理を委ねる仕掛けを組み込むことにより、アプリケ
ーションプログラムが特殊なサブルーチンを呼び出す必
要を無くし、また、アプリケーションプログラムに一切
の手直しを施すことなくフォールトトレランス化を実現
する。
Description
法、ならびに同方法を実現する計算機システム、及び同
方法がプログラムされ記憶されるメモリ装置に関する。
して、フォールトトレラントシステムが知られている。
フォールトトレラントシステムには、 計算機全体を高
信頼化するタイプと、 特定のプロセスに限って高信頼
化するタイプとがある。前者はフォールトトレラントコ
ンピュータとして知られた技術で、一般に多重化モジュ
ール機構等を採用した専用ハードウェア、あるいはプロ
セスペア機構等を採用した専用オペレーティングシステ
ム(OS)によって、コンピュータシステムの下位層で
実現される。後者はフォールトトレラントミドルウェア
として知られた技術で、デーモンプロセスとライブラリ
等を用い、コンピュータシステムの上位層で実現され
る。具体的に、前者は米国TANDEM社やSTRATUS 社の無停
止型コンピュータ、後者はSTRATUS 社のISIS等として有
名である。
ェアなりOSが必要となり、システム構成が割高となる
欠点を有する。一方、後者の場合、専用のアプリケーシ
ョンインタフェースを必要とし、アプリケーションプロ
グラムが、フォールトトレランスを実現するために定義
した特殊なサブルーチンを呼び出す必要があり、既存の
アプリケーションプログラムを、そのまま手直しするこ
となく利用することはできなかった。
に従えば、フォールトトレランスを実現するには、高価
になるか、あるいはプログラマに負担をかけるか、いず
れか一方を選択する以外になかった。本発明は後者を選
択しながらもプログラマにかかる負担を低減するもので
あり、デーモンプロセスとライブラリ等を用いて、コン
ピュータシステムの上位層で実現されるフォールトトレ
ラントミドルウェアに、後述する仕掛けを組み込むもの
である。アプリケーションをフォールトトレラント化す
るために、フォールトトレランスを実現するために定義
した特殊なサブルーチンを呼び出さなければならなかっ
た(既存のアプリケーションプログラムに変更を要す)
従来の不都合を解消するものであり、アプリケーション
プログラムがシステムコールを発行する前に制御権を獲
得し、プロセスのチェックポイント採取のために必要な
情報を記録した上で、OSに処理を委ねる構成とするこ
とにより、アプリケーションプログラムが特殊なサブル
ーチンを呼び出す必要を無くし、また、アプリケーショ
ンプログラムに一切の手直しを施すことなくフォールト
トレランス化を実現する、状態記録再現方法、ならびに
同方法を実現する計算機システム、及び同方法がプログ
ラムされ記憶されるメモリ装置を提供することを目的と
する。
られるため、上記の情報を記録している最中にチェック
ポイントが採られてしまうと、障害発生時に、そのチェ
ックポイントからプロセスを再実行させることができな
いが、本発明を適用することにより、上記の情報を記録
している最中にチェックポイントが採られる事を抑止
し、障害発生時に、任意のチェックポイントから、プロ
セスを再実行させることができるようになる。ここでチ
ェックポイントとは、プロセスの処理をその時点から再
実行させるための情報で、プロセスのアドレス空間の値
やプロセッサコンテクストの値等を含んでいる。
法は、(1)プロセスの状態を定期的に記録し、必要に
応じ、記録された状態を復元して処理を再開することの
できる、障害回復のための手段を持つ計算機システムに
おいて、あるプロセスがオペレーティングシステムに対
して処理を委ねる際、その前後において制御権を獲得
し、その前段階において上記状態保存のための要求に対
する処理を禁止し、後段階においてそれを解除するとと
もに、オペレーティングシステムから受けるサービスに
関する提供情報を記録し、必要に応じ、上記オペレーテ
ィングシステムから受けるサービスに関する提供情報と
保存されたプロセスの状態情報を復元し、処理を再開す
ることを特徴とするものである。また、(2)あるプロ
セスがオペレーティングシステムに対して処理を委ねる
際、その前後において制御権を獲得し、その前段階にお
いて割り込み等非同期サービス要求に対する処理を禁止
し、後段階においてそれを解除するとともに、オペレー
ティングシステムから受けるサービスに関する提供情報
を記録することも特徴とする。
タスク処理を行うオペレーティングシステムをサポート
する少なくとも1個のプロセッサユニトと、プロセッサ
ユニットにより共有使用される記憶装置と、タスクの処
理の実体であるプロセスからチェックポイント採取の要
求があったとき、プロセッサによるデータ処理途中で記
憶装置上に定期的にチェックポイントを作成し、その時
点におけるプロセスの状態情報を保存するチェックポイ
ント採取機構と、プロセスがオペレーティングシステム
に対して処理を委ねる際、その前後において制御権を獲
得し、その前段階において上記チェックポイント採取を
含む非同期サービス要求に対する処理を禁止し、後段階
においてそれを解除するとともに、オペレーティングシ
ステムから受けるサービスに関する提供情報を記録する
プログラム制御機構と、プロセスから状態復帰後再開の
要求があったとき、上記オペレーティングシステムから
受けるサービスに関する提供情報と保存されたプロセス
の状態情報を復元し、その時点から処理を再開する状態
復元機構とを具備することを特徴とする。
るメモリ装置は、(4)あるプロセスもしくは割り込み
によりチェックポイント採取要求があった場合に、プロ
セスの状態情報を保存し、ロールバック/ リスタート要
求があった場合に、保存されたプロセスの状態情報を用
いて、プロセスの状態を復元することにより、実行中プ
ロセスのチェックポイントを採取しながらデータ処理を
行い、障害発生時、最後に採取したチェックポイントを
用いてプロセスの状態を復元し、そこから処理を再開し
て障害回復機能を実現するものであって、プロセスがオ
ペレーティングシステムによるサービスを受けるために
システムコールを発行する際、そのシステムコールの発
行の前後においてシステムの制御権を強制的に獲得する
ステップと、システムコール発行の前段階において上記
チェックポイント採取を含む非同期に発生するサービス
要求に対する処理を禁止し、後段階においてそれを解除
するステップと、解除前にオペレーティングシステムか
ら受けるサービスに関する提供情報を記録するステップ
と、障害発生時、上記オペレーティングシステムから受
けるサービスに関する提供情報と保存されたプロセスの
状態情報を復元し、保存されたチェックポイントに加え
て、記録されたオペレーティングシステムから受けてい
るサービスに関する情報を用い、オペレーティングシス
テムから受けているサービスも再現するステップとがプ
ログラムされ記憶されることを特徴とする。
ムが特殊なサブルーチンを呼び出す必要を無くし、ま
た、アプリケーションプログラムに一切の手直しを施す
ことなくフォールトトレランス化を実現する。このこと
により、プログラマに対する負担が大幅に軽減される。
また、多重化モジュールの採用、あるいはプロセスペア
機構等専用OSを使用することなく、マルチタスク処理
を実現するOSを搭載したパーソナルコンピュータ程度
の設備にて実現できるため、廉価構成で高い信頼性を得
るシステム構築が可能となる。
施例について詳細に説明する。
の構成例を示すブロック図である。図からわかるよう
に、 n個のプロセッサ1〜1nによりマルチプロセッ
サシステムが構築され、プロセッサ1〜1nには、プロ
セッサ個々に対応するキャッシュメモリ2〜2nが設け
られている。キャッシュメモリ2〜2nは、メモリ制御
部4とバス5を介して接続される。メモリ制御部4に
は、主記憶装置3及び主記憶装置3に割り付けられるバ
ッファが接続されている。メモリ制御部4は、バスイン
タフェース制御部41、主記憶アクセス制御部42を有
している。バスインタフェース制御部41は、常時バス
5を監視しており、バス5に発行されたトランザクショ
ンに応じて動作する。主記憶アクセス制御部42は、主
記憶装置3と接続され、主記憶もしくはバッファに対す
るアクセスを制御する。主記憶装置3は複数のプロセッ
サ1〜1nにより共有使用されるため共有メモリと呼ば
れる。以降は共有メモリ3と称し説明を行う。
サポートするマイクロプロセッサであり、共有メモリ3
には、ワークステーションやパーソナルコンピュータの
分野で標準的に使用されているUNIXもしくはWIN
DOWS等商用OSがオペレーティングシステムとして
搭載されている。共有メモリ3には、上述したOSが常
駐される他、本発明がインプリメントされるミドルウエ
ア(FTM)ならびにアプリケーションプログラム(A
PL)が割り付けられ必要に応じて起動され、格納され
る。図示していないが、計算機システムには、他に、P
CI等高速入出力バスを介して光ディスク装置あるいは
大容量磁気ファイル装置等不揮発性メモリが接続される
のが一般的である。
で構成されるマルチプロセッサシステムを例示したが本
発明を実施するうえで必須ではなく、唯一個のプロセッ
サで構成されるシングルプロセッサシステムであっても
構わない。ここで、本発明実施例の動作を説明するにあ
たり前提となるチェックポイントリカバリ方式について
簡単に説明する。計算機システムの信頼性を高めるため
に使用される方式の一つであり、通常のデータ処理の途
中で定期的にチェックポイントを主記憶装置3上に作成
しておき、計算機に何らかの障害が発生したときに、直
前のチェックポイントに戻って処理を再開するための仕
掛けが存在する。その仕掛けは、共有メモリ3にローデ
ィングされ記憶されるミドルウェア(FTM)に展開さ
れる。
を用いて、コンピュータシステムの上位層で実現される
本発明が実現されるフォールトトレラントミドルウェア
(FTM)をOSとともに共有メモリ30上に展開して
示した概念図である。
0,#1)である。マルチプロセッサにおいて並列処理
の対称となるあるまとまった仕事はプロセス(proc
ess)と呼ばれ、並列に実行可能な処理単位である。
プロセスはプログラムによって制御される動的な概念で
あり、プロセッサとは区別して使用される。また、この
プロセス11,12は、本発明によりフォールトトレラ
ント化されるプロセスであり、プロセス毎設けられるラ
イブラリ中にそれぞれチェックポイント採取機構13,
14を持っている。デーモンプロセス15は、ライブラ
リと通信しながら裏処理(プロセス#0と#2が並行し
て実行される処理)を実行する。26はセマフォ(se
maphore)である。セマフォ26は、プロセス間
の同期をとるため、プロセス間でデータと制御情報を交
換して排他制御を行う同期制御機構であり、そのメカニ
ズムはOS中に存在する。
発性のディスク装置、30は共有メモリであり、これら
はバス31を介して共通接続される。計算機システム
は、セマフォ26、共有メモリ30、ファィル操作等O
Sからのサービスを受けながらプログラムを実行するも
のとする。
展開して示した動作概念図である。
示すものと同様である。フォールトトレラント化するプ
ロセス31のチェックポイントを採るためにプロセス3
1に対して、特定のタイミング、例えば一定時間間隔
で、チェックポイント採取要求32を送る。プロセス3
1が、このチェックポイント採取要求32を受けると、
チェックポイント採取ステップ33によって、このプロ
セス31の状態34(アドレス空間、コンテクスト等)
を採取する。このチェックポイント採取要求によって採
取されたプロセスの状態34は、障害発生時の回復処理
に利用される。
害が発生し異常終了を起こした場合には、OSあるいは
デーモン等がそれを検出し、ロールバック/ リスタート
要求35を、ロールバック/ リスタートステップ36に
送る。ロールバック/ リスタートステップ36は、ロー
ルバック/ リスタート要求35を受けると、チェックポ
イント採取要求32が発生した時に、チェックポイント
採取ステップ33によって採られたプロセスの状態34
を用いて、異常終了したプロセス31を、チェックポイ
ント採取時点から、再起動させる。
Sからサービス(システムコール)を受けていた場合、
それを復元することができない。そこで本発明では、プ
ロセス31がOSのサービスを受けるために、システム
コール37を発行した際にそれをフックし、プロセス3
1がOSから受けるサービスに関する情報を、システム
コールサービス提供情報41として記録し、障害発生時
にプロセス31を、チェックポイント時に保存された状
態34を用いて再起動させる際に、記録されたシステム
コールサービス提供情報31を基に、OSから受けてい
るサービスの状態を復元するものである。
報を記録している最中にチェックポイントが採られて
は、障害発生時にOSから受けているサービスを復元す
ることが困難となるため、システムコールサービス提供
情報31を記録している最中は、チェックポイントが採
られないようにする必要がある。即ち、39はシステム
コール呼び出し前後に制御権を強制獲得するステップ
(以降、単に制御獲得ステップと称する)であり、プロ
セス31がシステムコール37を発行してOSに処理を
委ねる直前、および、直後に制御を奪うものである。制
御獲得ステップ39は、システムコールの呼び出し前で
制御を奪った際に、チェックポイント採取要求ブロック
ステップ33に、以降、チェックポイント採取要求の受
け付けを禁止(ブロック)させる。その後、制御獲得ス
テップ39は、システムコールサービス提供情報記録ス
テップ40に依頼して、システムコールサービス提供情
報41を記録する。この後プロセス31は、OSから本
来のシステムコールのサービス提供を受ける。
御権を獲得し、システムコールサービス提供情報記録ス
テップ40に依頼して、システムコールサービス提供情
報41を記録する。そしてこの後、チェックポイント採
取要求ブロック解除ステップ42に、チェックポイント
採取要求のブロック解除を依頼する。チェックポイント
採取要求ブロック解除ステップ42は、チェックポイン
ト採取要求ブロックステップ43に、チェックポイント
採取要求のブロック解除を依頼する。これにより、プロ
セスがシステムコールサービスの提供を受ける際に、そ
のシステムコールサービス提供情報を記録し、かつ、そ
の情報を記録している最中にチェックポイントが採られ
ることはなくなるので、チェックポイント採取時には、
プロセスの状態24が保存され、かつ、システムコール
サービス提供情報41が記録されているので障害発生時
には、保存されたプロセスの状態34を用いて、プロセ
ス31のアドレス空間とコンテクストを復元するととも
に、システムコールサービス提供情報41を用いて、O
Sから受けているサービスを復元することも可能とな
る。
明するために引用したフローチャートである。図4に
は、プロセスがシステムコールを発行し、OSからサー
ビスの提供を受ける際に、そのシステムコールサービス
提供情報を記録するまでの処理の流れが示されている。
プロセスがシステムコールを発行した際、実際にシステ
ムコールを実行する前に、その制御を奪い、システムコ
ール呼び出し前処理を実行する。システムコール呼び出
し前処理は図5に示されている。この後、ステップS2
0で実際にシステムコールを実行する。その後ステップ
S23で実際にシステムコールが実行された後にその制
御を奪い、システムコール呼び出し後処理を実行する。
システムコール呼び出し後処理は図6に示されている。
を奪った際のシステムコール呼び出し前処理の流れを示
す図である。ステップS40で、このプロセスがチェッ
クポイント採取要求を受け付けないようにする。これは
例えばチェックポイント採取要求が、UNIXで言う所
のシグナルで送られるのなら、シグナルマスクをセット
することにより可能となる。この後ステップS50でO
Sから受けるサービスに関する情報を、システムコール
実行前に記録する必要があるか否かを判定する。
定しておくものとする。もしステップS50で、OSか
ら受けるサービスに関する情報を、システムコール実行
前に記録する必要がないと判定した場合には、これでシ
ステムコール呼び出し前処理を終える。もしステップS
50で、OSから受けるサービスに関する情報を、シス
テムコール実行前に記録する必要があると判定した場合
には、ステップS60で、OSから受けるサービスに関
する情報を記録する。
を奪った際のシステムコール呼び出し後処理の流れを示
す図である。ステップS70で、OSから受けるサービ
スに関する情報を、システムコール実行後に記録する必
要があるか否かを判定定する。
定しておくものとする。もしステップS70で、OSか
ら受けるサービスに関する情報をシステムコール実行前
に記録する必要がないと判定した場合には、これでシス
テムコール呼び出し後処理のS80の処理をスキップ
し、ステップS90の処理を実行する。もしステップS
70でOSから受けるサービスに関する情報を、システ
ムコール実行後に記録する必要があると判定した場合に
は、ステップS80でOSから受けるサービスに関する
情報を記録した上で、ステップS90の処理を実行す
る。そして、最後にステップS90でこのプロセスが再
びチェックポイント採取要求を受け付ける状態に戻す。
これは、例えばチェックポイント採取要求が、UNIX
で言う所のシグナルで送られるのなら、シグナルマスク
の設定を元の状態に戻すことにより可能となる。
プロセスがセマフォサービスの提供を受けていた場合に
ついて示す。プロセスがセマフォサービスの提供を受
け、その情報をチェックポイント採取時に保存してお
き、障害発生時にその情報を基に、プロセスが受けてい
たセマフォサービスを復元する事について考える。
サービスとして、 (1)セマフォアロケーション(semget) (2)セマフォ操作(semop) (3)セマフォ制御(semctl)等がある。
としては、最初にsemgetでセマフォをアロケーシ
ョンし、次にsemctlでセマフォの値を初期化し、
以降、semopでセマフォの獲得/解放を行う。
アロケーションする前に、システムコール呼び出し前後
制御獲得ステップが制御を奪い、チェックポイント採取
要求ブロックステップを呼び出し、チェックポイントの
採取を禁止している。そして、プロセスがセマフォをア
ロケーションした後に、システムコール呼び出し前後制
御獲得ステップが再び制御を奪い、アロケーションした
セマフォに関する情報を、システムコールサービス提供
情報として記録し、チェックポイント採取要求ブロック
解除ステップを呼び出し、再びチェックポイントの採取
を可能にする。チェックポイント採取時には、システム
コールサービス提供情報に記録されているセマフォの値
を読み出し、その情報をシステムコールサービス提供情
報に追加する。
供情報に記録されている情報に基づいて、セマフォを再
アロケーションしても、アロケーションされたセマフォ
の識別子が、障害発生前の識別子と異なる場合がある。
一般にUNIXのプログラムは、アロケーションしたセ
マフォに識別子を用いてアクセスするので、これでは問
題である。そこで、障害発生時に、システムコールサー
ビス提供情報に記録されている情報に基づいて、セマフ
ォを再アロケーションし、アロケーションされたセマフ
ォの識別子が変更された場合、図7に示す様なセマフォ
識別子変換表を用意する。そしてプログラムが、セマフ
ォ操作を行う前に、システムコール呼び出し前後制御獲
得ステップが制御を奪い、図7の変換表を用いて、セマ
フォ識別子の変換を行う。これにより、障害発生時に再
アロケーションされたセマフォの識別子が、障害発生前
の識別子と異なっていたとしても、プログラムはそのこ
とを意識することなく、障害発生前の識別子で、セマフ
ォにアクセスすることができる。
供を受けていた場合について示す。
け、その情報をチェックポイント採取時に保存してお
き、障害発生時にその情報を基に、プロセスが受けてい
た共有メモリサービスを復元する事について考える。
サービスとして、 (1)共有メモリアロケーション(shmget) (2)共有メモリアタッチ(shmat) (3)共有メモリデタッチ(shmdt)等がある。
法としては、最初にshmgetで共有メモリをアロケ
ーションし、次に、shmatで共有メモリをアドレス
空間にマッピングし、以降load/store命令で
アクセスを行う。
をアロケーションする前に、システムコール呼び出し前
後制御獲得ステップが制御を奪い、チェックポイント採
取要求ブロックステップを呼び出し、チェックポイント
の採取を禁止する。そしてプロセスが共有メモリをアロ
ケーションした後に、システムコール呼び出し前後制御
獲得ステップが再び制御を奪い、獲得した共有メモリに
関する情報を、システムコールサービス提供情報として
記録し、チェックポイント採取要求ブロック解除ステッ
プを呼び出し、再びチェックポイントの採取を可能にす
る。チェックポイント採取時には、システムコールサー
ビス提供情報に記録されている共有メモリの値を読み出
し、その情報をシステムコールサービス提供情報に追加
する。
供情報に記録されている情報に基づいて、共有メモリを
再アロケーションしても、獲得された共有メモリの識別
子が、障害発生前の識別子と異なる場合がある。一般に
UNIXのプログラムは、アロケーションした共有メモ
リを、識別子を用いてマッピングするので、shmge
tとshmatの間で障害が発生すると問題がある。そ
こで障害発生時に、システムコールサービス提供情報に
記録されている情報に基づいて、共有メモリを再アロケ
ーションし、アロケーションされた共有メモリの識別子
が変更された場合、図8に示す様な共有メモリ識別子変
換表を用意する。そしてプログラムが、共有メモリのマ
ッピングを行う前に、システムコール呼び出し前後制御
獲得ステップが制御を奪い、図8の変換表を用いて、共
有メモリ識別子の変換を行う。これにより、障害発生時
に再獲得された共有メモリの識別子が、障害発生前の識
別子と異なっていたとしても、プログラムはそのことを
意識することなく、障害発生前の識別子で、共有メモリ
をマッピングすることができる。
OSのサービスを受けるために、システムコールを呼び
出す際に、システムコールの呼び出し前後で制御を奪
い、システムコール呼び出し前後制御獲得ステップが、
システムコールの呼び出し前後で制御を奪った時に、シ
ステムコール呼び出し前後制御獲得ステップの指示によ
り、チェックポイント採取要求をブロックしていたが、
更にUNIXシステムで言うところのシグナルの様な、
非同期サービス要求もブロックする必要がある。
いて説明する。
共有メモリ上に展開して示した動作概念図である。計算
機、OSは上述したとおりであり、UNIXもしくはW
INDOWS搭載の一般的な商用計算機である。71は
プロセスであり、計算機およびそれを制御するOS上で
実行される。このプロセス71は本発明によってフォー
ルトトレラント化されるプロセスである。プロセス91
がOSのサービスを受けるために、システムコール81
を発行した際にそれをフックし、プロセス71がOS7
9から受けるサービスに関する情報を、システムコール
サービス提供情報78として記録する。76はシステム
コール呼び出し前後制御獲得ステップであり、プロセス
71がシステムコール81を呼び出す直前、および、直
後に制御を奪うものである。システムコール呼び出し前
後制御獲得ステップ76は、システムコールの呼び出し
前で制御を奪った際に、非同期サービス要求ブロックス
テップ74に、以降、非同期サービス要求の受け付けを
ブロックさせる。
獲得ステップ76は、システムコールサービス提供情報
記録ステップ77に依頼して、システムコールサービス
提供情報78を記録する。この後プロセス71は、OS
から本来のシステムコールのサービス提供を受ける。そ
の後、システムコール呼び出し前後制御獲得ステップ7
6は、再び制御を獲得し、システムコールサービス提供
情報記録ステップ77に依頼して、システムコールサー
ビス提供情報78を記録する。そしてこの後、非同期サ
ービス要求ブロック解除ステップ75に、非同期サービ
ス要求のブロック解除を依頼する。非同期サービス要求
ブロック解除ステップ75は、非同期サービス要求ブロ
ックステップ74に、非同期サービス要求のブロック解
除を依頼する。これにより、プロセスがシステムコール
サービスの提供を受ける際に、そのシステムコールサー
ビス提供情報を記録し、かつ、その情報を記録している
最中に非同期サービスが処理されることもなくなる。
セスの実行を意識的に停止させ、後でチェックポイント
から処理を再開させる事により、リジューム機能を実現
することもできる。更に、上記チェックポイントを図2
に示すディスク装置29等不揮発性記憶装置に保存して
おくことにより、障害等による不意のシステム再ブート
後、あるいはユーザによる意識的な再ブート後に、上記
ディスク装置29に保存されたチェックポイントから、
プロセスの実行を再開することも可能となる。
ウェア、特殊なOS、及びアプリケーションでの特殊な
コーディングを必要とせず、オープン環境に適したフォ
ールトトレラントシステムを提供するものであるが、こ
こに示された方法を応用することにより、フォールトト
レランス以外の機能を提供することも可能である。図9
に示した例がその様な場合の実施例にもなっている。即
ち、プロセスがシステムコールサービスの提供を受ける
際に、そのシステムコールサービス提供情報を記録し、
かつ、その情報を記録している最中に非同期サービスが
処理されることがなくなるため、プロセスの実行状態の
記録が可能になり、デバッガやエミュレータ等、様々な
分野に本発明を応用することが可能になる。
ロセスとライブラリ等を用いて、コンピュータシステム
の上位層で実現されるフォールトトレラントミドルウェ
アに、上述した仕掛けを組み込んだものであり、アプリ
ケーションをフォールトトレラント化するために、フォ
ールトトレランスを実現するために定義した特殊なサブ
ルーチンを呼び出さなければならなかった(既存のアプ
リケーションプログラムに変更を要す)従来の不都合を
解消したものであり、アプリケーションプログラムがシ
ステムコールを発行する前に制御権を獲得し、プロセス
のチェックポイント採取のために必要な情報を記録した
上で、OSに処理を委ねる構成とすることにより、アプ
リケーションプログラムが特殊なサブルーチンを呼び出
す必要を無くし、また、アプリケーションプログラムに
一切の手直しを施すことなくフォールトトレランス化を
実現する。このことにより、プログラマに対する負担が
大幅に軽減される。また、多重化モジュールの採用、あ
るいはプロセスペア機構等専用OSを使用することな
く、マルチタスク処理を実現するOSを搭載したパーソ
ナルコンピュータ程度の設備にて実現できるため、廉価
構成で高い信頼性を得るシステム構築が可能である。
示すブロック図、
ルウェア(FTM)をOSとともに主記憶上に展開して
示した概念図、
示した動作概念図、
ローチャート、
ローチャート、
ローチャート、
換表の構成を示す図、
変換表の構成を示す図、
開して示した動作概念図、
記憶装置(共有メモリ)、4…メモリ制御装置、41…
バスインタフェース制御部、42…状態保存制御部、4
3…主記憶アクセス制御部、44…バッファアクセス制
御部、11(12)、31…プロセス、13(14)…
チェックポイント採取機構、15…デーモンプロセス、
26…セマフォ、29…ディスク装置。
Claims (10)
- 【請求項1】 プロセスの状態を定期的に記録し、必要
に応じ、記録された状態を復元して処理を再開すること
のできる、障害回復のための手段を持つ計算機システム
において、あるプロセスがオペレーティングシステムに
対して処理を委ねる際、その前後において制御権を獲得
し、その前段階において上記状態保存のための要求に対
する処理を禁止し、後段階においてそれを解除するとと
もに、オペレーティングシステムから受けるサービスに
関する提供情報を記録し、必要に応じ、上記オペレーテ
ィングシステムから受けるサービスに関する提供情報と
保存されたプロセスの状態情報を復元し、処理を再開す
ることを特徴とする状態記録再現方法。 - 【請求項2】 オペレーティングシステムによるサービ
スを受けた結果として得られるプロパティ識別子と、処
理を再開したとき上記オペレーティングシステムから受
けるサービスに関する提供情報に基づき再獲得して得ら
れるプロパティ識別子を組とする識別子変換表を備え、
あるプロセスがオペレーティングシステムに対し処理を
委ねる際、その前後において制御権を獲得し、識別子が
変更されている場合には上記識別子変換表を参照し、変
換された識別子を用いてオペレーティングシステムによ
るサービスの提供を受けることを特徴とする請求項1記
載の状態記録再現方法。 - 【請求項3】 上記オペレーティングシステムによるサ
ービスは、プロセス間の同期をとるため、プロセス間で
データと制御情報を交換して排他制御を行う同期制御機
構によるサービスであり、あるプロセスが上記同期制御
機構を獲得する前に制御権を奪い、状態情報記録のため
の要求に対する処理を禁止し、同期制御機構を獲得した
後、獲得した同期制御機構に関する情報を上記サービス
提供情報として記録し、上記状態記録のための要求に対
する処理の禁止を解除することを特徴とする請求項2記
載の状態記録再現方法。 - 【請求項4】 上記オペレーティングシステムによるサ
ービスは、プロセスによって共有使用される共有メモリ
のサービスであり、あるプロセスが共有メモリを獲得す
る前に制御権を奪って状態情報記録のための要求に対す
る処理を禁止し、共有メモリを獲得した後、獲得した共
有メモリに関する情報を上記サービス提供情報として記
録し、上記状態記録のための要求に対する処理の禁止を
解除することを特徴とする請求項2記載の状態記録再現
方法。 - 【請求項5】 プロセスの状態を記録後意識的にプロセ
スの実行を停止し、後に停止直前の状態からプロセスの
実行を継続することを特徴とすることを特徴とする請求
項1記載の状態記録再現方法。 - 【請求項6】 プロセスの状態を定期的に不揮発性メモ
リに保存することにより、障害等による不意のシステム
立ち上げ、もしくはユーザによる意識的なシステム立ち
上げの後、上記不揮発性メモリに保存された最新の状態
からプロセスの実行を再開することを特徴とする請求項
1記載の状態記録再現方法。 - 【請求項7】 あるプロセスがオペレーティングシステ
ムに対して処理を委ねる際、その前後において制御権を
獲得し、その前段階において割り込み等非同期サービス
要求に対する処理を禁止し、後段階においてそれを解除
するとともに、オペレーティングシステムから受けるサ
ービスに関する提供情報を記録することを特徴とする状
態記録再現方法。 - 【請求項8】 マルチタスク処理を行うオペレーティン
グシステムをサポートする少なくとも1個のプロセッサ
ユニトと、プロセッサユニットにより共有使用される記
憶装置と、タスクの処理の実体であるプロセス、もしく
は割り込み等によりチェックポイント採取の要求があっ
たとき、プロセッサによるデータ処理途中で記憶装置上
に定期的にチェックポイントを作成し、その時点におけ
るプロセスの状態情報を保存するチェックポイント採取
機構と、プロセスがオペレーティングシステムに対して
処理を委ねる際、その前後において制御権を獲得し、そ
の前段階において上記チェックポイント採取を含む非同
期サービス要求に対する処理を禁止し、後段階において
それを解除するとともに、オペレーティングシステムか
ら受けるサービスに関する提供情報を記録するプログラ
ム制御機構と、プロセスから状態復帰後再開の要求があ
ったとき、上記オペレーティングシステムから受けるサ
ービスに関する提供情報と保存されたプロセスの状態情
報を復元し、その時点から処理を再開する状態復元機構
とを具備することを特徴とする計算機システム。 - 【請求項9】 チェックポイントの採取要求があった場
合、プロセスの状態情報を保存し、ロールバック/ リス
タート要求があった場合に、保存されたプロセスの状態
情報を用いて、プロセスの状態を復元することにより、
実行中プロセスのチェックポイントを採取しながらデー
タ処理を行い、障害発生時、最後に採取したチェックポ
イントを用いてプロセスの状態を復元し、そこから処理
を再開して障害回復機能を実現するものであって、プロ
セスがオペレーティングシステムによるサービスを受け
るためにシステムコールを発行する際、そのシステムコ
ールの発行の前後においてシステムの制御権を強制的に
獲得するステップと、システムコール発行の前段階にお
いて上記チェックポイント採取を含む非同期に発生する
サービス要求に対する処理を禁止し、後段階においてそ
れを解除するステップと、解除前にオペレーティングシ
ステムから受けるサービスに関する提供情報を記録する
ステップと、障害発生時、上記オペレーティングシステ
ムから受けるサービスに関する提供情報と保存されたプ
ロセスの状態情報を復元し、保存されたチェックポイン
トに加えて、記録されたオペレーティングシステムから
受けているサービスに関する情報を用い、オペレーティ
ングシステムから受けているサービスも再現するステッ
プとがプログラムされ記憶されることを特徴とするメモ
リ装置。 - 【請求項10】 上記オペレーティングシステムから受
けるサービスは、プロセス間の同期をとるため、プロセ
ス間でデータと制御情報を交換して排他制御を行う同期
制御機構、共有メモリ、ファイル入出力のうち、少なく
とも一つであることを特徴とする請求項9記載のメモリ
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34769396A JP3919274B2 (ja) | 1996-12-26 | 1996-12-26 | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34769396A JP3919274B2 (ja) | 1996-12-26 | 1996-12-26 | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10187616A true JPH10187616A (ja) | 1998-07-21 |
JP3919274B2 JP3919274B2 (ja) | 2007-05-23 |
Family
ID=18391941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34769396A Expired - Lifetime JP3919274B2 (ja) | 1996-12-26 | 1996-12-26 | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3919274B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008502953A (ja) * | 2003-11-17 | 2008-01-31 | ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド | 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行 |
JP2011044078A (ja) * | 2009-08-24 | 2011-03-03 | Internatl Business Mach Corp <Ibm> | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
US8566539B2 (en) | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
GB2537038A (en) * | 2015-03-13 | 2016-10-05 | Ibm | Resilient programming frameworks for handling failures in parallel programs |
US9652337B2 (en) | 2015-03-13 | 2017-05-16 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4992745B2 (ja) * | 2008-02-05 | 2012-08-08 | 日本電気株式会社 | チェックポイント・リスタート装置及びチェックポイント・リスタート方法 |
-
1996
- 1996-12-26 JP JP34769396A patent/JP3919274B2/ja not_active Expired - Lifetime
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008502953A (ja) * | 2003-11-17 | 2008-01-31 | ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド | 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行 |
US8566539B2 (en) | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
JP2011044078A (ja) * | 2009-08-24 | 2011-03-03 | Internatl Business Mach Corp <Ibm> | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
US9032190B2 (en) | 2009-08-24 | 2015-05-12 | International Business Machines Corporation | Recovering from an error in a fault tolerant computer system |
GB2537038A (en) * | 2015-03-13 | 2016-10-05 | Ibm | Resilient programming frameworks for handling failures in parallel programs |
US9652337B2 (en) | 2015-03-13 | 2017-05-16 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
US9652336B2 (en) | 2015-03-13 | 2017-05-16 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
GB2537038B (en) * | 2015-03-13 | 2017-08-30 | Ibm | Resilient programming frameworks for handling failures in parallel programs |
US10275323B2 (en) | 2015-03-13 | 2019-04-30 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
US10296424B2 (en) | 2015-03-13 | 2019-05-21 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
US10831616B2 (en) | 2015-03-13 | 2020-11-10 | International Business Machines Corporation | Resilient programming frameworks for iterative computations |
US10831617B2 (en) | 2015-03-13 | 2020-11-10 | International Business Machines Corporation | Resilient programming frameworks for iterative computations on computer systems |
Also Published As
Publication number | Publication date |
---|---|
JP3919274B2 (ja) | 2007-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5796937A (en) | Method of and apparatus for dealing with processor abnormality in multiprocessor system | |
US5448718A (en) | Method and system for time zero backup session security | |
US5065311A (en) | Distributed data base system of composite subsystem type, and method fault recovery for the system | |
US4648031A (en) | Method and apparatus for restarting a computing system | |
JP3154942B2 (ja) | 分散チェックポイント生成方法および同方法が適用される計算機システム | |
US7904906B2 (en) | Tracking modified pages on a computer system | |
US7152181B2 (en) | Method for highly available transaction recovery for transaction processing systems | |
US7853825B2 (en) | Methods and apparatus for recovering from fatal errors in a system | |
JP4378335B2 (ja) | ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム | |
US20020059306A1 (en) | Method and system for advanced restart of application servers processing time-critical requests | |
JPH0683687A (ja) | データ処理システム及びその方法 | |
JP2011060055A (ja) | 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム | |
CA2071346A1 (en) | Method and means for time zero backup copy of data | |
JPH07311749A (ja) | マルチプロセッサシステム及びカーネル置換方法 | |
JP4560074B2 (ja) | 仮想計算機システム及び同システムにおける仮想計算機復元方法 | |
JP3919274B2 (ja) | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH10326220A (ja) | ファイルシステムおよびファイル管理方法 | |
CN114756355B (zh) | 一种计算机操作系统的进程自动快速恢复的方法和装置 | |
JPH06274354A (ja) | 破壊的なハードウェア動作を制御する方法及びシステム | |
EP0851352B1 (en) | Input/output control device and method applied to fault-resilient computer system | |
US20060047686A1 (en) | Apparatus, system, and method for suspending a request during file server serialization reinitialization | |
JP2574532B2 (ja) | フォールトトレラントシステムにおける資源管理方法 | |
JP2825839B2 (ja) | デッドロック検出処理方式 | |
JP2763956B2 (ja) | ファイルオープン環境の回収処理方式 | |
JPH0312773A (ja) | データベース処理における局所異常回復処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050421 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070115 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070213 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100223 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140223 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |