JP3919274B2 - 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3919274B2 JP3919274B2 JP34769396A JP34769396A JP3919274B2 JP 3919274 B2 JP3919274 B2 JP 3919274B2 JP 34769396 A JP34769396 A JP 34769396A JP 34769396 A JP34769396 A JP 34769396A JP 3919274 B2 JP3919274 B2 JP 3919274B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- information
- state
- checkpoint
- operating 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、状態記録再現機能を有する計算機システム、及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
計算機システムの信頼性を高める技術として、フォールトトレラントシステムが知られている。フォールトトレラントシステムには、 計算機全体を高信頼化するタイプと、 特定のプロセスに限って高信頼化するタイプとがある。前者はフォールトトレラントコンピュータとして知られた技術で、一般に多重化モジュール機構等を採用した専用ハードウェア、あるいはプロセスペア機構等を採用した専用オペレーティングシステム(OS)によって、コンピュータシステムの下位層で実現される。後者はフォールトトレラントミドルウェアとして知られた技術で、
デーモンプロセスとライブラリ等を用い、コンピュータシステムの上位層で実現される。具体的に、前者は米国TANDEM社やSTRATUS 社の無停止型コンピュータ、後者はSTRATUS 社のISIS等として有名である。
【0003】
しかしなから前者の場合、専用のハードウェアなりOSが必要となり、システム構成が割高となる欠点を有する。一方、後者の場合、専用のアプリケーションインタフェースを必要とし、アプリケーションプログラムが、フォールトトレランスを実現するために定義した特殊なサブルーチンを呼び出す必要があり、既存のアプリケーションプログラムを、そのまま手直しすることなく利用することはできなかった。
【0004】
【発明が解決しようとする課題】
上述したように従来例に従えば、フォールトトレランスを実現するには、高価になるか、あるいはプログラマに負担をかけるか、いずれか一方を選択する以外になかった。本発明は後者を選択しながらもプログラマにかかる負担を低減するものであり、デーモンプロセスとライブラリ等を用いて、コンピュータシステムの上位層で実現されるフォールトトレラントミドルウェアに、後述する仕掛けを組み込むものである。アプリケーションをフォールトトレラント化するために、フォールトトレランスを実現するために定義した特殊なサブルーチンを呼び出さなければならなかった(既存のアプリケーションプログラムに変更を要す)従来の不都合を解消するものであり、アプリケーションプログラムがシステムコールを発行する前に制御権を獲得し、プロセスのチェックポイント採取のために必要な情報を記録した上で、OSに処理を委ねる構成とすることにより、アプリケーションプログラムが特殊なサブルーチンを呼び出す必要を無くし、また、アプリケーションプログラムに一切の手直しを施すことなくフォールトトレランス化を実現する、状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【0005】
チェックポイントは任意のタイミングで採られるため、上記の情報を記録している最中にチェックポイントが採られてしまうと、障害発生時に、そのチェックポイントからプロセスを再実行させることができないが、本発明を適用することにより、上記の情報を記録している最中にチェックポイントが採られる事を抑止し、障害発生時に、任意のチェックポイントから、プロセスを再実行させることができるようになる。ここでチェックポイントとは、プロセスの処理をその時点から再実行させるための情報で、プロセスのアドレス空間の値やプロセッサコンテクストの値等を含んでいる。
【0006】
【課題を解決するための手段】
本発明の状態記録再現機能を有する計算機システムは、マルチタスク処理を行うオペレーティングシステムをサポートする少なくとも1個のプロセッサユニットと、プロセッサユニットにより共有使用され、タスクの処理の実体であるプロセスを高信頼性化するミドルウエアをオペレーティングシステムと共に有する記憶装置とを備え、前記ミドルウエアは、前記プロセス毎のライブラリに構成され、このプロセス自体、もしくは割り込み等によりチェックポイント採取の要求があったとき、プロセッサによるデータ処理途中で記憶装置上に定期的にチェックポイントを作成し、その時点におけるプロセスの状態情報を保存するチェックポイント採取機構と、プロセスがオペレーティングシステムに対して処理を委ねる際、その前後において制御権を獲得し、その前段階において上記チェックポイント採取を含む非同期サービス要求に対する処理を禁止し、後段階においてそれを解除するとともに、オペレーティングシステムから受けるサービスに関する提供情報を、オペレーティングシステムからサービスを受ける時点より以前に作成された前記チェックポイントに基くプロセス状態情報と共に前記記憶装置に記録するプログラム制御機構と、プロセスから状態復帰後再開の要求があったとき、上記オペレーティングシステムから受けるサービスに関する提供情報と保存されたプロセスの状態情報を復元し、その時点から処理を再開する状態復元機構とを具備することを特徴とする。
【0007】
本発明のコンピュータ読み取り可能な記録媒体に記録されている状態記録再現プログラムは、マルチタスク処理を行うオペレーティングシステムをサポートする少なくとも1個のプロセッサユニットと、プロセッサユニットにより共有使用され、タスクの処理の実体であるプロセスを高信頼性化するミドルウエアをオペレーティングシステムと共に有する記憶装置とを備えた計算機システムにおいて、チェックポイントの採取要求があった場合、前記ミドルウエア上のチェックポイント採取機構によりプロセスの状態情報を保存させ、ロールバック/ リスタート要求があった場合に、前記ミドルウエア上の状態復元機構により保存されたプロセスの状態情報を用いて、プロセスの状態を復元させることにより、実行中プロセスのチェックポイントを採取しながらデータ処理を行い、障害発生時、最後に採取したチェックポイントを用いてプロセスの状態を復元し、そこから処理を再開して障害回復機能を実現する状態記録再現プログラムであって、プロセスがオペレーティングシステムによるサービスを受けるためにシステムコールを発行する際、前記ミドルウエア上のプログラム制御機構により、そのシステムコールの発行の前後においてシステムの制御権を強制的に獲得するステップと、システムコール発行の前段階において上記チェックポイント採取を含む非同期に発生するサービス要求に対する処理を禁止し、後段階においてそれを解除するステップと、解除前にオペレーティングシステムから受けるサービスに関する提供情報を記録するステップと、障害発生時、前記ミドルウエア上の状態復元機構により、上記オペレーティングシステムから受けるサービスに関する提供情報と保存されたプロセスの状態情報を復元し、保存されたチェックポイントに加えて、記録されたオペレーティングシステムから受けているサービスに関する情報を用い、オペレーティングシステムから受けているサービスも再現するステップとを有することを特徴とする。
【0009】
本発明により、アプリケーションプログラムが特殊なサブルーチンを呼び出す必要を無くし、また、アプリケーションプログラムに一切の手直しを施すことなくフォールトトレランス化を実現する。このことにより、プログラマに対する負担が大幅に軽減される。また、多重化モジュールの採用、あるいはプロセスペア機構等専用OSを使用することなく、マルチタスク処理を実現するOSを搭載したパーソナルコンピュータ程度の設備にて実現できるため、廉価構成で高い信頼性を得るシステム構築が可能となる。
【0010】
【発明の実施の形態】
以下、図面を使用して本発明の実施例について詳細に説明する。
【0011】
図1は本発明が採用される計算機システムの構成例を示すブロック図である。図からわかるように、 n個のプロセッサ1〜1nによりマルチプロセッサシステムが構築され、プロセッサ1〜1nには、プロセッサ個々に対応するキャッシュメモリ2〜2nが設けられている。キャッシュメモリ2〜2nは、メモリ制御部4とバス5を介して接続される。メモリ制御部4には、主記憶装置3及び主記憶装置3に割り付けられるバッファが接続されている。メモリ制御部4は、バスインタフェース制御部6、主記憶アクセス制御部7を有している。バスインタフェース制御部6は、常時バス5を監視しており、バス5に発行されたトランザクションに応じて動作する。主記憶アクセス制御部7は、主記憶装置3と接続され、主記憶もしくはバッファに対するアクセスを制御する。主記憶装置3は複数のプロセッサ1〜1nにより共有使用されるため共有メモリと呼ばれる。以降は共有メモリ3と称し説明を行う。
【0012】
プロセッサ1〜1nはマルチタスクOSをサポートするマイクロプロセッサであり、共有メモリ3には、ワークステーションやパーソナルコンピュータの分野で標準的に使用されているUNIXもしくはWINDOWS等商用OSがオペレーティングシステムとして搭載されている。共有メモリ3には、上述したOSが常駐される他、本発明がインプリメントされるミドルウエア(FTM)ならびにアプリケーションプログラム(APL)が割り付けられ必要に応じて起動され、格納される。図示していないが、計算機システムには、他に、PCI等高速入出力バスを介して光ディスク装置あるいは大容量磁気ファイル装置等不揮発性メモリが接続されるのが一般的である。
【0013】
尚、図1に示す実施例は複数のプロセッサで構成されるマルチプロセッサシステムを例示したが本発明を実施するうえで必須ではなく、唯一個のプロセッサで構成されるシングルプロセッサシステムであっても構わない。
ここで、本発明実施例の動作を説明するにあたり前提となるチェックポイントリカバリ方式について簡単に説明する。計算機システムの信頼性を高めるために使用される方式の一つであり、通常のデータ処理の途中で定期的にチェックポイントを主記憶装置3上に作成しておき、計算機に何らかの障害が発生したときに、直前のチェックポイントに戻って処理を再開するための仕掛けが存在する。その仕掛けは、共有メモリ3にローディングされ記憶されるミドルウェア(FTM)に展開される。
【0014】
図2は、デーモンプロセスとライブラリ等を用いて、コンピュータシステムの上位層で実現される本発明が実現されるフォールトトレラントミドルウェア(FTM)をOSとともに共有メモリ30上に展開して示した概念図である。
【0015】
図において、11乃至12はプロセス(#0,#1)である。マルチプロセッサにおいて並列処理の対称となるあるまとまった仕事はプロセス(process)と呼ばれ、並列に実行可能な処理単位である。プロセスはプログラムによって制御される動的な概念であり、プロセッサとは区別して使用される。また、このプロセス11,12は、本発明によりフォールトトレラント化されるプロセスであり、プロセス毎設けられるライブラリ中にそれぞれチェックポイント採取機構13,14を持っている。デーモンプロセス15は、ライブラリと通信しながら裏処理(プロセス#0と#1が並行して実行される処理)を実行する。26はセマフォ(semaphore)である。セマフォ26は、プロセス間の同期をとるため、プロセス間でデータと制御情報を交換して排他制御を行う同期制御機構であり、そのメカニズムはOS中に存在する。
【0016】
尚、27,28はプロセッサ、29は不揮発性のディスク装置、30は共有メモリであり、これらはバス31を介して共通接続される。計算機システムは、セマフォ26、共有メモリ30、ファィル操作等OSからのサービスを受けながらプログラムを実行するものとする。
【0017】
図3は、本発明実施例の動作を主記憶上に展開して示した動作概念図である。
【0018】
図示した計算機およびOSは図1,図2に示すものと同様である。フォールトトレラント化するプロセス31のチェックポイントを採るためにプロセス31に対して、特定のタイミング、例えば一定時間間隔で、チェックポイント採取要求32を送る。プロセス31が、このチェックポイント採取要求32を受けると、チェックポイント採取ステップ33によって、このプロセス31の状態34(アドレス空間、コンテクスト等)を採取する。このチェックポイント採取要求によって採取されたプロセスの状態34は、障害発生時の回復処理に利用される。
【0019】
プロセス31もしくは他のプロセス等に障害が発生し異常終了を起こした場合には、OSあるいはデーモン等がそれを検出し、ロールバック/ リスタート要求35を、ロールバック/ リスタートステップ36に送る。ロールバック/ リスタートステップ36は、ロールバック/ リスタート要求35を受けると、チェックポイント採取要求32が発生した時に、チェックポイント採取ステップ33によって採られたプロセスの状態34を用いて、異常終了したプロセス31を、チェックポイント採取時点から、再起動させる。
【0020】
但し、これだけではこのプロセス31がOSからサービス(システムコール)を受けていた場合、それを復元することができない。そこで本発明では、プロセス31がOSのサービスを受けるために、システムコール37を発行した際にそれをフックし、プロセス31がOSから受けるサービスに関する情報を、システムコールサービス提供情報41として記録し、障害発生時にプロセス31を、チェックポイント時に保存された状態34を用いて再起動させる際に、記録されたシステムコールサービス提供情報41を基に、OSから受けているサービスの状態を復元するものである。
【0021】
但し、OSから受けるサービスに関する情報を記録している最中にチェックポイントが採られては、障害発生時にOSから受けているサービスを復元することが困難となるため、システムコールサービス提供情報41を記録している最中は、チェックポイントが採られないようにする必要がある。即ち、39はシステムコール呼び出し前後に制御権を強制獲得するステップ(以降、単に制御獲得ステップと称する)であり、プロセス31がシステムコール37を発行してOSに処理を委ねる直前、および、直後に制御を奪うものである。制御獲得ステップ39は、システムコールの呼び出し前で制御を奪った際に、チェックポイント採取要求ブロックステップ23に、以降、チェックポイント採取要求の受け付けを禁止(ブロック)させる。その後、制御獲得ステップ39は、システムコールサービス提供情報記録ステップ40に依頼して、システムコールサービス提供情報41を記録する。この後プロセス31は、OSから本来のシステムコールのサービス提供を受ける。
【0022】
その後、制御獲得ステップ39は、再び制御権を獲得し、システムコールサービス提供情報記録ステップ40に依頼して、システムコールサービス提供情報41を記録する。そしてこの後、チェックポイント採取要求ブロック解除ステップ42に、チェックポイント採取要求のブロック解除を依頼する。チェックポイント採取要求ブロック解除ステップ42は、チェックポイント採取要求ブロックステップ23に、チェックポイント採取要求のブロック解除を依頼する。これにより、プロセスがシステムコールサービスの提供を受ける際に、そのシステムコールサービス提供情報を記録し、かつ、その情報を記録している最中にチェックポイントが採られることはなくなるので、チェックポイント採取時には、プロセスの状態34が保存され、かつ、システムコールサービス提供情報41が記録されているので障害発生時には、保存されたプロセスの状態34を用いて、プロセス31のアドレス空間とコンテクストを復元するとともに、システムコールサービス提供情報41を用いて、OSから受けているサービスを復元することも可能となる。
【0023】
図4乃至図6は、本発明実施例の動作を説明するために引用したフローチャートである。図4には、プロセスがシステムコールを発行し、OSからサービスの提供を受ける際に、そのシステムコールサービス提供情報を記録するまでの処理の流れが示されている。プロセスがシステムコールを発行した際、実際にシステムコールを実行する前に、その制御を奪い、システムコール呼び出し前処理を実行する。システムコール呼び出し前処理は図5に示されている。この後、ステップS20で実際にシステムコールを実行する。その後ステップS30で実際にシステムコールが実行された後にその制御を奪い、システムコール呼び出し後処理を実行する。システムコール呼び出し後処理は図6に示されている。
【0024】
図5は、システムコール呼び出し前に制御を奪った際のシステムコール呼び出し前処理の流れを示す図である。ステップS40で、このプロセスがチェックポイント採取要求を受け付けないようにする。これは例えばチェックポイント採取要求が、UNIXで言う所のシグナルで送られるのなら、シグナルマスクをセットすることにより可能となる。この後ステップS50でOSから受けるサービスに関する情報を、システムコール実行前に記録する必要があるか否かを判定する。
【0025】
この判定は、システムコール単位で予め設定しておくものとする。もしステップS50で、OSから受けるサービスに関する情報を、システムコール実行前に記録する必要がないと判定した場合には、これでシステムコール呼び出し前処理を終える。もしステップS50で、OSから受けるサービスに関する情報を、システムコール実行前に記録する必要があると判定した場合には、ステップS60で、
OSから受けるサービスに関する情報を記録する。
【0026】
図6は、システムコール呼び出し後に制御を奪った際のシステムコール呼び出し後処理の流れを示す図である。ステップS70で、OSから受けるサービスに関する情報を、システムコール実行後に記録する必要があるか否かを判定定する。
【0027】
この判定は、システムコール単位で予め設定しておくものとする。もしステップS70で、OSから受けるサービスに関する情報をシステムコール実行前に記録する必要がないと判定した場合には、これでシステムコール呼び出し後処理のS80の処理をスキップし、ステップS90の処理を実行する。もしステップS70で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のプログラムは、アロケーションした共有メモリを、識別子を用いてマッピングするので、shmgetとshmatの間で障害が発生すると問題がある。そこで障害発生時に、システムコールサービス提供情報に記録されている情報に基づいて、共有メモリを再アロケーションし、アロケーションされた共有メモリの識別子が変更された場合、図8に示す様な共有メモリ識別子変換表を用意する。そしてプログラムが、共有メモリのマッピングを行う前に、システムコール呼び出し前後制御獲得ステップが制御を奪い、図8の変換表を用いて、共有メモリ識別子の変換を行う。これにより、障害発生時に再獲得された共有メモリの識別子が、障害発生前の識別子と異なっていたとしても、プログラムはそのことを意識することなく、障害発生前の識別子で、共有メモリをマッピングすることができる。
【0039】
ところで、図3に示す例では、プロセスがOSのサービスを受けるために、システムコールを呼び出す際に、システムコールの呼び出し前後で制御を奪い、システムコール呼び出し前後制御獲得ステップが、システムコールの呼び出し前後で制御を奪った時に、システムコール呼び出し前後制御獲得ステップの指示により、チェックポイント採取要求をブロックしていたが、更にUNIXシステムで言うところのシグナルの様な、非同期サービス要求もブロックする必要がある。
【0040】
この部分だけを図9に示す動作概念図を用いて説明する。
【0041】
図9は、本発明の他の実施例による動作を共有メモリ上に展開して示した動作概念図である。計算機、OSは上述したとおりであり、UNIXもしくはWINDOWS搭載の一般的な商用計算機である。71はプロセスであり、計算機およびそれを制御するOS上で実行される。このプロセス71は本発明によってフォールトトレラント化されるプロセスである。プロセス91がOSのサービスを受けるために、システムコール81を発行した際にそれをフックし、プロセス71がOS79から受けるサービスに関する情報を、システムコールサービス提供情報78として記録する。76はシステムコール呼び出し前後制御獲得ステップであり、プロセス71がシステムコール81を呼び出す直前、および、直後に制御を奪うものである。システムコール呼び出し前後制御獲得ステップ76は、システムコールの呼び出し前で制御を奪った際に、非同期サービス要求ブロックステップ74に、以降、非同期サービス要求の受け付けをブロックさせる。
【0042】
その後、システムコール呼び出し前後制御獲得ステップ76は、システムコールサービス提供情報記録ステップ77に依頼して、システムコールサービス提供情報78を記録する。この後プロセス71は、OSから本来のシステムコールのサービス提供を受ける。その後、システムコール呼び出し前後制御獲得ステップ76は、再び制御を獲得し、システムコールサービス提供情報記録ステップ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…状態保存制御部、43…主記憶アクセス制御部、44…バッファアクセス制御部、11(12)、31…プロセス、13(14)…チェックポイント採取機構、15…デーモンプロセス、26…セマフォ、29…ディスク装置。
Claims (7)
- マルチタスク処理を行うオペレーティングシステムをサポートする少なくとも1個のプロセッサユニットと、プロセッサユニットにより共有使用され、タスクの処理の実体であるプロセスを高信頼性化するミドルウエアをオペレーティングシステムと共に有する記憶装置とを備え、
前記ミドルウエアは、
前記プロセス毎のライブラリに構成され、このプロセス自体、もしくは割り込み等によりチェックポイント採取の要求があったとき、プロセッサによるデータ処理途中で記憶装置上に定期的にチェックポイントを作成し、その時点におけるプロセスの状態情報を保存するチェックポイント採取機構と、
プロセスがオペレーティングシステムに対して処理を委ねる際、その前後において制御権を獲得し、その前段階において上記チェックポイント採取を含む非同期サービス要求に対する処理を禁止し、後段階においてそれを解除するとともに、オペレーティングシステムから受けるサービスに関する提供情報を、オペレーティングシステムからサービスを受ける時点より以前に作成された前記チェックポイントに基くプロセス状態情報と共に前記記憶装置に記録するプログラム制御機構と、
プロセスから状態復帰後再開の要求があったとき、上記オペレーティングシステムから受けるサービスに関する提供情報と保存されたプロセスの状態情報を復元し、その時点から処理を再開する状態復元機構と
を具備することを特徴とする状態記録再現機能を有する計算機システム。 - 状態復元機構は、オペレーティングシステムによるサービスを受けた結果として得られるプロパティ識別子と、処理を再開したとき上記オペレーティングシステムから受けるサービスに関する提供情報に基づき再獲得して得られるプロパティ識別子を組とする識別子変換表を備え、識別子が変更されている場合には上記識別子変換表を参照し、変換された識別子を用いてオペレーティングシステムによるサービスの提供を受けることを特徴とする請求項1記載の状態記録再現機能を有する計算機システム。
- オペレーティングシステムによるサービスは、プロセス間の同期をとるため、プロセス間でデータと制御情報を交換して排他制御を行う同期制御機構によるサービスであり、プログラム制御機構は、あるプロセスが上記同期制御機構を獲得する前に制御権を奪い、チェックポイント採取要求に対する処理を禁止し、同期制御機構を獲得した後、獲得した同期制御機構に関する情報をサービス提供情報として記録し、上記チェックポイント採取要求に対する処理の禁止を解除することを特徴とする請求項1又は請求項2記載の状態記録再現機能を有する計算機システム。
- オペレーティングシステムによるサービスは、プロセスによって共有使用される共有メモリのサービスであり、プログラム制御機構は、あるプロセスが共有メモリを獲得する前に制御権を奪い、チェックポイント採取要求に対する処理を禁止し、共有メモリを獲得した後、獲得した共有メモリに関する情報を上記サービス提供情報として記録し、上記チェックポイント採取要求に対する処理の禁止を解除することを特徴とする請求項1又は請求項2記載の状態記録再現機能を有する計算機システム。
- プログラム制御機構は、チェックポイント採取機構によるチェックポイント採取後意識的にプロセスの実行を停止し、後に停止直前の状態からプロセスの実行を継続することを特徴とすることを特徴とする請求項1乃至請求項4のいずれかに記載の状態記録再現機能を有する計算機システム。
- マルチタスク処理を行うオペレーティングシステムをサポートする少なくとも1個のプロセッサユニットと、プロセッサユニットにより共有使用され、タスクの処理の実体であるプロセスを高信頼性化するミドルウエアをオペレーティングシステムと共に有する記憶装置とを備えた計算機システムにおいて、チェックポイントの採取要求があった場合、前記ミドルウエア上のチェックポイント採取機構によりプロセスの状態情報を保存させ、ロールバック/ リスタート要求があった場合に、前記ミドルウエア上の状態復元機構により保存されたプロセスの状態情報を用いて、プロセスの状態を復元させることにより、実行中プロセスのチェックポイントを採取しながらデータ処理を行い、障害発生時、最後に採取したチェックポイントを用いてプロセスの状態を復元し、そこから処理を再開して障害回復機能を実現する状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
プロセスがオペレーティングシステムによるサービスを受けるためにシステムコールを発行する際、前記ミドルウエア上のプログラム制御機構により、そのシステムコールの発行の前後においてシステムの制御権を強制的に獲得するステップと、システムコール発行の前段階において上記チェックポイント採取を含む非同期に発生するサービス要求に対する処理を禁止し、後段階においてそれを解除するステップと、解除前にオペレーティングシステムから受けるサービスに関する提供情報を記録するステップと、障害発生時、前記ミドルウエア上の状態復元機構により、上記オペレーティングシステムから受けるサービスに関する提供情報と保存されたプロセスの状態情報を復元し、保存されたチェックポイントに加えて、記録されたオペレーティングシステムから受けているサービスに関する情報を用い、オペレーティングシステムから受けているサービスも再現するステップとを有する状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体。 - オペレーティングシステムから受けるサービスは、プロセス間の同期をとるため、プロセス間でデータと制御情報を交換して排他制御を行う同期制御機構、共有メモリ、ファイル入出力のうち、少なくとも一つであることを特徴とする請求項6記載の状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体。
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 JPH10187616A (ja) | 1998-07-21 |
JP3919274B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187171A (ja) * | 2008-02-05 | 2009-08-20 | Nec Corp | チェックポイント・リスタート装置及びチェックポイント・リスタート方法 |
Families Citing this family (5)
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 |
JP4886826B2 (ja) * | 2009-08-24 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
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 |
-
1996
- 1996-12-26 JP JP34769396A patent/JP3919274B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187171A (ja) * | 2008-02-05 | 2009-08-20 | Nec Corp | チェックポイント・リスタート装置及びチェックポイント・リスタート方法 |
Also Published As
Publication number | Publication date |
---|---|
JPH10187616A (ja) | 1998-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5802267A (en) | Method for checkpointing in computer system under distributed processing environment | |
EP0954779B1 (en) | Method for reconstructing the state of a computation | |
US7293200B2 (en) | Method and system for providing transparent incremental and multiprocess checkpointing to computer applications | |
US4648031A (en) | Method and apparatus for restarting a computing system | |
US5065311A (en) | Distributed data base system of composite subsystem type, and method fault recovery for the system | |
JP3072048B2 (ja) | 計算機システムおよび計算機システムのソフトウェア故障回復方法 | |
US7853825B2 (en) | Methods and apparatus for recovering from fatal errors in a system | |
US5448718A (en) | Method and system for time zero backup session security | |
JPH0823841B2 (ja) | データ処理システム及びその方法 | |
CA2071346A1 (en) | Method and means for time zero backup copy of data | |
JP3919274B2 (ja) | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US7441091B2 (en) | Storage control device and storage control method | |
EP0881569B1 (en) | File system and file management method which realize distributed replication in system having shared type raid | |
JP4095139B2 (ja) | コンピュータシステムおよびファイル管理方法 | |
CN114756355B (zh) | 一种计算机操作系统的进程自动快速恢复的方法和装置 | |
JPH06139087A (ja) | チェックポイントリスタート方式 | |
Strom et al. | A recoverable object store | |
EP0851352B1 (en) | Input/output control device and method applied to fault-resilient computer system | |
JPH04218842A (ja) | プログラムの再実行方法 | |
JPH07168730A (ja) | チェックポイント採取方式 | |
JPH04172536A (ja) | フォールトトレラントシステムにおける資源管理方法 | |
JPH06214848A (ja) | データベース管理システム | |
JP3463696B2 (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 |