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
Application number
JP8347693A
Other languages
English (en)
Other versions
JP3919274B2 (ja
Inventor
Hideaki Hirayama
秀昭 平山
Toshio Shirokibara
敏雄 白木原
Kiyoko Satou
記代子 佐藤
Tatsunori Kanai
達徳 金井
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 JP34769396A priority Critical patent/JP3919274B2/ja
Publication of JPH10187616A publication Critical patent/JPH10187616A/ja
Application granted granted Critical
Publication of JP3919274B2 publication Critical patent/JP3919274B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 本発明は、フォールトトレランスを実現する
ために定義した特殊なサブルーチンを呼び出さなければ
ならなかった従来の不都合を解消し、プログラマの負担
軽減をはかる。 【解決手段】 デーモンプロセス15とライブラリ11
(12)等を用いて、コンピュータシステムの上位層で
実現されるフォールトトレラントミドルウェアに、アプ
リケーションプログラムがシステムコールを発行する前
に制御権を獲得し、プロセスのチェックポイント13
(14)採取のために必要な情報を記録した上で、OS
に処理を委ねる仕掛けを組み込むことにより、アプリケ
ーションプログラムが特殊なサブルーチンを呼び出す必
要を無くし、また、アプリケーションプログラムに一切
の手直しを施すことなくフォールトトレランス化を実現
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、状態記録再現方
法、ならびに同方法を実現する計算機システム、及び同
方法がプログラムされ記憶されるメモリ装置に関する。
【0002】
【従来の技術】計算機システムの信頼性を高める技術と
して、フォールトトレラントシステムが知られている。
フォールトトレラントシステムには、 計算機全体を高
信頼化するタイプと、 特定のプロセスに限って高信頼
化するタイプとがある。前者はフォールトトレラントコ
ンピュータとして知られた技術で、一般に多重化モジュ
ール機構等を採用した専用ハードウェア、あるいはプロ
セスペア機構等を採用した専用オペレーティングシステ
ム(OS)によって、コンピュータシステムの下位層で
実現される。後者はフォールトトレラントミドルウェア
として知られた技術で、デーモンプロセスとライブラリ
等を用い、コンピュータシステムの上位層で実現され
る。具体的に、前者は米国TANDEM社やSTRATUS 社の無停
止型コンピュータ、後者はSTRATUS 社のISIS等として有
名である。
【0003】しかしなから前者の場合、専用のハードウ
ェアなりOSが必要となり、システム構成が割高となる
欠点を有する。一方、後者の場合、専用のアプリケーシ
ョンインタフェースを必要とし、アプリケーションプロ
グラムが、フォールトトレランスを実現するために定義
した特殊なサブルーチンを呼び出す必要があり、既存の
アプリケーションプログラムを、そのまま手直しするこ
となく利用することはできなかった。
【0004】
【発明が解決しようとする課題】上述したように従来例
に従えば、フォールトトレランスを実現するには、高価
になるか、あるいはプログラマに負担をかけるか、いず
れか一方を選択する以外になかった。本発明は後者を選
択しながらもプログラマにかかる負担を低減するもので
あり、デーモンプロセスとライブラリ等を用いて、コン
ピュータシステムの上位層で実現されるフォールトトレ
ラントミドルウェアに、後述する仕掛けを組み込むもの
である。アプリケーションをフォールトトレラント化す
るために、フォールトトレランスを実現するために定義
した特殊なサブルーチンを呼び出さなければならなかっ
た(既存のアプリケーションプログラムに変更を要す)
従来の不都合を解消するものであり、アプリケーション
プログラムがシステムコールを発行する前に制御権を獲
得し、プロセスのチェックポイント採取のために必要な
情報を記録した上で、OSに処理を委ねる構成とするこ
とにより、アプリケーションプログラムが特殊なサブル
ーチンを呼び出す必要を無くし、また、アプリケーショ
ンプログラムに一切の手直しを施すことなくフォールト
トレランス化を実現する、状態記録再現方法、ならびに
同方法を実現する計算機システム、及び同方法がプログ
ラムされ記憶されるメモリ装置を提供することを目的と
する。
【0005】チェックポイントは任意のタイミングで採
られるため、上記の情報を記録している最中にチェック
ポイントが採られてしまうと、障害発生時に、そのチェ
ックポイントからプロセスを再実行させることができな
いが、本発明を適用することにより、上記の情報を記録
している最中にチェックポイントが採られる事を抑止
し、障害発生時に、任意のチェックポイントから、プロ
セスを再実行させることができるようになる。ここでチ
ェックポイントとは、プロセスの処理をその時点から再
実行させるための情報で、プロセスのアドレス空間の値
やプロセッサコンテクストの値等を含んでいる。
【0006】
【課題を解決するための手段】本発明の状態記録再現方
法は、(1)プロセスの状態を定期的に記録し、必要に
応じ、記録された状態を復元して処理を再開することの
できる、障害回復のための手段を持つ計算機システムに
おいて、あるプロセスがオペレーティングシステムに対
して処理を委ねる際、その前後において制御権を獲得
し、その前段階において上記状態保存のための要求に対
する処理を禁止し、後段階においてそれを解除するとと
もに、オペレーティングシステムから受けるサービスに
関する提供情報を記録し、必要に応じ、上記オペレーテ
ィングシステムから受けるサービスに関する提供情報と
保存されたプロセスの状態情報を復元し、処理を再開す
ることを特徴とするものである。また、(2)あるプロ
セスがオペレーティングシステムに対して処理を委ねる
際、その前後において制御権を獲得し、その前段階にお
いて割り込み等非同期サービス要求に対する処理を禁止
し、後段階においてそれを解除するとともに、オペレー
ティングシステムから受けるサービスに関する提供情報
を記録することも特徴とする。
【0007】本発明の計算機システムは、(3)マルチ
タスク処理を行うオペレーティングシステムをサポート
する少なくとも1個のプロセッサユニトと、プロセッサ
ユニットにより共有使用される記憶装置と、タスクの処
理の実体であるプロセスからチェックポイント採取の要
求があったとき、プロセッサによるデータ処理途中で記
憶装置上に定期的にチェックポイントを作成し、その時
点におけるプロセスの状態情報を保存するチェックポイ
ント採取機構と、プロセスがオペレーティングシステム
に対して処理を委ねる際、その前後において制御権を獲
得し、その前段階において上記チェックポイント採取を
含む非同期サービス要求に対する処理を禁止し、後段階
においてそれを解除するとともに、オペレーティングシ
ステムから受けるサービスに関する提供情報を記録する
プログラム制御機構と、プロセスから状態復帰後再開の
要求があったとき、上記オペレーティングシステムから
受けるサービスに関する提供情報と保存されたプロセス
の状態情報を復元し、その時点から処理を再開する状態
復元機構とを具備することを特徴とする。
【0008】更に、本発明の状態記録再現方法を実現す
るメモリ装置は、(4)あるプロセスもしくは割り込み
によりチェックポイント採取要求があった場合に、プロ
セスの状態情報を保存し、ロールバック/ リスタート要
求があった場合に、保存されたプロセスの状態情報を用
いて、プロセスの状態を復元することにより、実行中プ
ロセスのチェックポイントを採取しながらデータ処理を
行い、障害発生時、最後に採取したチェックポイントを
用いてプロセスの状態を復元し、そこから処理を再開し
て障害回復機能を実現するものであって、プロセスがオ
ペレーティングシステムによるサービスを受けるために
システムコールを発行する際、そのシステムコールの発
行の前後においてシステムの制御権を強制的に獲得する
ステップと、システムコール発行の前段階において上記
チェックポイント採取を含む非同期に発生するサービス
要求に対する処理を禁止し、後段階においてそれを解除
するステップと、解除前にオペレーティングシステムか
ら受けるサービスに関する提供情報を記録するステップ
と、障害発生時、上記オペレーティングシステムから受
けるサービスに関する提供情報と保存されたプロセスの
状態情報を復元し、保存されたチェックポイントに加え
て、記録されたオペレーティングシステムから受けてい
るサービスに関する情報を用い、オペレーティングシス
テムから受けているサービスも再現するステップとがプ
ログラムされ記憶されることを特徴とする。
【0009】本発明により、アプリケーションプログラ
ムが特殊なサブルーチンを呼び出す必要を無くし、ま
た、アプリケーションプログラムに一切の手直しを施す
ことなくフォールトトレランス化を実現する。このこと
により、プログラマに対する負担が大幅に軽減される。
また、多重化モジュールの採用、あるいはプロセスペア
機構等専用OSを使用することなく、マルチタスク処理
を実現するOSを搭載したパーソナルコンピュータ程度
の設備にて実現できるため、廉価構成で高い信頼性を得
るシステム構築が可能となる。
【0010】
【発明の実施の形態】以下、図面を使用して本発明の実
施例について詳細に説明する。
【0011】図1は本発明が採用される計算機システム
の構成例を示すブロック図である。図からわかるよう
に、 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と称し説明を行う。
【0012】プロセッサ1〜1nはマルチタスクOSを
サポートするマイクロプロセッサであり、共有メモリ3
には、ワークステーションやパーソナルコンピュータの
分野で標準的に使用されているUNIXもしくはWIN
DOWS等商用OSがオペレーティングシステムとして
搭載されている。共有メモリ3には、上述したOSが常
駐される他、本発明がインプリメントされるミドルウエ
ア(FTM)ならびにアプリケーションプログラム(A
PL)が割り付けられ必要に応じて起動され、格納され
る。図示していないが、計算機システムには、他に、P
CI等高速入出力バスを介して光ディスク装置あるいは
大容量磁気ファイル装置等不揮発性メモリが接続される
のが一般的である。
【0013】尚、図1に示す実施例は複数のプロセッサ
で構成されるマルチプロセッサシステムを例示したが本
発明を実施するうえで必須ではなく、唯一個のプロセッ
サで構成されるシングルプロセッサシステムであっても
構わない。ここで、本発明実施例の動作を説明するにあ
たり前提となるチェックポイントリカバリ方式について
簡単に説明する。計算機システムの信頼性を高めるため
に使用される方式の一つであり、通常のデータ処理の途
中で定期的にチェックポイントを主記憶装置3上に作成
しておき、計算機に何らかの障害が発生したときに、直
前のチェックポイントに戻って処理を再開するための仕
掛けが存在する。その仕掛けは、共有メモリ3にローデ
ィングされ記憶されるミドルウェア(FTM)に展開さ
れる。
【0014】図2は、デーモンプロセスとライブラリ等
を用いて、コンピュータシステムの上位層で実現される
本発明が実現されるフォールトトレラントミドルウェア
(FTM)をOSとともに共有メモリ30上に展開して
示した概念図である。
【0015】図において、11乃至12はプロセス(#
0,#1)である。マルチプロセッサにおいて並列処理
の対称となるあるまとまった仕事はプロセス(proc
ess)と呼ばれ、並列に実行可能な処理単位である。
プロセスはプログラムによって制御される動的な概念で
あり、プロセッサとは区別して使用される。また、この
プロセス11,12は、本発明によりフォールトトレラ
ント化されるプロセスであり、プロセス毎設けられるラ
イブラリ中にそれぞれチェックポイント採取機構13,
14を持っている。デーモンプロセス15は、ライブラ
リと通信しながら裏処理(プロセス#0と#2が並行し
て実行される処理)を実行する。26はセマフォ(se
maphore)である。セマフォ26は、プロセス間
の同期をとるため、プロセス間でデータと制御情報を交
換して排他制御を行う同期制御機構であり、そのメカニ
ズムはOS中に存在する。
【0016】尚、27,28はプロセッサ、29は不揮
発性のディスク装置、30は共有メモリであり、これら
はバス31を介して共通接続される。計算機システム
は、セマフォ26、共有メモリ30、ファィル操作等O
Sからのサービスを受けながらプログラムを実行するも
のとする。
【0017】図3は、本発明実施例の動作を主記憶上に
展開して示した動作概念図である。
【0018】図示した計算機およびOSは図1,図2に
示すものと同様である。フォールトトレラント化するプ
ロセス31のチェックポイントを採るためにプロセス3
1に対して、特定のタイミング、例えば一定時間間隔
で、チェックポイント採取要求32を送る。プロセス3
1が、このチェックポイント採取要求32を受けると、
チェックポイント採取ステップ33によって、このプロ
セス31の状態34(アドレス空間、コンテクスト等)
を採取する。このチェックポイント採取要求によって採
取されたプロセスの状態34は、障害発生時の回復処理
に利用される。
【0019】プロセス31もしくは他のプロセス等に障
害が発生し異常終了を起こした場合には、OSあるいは
デーモン等がそれを検出し、ロールバック/ リスタート
要求35を、ロールバック/ リスタートステップ36に
送る。ロールバック/ リスタートステップ36は、ロー
ルバック/ リスタート要求35を受けると、チェックポ
イント採取要求32が発生した時に、チェックポイント
採取ステップ33によって採られたプロセスの状態34
を用いて、異常終了したプロセス31を、チェックポイ
ント採取時点から、再起動させる。
【0020】但し、これだけではこのプロセス31がO
Sからサービス(システムコール)を受けていた場合、
それを復元することができない。そこで本発明では、プ
ロセス31がOSのサービスを受けるために、システム
コール37を発行した際にそれをフックし、プロセス3
1がOSから受けるサービスに関する情報を、システム
コールサービス提供情報41として記録し、障害発生時
にプロセス31を、チェックポイント時に保存された状
態34を用いて再起動させる際に、記録されたシステム
コールサービス提供情報31を基に、OSから受けてい
るサービスの状態を復元するものである。
【0021】但し、OSから受けるサービスに関する情
報を記録している最中にチェックポイントが採られて
は、障害発生時にOSから受けているサービスを復元す
ることが困難となるため、システムコールサービス提供
情報31を記録している最中は、チェックポイントが採
られないようにする必要がある。即ち、39はシステム
コール呼び出し前後に制御権を強制獲得するステップ
(以降、単に制御獲得ステップと称する)であり、プロ
セス31がシステムコール37を発行してOSに処理を
委ねる直前、および、直後に制御を奪うものである。制
御獲得ステップ39は、システムコールの呼び出し前で
制御を奪った際に、チェックポイント採取要求ブロック
ステップ33に、以降、チェックポイント採取要求の受
け付けを禁止(ブロック)させる。その後、制御獲得ス
テップ39は、システムコールサービス提供情報記録ス
テップ40に依頼して、システムコールサービス提供情
報41を記録する。この後プロセス31は、OSから本
来のシステムコールのサービス提供を受ける。
【0022】その後、制御獲得ステップ39は、再び制
御権を獲得し、システムコールサービス提供情報記録ス
テップ40に依頼して、システムコールサービス提供情
報41を記録する。そしてこの後、チェックポイント採
取要求ブロック解除ステップ42に、チェックポイント
採取要求のブロック解除を依頼する。チェックポイント
採取要求ブロック解除ステップ42は、チェックポイン
ト採取要求ブロックステップ43に、チェックポイント
採取要求のブロック解除を依頼する。これにより、プロ
セスがシステムコールサービスの提供を受ける際に、そ
のシステムコールサービス提供情報を記録し、かつ、そ
の情報を記録している最中にチェックポイントが採られ
ることはなくなるので、チェックポイント採取時には、
プロセスの状態24が保存され、かつ、システムコール
サービス提供情報41が記録されているので障害発生時
には、保存されたプロセスの状態34を用いて、プロセ
ス31のアドレス空間とコンテクストを復元するととも
に、システムコールサービス提供情報41を用いて、O
Sから受けているサービスを復元することも可能とな
る。
【0023】図4乃至図6は、本発明実施例の動作を説
明するために引用したフローチャートである。図4に
は、プロセスがシステムコールを発行し、OSからサー
ビスの提供を受ける際に、そのシステムコールサービス
提供情報を記録するまでの処理の流れが示されている。
プロセスがシステムコールを発行した際、実際にシステ
ムコールを実行する前に、その制御を奪い、システムコ
ール呼び出し前処理を実行する。システムコール呼び出
し前処理は図5に示されている。この後、ステップS2
0で実際にシステムコールを実行する。その後ステップ
S23で実際にシステムコールが実行された後にその制
御を奪い、システムコール呼び出し後処理を実行する。
システムコール呼び出し後処理は図6に示されている。
【0024】図5は、システムコール呼び出し前に制御
を奪った際のシステムコール呼び出し前処理の流れを示
す図である。ステップS40で、このプロセスがチェッ
クポイント採取要求を受け付けないようにする。これは
例えばチェックポイント採取要求が、UNIXで言う所
のシグナルで送られるのなら、シグナルマスクをセット
することにより可能となる。この後ステップS50でO
Sから受けるサービスに関する情報を、システムコール
実行前に記録する必要があるか否かを判定する。
【0025】この判定は、システムコール単位で予め設
定しておくものとする。もしステップS50で、OSか
ら受けるサービスに関する情報を、システムコール実行
前に記録する必要がないと判定した場合には、これでシ
ステムコール呼び出し前処理を終える。もしステップS
50で、OSから受けるサービスに関する情報を、シス
テムコール実行前に記録する必要があると判定した場合
には、ステップS60で、OSから受けるサービスに関
する情報を記録する。
【0026】図6は、システムコール呼び出し後に制御
を奪った際のシステムコール呼び出し後処理の流れを示
す図である。ステップS70で、OSから受けるサービ
スに関する情報を、システムコール実行後に記録する必
要があるか否かを判定定する。
【0027】この判定は、システムコール単位で予め設
定しておくものとする。もしステップS70で、OSか
ら受けるサービスに関する情報をシステムコール実行前
に記録する必要がないと判定した場合には、これでシス
テムコール呼び出し後処理のS80の処理をスキップ
し、ステップS90の処理を実行する。もしステップS
70でOSから受けるサービスに関する情報を、システ
ムコール実行後に記録する必要があると判定した場合に
は、ステップS80でOSから受けるサービスに関する
情報を記録した上で、ステップS90の処理を実行す
る。そして、最後にステップS90でこのプロセスが再
びチェックポイント採取要求を受け付ける状態に戻す。
これは、例えばチェックポイント採取要求が、UNIX
で言う所のシグナルで送られるのなら、シグナルマスク
の設定を元の状態に戻すことにより可能となる。
【0028】次に、OSの具体的なサービス例として、
プロセスがセマフォサービスの提供を受けていた場合に
ついて示す。プロセスがセマフォサービスの提供を受
け、その情報をチェックポイント採取時に保存してお
き、障害発生時にその情報を基に、プロセスが受けてい
たセマフォサービスを復元する事について考える。
【0029】例えば、UNIXシステムでは、セマフォ
サービスとして、 (1)セマフォアロケーション(semget) (2)セマフォ操作(semop) (3)セマフォ制御(semctl)等がある。
【0030】UNIXでの一般的なセマフォの使用方法
としては、最初にsemgetでセマフォをアロケーシ
ョンし、次にsemctlでセマフォの値を初期化し、
以降、semopでセマフォの獲得/解放を行う。
【0031】本発明実施例では、プロセスがセマフォを
アロケーションする前に、システムコール呼び出し前後
制御獲得ステップが制御を奪い、チェックポイント採取
要求ブロックステップを呼び出し、チェックポイントの
採取を禁止している。そして、プロセスがセマフォをア
ロケーションした後に、システムコール呼び出し前後制
御獲得ステップが再び制御を奪い、アロケーションした
セマフォに関する情報を、システムコールサービス提供
情報として記録し、チェックポイント採取要求ブロック
解除ステップを呼び出し、再びチェックポイントの採取
を可能にする。チェックポイント採取時には、システム
コールサービス提供情報に記録されているセマフォの値
を読み出し、その情報をシステムコールサービス提供情
報に追加する。
【0032】障害発生時に、システムコールサービス提
供情報に記録されている情報に基づいて、セマフォを再
アロケーションしても、アロケーションされたセマフォ
の識別子が、障害発生前の識別子と異なる場合がある。
一般にUNIXのプログラムは、アロケーションしたセ
マフォに識別子を用いてアクセスするので、これでは問
題である。そこで、障害発生時に、システムコールサー
ビス提供情報に記録されている情報に基づいて、セマフ
ォを再アロケーションし、アロケーションされたセマフ
ォの識別子が変更された場合、図7に示す様なセマフォ
識別子変換表を用意する。そしてプログラムが、セマフ
ォ操作を行う前に、システムコール呼び出し前後制御獲
得ステップが制御を奪い、図7の変換表を用いて、セマ
フォ識別子の変換を行う。これにより、障害発生時に再
アロケーションされたセマフォの識別子が、障害発生前
の識別子と異なっていたとしても、プログラムはそのこ
とを意識することなく、障害発生前の識別子で、セマフ
ォにアクセスすることができる。
【0033】次に、プロセスが共有メモリサービスの提
供を受けていた場合について示す。
【0034】プロセスが共有メモリサービスの提供を受
け、その情報をチェックポイント採取時に保存してお
き、障害発生時にその情報を基に、プロセスが受けてい
た共有メモリサービスを復元する事について考える。
【0035】例えばUNIXシステムでは、共有メモリ
サービスとして、 (1)共有メモリアロケーション(shmget) (2)共有メモリアタッチ(shmat) (3)共有メモリデタッチ(shmdt)等がある。
【0036】UNIXでの一般的な共有メモリの使用方
法としては、最初にshmgetで共有メモリをアロケ
ーションし、次に、shmatで共有メモリをアドレス
空間にマッピングし、以降load/store命令で
アクセスを行う。
【0037】本発明実施例では、プロセスが共有メモリ
をアロケーションする前に、システムコール呼び出し前
後制御獲得ステップが制御を奪い、チェックポイント採
取要求ブロックステップを呼び出し、チェックポイント
の採取を禁止する。そしてプロセスが共有メモリをアロ
ケーションした後に、システムコール呼び出し前後制御
獲得ステップが再び制御を奪い、獲得した共有メモリに
関する情報を、システムコールサービス提供情報として
記録し、チェックポイント採取要求ブロック解除ステッ
プを呼び出し、再びチェックポイントの採取を可能にす
る。チェックポイント採取時には、システムコールサー
ビス提供情報に記録されている共有メモリの値を読み出
し、その情報をシステムコールサービス提供情報に追加
する。
【0038】障害発生時に、システムコールサービス提
供情報に記録されている情報に基づいて、共有メモリを
再アロケーションしても、獲得された共有メモリの識別
子が、障害発生前の識別子と異なる場合がある。一般に
UNIXのプログラムは、アロケーションした共有メモ
リを、識別子を用いてマッピングするので、shmge
tとshmatの間で障害が発生すると問題がある。そ
こで障害発生時に、システムコールサービス提供情報に
記録されている情報に基づいて、共有メモリを再アロケ
ーションし、アロケーションされた共有メモリの識別子
が変更された場合、図8に示す様な共有メモリ識別子変
換表を用意する。そしてプログラムが、共有メモリのマ
ッピングを行う前に、システムコール呼び出し前後制御
獲得ステップが制御を奪い、図8の変換表を用いて、共
有メモリ識別子の変換を行う。これにより、障害発生時
に再獲得された共有メモリの識別子が、障害発生前の識
別子と異なっていたとしても、プログラムはそのことを
意識することなく、障害発生前の識別子で、共有メモリ
をマッピングすることができる。
【0039】ところで、図3に示す例では、プロセスが
OSのサービスを受けるために、システムコールを呼び
出す際に、システムコールの呼び出し前後で制御を奪
い、システムコール呼び出し前後制御獲得ステップが、
システムコールの呼び出し前後で制御を奪った時に、シ
ステムコール呼び出し前後制御獲得ステップの指示によ
り、チェックポイント採取要求をブロックしていたが、
更にUNIXシステムで言うところのシグナルの様な、
非同期サービス要求もブロックする必要がある。
【0040】この部分だけを図9に示す動作概念図を用
いて説明する。
【0041】図9は、本発明の他の実施例による動作を
共有メモリ上に展開して示した動作概念図である。計算
機、OSは上述したとおりであり、UNIXもしくはW
INDOWS搭載の一般的な商用計算機である。71は
プロセスであり、計算機およびそれを制御するOS上で
実行される。このプロセス71は本発明によってフォー
ルトトレラント化されるプロセスである。プロセス91
がOSのサービスを受けるために、システムコール81
を発行した際にそれをフックし、プロセス71がOS7
9から受けるサービスに関する情報を、システムコール
サービス提供情報78として記録する。76はシステム
コール呼び出し前後制御獲得ステップであり、プロセス
71がシステムコール81を呼び出す直前、および、直
後に制御を奪うものである。システムコール呼び出し前
後制御獲得ステップ76は、システムコールの呼び出し
前で制御を奪った際に、非同期サービス要求ブロックス
テップ74に、以降、非同期サービス要求の受け付けを
ブロックさせる。
【0042】その後、システムコール呼び出し前後制御
獲得ステップ76は、システムコールサービス提供情報
記録ステップ77に依頼して、システムコールサービス
提供情報78を記録する。この後プロセス71は、OS
から本来のシステムコールのサービス提供を受ける。そ
の後、システムコール呼び出し前後制御獲得ステップ7
6は、再び制御を獲得し、システムコールサービス提供
情報記録ステップ77に依頼して、システムコールサー
ビス提供情報78を記録する。そしてこの後、非同期サ
ービス要求ブロック解除ステップ75に、非同期サービ
ス要求のブロック解除を依頼する。非同期サービス要求
ブロック解除ステップ75は、非同期サービス要求ブロ
ックステップ74に、非同期サービス要求のブロック解
除を依頼する。これにより、プロセスがシステムコール
サービスの提供を受ける際に、そのシステムコールサー
ビス提供情報を記録し、かつ、その情報を記録している
最中に非同期サービスが処理されることもなくなる。
【0043】尚、上記チェックポイント採取後に、プロ
セスの実行を意識的に停止させ、後でチェックポイント
から処理を再開させる事により、リジューム機能を実現
することもできる。更に、上記チェックポイントを図2
に示すディスク装置29等不揮発性記憶装置に保存して
おくことにより、障害等による不意のシステム再ブート
後、あるいはユーザによる意識的な再ブート後に、上記
ディスク装置29に保存されたチェックポイントから、
プロセスの実行を再開することも可能となる。
【0044】以上説明のように本発明は、特殊なハード
ウェア、特殊なOS、及びアプリケーションでの特殊な
コーディングを必要とせず、オープン環境に適したフォ
ールトトレラントシステムを提供するものであるが、こ
こに示された方法を応用することにより、フォールトト
レランス以外の機能を提供することも可能である。図9
に示した例がその様な場合の実施例にもなっている。即
ち、プロセスがシステムコールサービスの提供を受ける
際に、そのシステムコールサービス提供情報を記録し、
かつ、その情報を記録している最中に非同期サービスが
処理されることがなくなるため、プロセスの実行状態の
記録が可能になり、デバッガやエミュレータ等、様々な
分野に本発明を応用することが可能になる。
【0045】
【発明の効果】以上説明のように本発明は、デーモンプ
ロセスとライブラリ等を用いて、コンピュータシステム
の上位層で実現されるフォールトトレラントミドルウェ
アに、上述した仕掛けを組み込んだものであり、アプリ
ケーションをフォールトトレラント化するために、フォ
ールトトレランスを実現するために定義した特殊なサブ
ルーチンを呼び出さなければならなかった(既存のアプ
リケーションプログラムに変更を要す)従来の不都合を
解消したものであり、アプリケーションプログラムがシ
ステムコールを発行する前に制御権を獲得し、プロセス
のチェックポイント採取のために必要な情報を記録した
上で、OSに処理を委ねる構成とすることにより、アプ
リケーションプログラムが特殊なサブルーチンを呼び出
す必要を無くし、また、アプリケーションプログラムに
一切の手直しを施すことなくフォールトトレランス化を
実現する。このことにより、プログラマに対する負担が
大幅に軽減される。また、多重化モジュールの採用、あ
るいはプロセスペア機構等専用OSを使用することな
く、マルチタスク処理を実現するOSを搭載したパーソ
ナルコンピュータ程度の設備にて実現できるため、廉価
構成で高い信頼性を得るシステム構築が可能である。
【図面の簡単な説明】
【図1】本発明が採用される計算機システムの構成例を
示すブロック図、
【図2】本発明が実現されるフォールトトレラントミド
ルウェア(FTM)をOSとともに主記憶上に展開して
示した概念図、
【図3】本発明実施例の動作を共有メモリ上に展開して
示した動作概念図、
【図4】図3に示す本発明実施例の動作の流れを示すフ
ローチャート、
【図5】図3に示す本発明実施例の動作の流れを示すフ
ローチャート、
【図6】図3に示す本発明実施例の動作の流れを示すフ
ローチャート、
【図7】本発明実施例にて使用されるセマフォ識別子変
換表の構成を示す図、
【図8】本発明実施例にて使用される共有メモリ識別子
変換表の構成を示す図、
【図9】本発明の他の実施例の動作を共有メモリ上に展
開して示した動作概念図、
【符号の説明】
1〜1n…プロセッサ、2〜2n…キャッシュ、3…主
記憶装置(共有メモリ)、4…メモリ制御装置、41…
バスインタフェース制御部、42…状態保存制御部、4
3…主記憶アクセス制御部、44…バッファアクセス制
御部、11(12)、31…プロセス、13(14)…
チェックポイント採取機構、15…デーモンプロセス、
26…セマフォ、29…ディスク装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 金井 達徳 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プロセスの状態を定期的に記録し、必要
    に応じ、記録された状態を復元して処理を再開すること
    のできる、障害回復のための手段を持つ計算機システム
    において、あるプロセスがオペレーティングシステムに
    対して処理を委ねる際、その前後において制御権を獲得
    し、その前段階において上記状態保存のための要求に対
    する処理を禁止し、後段階においてそれを解除するとと
    もに、オペレーティングシステムから受けるサービスに
    関する提供情報を記録し、必要に応じ、上記オペレーテ
    ィングシステムから受けるサービスに関する提供情報と
    保存されたプロセスの状態情報を復元し、処理を再開す
    ることを特徴とする状態記録再現方法。
  2. 【請求項2】 オペレーティングシステムによるサービ
    スを受けた結果として得られるプロパティ識別子と、処
    理を再開したとき上記オペレーティングシステムから受
    けるサービスに関する提供情報に基づき再獲得して得ら
    れるプロパティ識別子を組とする識別子変換表を備え、
    あるプロセスがオペレーティングシステムに対し処理を
    委ねる際、その前後において制御権を獲得し、識別子が
    変更されている場合には上記識別子変換表を参照し、変
    換された識別子を用いてオペレーティングシステムによ
    るサービスの提供を受けることを特徴とする請求項1記
    載の状態記録再現方法。
  3. 【請求項3】 上記オペレーティングシステムによるサ
    ービスは、プロセス間の同期をとるため、プロセス間で
    データと制御情報を交換して排他制御を行う同期制御機
    構によるサービスであり、あるプロセスが上記同期制御
    機構を獲得する前に制御権を奪い、状態情報記録のため
    の要求に対する処理を禁止し、同期制御機構を獲得した
    後、獲得した同期制御機構に関する情報を上記サービス
    提供情報として記録し、上記状態記録のための要求に対
    する処理の禁止を解除することを特徴とする請求項2記
    載の状態記録再現方法。
  4. 【請求項4】 上記オペレーティングシステムによるサ
    ービスは、プロセスによって共有使用される共有メモリ
    のサービスであり、あるプロセスが共有メモリを獲得す
    る前に制御権を奪って状態情報記録のための要求に対す
    る処理を禁止し、共有メモリを獲得した後、獲得した共
    有メモリに関する情報を上記サービス提供情報として記
    録し、上記状態記録のための要求に対する処理の禁止を
    解除することを特徴とする請求項2記載の状態記録再現
    方法。
  5. 【請求項5】 プロセスの状態を記録後意識的にプロセ
    スの実行を停止し、後に停止直前の状態からプロセスの
    実行を継続することを特徴とすることを特徴とする請求
    項1記載の状態記録再現方法。
  6. 【請求項6】 プロセスの状態を定期的に不揮発性メモ
    リに保存することにより、障害等による不意のシステム
    立ち上げ、もしくはユーザによる意識的なシステム立ち
    上げの後、上記不揮発性メモリに保存された最新の状態
    からプロセスの実行を再開することを特徴とする請求項
    1記載の状態記録再現方法。
  7. 【請求項7】 あるプロセスがオペレーティングシステ
    ムに対して処理を委ねる際、その前後において制御権を
    獲得し、その前段階において割り込み等非同期サービス
    要求に対する処理を禁止し、後段階においてそれを解除
    するとともに、オペレーティングシステムから受けるサ
    ービスに関する提供情報を記録することを特徴とする状
    態記録再現方法。
  8. 【請求項8】 マルチタスク処理を行うオペレーティン
    グシステムをサポートする少なくとも1個のプロセッサ
    ユニトと、プロセッサユニットにより共有使用される記
    憶装置と、タスクの処理の実体であるプロセス、もしく
    は割り込み等によりチェックポイント採取の要求があっ
    たとき、プロセッサによるデータ処理途中で記憶装置上
    に定期的にチェックポイントを作成し、その時点におけ
    るプロセスの状態情報を保存するチェックポイント採取
    機構と、プロセスがオペレーティングシステムに対して
    処理を委ねる際、その前後において制御権を獲得し、そ
    の前段階において上記チェックポイント採取を含む非同
    期サービス要求に対する処理を禁止し、後段階において
    それを解除するとともに、オペレーティングシステムか
    ら受けるサービスに関する提供情報を記録するプログラ
    ム制御機構と、プロセスから状態復帰後再開の要求があ
    ったとき、上記オペレーティングシステムから受けるサ
    ービスに関する提供情報と保存されたプロセスの状態情
    報を復元し、その時点から処理を再開する状態復元機構
    とを具備することを特徴とする計算機システム。
  9. 【請求項9】 チェックポイントの採取要求があった場
    合、プロセスの状態情報を保存し、ロールバック/ リス
    タート要求があった場合に、保存されたプロセスの状態
    情報を用いて、プロセスの状態を復元することにより、
    実行中プロセスのチェックポイントを採取しながらデー
    タ処理を行い、障害発生時、最後に採取したチェックポ
    イントを用いてプロセスの状態を復元し、そこから処理
    を再開して障害回復機能を実現するものであって、プロ
    セスがオペレーティングシステムによるサービスを受け
    るためにシステムコールを発行する際、そのシステムコ
    ールの発行の前後においてシステムの制御権を強制的に
    獲得するステップと、システムコール発行の前段階にお
    いて上記チェックポイント採取を含む非同期に発生する
    サービス要求に対する処理を禁止し、後段階においてそ
    れを解除するステップと、解除前にオペレーティングシ
    ステムから受けるサービスに関する提供情報を記録する
    ステップと、障害発生時、上記オペレーティングシステ
    ムから受けるサービスに関する提供情報と保存されたプ
    ロセスの状態情報を復元し、保存されたチェックポイン
    トに加えて、記録されたオペレーティングシステムから
    受けているサービスに関する情報を用い、オペレーティ
    ングシステムから受けているサービスも再現するステッ
    プとがプログラムされ記憶されることを特徴とするメモ
    リ装置。
  10. 【請求項10】 上記オペレーティングシステムから受
    けるサービスは、プロセス間の同期をとるため、プロセ
    ス間でデータと制御情報を交換して排他制御を行う同期
    制御機構、共有メモリ、ファイル入出力のうち、少なく
    とも一つであることを特徴とする請求項9記載のメモリ
    装置。
JP34769396A 1996-12-26 1996-12-26 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 Expired - Lifetime JP3919274B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4992745B2 (ja) * 2008-02-05 2012-08-08 日本電気株式会社 チェックポイント・リスタート装置及びチェックポイント・リスタート方法

Cited By (12)

* Cited by examiner, † Cited by third party
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