JPH07503334A - 外部事象を処理できるフォールトトレラントコンピュータシステム - Google Patents

外部事象を処理できるフォールトトレラントコンピュータシステム

Info

Publication number
JPH07503334A
JPH07503334A JP5513358A JP51335893A JPH07503334A JP H07503334 A JPH07503334 A JP H07503334A JP 5513358 A JP5513358 A JP 5513358A JP 51335893 A JP51335893 A JP 51335893A JP H07503334 A JPH07503334 A JP H07503334A
Authority
JP
Japan
Prior art keywords
task
backup
messages
transmitted
message
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
JP5513358A
Other languages
English (en)
Other versions
JP3209748B2 (ja
Inventor
グリーソン,バリー・ジョン
Original Assignee
ユニシス・コーポレイション
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 ユニシス・コーポレイション filed Critical ユニシス・コーポレイション
Publication of JPH07503334A publication Critical patent/JPH07503334A/ja
Application granted granted Critical
Publication of JP3209748B2 publication Critical patent/JP3209748B2/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 名称 外部事象を処理てきるフォールトトレラントコンピュータシステム 発明の背景 この発明は、データ処理システムにおいてフォールトトレランスを与えるための 改良された手段および方法に関する。
コンピュータシステムの速度、パワーおよび複雑さが増すにつれて、ハードウェ アおよび/またはソフトウェアの故障の際にシステムが「ダウンする」のを防ぐ ために、このようなシステムにフォールトトレランスを与えることがますます重 要となっている。しかしながら、コンピュータシステムにフォールトトレランス 能力を与えることは高価であるとともに、かなりの性能の代償をもたらすことが わかった。
データ処理システムにおいてフォールトトレランスを達成する基本的な方法は、 各タスク(プロセスとも呼ばれる)にバックアップタスクを与え、主タスクが故 障してもハックアップタスクか自動的にリカノヘーシて実行を続けられるように するものである。たとえば、主タスクおよびそのバックアップタスクは、一方が 故障しても他方で実行か続くように相互結合されたl対の同時実行CPU(中央 処理装置)を用いて与えてもよい。このような二重の71−ドウエアを設けるこ とは、特に、同時に動作する二重ノ\−ドウエアを、さらなるデータ処理力を与 えるのには使用できないので、フォールl−1−レランスを達成するには非常に 高価な方法であることが認められるであろう。
ハードウェアを二重にすることを避ける既知のアプローチの1つとして、主タス クには第1のCPUを設け、バックアップタスクには第2のCPUを設けて、主 タスクが故障した場合のみにバックアップがリカバーし、実行を続けるように活 性となるというものがある。それまでは、バックアップCPUは他の処理を行な える。主プロセスが故障した場合にバッ、クアッププロセスが必ずそれを引き継 ぐことができるように、この既知のアプローチでは、主データ空間が変わるとき には常にチェックポイント動作が起こる。
このチェックポイント動作は主タスクの状態およびデータ空間をバンクアップの それにコピーし、そのため主タスクか故障しても、バックアップタスクが実行を 続けることができる。しかしながら、このアプローチで必要とされる頻繁なチェ ックポイント動作は、性能に悪影響を与え、追加される計算力のかなりの部分を 使ってしまう。
別の既知のアプローチが、米国特許番号環4.590.554号に開示されてい る。このアプローチもまたチェックポイント動作を用いるが、チェックポイント の頻度をかなり減じるフォールトトレラントアーキテクチャを使用するという利 点をもたらす。しかしながら、このアプローチには、メツセージか主およびバッ クアッププロセッサに実質的に同時に伝送されることを必要どする点において本 質的に同期しているメツセージ伝送プロトコルを必要とする欠点がある。さらに 、上述の特許に開示されているアプローチには、アトム的伝送を必要とする別の 欠点があり、受信タスクおよびすべてのバックアップがメツセージを受け取るこ とができることを示さなければ、タスクによるメツセージの伝送が許可されない 。さらに、すべての受信タスクおよびバックアップがメツセージの受信に肯定応 答するまで、受信タスクは進行を許可されない。これらのメツセージ伝送プロト コルの要件が、システムをさらに複雑にする制約をもたらし、かつ性能にかなり の悪影響を与える。
上述の特許第4.590.554号に開示されるのと同様のアプローチが、ニー ・ボルダ(A、 Borg )らによる、オペレーティングシステム原理に関す る第9回シンポジウム(Ninth Symposium on Operat ing Systems Pr1nciples ) (ブレトン・ウッズ(B reton Woods) 、 N、 H,,1983年lO月)、1983年 、ニューヨーク、ACM、90−99頁の論文「フォールトトレランスを支持す るメツセージシステムJ (A Message System Suppor ting Fault Tolerance)、およびニー・ボルダらのコンピ ュータシステムに関するACM+−ランザクジョン(ACM Transact ions on Computer Systems)、 Vol、 7 、  No、 I、1989年2月、l−24頁の論文FUNIXてのフォールトトレ ランスJ (FauIt Tolerance Under UNIX)に説明 される。
上述の特許第4.590.554号に開示されるものよりもかなり改良されたア プローチが、私の上述の特許出願連続番号第071521.283号に説明され 、これはメツセージ伝送上の制約を減じながら、特許第4.590.554号の 利点を存するフォールトトレラントデータ処理システムを提供している。より特 定的には、連続番号第071521.283号のシステムは、フォールトトレラ ント動作を行なうのに伝送のアトム性も同時性も要求せず、それによって性能が 向上する。連続番号第071521.283号のこのシステムは、以下フレキシ ブル・フォールト・トレラント・システムと称する。
発明の概要 この発明の広い目的は、データ処理システムにおいてフォールトトレランスを達 成するための改良された手段および方法を提供することである。
この発明のより特定的な目的は、上述の特許第4.590.550号に開示され るものと類似した、またはフレキシブル・フォールト・トレラント・システム( こ類似した)オールトトレラントシステムを提供することであり、外部事象が起 こるときをタスクがほとんど、または全く制御できない状態、および、タスクの 振舞がこの外部事象が発生するときに依存して異なる可能性のある状態において 、プロセス(タスク)かこの制御されない外部事象に適応することができる。
この発明のさらに別の目的は、上述の目的に従って、比較的簡単かつ経済的に実 現されるフォールトトレラントデータシステムを提供することである。
この発明の具体的な好ましい実施例において、メモリへの「書込」参照をカウン トするためにさらなるハードウェアか設けられる、フレキシブル・フォールト・ トレラント・システムに類似したフォールトトレラントシステム供される。この 「書込Jメモリ参照データカウントは、タスクのコンテキストの一部として扱わ れる。外部事象が発生する回数は、そのバックアップによるタスクのリカバリ中 に、制御されない外部事象の各々が、主タスクに渡されるのと同じ論理的ポイン トでバックアップに再び渡されるようにこのメモリ参照「書込」データカウント と関連づけられ、それによってこのような外部事象の発生にもかかわらず、故障 したタスクか適切にリカバーすることを確実とする。
この発明の特定的な性質、ならびにその他の目的、特徴、利点および用途は、添 付の図面とともに、好ましい実施例の以下の詳細な説明から明らかになるであろ う。
図面の簡単な説明 図1は、米国特許番号第4. 590, 554号からの先行技術のフォールl − 1−レラントシステムのブロック図である。
図2は、米国特許番号第4, 590. 554号からの、図1のタスクプロセ ッサの1つを一般化したブロック図である。
図3は、フォールトトレラントシステムの好ましい実施例のブロック図である。
図3Aは、図3のタスクを一般化して表現したものである。
図4−9は、図3の好ましい実施例の種々の動作例を示すフローチャートである 。
詳細な説明 同様の番号および記号は、図面を通して同様の要素を示す。
米国特許番号第4. 590. 554号の概要(図1および2)ここに述べる この発明の貢献および詳細な説明を理解するにあたって、その内容がここに引用 によって援用される上述の米国特許番号第4, 590, 554号に開示され る実施例の構成および動作の概要をまず述べることが有用であろう。
この目的で、特許第4, 590. 554号の図1および2にそれぞれ相当す るこの発明の図1および2を参照する。
図1は、主プロセツサ11および21、そのそれぞれの関連したバックアッププ ロセッサ12および22、共通メモリCM、ならびに相互接続メツセージバスM Bを含む並列コンピュータシステムPCSを示す。
図2は、図1のプロセッサの1つを示し、読出カウンタRC、書込カウンタWC 、メツセージキューMQおよびプロセッサの残りRPを含む。主プロセツサ(1 1または21)は読出カウンタRCのみを用い、バックアッププロセッサ(12 または22)は、書込カウンタWCのみを用いる。RCおよびWCの双方とも、 動作の開始時にゼロに初期化される。動作中に、各主プロセツサの読出カウンタ RCは、そのそれぞれの主プロセツサ(11または21)がそのメツセージキュ ーMQからプロセッサの残りRPに読出したメツセージ数のカウントを累積する 。各バックアッププロセッサ(+2または22)の書込カウンタWcは、そのそ れぞれの主プロセツサ(11または21)によって伝送されたメツセージ数のカ ウントを累積する。
米国特許番号第4.590.554号に開示される実施例に関して説明される動 作では、第1のプロセス(タスク)が主プロセツサ11て実行され、第2のプロ セス(タスク)は主プロセツサ21で実行される。主プロセツサ(たとえば11 )によって伝送された各メツセージは、3つのプロセッサ、すなわち、宛先主プ ロセツサ(たとえば21)、宛先プロセッサ21のバックアッププロセッサ22 、および伝送プロセッサ11のバックアッププロセッサ12に実質的に同時に送 られる。これら3つのプロセッサすべてがメツセージを受け取り、かつそのよう に肯定応答したときのみ、メツセージの伝送が完了したとみなされる(アトム性 )。
宛先プロセッサ21およびそのバックアッププロセッサ22の双方は、メツセー ジをそのそれぞれのメツセージキューMQにロードする。しかしながら、伝送プ ロセッサのバックアッププロセッサ12は、受は取ったメツセージを単にその書 込カウンタWCを増分するためのみに使用し、その後そのメツセージは捨てられ る。主プロセツサは、受は取ったメツセージを処理するごとに、その読出カウン タを1だけ増分する。
バックアッププロセッサのメソセージキューのメツセージの数が多くなり過ぎる と、米国特許番号第4.590.554号の実施例では、主プロセツサとバック アッププロセッサとの間でチェックポイント動作が自動的に開始される。チェッ クポイント動作は、バックアッププロセスをその主プロセスと同じ状態にもたら し、これはそのデータ空間を同一にすることを含む。さらに、チェックポイント 動作によって、主プロセスは、累積された続出カウントをそのバックアッププロ セスに送った後、その続出カウンタRCをゼロにする。この続出カウントRCは 、開始時からまたは最後のチェックポイント動作からの、そのメツセージキュー MQから主プロセスによって読出されたメツセージの数を示すことに留意された い。バックアッププロセスは、チェックポイント動作の間にこの続出カウントを 用いて、そのメソセージキューMQから同じ数のメツセージを捨てる。このよう に、主プロセスが万一故障しても、バックアッププロセスは、主プロセスによっ て既に処理されたメツセージは処理しない。
上述の特許番号第4.590.554号の実施例の動作の一例として、主プロセ ツサ21が故障すると仮定する。このような場合、そのバックアッププロセッサ 22は最後のチェックポイントの点から(または開始時から)出発し、そのメツ セージキューMQ(図2)内のメツセージを処理し始める。これらは、主プロセ ツサ21に送られたものと同じメツセージである。適切なリカバリを施すために 、バックアッププロセッサ22は、その故障した主プロセツサ21が故障i;r に伝送したいかなるメツセージも再び伝送しないようにされる。これは、バック アッププロセッサ22の書込カウンタWCの累積されたカウントを用いることに よって達成され、これは、そのそれぞれの主プロセツサ21によって送られたメ ツセージの数に対応することに留意されたい。出力メソセージがバックアッププ ロセッサ22によってリカバリ中に生成されるごとに、この書込カウンタWCは lだけ減分される。バックアッププロセッサ22は、書込カウンタWCがゼロに 達して初めて、メツセージを伝送することを許可される。バックアッププロセッ サ22は、このようにその故障した主プロセツサ21の状態にもたらされ、故障 した主プロセツサ21が実行していたプロセス(タスク)の処理を引き継ぐこと ができる。
まず、フォールト1−レラント動作に関係のある幾つかの点の考察を行なうこと が有用であろう。
タスクがメツセージを受け取り、その直後に故障した場合、タスクがメツセージ を受け取る直前に故障したかのように進行してもよい。
実際に、故障した後も永続するある動作、たとえばタスクがディスクまたは端末 に書込んだり、またはメツセージをその故障を切り抜けた別のタスクに送る等を タスクが実行するまではタスクがメツセージを受け取る前に故障したかのように 進めることにしてもよい。CPUの故障によって、そのCPU上で動いているす べてのタスクの故障が起こるので、同じCPU内で動作している別のタスクに送 られるメツセージは、受信側がそれに応じて[永続的動作」を行なわない限り、 CPUの故障の後も永続する動作ではない。
より一般的には、CPUが故障すると、そのCPUの外部のあらゆる装置および タスク(他のCPU、ディスク、端末等)か、その故障時のCPUの状態につい て一致していることか重要である。その一致した状態が、故障時のCPUの実際 の状態であるかどうかは重要でない。
故障したCPUが実際に多数の付加的な処理ステップを実行したとしても、永続 的動作を全く実行していないのであれば、その場合にはバックアップは適切にリ カバーするためにそれらを考慮する必要はない。このように、リカバリは一致し た状態で始まり、故障時の実際の状態まで、およびそれを越える処理ステップを 再計算する。実際に、リカバリで元のCPUとは異なる処理ステップを実行する かもしれないが、これは元の処理ステップのとの結果も見えないので、上述の考 察かられかるように、ユーザには見えない。
図3に示されるように、3つの主タスク31,41および51が、CPU A上 で実現され、互いに、そして出力CPUキューと、内部メツセージ網35を介し て通信するが、これは従来のバス構成であってもよい。CPU Aに3つの主タ スク31.41および51しか図示されていないが、さらなるタスクが設けられ てもよいことを理解されたい。
図3にまた示されるように、CPU Aのタスク31には、CPU Bて実現さ れるバックアップタスク32が備えられ、CPU Aのタスク41には、CPU  Cで実現されるバックアップタスク42が備えられ、CPU Aのタスク51 には、CPU Dで実現されるバックアップタスク52が備えられる。同じCP Uで2つ以上のバックアップタスクか実現されてもよい。各CPUは、内部通信 網35に結合されるメモリMを含み、これはCPUで実現される各タスクについ てそれぞれデータ空間を与える。CPUB、CおよびDの各々は、(CPU A のように)CPUキューを有してもよいが、これは、CPUかバックアップタス クしか含まなければ、使用されない。CPU A、B、CとDI4との間の通信 は、外部通信網45によってもたらされ、これは上述の特許番号第4.590. 554号のメツセージBUS MBで示されるような、当該分野では既知である 種々の形態をとってもよい。図3に示されるように、周辺機器Pがまた、Ilo を介して外部通信網45に結合される。通信機器Pは、たとえば1つまたはそれ 以上のディスクドライブを含んでもよい。
各主タスク31.41.51およびそのそれぞれのバックアップタスク32.4 2.52を、より詳細に検討する。
当業者には、以下の説明より、さらにタスクおよびCPUを備えた異なる構成も 使用できることが理解されるであろう。ここで検討される実施例の目的のために 、すべてCPUAにある主タスク31.41.51は、内部通信網35を介して 互いからのみメツセージを受け取り、そのそれぞれのCPU Aの外からは受け 取らないと仮定する。タスク31.41.51からCPU Aの外へのメツセー ジ分配は、外部通信網45を介して、CPUB、CSDのそのそれぞれのバック アップタスク32.42.52に対してのみと仮定する。当業者には明らかであ るように、ここで開示されるタスクの構造および動作は、そのそれぞれのCPU によって実現される。
図3Aに示されるように、各タスク(31,32,41,42,51152)は 、メツセージを受け取りかつ記憶するためのメツセージキューMQを含む。各タ スクはまた、読出カウンタRCと書込カウンタWCとを含む。タスクが主タスク (図3の31.41.51)であれば、読出カウンタRCのみが使用され、その 用途は、そのメツセージキューMQから主タスクによって読出されるメツセージ 数のカウントを累積することである。逆に、タスクがバックアップタスク(図3 において32.42および52)であれば、書込カウンタWCのみが使用され、 その用途は、そのそれぞれの主タスク(図3において31.4151)によって 送られるメツセージ数を累積することである。
メツセージキューMQ、読出カウンタRC1および書込カウンタWCの動作は、 典型的には上述の特許番号第4,590、554号に関してここで先に説明した ものであってもよい。
バックアップタスクによるリカバリおよびチェックポイント動作もまた同様に、 典型的には、先に検討した「考察」を活用することから起こる、ここで指摘した 違いを除いては、上述の特許番号第4.590.554号て説明されるとおりで あってもよい。図3および3Aに示される実施例の動作を、以下により詳細に説 明する。上述のように、CPU Aの主タスク31.41.51は、内部通信網 35を介して互いにのみ通信し、それぞれのバックアップタスク32が、それぞ れCPUB、CおよびDに設けられると仮定する。
主タスク(31,41または51)によって送られるメツセージの各々は、典型 的には関連するタスクアドレスを含み、これを、示されたタスクにメツセージを 送るために内部通信網35が使用する。バックアップタスク(CPUB、C,D においてそれぞれ32.41.52)に送られなくてはならないメソセージは、 内部通信網35によって、先入れ先出し方式(FIFO)で動作する、出力CP Uキューに送られる。
重要な特徴は、ここで先に考察したことを利用して、同じCPUの別のタスクに メツセージを伝送する主タスクは、この別のタスクおよびそれぞれのCPUキュ ーへのメツセージの分配が確実に行なわれる限り、CPUキューにおける対応す るバックアップメツセージがバックアップタスクにまだ送られていなくても、そ の処理を直ちに継続することができることであり、これによって処理を高速にす る。
上述の特許番号第4.590.554号とは異なり、これらのバックアップメツ セージは、外部通信網45を介して適切なバックアップタスクに、そうすること が好都合であるときに送られてもよい。このことは、主タスクが永続的動作を行 なわない限り当てはまり、永続的動作とは、タスクがディスクまたは端末に書込 んだり、または故障を切り抜けた別のタスクにメツセージを送るとき等の、故障 後も永続する、主タスクによって行なわれる動作であることに留意されたい。
主タスク(21または31)が永続的動作を行なう必要がある場合には、主タス クはまず出力CPUキューをチェックし、タスクによって既に処理されたメツセ ージに対応するバックアップメツセージのすへてかバックアップに送られたかど うかを決定する。これらの必要なメツセージのすべてか確実に送られていれば、 タスクは永続的動作を実行し、処理を継続する。もしそうでなければ、主タスク はバックアップに必要な分配を始め、その後、主タスクは永続的動作を実行し、 処理を継続する。タスクは、次の永続的動作を実行する必要があるときまで、そ のバックアップに処理されたメツセージを送ることに関係なく、処理を継続して もよい。伝送されるメツセージの分配を確実にするために、たとえば、肯定応答 信号、ハンドシエイキング、エコー、誤り検出、または他の適切な手段等を用い ること等の、当該分野では周知である種々の技術を用いてもよいことを理解され たい。
図3の動作を例示する種々の例を次に挙げる。これらの例は、図4−9のフロー チャートにおいて要約された形で示される。これらのフローチャートはまた、各 側について含まれる状態表に対応するフローの時点を示す。さらに、これらの例 および表を上述の特許番号第4.590.554号で挙げられているものと比較 することが有用であろう。
以下に示す例は、CPU Aの主タスク31および41゜およびCPU Bおよ びCPU Cのそれぞれのバックアップタスクそれぞれ32および4・2のみに 関する。さらに、これらのタスクおよびCPUのみがこれらの例では参照される 。さらに、これらの例に関してCPU AだけがCPUキューを有する必要かあ るので、CPUキューとは、CPU AのCPUキューをさす。加えて、先に指 摘したように、伝送されるメツセージの分配を確実にするために適切な手段を備 えると仮定する。
例1(図4) 以下の表■は、CPU A(7)主タスク31.41と、CPU BおよびCの そのそれぞれのバックアップタスクそれぞれ32.42に関して、書込カウンタ wc、読出カウンタRC、メツセージキューMQおよびCPUキューの開始状態 を示す。
表I(例1、図4): 書込 読出 メツセージ カウンタ カウンタ キュー 32/B O未使用 空 41/A 未使用 O空 42/CO未使用 空 事タスク31が3つのメツセージMl、M2、M3を主タスク41に(立退し、 これらはタスク41のメツセージキューMQに記憶されると仮定する。これらの メツセージはまた、バックアップCPU BおよびCへのその後の分配のために 、CPUIに記憶される。タスク31は、バックアップタスク32および42を 含むそれぞれバックアップCPU BおよびCにメツセージM1、M2、M3が 伝送されなくても、その処理を続けることができる。CPUAは、主タスク31 または41が永続的動作を必要としていない限りは、都合のよいときにメツセー ジMl、M2、M3を伝送できる。この例では、この時点てCPU Aがこれら のメツセージM1、M2、M3を伝送しないと仮定する。その結果は以下の表I Iに示される。
表II(例1、図4): 書込 読出 ハセーノ カウンタ カウンタ キコー タスク/CPLI WCRCμQ CPU−キコー31/A 未使用 O空 M l、 M2. M332/B O未使用 空 41/A 未使用 OMl、M2.M342/CO未使用 空 次に、タスク41はそのメツセージMQに記憶されているMlおよびM2を読出 し、これらを処理し、その読出カウンタRCを2に進ませて、2つのメツセージ が処理されたことを示す。その結果は以下の表IIIに示される。
表III (例1、図4): 書込 読出 メツセージ カウンタ カウンタ キコー タスク/CPU WC昆C,MQ CPU−キ、−31/A 未使用 O空 M l、 M2. M332/B O未使用 空 41/A 未使用 2 M3 42/CO未使用 空 メツセージM+およびM2に応答して、タスク41は2つのメツセージM4およ びM5を発生し、これらをタスク31に送る。メツセージM4およびM5はタス ク31のメソセージキューMQに記憶され、CPU BおよびCへのその後の分 配のために、CPUキューにも記憶される。その結果は以下の表TVに示される 。
表TV(例1、図4): 書込 読出 メツセージ カウンタ カウンタ キコー タスク/CPU WC旦CMQ CPU−キ、−31/A 未使用 OM4.M 5 Ml、M2.M3.M4.M532/B O未使用 空 刺/A 未使用 2 M3 42/CO未使用 空 CPU Aがこの時点て故障し、主タスク31および41をダウンさせると仮定 する。バックアップタスク32および42は、CPU Aが、主タスク31およ び41によってどのメツセージも送られていないまたは処理されていない状態に あったことで一致している(CPU AのCPUキューによって何も送られてい ないので)。バックアップタスク32および42はこの一致した状態に基づいて 、最後にわかっている状態、すなわち初期状態から再現する。
このように、この時点までの処理全体が、初期状態から、外部通信網45を介し て互いに通信するバックアップタスク32および42によって正確に繰返される 。CPU Aのその故障前の状態(表IV)は、実際にはバックアップタスク3 2および42が一致したものとはかなり異なっていても、うまくリカバリが達成 されたことに留意されたい。
例2(図5) この例の最初の状態は、CPU Aの故障前の状態を示す、上の例1からの表I Vに表わされる。この例2では、CPU AがそのCPUキュー内のメツセージ MlをCPUAが故障する前にCPU BおよびCのそれぞれバックアップタス ク32および42に伝送すると仮定する。メツセージM1は、バックアップタス ク42のメツセージキューMQに記憶され、バックアップタスク31の書込カウ ンタWCはlに進んで、そのそれぞれの主タスク41によって1つのメツセージ が送られたことを示す。CPUAVによるこの伝送の結果は、以下の表Vに示さ れる。
表V(例2、図5)。
書込 読出 ハセーノ カウンタ カウンタ キ】− 32/B I 未使用 空 41/A 未使用 2 M3 42/CO未使用 Ml ここてCPU Aか故障すれば、バックアップタスク32および42の双方は、 CPU Aが、主タスク31によってMlだけが主タスク41に送られた状態に あったということで一致している。バックアップタスク32および42によるリ カバリは、このタスク32および42のこの一致に基づいて最後にわかっている 状態(初期状態)から再出発して行なわれる。このリカバリは、典型的には上述 の特許番号第4.590.554号に関連して説明したように行なわれてもよい 。タスク32がリカバリ中にMlを再び発生させると、この書込カウンタWC( 上の表Vに示されるように1にある)はlだけ減分されてゼロとなり、Mlは捨 てられる。M2およびM3がバックアップタスク32によって再び発生されると 、タスク32の書込カウンタWCが現在ゼロなので、これらは通常どおり外部通 信網45を介してタスク42に伝送される。タスク42が再出発し、その最初の メツセージを処理しようとすると、そのメツセージキューMQに記憶された元の メツセージMlを与えられる(上の表V)。バックアップタスク42によるさら なるメツセージの続出は、メツセージキューMQが今度は空であるので、リカバ ーしているバックアップタスク32から伝送される、再発生されたM2およびM 3を用いる。
例3(図6) この例の始めの状態は、上の例1からの表IIIに示される。この例3ては、タ スク41がこの時点で、ディスクへの書込(このディスクは典型的には図3の周 辺機器P内に位置されていてもよい)等の永続的動作を行なう必要があると仮定 する。このディスクが書込まれる前に、CPUAて処理されだすへてのメツセー ジは、そのそれぞれのバックアップタスクに伝送されなくてはならない。したが って、メツセージM1およびM2(処理されている)は、ディスクへの書込の前 にバックアップタスク32および42を含むCPU BおよびCに伝送されなく てはならない、というのはMlおよびM2が(タスク41によって)処理されて いるからである。メツセージM1およびM2がディスクへの書込か行なわれる前 に送られることを保証するために、マーカDがCPUキュー内の少なくともMl およびM2の後の位置に記憶されて、MlおよびM2が送られるまては実行がD に達しないようにする。CPUキュー内にDを記憶した結果は、以下の表VIに 示される。
表Vl(例3、図6): 書込 読出 メツセージ カウンタ カウンタ キュー 32/B O未使用 空 刺/A 未使用 2 M3 42/CO未使用 突 上の表Vlに関して、MlおよびM2とともにM3を送ることはリカバリを妨げ ないので、Dは、CPUキュー内のMlおよびM2の後のいかなる点(たとえば M3のvi)に置かれてもよいことに注目されたい。
主タスク41かディスクへの書込を行なうのを可能にするために、ここてCPU  AはそのCPUキューからMlおよびM2をCPU BおよびCに伝送する。
メツセージMlおよびM2はこのように、CPU Cのバックアップタスク42 のメツセージキューMQに記憶され、ノ<・ツクアップタスク32の書込カウン タWCは2に進んで、2つのメツセージ(MlおよびM2)がCPU Δのその それぞれの主タスク31によって送られたことを示す。その結果は以下の表Vl lに示される。
表Vll(例3、図6): 書込 読出 メブセージ カウンタ カウンタ キ、− 32/B 2 未使用 空 41/A 未使用 2 M3 42/CO未使用 Ml、M2 タスク41はここて、CPU AのキューからDエントリを削除し、ディスクへ の書込を実行する。
CPU Aが故障した場合に、CPUのタスク41のバックアップタスク42が ディスクへの書込を繰返すのを防ぐために、主タスク41によるディスクへの書 込の実行はまた、CPU Cに送られるメツセージとなり、これによってバック アップタスク42の書込カウンタWCはlに進む。その結果は、以下の表Vll lに示される。
表VTII(例3、図6および図7):書込 読出 メツセージ カウンタ カウンタ キュー タスク/CPU WCRCMQ CPU−キュー31/A 未使用 0 空 M 3 32/B 2 未使用 空 引/A 未使用 2 M3 42/CI 未使用 Ml、M2 タスク41がそのメツセージキューMQから次にM3を続出し、M3を処理し、 タスク31にメツセージM4およびM5を送ることで応答し、M4およびM5は タスク31のメツセージキューMQおよびCPUキューに記憶されると仮定する 。その結果は以下の表IXに示される。
表IX(例3、図7): 書込 読出 メツセージ カウンタ カウンタ キュー タスク/CPU WCRCMQ CPU−キコー31/A 未使用 OM4.M 5 M3.M4.M532/B 2 未使用 空 引/A 未使用 3 空 42/CI 未使用 Ml、M2 CPU △がこの時点(上の表TX)で故障すれば、CPU BおよびCの双方 は、CPU Aに関して、メツセージM1およびM2が既に送られ、ディスクへ の書込か終了していると一致する。故障の前にタスク41がM3を処理し、M4 およびM5をタスク31に送ったということは、CPUの故障に先立ってさらな る永続的動作が起こっていないので、十分なリカバリとは関係がない。リカバリ は上述した態様で通常どおり進行する。チェックポイント動作がまだ起こってい ないので、リカバリは初期状態(表1)から始まる。より特定的には、バックア ップタスク32に関して、リカバリ中にタスク41によって発生されたメツセー ジMlおよびM2は、より特定的には、バックアップタスク32に関して、リカ バリ中にタスク41によって発生されたメツセージM1およびM2は送られずに 捨てられる、というのはM2が再発生されるまで、書込カウンタWCが「0」に 減分されないからである。バックアップタスク42に関して、そのメツセージキ ューMQ内のメツセージMlおよびM2は、現在故障しているCPU A内の主 タスク41で起こったのと同しように処理される。リカバーしているバックアッ プタスク41が、ディスクへの書込か行なわれるべき(これは主タスク41によ って行なわれたことに留意されたい)点に達すると、このディスクへの書込動作 は、この時点でタスク42の書込カウンタWCがrNである結果、再び行なわれ ないようにされる。メツセージかタスク42によって送られるのは、タスク42 の書込カウンタが(このディスクへの書込防止の後)「0」に減分されてからで ある。したがって、メツセージM4およびM5かタスク42によって発生される ときに書込カウンタWCがこのように[0」であるので、これらはタスク32に 送られ、それによってCPU Aの故障の前に達した点へのリカバリを達成する 。外部通信網45を介して通信するバックアップタスク32および42を用いて 、処理はこのリカバリ点を越えて継続する。
例4(図8) この例4(および例5)の目的は、図3の実施例におけるチェックポイント動作 を説明することであり、最初の状態は上の例1からの表IVに対応すると仮定す る。
上の表IVに示される状態に達した後、タスク41がチェックポイント動作を始 めると仮定する。チェックポイント動作は、タスク41の状態についての情報か CPU Aの外に伝送されることを必要とするので、これは永続的動作である。
したがって、タスク41はチェックポイントデータ(または適切なチェックポイ ントマーカC1()を、MlおよびM2が処理されているので、CPUキュー内 の少なくともMlおよびM2の後の位置に置く。この結果は以下の表Xに示され る。
表X(例4、図8) 書込 読出 ハセーノ カウンタ カウンタ キュー タスク/CPU WCRCMQ CPU−キコー31/A 未使用 OM4.M 5 Ml、M2.M3.M4.M5.CK32/B O未使用 空 41/A 未使用 OM3 42/CO未使用 室 上の表Xにおいて、タスク41の読出カウンタは、タスク41に関する限り必要 なチェックポイント動作が既に起こっているので、ゼロにされていることに注目 されたい。
さらに、タスク31および41の両方は、チェックポイントデータがそのそれぞ れのバックアップに伝送されるまでいかなる後続の永続的動作も遅延される限り 、チェックポイントデータがいつ実際にCPU C内のバックアップタスク42 に送られるかとは関係なく、処理を進めることができることにも注目されたい。
表Xにおいて、CKは、CPUキュー内のMlおよびM2の直後ではなく、M5 の後に置かれており、MlおよびM2と同様にM3、M4およびM5もチェック ポイントデータCKの前に伝送されることを意味していることに注目されたい。
このことは、永続的動作に遭遇しなければ、CPU Aは(上述のように)その CPUキューからメツセージを都合のよいときに伝送できるし、永続的動作に遭 遇するような場合には、処理されたメツセージは永続的動作が実行できる前にそ のそれぞれのバックアップに伝送されなくてはならないので、問題は生じない。
例4のために、ここてCPU AかCPU BおよびCのバックアップタスクそ れぞれ32および42にMlないしM5を伝送し始めるが、CPU AはMl、 M2、M3、M4を伝送し終わってから故障し、M5またはチェックポイントデ ータCKのいずれも伝送されないと仮定する。この結果として生じる、故障の直 前の状態は以下の表XIに示される。
表XI(例4、図8): 書込 読出 メツセージ カウンタ カウンタ キュー 32/B 3 未使用 M4 41/A 未使用 OM3 42/CI 未使用 Ml、M2.M3CPU BおよびCのそれぞれバックア ップタスク32および42は、メツセージM1、M2、M3、M4のみが伝送さ れ、チェックポイントはまだ起こっていないという一致した認識に基づいて、初 期状態(表■)からリカバリを始める。
例5(図9): この例は上記の例4の表Xに対応する最初の状態をとる。
しかしながら、例4て説明したようにMl−M4の伝送の後にフェールする代わ りに、この例5はCPU AのMl−M5およびCKの伝送が成功すると仮定し 、下記の表XIfに示すような結果となる: 表XII(例5、図8)。
書込 読出 メッセーノ カウンタ カウンタ キ】− 32/B 3 未使用 M4. M5 41/A 未使用 OM3 42/CO未使用 M3 上に議論したように、チェックポイント動作によりバックアップタスク42はそ の主タスク41と同じ状態になりかつ主タスク41とバックアップタスク42と のそれぞれのメモリM中のデータ空間は同一になる。
チェックポイントデータがうまく伝送されるまでさらなる永続的動作か遅延され ると仮定すれば、メツセージMlないしM5およびCKが伝送されている間、C PU Aは主タスク31および41のためのさらなる作業の処理を自由に継続で きるということが理解される。
もし引続いてCPU Aの故障が発生するとすれば、バックアップタスク32は 5TARTからりカバーし、かつバックアップタスク42は上記のチェックポイ ントからり上述のシステムでは、タスクへの入力はメツセージによってなされる 。オペレーティングシステムの呼出はメツセージとして取扱われ得るため、これ らのシステムによって容易に処理される。しかしながら、タスクの振舞いはこれ らのシステムによって容易に処理されない他のやり方で影響を受けるかもしれな い。たとえば、タスクの状態は、外部事象がいつ発生するかをタスクがほとんど または全く制御できない、かつこの外部事象の発生時期によってタスクの振舞い が変化し得るような、制御されない外部事象によって変えられるかもしれない。
たとえば、係る外部事象は、割込みハンドラの動作のために、または共通メモリ への別のプロセスの書込の結果として発生し得る。以下の例は簡単ではあるが係 る制御されない外部事象かどのようにタスクの振舞いに影響を及ぼすかを示すも のである。
このために、タスクは表Aに示されるプログラムを実行すると仮定する。もし制 御されない外部事象かこのプログラムの実行の間に発生しなければ、プログラム 出力(表A中ではプログラムステップPC=2で発生)は表Bに示されるように なる。
前述の特許第4.590.554号およびフレキシブル・フォールト・トレラン ト・システムから理解されることだが、もしタスクかフェールするとすれば、表 Bのプログラム出力は同しプログラムを実行し、かつ同じ態様で初期化されるバ ックアップタスクを用いて正確に再現される。
ここて上記のプログラムが次の相違点を有して再び実行されると仮定する。つま り、制御されない外部事象(共通メモリへの別のプロセスの書込によって作られ るような事象)か、上記のタスクプログラムが実行されている間にMEM (S TATE 4−GREEN)のメモリ動作を発生させると仮定する。もしこの外 部から引起こされたメモリ動作が表B中の第2のREDの後(つまり表B中のプ ログラム出力ライン3と4との間)、かつ表A中のプログラムステップPC=2 とPC=3との間で発生するとすれば、プログラムはPC=5へ進み、これはメ モリ状態をMEM (STATE=RED)へと戻す。結果として生じるプログ ラム出力は、表Cに示されるようになる。
一方、もし外部事象MEM (STATE−GREEN)が、第1のGREEN プログラム出力の後(つまり表B中のプログラム出力ライン2と3との間)で発 生したとすれば、表Bに示される元のプログラム出力は変化しない。なぜなら外 部事象は表AのPC=2におけるメモリの状態に影響しないからである。同様に 、もし外部事象が表AのプログラムステップPC=3とPC=4との間に発生す るとしても表Bの元のプログラム出力は変化しないであろう。
なぜならこれもまた表AのPC=2におけるメモリの状態に影響しないからであ る。
したがって明らかに、制御されない外部事象の発生時期はタスクがとのように働 くかということに影響を及ぼし得る。したがって、もしバックアップタスクが係 る制御されない外部事象によって影響されるフェールした主タスクを正しく再現 するのであれば、タスクの実行の間にこれらの外部事象を適切に生じさせるため の準備がなされなくてはならない。本発明はこの問題を特に有利に解決する方法 を提供する。
先に開示したようなフォールト・トレラント・システム中で制御されない外部事 象を処理するための本発明の好ましい実施例によって用いられるアプローチを次 に説明する。
基本的なアプローチは、これらの外部事象の発生を主タスクで発生する特定の事 象に関連づけることである。これらの特定の事象はタスクコンテキストの一部と して取扱われるため、フェールしたタスクのリカバリの間、各外部事象は主タス クの実行の間に発生したのと同じ論理的ポイントにおいてバックアップタスクの 再現の間に再び渡され、これによりバックアップが適切にリカバーすることを保 証する。ここに説明する好ましい実施例においては、これはメモリへの「書込」 データ参照をカウントすることによって達成され、その結果生じる「書込」カウ ントはタスクコンテキストの一部である。係るメモリ「書込」カウンティングは 当業者によって容易に行なわれる。たとえば、もしCPUかモトローラ(Mot orola) 88.000チツプを用いるとすれば、このカウンティングは完 了したメモリ記憶(書込)指令をカウントすることによって行なわれる。
次に図10に示す本発明の好ましい実施例を参照して、この図は基本的には図3 と同じであるが、表BのCPUA、CPUBおよびCPU Cの各々に、メモリ 「書込」カウント機能を行ない、かつリカバリを行なうのに使用されるメモリ参 照カウンタMRCおよびメモリ参照カウンタ比較レジスタMRCCRが追加され ている。各CPUにおいて、MRCおよびMRCCRは内部通信網35を介して タスク31.41.51およびメモリMと通信し得る。
主タスクの動作の間、メモリMへの各「書込」データ参照は、タスクがオペレー ティングシステムの呼出を行ない、オペレーティングシステムコードの実行を開 始し、オペレーティングシステムの呼出が完了するまでタスクが休止したままで いる場合以外は、MRCを1だけ増分させる。各チェックポイントの後だけでな く各オペレーティングシステムの呼出の後にもMRCをゼロにすることが有利で あり、これはなぜならカウントを小さくし、カウンタオーバーフローの可能性を 低減するからである。システムの呼出はメツセージとして取扱われるため、各オ ペレーティングシステム呼出の後にMRCをゼロにすることはメモリ「書込」カ ウンティングに関しては何の支障もない。
タスクのメモリを変える外部信号(先に例示したような)などの制御されない外 部事象が主タスクの実行の間に発生する場合は、MRC中の既存のメモリ参照カ ウントは外部信号のタイプの表示およびタスクのレジスタコンテキストとともに 各バックアップタスクに送られて、その各CPUのメモリMに記憶されなければ ならない。特許第4.590、554号のフォールトトレラントシステム2)を 用いれば、このデータは、この特許の概要で説明されるように即座にバックアッ プへ送られなければならない。
しかしながら、フレキシブル・フォールト・トレラント・システム(図3−9) においては、このデータは他のメツセージと同様に取扱われ、CPU AのCP Uキューに置かれる。たとえば、もしフォールト]・レラントシステムの状態か 表IIに示されるようなものであると仮定すれば、タスク31に関して制御され ない外部信号か発生すれば、タスクおよび信号のタイプを示すマーカーSをMR Cの現在のカウントを含むタスク3IレジスタコンテキストRとともにCPUキ ューに位置させる。これは下記の表XII■に示される 表XI11(例5、図8)・ 書込 読出 メツセージ カウンタ カウンタ キュー タスク/CPLI WC 凡C MQ CPtl−キュー31/A 未使用 0  空 Ml 、 M2. !1+3, S, R32/B O 未使用 空 刺/A 未使用 O Ml.M2.M342/C O 未使用 空 代替的に、CPUキューに記憶されるレジスタコンテキストRは単なるマーカー であり、完全なレジスタコンテキストはメモリ〜1中のタスク3Iのメモリ空間 に記憶されているようにもてきる。その場合、CPUキュー内においてマーカー Sに到達すると、記憶されたレジスタコンテキストRがメモリMから呼出され、 バックアップへ伝送されてバックアップメモリMに記憶される。
次に、主タスクの故障の前の主タスクの実行の間に制御されない外部事象が発生 する場合に、フェールしたタスクがバックアップによってリカバーされる様子を 示す例を挙げる。このために、主タスクは表Aに示したものと同じ表りに示され るプログラムを実行すると仮定する。この例は、その上で主タスクが実行される べきCPUが少なくともメモリ参照カウンタMRCを含み(図10)、かつその 各々のバックアップCPUが少なくともメモリ参照カウンタMRCおよびメモリ 参照比較カウンタレジスタMRCCRを含むと仮定する。
表Eは図10のCPU A上で主タスクによって表りのプログラムが実行される 様子を示す。表Eはプログラムの実行の間に[事象」、「ハードウェアコンテキ ストjおよび「プログラム出力」が発生することを示すと理解されたい。最初の 「事象」はチェックポイント動作であり、MRC=Oに設定する。このときPC =3かつCF=FALSEてあり、かつメモリの状態はMEM (STATE= RED)である。表Eに示されるように、プログラムの実行はこのチェックポイ ント動作で始まり、その後、「プログラム出力jがGREEN,RED,GRE EN,RED,GREENと交互に代わり、かつMRCO値か各メモリの変化( 書込)に応じて1だけ増分されるという予定の態様で進む。
表Eに示されるように、外部信号(STATE 4−GREEN)ltMRc= 5の後1:発’llL、こ(7)ときMEM (STATE=RED)である。
このとき、「ハードウェアコンテキスト」レジスタの値はPc=8、CF=FA LSE。
およびMRC=5である。4.590.554のシステムにおいては、このレジ スタコンテキストは信号のタイプの表示とともに各タスクバックアップへ送られ る。フレキシブル・フォールト・トレラント・システムにおいては、このデータ のバックアップへの送信は、表X1llに示されるように、CPUキューにこの データを記憶することによって遅延され得る。
表Eの例の説明を続けると、外部信号(STATE+−GREEN)(7)発生 ハメモリの状態をMEM (STATE=RED)からMEM (STATE= C;REEN) へと変える。したがって、次のプログラム出力はREDではな くてGREEN (先の出力と同じく)であり、これは外部信号(STATE  4−GREEN)が発生しなかった場合と同じである。
その後、プログラムは継続する。フェールは示されるようにMRC=8で発生す る。
次に表Fに注目して、これはバックアップがどのように表Eのフェールしたタス クを再現するかを示す例である。
この例は、レジスタコンテキストおよび信号のタイプが故障の前にバックアップ に送られていると仮定する。表Eのチェックポイントの後にはシステム呼出はな かったため、バックアップはこのチェックポイントで始まり、これは表Eのチェ ックポイントでもっていた値にそれぞれ対応するよう1.: P C= 3、C F=FALSEおよびMRC=Oi、:設定する。さらに、MRCCRはMRC CR=5に設定され、これは外部信号が発生した場合の主タスクのMRCの値で あり、この値は表Eに関連して説明したようにレジスタコンテキストの一部とし てバックアップに送られた。MRCCR=5により、外部信号(この信号のタイ プもまたバックアップに送られる)が5つのメモリへの「書込」参照の後に渡さ れるべきであるとバックアップに指令するということが理解される。
したがって表Fに示すように、バックアップは、MRCが各メモリ[書込Jごと に1だけ増分される状態で通常通り進行する。MRCの各増分ごとにMRCCR =5との比較が行なわれる。MRC=5の場合レジスタは、外部信号が主タスク の実行の間に渡される直前のレジスタコンテキストに従って設定され、このレジ スタコンテキストは上述のようにバックアップに送られてそこに記憶されている 。
したがって、PCおよびCFはそれぞれPC=8およびCF=FALSEに設定 され、さらに、MRCCRはMRCCR=Oとなるようにゼロにされる。その後 、外部信号(STATE←GREEN)がバックアップ記憶装置から取出されて 渡され、それに続いて、表EおよびFのプログラム出力の比較から明らかなよう に、再実行が主タスクを正確に再現し続ける。
もし主タスクがフェールする前に第2の外部信号がバックアップに送られていた とすれば、MRCCRは表FのMCR=MRCCRの場合にゼロにされず、この 第2の信号が発生したときにMCRが主タスクに持っていた値に設定されていた であろうということが理解される。したがって、この第2の外部信号を用いる動 作は第1の外部信号について説明したものと同じであったであろう。この意味で 、表FにおいてMRCは、上述のように主タスクの実行の間に発生しかつバック アップに送られたかもしれない他の外部信号の分配時期を制御するためのカウン トを与えるように、MRC=5を超えて増分を続ける。さらに、MRCのカウン トはタスクコンテキストの一部であるため、表Fに示される再現は継続的である 必要はないということにも留意されたい。再現はいつでも差替可能であり、他の タスクが外部信号を正確に再び送ることに影響を及ぼさずに実行され得る。
特定の好ましい実施例および動作例に関して本発明をここに説明してきたが、そ の構成、配列、使用法および動作において幅広い修正、追加および拡張が本発明 の範囲を逸脱することなくなされ得るということが理解されるべきである。たと えば、本発明は、制御されない外部事象が正確な再現のために関連付けられるカ ウントを与えるためにメモリ「書込」参照を用いることに限定されるものではな い。
たとえばもし都合がよければメモリ「読出」および「書込」の両方がカウントさ れてもよい。また、プログラムステップもカウント可能であるが、これは大抵の 場合非常に面倒である。
さらに、表Fの再現の開始時にMRCCRに設定される参照カウントは、外部信 号をいつ送るかを決定するために様々な他のやり方で用いられてもよいというこ とが理解される。たとえば、表FのようにMRCCRをMCRと比較する代わり に、MRCCRは外部信号がいつ送られるべきかを示すためにゼロまでカウント ダウンされることもできる。
さらに、外部信号をバックアップ中に送るためにCPUのオペレーティングシス テムのページフォールト能力を用いることもできるということが理解される。た とえば、表FのMRC=MRCCRの後、外部信号の分配を開始するためにバッ クアップのオペレーティングシステムが用いられて次のメモリ参照上にページフ ォールトを作出すことができる。
さらに、表EおよびFの例はオペレーティングシステムへの吐出を含まないが、 係る呼出は正しい再現には干渉はしないということか理解されるべきである。上 述のように、オペレーティングシステム呼出は主タスクの実行の間にMRCをゼ ロにするために用いられることができ、これはなぜなら係るゼロ化は再現の間に 正確に実行されるからである。これはMRCのオーバーフローを防止するという 利点を有する。
上述の可能な修正および拡張の例は単に代表的なものであり、これに尽きるもの ではない。したがって本発明は、後述の請求の範囲によって包括されるあらゆる 修正、変形および拡張を含むと考えられるべきである。
FIG、1 (PRI口RART) FIG、2 (PRI口RARTI り幻プot、γη懺(η Zフート FIG、4 FIG 5 FIG、6 FIG 、 7 FIG、8 FH3,9 補正書の写しく翻Um提出書(特許法第184条の8)平成 6年 7月22日 1、国際出願番号 PCT/US93100618 2、発明の名称 外部事象を処理できるフォールトトレラントコンピュータシステム3、特許出願 人 住 所 アメリカ合衆国、19424 ペンシルバニア州、ブルー・ベル、ビイ ・オウ・ボックス・500、タウンシップ・ライン・アンド・ユニオン・ミーテ ィング・ローズ (番地なし)名 称 ユニシス・コーポレイション 代表者 アンダーソン、ロナルド・シイ国 籍 アメリカ合衆国 4、代理人 住 所 大阪市北区南森町2丁目1番29号 住友銀行南森町ビル1994年  1月25日 6、添付書類の目録 補正書の写しく翻沢り 1通 請求の範囲: 1.複数の主タスクを提供するデータプロセッサを含み、前記主タスクの少なく とも1つは永続的動作を実行し、主タスクは、その発生時間がその実行に影響を 及ぼし得る外部事象を受け、 前記複数の主タスクをバックアップするために前記データプロセッサの外部に、 対応する複数の相互接続されるバックアップタスクを提供するフォールトトレラ ントコンピュータシステムにおいて、 前記主タスク間でそれによって処理するためにメツセージを伝送するステップと 、 伝送されたメツセージを記憶するステップと、各外部事象のタイプおよび予め定 められた主タスク事象に対するその発生関係を示す外部事象データをまた記憶す るステップと、 各主タスクがそれに伝送されたメツセージを処理するステップと、 前記記憶に続いて、記憶されたメツセージの少なくとも特定のものを前記バック アップタスクに、永続的動作の実行に先立って、前記データプロセッサの故障が らりカバーするために前記バックアップタスクに要求される少なくともこれらの 特定のメツセージを前記バックアップタスクに伝送するような態様で、伝送する ステップと、前記永続的動作の実行の前に外部事象データもまたそれぞれのバッ クアップタスクへ伝送するステップとを含み、前記主タスクは前述のメツセージ および外部事象データの前記バックアップタスクへの伝送が合致する限り、前記 主タスクへ伝送されたメツセージを処理し続け、さらに前記バックアップタスク に、それに伝送された外部事象データおよびメツセージを処理させることによっ て故障からリカバーするステップを含み、各発生関係は、前記リカバリ中に、そ のそれぞれの外部事象がいつ起こるかを定めるために用いられ、それによって適 切なリカバリが達成される、方法。
2、前記特定のメツセージは、前記システムの前記バックアップタスクおよび他 の部分が、前記フェールの前にフェール時のその実際の状態でなくてもよい各主 タスクの特定の状態で一致するように選択される、請求項1に記載の方法。
3、前記主タスクはそこに伝送されたメツセージを連続して処理し、かつ前記特 定のメツセージは少なくとも最も最近処理されたメツセージおよび前記主タスク によって伝送されたすべてのそれ以前のメツセージを含む、請求項2に記載の方 法。
4、前記主タスクはそこに伝送されたメツセージを連続して処理し、前記伝送さ れたメツセージの記憶は伝送されたメツセージを伝送の順に記憶するキューの中 で行われ、外部事象データは発生順に前記キューに記憶され、永続的動作の実行 は、永続的動作の表示を最も最近処理されたメツセージの位置より前ではない位 置に記憶することによって前記キュー中に示され、かつ前記特定のメツセージお よび外部事象データは、前記キュー中の前記永続的動作表示の位置に基づく前記 永続的動作の実行の前に前記バックアップタスクへ伝送される、請求項3に記載 の方法。
5、前記リカバリステップは、各バックアップタスクがその各特定の状態に達す るようになる態様で、前記バックアップタスクにそこに伝送されたメツセージお よび外部事象データを処理させるステップを含む、請求項1に記載の方法。
6 前記特定のメツセージおよび前記外部事象データは、各バックアップタスク が前記特定のメツセージのうちのその各主タスクへ伝送された各メツセージを受 信し、かつその各主タスクごとに発生する各外部事象に対応する外部事象データ を受信するように、前記バックアップタスクへ伝送される、請求項Iに記載の方 法。
7、前記特定のメツセージは、各バックアップタスクが前記特定のメツセージの うちのその各主タスクによって伝送された各メツセージをまた受信するように、 前記バックアップタスクへ伝送される、請求項6に記載の方法。
8、各バックアップタスクが、その各主タスクによって伝送された受信したメツ セージの数のカウントを与えることを含み、前記カウントは前記発生関係を決定 するために用いられる、請求項7に記載の方法。
9、各バックアッププロセッサは前記リカバリの間に外部事象がいつ起こるかを 決定するために前記カウントを用いる、請求項8に記載の方法。
10、少なくとも複数個のメツセージが前記主タスクへ伝送された後に、主タス クとその各バックアップタスクとの間でチェックポイント動作を実行するステッ プを含み、前記チェックポイント動作は、主タスクの状態に対応するチェックポ イントデータを記憶し、かつ前記記憶に続いて、かつ前記バックアップタスクが 各主タスクからそこに伝送されたメツセージを用いて前記データプロセッサのフ ェールからリカバするのに必要な時間より遅くない時間に、前記チェックポイン トデータを各バックアップタスクへ伝送するステップを含み、前記チェックポイ ントデータは、前記チェックポイントデータが伝送されたバックアップタスクを チェックポイント動作時に各主タスクと同じ状態にさせる、請求項1に記載の方 法。
11、前記チェックポイントデータは、その開始時または最新のチェックポイン ト設定から主タスクによって処理されたメツセージの数のカウントを含み、かつ 各バックアップタスクは前記カウントを用いて、対応するメツセージの数を特徴 する請求項10に記載の方法。
12、前記主タスクはそこに伝送されたメツセージを連続して処理し、前記伝送 されたデータの記憶はその伝送順に伝送されたメツセージを記憶するキュー中で 行なわれ、外部事象データは発生順に前記キューに記憶され、前記キューはまた 前記チェックポイント動作の実行時間を示す位置にチェックポイント表示を記憶 し、永続的動作の実行は最も最近処理されたメツセージの位置に基づいて前記キ ュー中に位置決めされた永続的動作の表示を記憶することによって前記キューに 示され、前記特定のメツセージおよび外部事象データは、前記キュー中で前記永 続的動作の表示よりも前に位置決めされれば前記永続的動作の実行の前に前記バ ックアップタスクへ伝送され、かつ前記チェックポイントデータもまた、前記永 続的動作表示の位置よりも前に位置決めされれば各バックアップへ伝送される、 請求項1Oに記載の方法。
13、前記予め定められた主タスク事象はメモリアクセス動作である、請求項1 または2に記載の方法。
14、前記予め定められた主タスク事象は、前記主タスクの実行の間に複数回発 生し、かつ前記外部事象データは、各外部事象ごとに、前記予め定められた主事 象が外部事象の発生前の基準点以後発生した回数に関係したカウントを含む、請 求項1または2に記載の方法。
15、前記カウントは再現の間に前記バックアップタスクによって用いられて、 対応する外部事象がいつ送られるかを特徴する請求項14に記載の方法。
PCT/US 9310061B

Claims (25)

    【特許請求の範囲】
  1. 1.フォールトトレラントコンピュータシステムにおいて、データ処理作業を実 行するための主タスクを提供するステップを含み、前記主タスクはその発生時間 が前記主タスクの実行に影響を及ぼす1つ以上の外部事象を受信することがあり 、さらに 各外部信号ごとに、外部事象のタイプおよび前記外部事象の発生と予め定められ た主タスク事象の発生との間の関係を示す外部事象データを記憶するステップと 、前記主タスクがフェールした場合に前記主タスクを再現するためのバックアッ プタスクを提供するステップと、前記主タスクへメッセージを伝送するステップ と、前記バックアップタスクへも前記メッセージを伝送するステップと、 前記バックアップタスクへも前記外部事象データを伝送するステップと、 前記主タスクがフェールした場合に、前記バックアップタスクが適切にリカバー するように前記バックアップタスクに各外部信号を再び与えるように前記バック アップタスクに伝送された前記外部事象データを用いながら、前記バックアップ タスクに伝送されたメッセージを処理することにより前記バックアップタスクが 前記主タスクを再現するようにさせるステップとを含む、方法。
  2. 2.永続的動作を実行する少なくとも1つのタスクを提供するデータプロセッサ を含み、前記タスクは、その発生時間が前記タスクの実行に影響を及ぼし得る1 つ以上の外部信号を受信する、フォールトトレラントコンピュータシステムにお いて、 前記1つのタスクをバックアップするために前記データプロセッサの外部にバッ クアップタスクを提供するステップと、 前記1つのタスクへメッセージを伝送するステップと、前記1つのタスクへ伝送 されたメッセージを記憶するステップと、 各外部事象のタイプおよび予め定められた主タスク事象に対するその発生関係を 示す外部事象データをまた記憶するステップと、 前記記憶に続いて、少なくとも前記1つのタスクによって処理された特定のメッ セージが前記永続的動作の実行の前に前記バックアップタスクへ伝送されるよう な態様で、記憶されたメッセージの少なくともいくつかのものを前記バックアッ プタスクへ伝送するステップと、前記永続的動作の実行の前に外部事象データも また前記バックアップタスクへ伝送するステップとを含み、前記1つのタスクは 前述のメッセージおよび外部事象データの前記バックアップタスクヘの伝送が合 致する限り、前記1つのタスクへ伝送されたメッセージを処理し続け、さらに 前記1つのタスクがフェールした場合に、前記バックアップタスクが適切にリカ バーするように前記バッタップタスクに各外部信号を再び与えるように前記バッ クアップタスクに伝送された前記外部事象データを用いながら、前記バックアッ プタスクが前記バックアップタスクに伝送されたメッセージを処理するようにさ せるステップとを含む、方法。
  3. 3.前記記憶ステップは、外部事象データおよびメッセージを前記データプロセ ッサのキューに記憶するステップを含み、かつ前記伝送ステップは、前記永続的 動作の実行の前に前記キュー中の外部データおよび処理されたメッセージを前記 バックアップタスクへ伝送するステップを含む、請求項2に記載の方法。
  4. 4.前記1つのタスクによって処理されたメッセージの数をカウントするステッ プを含む、請求項3に記載の方法。
  5. 5.第2のタスクを実行し、かつ前記1つのタスクからメッセージを前記第2の タスクへ伝送して記憶するステップを含む、請求項4に記載の方法。
  6. 6.もし前記第2のタスクによって処理されているとすれば、前記永続的動作の 実行の前に前記1つのタスクから前記第2のタスクへ伝送された記憶されたメッ セージを前記バックアップタスクへ伝送するステップを含む、請求項5に記載の 方法。
  7. 7.前記バックアップタスクが前記1つのタスクによって伝送されたメッセージ の数のカウントを与えることを含む、請求項6に記載の方法。
  8. 8.前記バックアップタスクによる処理の間、メッセージが前記バックアップタ スクによっていつ伝送されるかを決定するために前記カウントが用いられる、請 求項7に記載の方法。
  9. 9.少なくとも複数個のメッセージが前記1つのタスクへ伝送された後で前記1 つのタスクと前記バックアップタスクとの間でチェックポイント動作を実行する ステップを含み、前記チェックポイント動作は前記1つのタスクの状態に対応す るチェックポイントデータを記憶し、かつ処理したメッセージを前記バックアッ プタスクへ伝送するのに必要な時間より遅くない時間に前記チェックポイントデ ータを前記バックアップタスクへ伝送するステップを含み、前記チェックポイン トデータはチェックポイント時に前記バックアップタスクを前記1つのタスクと 同じ状態にさせる、請求項2に記載の方法。
  10. 10.前記チェックポイントデータは、その開始または最後のチェックポイント 動作からの前記1つのタスクによって処理されたメッセージの数のカウントを含 み、かつ前記バックアップタスクは前記カウントを用いて、そこに送られた前記 メッセージの対応する数を廃棄する、請求項9に記載の方法。
  11. 11.複数個の主タスクを与えるデータプロセッサを含み、前記主タスクの少な くとも1つは永続的動作を実行し、かつ各主タスクはその発生時間が各タスクの 実行に影響を及ぼし得る1つ以上の外部信号を受信し得る、フォールトトレラン トコンピュータシステムにおいて、前記複数個の主タスクをバックアップするた めに、前記データプロセッサの外部に対応する複数個の相互接続されたバックア ップタスクを提供するステップと、前記主タスクによりメッセージを処理するた めに前記主タスクの間でメッセージを伝送するステップと、伝送されたメッセー ジを記憶するステップと、各外部事象のタイプおよび予め定められた主タスク事 象に対するその発生関係を示す外部事象データをまた記憶するステップとを含み 、 各主タスクはそこに伝送されたメッセージを処理し、さらに 前記記憶に続いて、記憶されたメッセージのうちの少なくとも特定のものを、前 記バックアップタスクが前記データプロセッサのフェールからリカバするのに必 要な少なくとも特定のメッセージが永続的動作の実行の前に前記バックアップタ スクへ伝送される態様で、前記バックアップタスクへ伝送するステップと、 前記永続的動作の実行の前に外部事象データをまた各バックアップタスクへ伝送 するステップとを含み、前記主タスクは上述のメッセージおよび外部事象データ の前記バックアップタスクヘの伝送が合致する限り、前記主タスクへ伝送された メッセージの処理をし続け、さらに前記バックアップタスクにそこに伝送された メッセージおよび外部事象データを処理させることによって前記フェールからリ カバするステップとを含む、方法。
  12. 12.前記特定のメッセージは、前記システムの前記バックアップタスクおよび 他の部分が、前記フェールの前にフェール時のその実際の状態でなくてもよい各 主タスクの特定の状態で一致するように選択される、請求項11に記載の方法。
  13. 13.前記主タスクはそこに伝送されたメッセージを連続して処理し、かつ前記 特定のメッセージは少なくとも最も最近処理されたメッセージおよび前記主タス クによって伝送されたすべてのそれ以前のメッセージを含む、請求項12に記載 の方法。
  14. 14.前記主タスクはそこに伝送されたメッセージを連続して処理し、前記伝送 されたメッセージの記憶は伝送されたメッセージを伝送の順に記憶するキューの 中で行われ、外部事象データは発生順に前記キューに記憶され、永続的動作の実 行は、永続的動作の表示を最も最近処理されたメッセージの位置より前ではない 位置に記憶することによって前記キュー中に示され、かつ前記特定のメッセージ および外部事象データは、前記キュー中の前記永続的動作表示の位置に基づく前 記永続的動作の実行の前に前記バックアップタスクへ伝送される、請求項13に 記載の方法。
  15. 15.前記リカバリステップは、各バックアップタスクがその各特定の状態に達 するようになる態様で、前記バックアップタスクにそこに伝送されたメッセージ および外部事象データを処理させるステップを含む、請求項12に記載の方法。
  16. 16.前記特定のメッセージおよび前記外部事象データは、各バックアップタス クが前記特定のメッセージのうちのその各主タスクへ伝送された各メッセージを 受信し、かつその各主タスクごとに発生する各外部事象に対応する外部事象デー タを受信するように、前記バックアップタスクへ伝送される、請求項11に記載 の方法。
  17. 17.前記特定のメッセージは、各バックアップタスクが前記特定のメッセージ のうちのその各主タスクによって伝送された各メッセージをまた受信するように 、前記バックアップタスクへ伝送される、請求項16に記載の方法。
  18. 18.各バックアップタスクが、その各主タスクによって伝送された受信したメ ッセージの数のカウントを与えることを含む、請求項17に記載の方法。
  19. 19.各バックアッププロセッサは前記リカバリの間にメッセージがいつ伝送さ れるべきかを決定するために前記カウントを用いる、請求項18に記載の方法。
  20. 20.少なくとも複数個のメッセージが前記主タスクへ伝送された後に、主タス クとその各バックアップタスクとの間でチェックポイント動作を実行するステッ プを含み、前記チェックポイント動作は、主タスクの状態に対応するチェックポ イントデータを記憶し、かつ前記記憶に続いて、かつ前記バックアップタスクが 各主タスクからそこに伝送されたメッセージを用いて前記データプロセッサのフ ェールからリカバするのに必要な時間より遅くない時間に、前記チェックポイン トデータを各バックアップタスクへ伝送するステップを含み、前記チェックポイ ントデータは、前記チェックポイントデータが伝送されたバックアップタスクを チェックポイント動作時に各主タスクと同じ状態にさせる、請求項12に記載の 方法。
  21. 21.前記チェックポイントデータは、その開始時または最新のチェックポイン ト設定から主タスクによって処理されたメッセージの数のカウントを含み、かつ 各バックアップタスクは前記カウントを用いて、対応するメッセージの数を廃棄 する、請求項20に記載の方法。
  22. 22.前記主タスクはそこに伝送されたメッセージを連続して処理し、前記伝送 されたデータの記憶はその伝送順に伝送されたメッセージを記憶するキュー中で 行なわれ、外部事象データは発生順に前記キューに記憶され、前記キューはまた 前記チェックポイント動作の実行時間を示す位置にチェックポイント表示を記憶 し、永続的動作の実行は最も最近処理されたメッセージの位置に基づいて前記キ ュー中に位置決めされた永続的動作の表示を記憶することによって前記キューに 示され、前記特定のメッセージおよび外部事象データは、前記キュー中で前記永 続的動作の表示よりも前に位置決めされれば前記永続的動作の実行の前に前記バ ックアップタスクへ伝送され、かつ前記チェックポイントデータもまた、前記永 続的動作表示の位置よりも前に位置決めされれば各バックアップへ伝送される、 請求項20に記載の方法。
  23. 23.前記予め定められた主タスク事象はメモリアクセス動作である、請求項2 、2、3、11または12に記載の方法。
  24. 24.前記予め定められた主タスク事象は、前記主タスクの実行の間に複数回発 生し、かつ前記外部事象データは、各外部事象ごとに、前記予め定められた主事 象が外部事象の発生前の基準点以後発生した回数に関係したカウントを含む、請 求項1、2、3、11または12に記載の方法。
  25. 25.前記カウントは再現の間に前記バックアップタスクによって用いられて、 対応する外部事象がいつ送られるかを決定する、請求項6に記載の方法。
JP51335893A 1992-01-22 1993-01-22 外部事象を処理できるフォールトトレラントコンピュータシステム Expired - Fee Related JP3209748B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US824,134 1992-01-22
US07/824,134 US5363503A (en) 1992-01-22 1992-01-22 Fault tolerant computer system with provision for handling external events
PCT/US1993/000618 WO1993015461A1 (en) 1992-01-22 1993-01-22 Fault tolerant computer system with provision for handling external events

Publications (2)

Publication Number Publication Date
JPH07503334A true JPH07503334A (ja) 1995-04-06
JP3209748B2 JP3209748B2 (ja) 2001-09-17

Family

ID=25240678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51335893A Expired - Fee Related JP3209748B2 (ja) 1992-01-22 1993-01-22 外部事象を処理できるフォールトトレラントコンピュータシステム

Country Status (5)

Country Link
US (1) US5363503A (ja)
EP (1) EP0623230B1 (ja)
JP (1) JP3209748B2 (ja)
DE (1) DE69311797T2 (ja)
WO (1) WO1993015461A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5398330A (en) * 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
JPH05260134A (ja) * 1992-03-12 1993-10-08 Fujitsu Ltd 伝送装置の監視システム
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
JPH07175597A (ja) * 1993-12-17 1995-07-14 Fujitsu Ltd 記憶媒体の二重化装置
JPH10506483A (ja) * 1994-06-10 1998-06-23 テキサス・マイクロ・インコーポレーテッド フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
US5621885A (en) * 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment
US5699502A (en) * 1995-09-29 1997-12-16 International Business Machines Corporation System and method for managing computer system faults
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US5819021A (en) * 1995-12-11 1998-10-06 Ab Initio Software Corporation Overpartitioning system and method for increasing checkpoints in component-based parallel applications
FR2743164B1 (fr) * 1995-12-28 1998-02-06 Cegelec Procede pour ordonnancer une pluralite de messages provenant respectivement d'une pluralite de sources, et systeme pour la mise en oeuvre de ce procede
US5978933A (en) * 1996-01-11 1999-11-02 Hewlett-Packard Company Generic fault tolerant platform
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
GB9601585D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5796941A (en) * 1996-09-06 1998-08-18 Catalyst Semiconductor, Inc. Method for supervising software execution in a license restricted environment
US5835698A (en) * 1996-09-20 1998-11-10 Novell, Inc. Unilaterally-controlled, time-insensitive, data-link recovery apparatus and method
US5983371A (en) * 1997-07-11 1999-11-09 Marathon Technologies Corporation Active failure detection
US6289474B1 (en) 1998-06-24 2001-09-11 Torrent Systems, Inc. Computer system and process for checkpointing operations on data in a computer system by partitioning the data
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
GB2359384B (en) 2000-02-16 2004-06-16 Data Connection Ltd Automatic reconnection of partner software processes in a fault-tolerant computer system
US20020129110A1 (en) * 2001-03-07 2002-09-12 Ling-Zhong Liu Distributed event notification service
US6971043B2 (en) * 2001-04-11 2005-11-29 Stratus Technologies Bermuda Ltd Apparatus and method for accessing a mass storage device in a fault-tolerant server
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7478275B1 (en) * 2004-03-29 2009-01-13 Symantec Operating Corporation Method and apparatus for performing backup storage of checkpoint data within a server cluster
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
FR2881306B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede de journalisation non intrusive d'evenements externes aupres d'un processus applicatif, et systeme mettant en oeuvre ce procede
FR2881308B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede d'acceleration de la transmission de donnees de journalisation en environnement multi ordinateurs et systeme utilisant ce procede
FR2882448B1 (fr) * 2005-01-21 2007-05-04 Meiosys Soc Par Actions Simpli Procede de gestion, de journalisation ou de rejeu du deroulement d'un processus applicatif
FR2881307B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede non intrusif de simulation ou rejeu d'evenements externes aupres d'un processus applicatif, et systeme mettant en oeuvre ce procede
FR2881309B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede d'optimisation de la transmission de donnees de journalisation en environnement multi-ordinateurs et systeme mettant en oeuvre ce procede
FR2881246B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede perdictif de gestion, de journalisation ou de rejeu d'operations non deterministes au sein du deroulement d'un processus applicatif
FR2882449A1 (fr) 2005-01-21 2006-08-25 Meiosys Soc Par Actions Simpli Procede non intrusif de rejeu d'evenements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede
US20060222125A1 (en) * 2005-03-31 2006-10-05 Edwards John W Jr Systems and methods for maintaining synchronicity during signal transmission
US20060222126A1 (en) * 2005-03-31 2006-10-05 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining synchronicity during signal transmission
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7434096B2 (en) 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4347563A (en) * 1980-06-16 1982-08-31 Forney Engineering Company Industrial control system
US4485438A (en) * 1982-06-28 1984-11-27 Myrmo Erik R High transfer rate between multi-processor units
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
US4493035A (en) * 1982-12-07 1985-01-08 Motorola, Inc. Data processor version validation
US4562538A (en) * 1983-05-16 1985-12-31 At&T Bell Laboratories Microprocessor having decision pointer to process restore position
DE3566314D1 (en) * 1984-04-26 1988-12-22 Bbc Brown Boveri & Cie Apparatus for saving a calculator status
SE454730B (sv) * 1986-09-19 1988-05-24 Asea Ab Forfarande och datorutrustning for stotfri omkoppling av funktionen fran aktiva enheter till beredskapsenheter i en centralenhet
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
US5271013A (en) * 1990-05-09 1993-12-14 Unisys Corporation Fault tolerant computer system
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US5175847A (en) * 1990-09-20 1992-12-29 Logicon Incorporated Computer system capable of program execution recovery

Also Published As

Publication number Publication date
DE69311797T2 (de) 1998-02-05
EP0623230A1 (en) 1994-11-09
JP3209748B2 (ja) 2001-09-17
EP0623230B1 (en) 1997-06-25
DE69311797D1 (de) 1997-07-31
WO1993015461A1 (en) 1993-08-05
US5363503A (en) 1994-11-08

Similar Documents

Publication Publication Date Title
JPH07503334A (ja) 外部事象を処理できるフォールトトレラントコンピュータシステム
US5271013A (en) Fault tolerant computer system
US5455932A (en) Fault tolerant computer system
US6266785B1 (en) File system filter driver apparatus and method
US7925831B2 (en) Disk array apparatus and disk array apparatus control method
US4365295A (en) Multiprocessor system
US6622263B1 (en) Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
EP0355286A2 (en) Checkpoint retry mechanism
US7509567B1 (en) System and method for resolving data inconsistencies with a data majority
JPS6053339B2 (ja) 論理装置のエラ−回復方式
JPH07117903B2 (ja) 障害回復方法
JP2002183088A (ja) オンラインシステム回復方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US5539875A (en) Error windowing for storage subsystem recovery
JPS61278958A (ja) データ転送装置
AU669410B2 (en) Error recovery mechanism for software visible registers in computer systems
JPS6156537B2 (ja)
JP2919457B1 (ja) 二重化装置i/o制御方式およびそのプログラム記録媒体
JPS61183769A (ja) システム回復制御方法
JPH10143444A (ja) 障害処理方式
JPS59160895A (ja) 記憶装置の読出し制御方式
JPH01280896A (ja) Posシステム
JPH04347736A (ja) 情報処理装置の再試行方式
JPH012146A (ja) 演算処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070713

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees