JP3055566B2 - 分散型マルチプロセッサにおけるプロセス間関係の順序付き及び信頼保守 - Google Patents
分散型マルチプロセッサにおけるプロセス間関係の順序付き及び信頼保守Info
- Publication number
- JP3055566B2 JP3055566B2 JP8522897A JP52289796A JP3055566B2 JP 3055566 B2 JP3055566 B2 JP 3055566B2 JP 8522897 A JP8522897 A JP 8522897A JP 52289796 A JP52289796 A JP 52289796A JP 3055566 B2 JP3055566 B2 JP 3055566B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- inter
- lock
- processors
- change
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Description
セス間関係の変更及びプロセス間信号方式に関する。以
下に説明する、ある一定のプロセス間オペレーションの
理解は、本発明を理解するために必要である。例として
UNIXTMを取り入れる。
気における重要な上昇が見られる。UNIXTMは、コンピュ
ータ・サイエンティスト、コンピュータ・サイエンスの
学生及び他の非常に技術的に熟練したコンピュータ・ユ
ーザによってのみ最初は好まれていたが、市場プログラ
ミング環境としてのUNIXTMに対するプリファレンス(優
位)は、それらの学生がワークフォースの中に入会しか
つそれらと共に彼らの開発したプリファレンスをキャリ
ーするので大きく成長している。従って、それは、その
所有権を主張できるハードウェアと一緒にUNIXTMまたは
UNIXTMライク・プログラミング環境を供給することがコ
ンピュータ製造業者の義務である。
対するオペレーティング・システムであった:最初は、
ディジタル・イクイップメント・コーポレーションのPD
P−11、後にメインフレーム、そしてさらに後でマイク
ロコンピュータの人気急騰に伴うマイクロプロセッサ。
今日でさえ、ひと握りのUNIXTMマルチプロセッサ・イン
プリメンテーションが存在するだけである。この発明の
出願人である、タンデム・コンピュータ・インコーポレ
ーティッドは、製品名NonStop Kernel Software(“NS
K"),release D30.00で一つのそのようなマルチプロセ
ッサ・インプリメンテーションを市販すべく準備してい
る。NSKのUNIXTMライク部分は、Open System Service
s、略して“OSS"と呼ばれる。
ック、ランータイム・エンボディメント(具体化)であ
る。プログラムは、ディスクまたはテープのような記憶
媒体の静的状態に一般に存在し、プロセスは、メモリに
ロードされかつ実行する。UNIXTMは、マルチタスキング
・オペレーティング・システムである:多くのプロセス
は、本質的に同時に実行することができる。
を実行することによって別のプロセスを生成することが
できるfork()システム・コールの結果は、とりわけ、
それがそれ自体の固有なプロセス識別番号を有すること
を除き、古いプロセスのコピーである新しいプロセスの
生成である。それ自体のコピーを生成するプロセスのこ
の手順は、“フォーキング(forking)”と呼ばれる。
スは、−−再び一般的にディスクまたはテープから−−
新しいプログラムに読み込み、この新しいプログラムで
その古いプログラムをオーバレイし、かつ始めから新し
いプログラムを実行することによって、それが走らせて
いるプログラム・コードを変更することができる。プロ
セスは、exec()システム・コールを呼び出すことによ
ってこれを達成することができる。
ばれかつより新しいプロセスは、“子”と呼ばれる。勿
論、親は、多くの子を持つことができ、子は、一つの親
だけを有する。しかしながら、UNIXTMは、プロセス・グ
ループ関係のような、他のプロセス間関係をプロセスに
保守させる。各プロセスは、プロセス・グループのメン
バーである。プロセスのデフォルト・プロセス・グルー
プは、その親のプロセス・グループである。プロセス
は、適切なシステム・コール、一般にsetpgid()を実
行することによってそのプロセス・グループを変更する
ことができる。従って、子プロセスは、その親と同じプ
ロセス・グループまたはある他のプロセス・グループに
あることを選ぶことができる。プロセス・グループは、
メンバーとして一つ以上のプロセスを有しうる。
る必要がありうるので、プロセス・グループ・メンバー
シップは、重要である。プロセス・グループは、事象が
通知されるべきである全てのプロセスを識別することが
できる。標準的例をとるために、ユーザがUNIXシステム
にログすると想定する。それによりユーザがシステムと
最初に通信する“ログイン(login)”プロセスは、プ
ロセス・グループを有する。ログイン・プロセスは、ユ
ーザがシェル・コマンド及びプログラムを実行できるよ
うにすべくコマンド・インタープリタ(“シェル(shel
l)”)をexecs(実行)する。プログラムを実行してい
るシェルは、フォーキングを必然的に伴いそして上記し
たようにプログラムを実行する。それゆえに、新しく実
行されたプログラムは、シェル、その親と同じプロセス
・グループを有する。事実、シェルによって実行された
プログラム、その子、その孫、等は、デフォルトによっ
て同じプロセス・グループを有する。ここで、ユーザと
シェルの間の通信回線が、意図的にまたはそれ以外で、
壊れたならば、好ましいアクションは、シェル及び祖先
としてシェルを有する各プロセスに対してその事象を知
らせかつそれ自体を終了することである。(プロセスの
終了は、“エキジッティング(出る(exiting))”と
呼ばれる。エキジッティングは、exit()システム・コ
ールを呼び出す結果として生じる。) 非同期事象のプロセスを知らせるためのUNIXTMの機構
は、シグナリング(signalling)と呼ばれる。プロセス
は、kill()システム・コールを用いて、相互の信号を
送ることができる。オペレーティング・システムそれ自
体は、プロセスへ信号を送りうる。プロセスまたはオペ
レーティング・システムは、プロセス・グループに信号
を送りうる。信号を送ることは、シグナリングと呼ばれ
る。
パラダイムは、例えば、フォーキング及びエキジスティ
ングを介してプロセス間関係の本質的に非同期な変更を
許容する。しかしながら、そのような非同期プロセス間
関係変更で、問題が生じ、どのようにUNIXTMオペレーテ
ィング・システムがプロセス間関係のアトミック及び順
序付けられた変更を保証するのか? また、上記から明らかなことは、UNIXTMの従来のマル
チ−スレッディング・パラダイムは、シグナリングが生
じている間にプロセス間関係の非同期変更を許容すると
いうことである。例えば、どのようにシステムは、フォ
ーキングの存在において信号のアトミック、順序付けら
れた送付を保証するのか?シグナリング問題の特定の例
は、セクションB.3.1.1にで、以下に説明した、POSIXに
おいて与えられる。歴史的信号−プロセッサUNIXTMイン
プリメンテーションでは、プロセス間関係変更及びシグ
ナリングの非同期性は、アトミック性及び順序付けに関
して重要な問題を与えなかった。プロセス間関係を変更
すべき呼出しのインプリメンテーションは、基礎を成し
ているカーネルへの無停止可能な(少なくとも重要なス
テージにおいて)アクセスを含みうる。それゆえに、プ
ロセス間関係を変更することを望んでいる別のプロセス
がロックアウトされる間に、プロセス間関係変更は、一
つのプロセスのために実行することができる。
単一のパスを結果として生じ、カーネルは、一つのプロ
セスのために信号を生成しかつシグナルされたプロセス
・グループの全てのプロセスにその信号を実質的に同時
に送付する。カーネルがシグナリングのメカニクスを実
行している間に、それは、プロセス・グループ・メンバ
ーシップを同時に変更しうるあらゆるプロセスを実行か
ら排除することができる。
のアトミック、順序付け送付の問題は、UNIXTMのマルチ
プロセッサ・インプリメンテーションにおいてそれ以上
に至難である。また、マルチプロセッサ環境は、信頼性
の問題を生起する:どのようにマルチプロセッサ・シス
テムは、故障しているプロセッサの存在において一貫的
プロセス間関係を保証するのか?どのようにマルチプロ
セッサは、プロセスが故障の場合に信号の信頼送付を保
証するのか?アトミック性、順序付け及び信頼性問題の
至難性を増大する−−少なくとも非共有メモリ・マルチ
プロセッサ−−マルチプロセッサ・システムの事実の一
つは、プロセス・グループのプロセスが二つ以上のプロ
セッサにわたり分散することができかつ通常分散され
る。カーネルが単一−スレッディングによる可能なタイ
ミング・コンフリクトを解消することのユニプロセッサ
解決策は、マルチプロセッサ環境では利用不能である:
非同期的に動作している、複数のカーネルがあり、各カ
ーネルには、それぞれが非同期で走っている複数のプロ
セスがある。独立して作用することにより、各プロセッ
サは、そのプロセッサにおいてプロセス間関係の信頼か
つ順序付けられた変更だけを保証することができる。例
えば、第1のプロセッサにおいて、第1のプロセスは、
プロセス・グループへの送付のための信号を生成するこ
とでありうる。プロセス・グループは、第1のプロセス
及び第2のプロセッサにおける第2のプロセスを含んで
いるプロセスを有する。第1のプロセスがプロセス・グ
ループに対する信号を生成していると同時に、第2のプ
ロセスは、制限された時間に対してそのプロセス・グル
ープのメンバーでもありそしてそのプロセス・グループ
・メンバーシップを変更しうる、第3のプロセスをフォ
ーキングする。第3のプロセスが第1のプロセスによっ
て生成された信号を受け取るか否か?それゆえに、単
に、ユニプロセッサ・システムのよりパワフルまたはよ
り高速なバージョンであるマルチプロセッサ・システム
のより望ましいパラダイムは、分解し始める。これらの
アトミック性、順序付け、及び信頼問題の解決なしに、
マルチプロセッサ・システムは、シグナリングをインプ
リメントしているユニプロセッサUNIXTMシステムと同じ
サービスを提供できない。特に、マルチプロセッサ・シ
ステムは、POSIXに詳述されたフル・システム・サービ
スを提供できない。
のようなハードウェア・ベンダに解法なしでソフトウェ
ア製品を供給させるように至難であった。LOCUS TNC,M
ACH,OSF1,及びISISインプリメンテーションは、次いで
以下に説明される。Locusは、LOCUS TNCと呼ばれる製
品を有する。LOCUS TNCは、“vproc"アブストラクショ
ン(抽象)に基づきUNIXTM分散型システムをインプリメ
ントする。vprocは、プロセスだけを参照するデータ構
造である。単一vprocのコピーは、多くのプロセッサに
装着されたメモリに存在しうる。“owning(所有してい
る)”または“master(マスター)”プロセッサは、非
参照(non−referring)データ構造で実際のプロセスを
記述する。概観レベルで、vprocアブストラクション
は、vprocを有するプロセッサをマスター・コピーでア
ウトーオブーステップにさせ、かつローカル・コピー
は、あるオペレーションに対して用いられる。それゆえ
に、システムは、マスター・プロセッサと変更vprorプ
ロセッサ間のあるメッセージの費用をセーブする。LOCU
S TNCは、上述したようなアトミック性、順序付け及び
信頼性条件を正しく扱わない。ニューヨーク州、アーモ
ンクのインターナショナル・ビジネス・マシン(Intern
ational Business Machines)から入手可能なMAC、及び
マサチューセッツ州、ケンブリッジのオープン・ソフト
ウェア・ファンデーション(Open Software Foundatio
n)から入手可能なOSF1は、また、マルチプロセッサUNI
XTMインプリメンテーションである。MACH/OSF1解法は、
“UNIXTMサーバ”、プロセス関係を保守する単一の、マ
ルチ−スレッディド・プロセスを含む。このプロセス
は、分散されない。単一のコピーだけが存在する。それ
ゆえに、ここで説明した分散型アルゴリズムをアドレス
しない。
・メンバーシップに対する同様な問題の組を解決する−
−しかし“プロセス・グループ”の異なる定義を用いて
かつシグナリングに対してではなく。ISISは、UNIXTM−
ライク・セマンティクをインプリメントすることを試み
ない。
の知られたインプリメンテーションまたは分散型プロセ
ッサ・システムにおける、特に共有メモリなしのマルチ
プロセッサ・システムにおける信号送付が全くない。実
際、OSSを有するNSKのペンディング・リリースの前に、
タンデム・コンピュータズ・インコーポレーティッド
は、そのUNIXTM−ライク・オペレーティング・システム
・ソフトウェアにおけるような特徴を提供しなかった。
に、別のUNIXTMプロセス間関係は、“セッション(sess
ion)”である。セッションは、プロセス・グループの
コレクションであり、ユーザにプロセスの実行を選択的
に中止させかつそれらの実行を後の地点で再開させる。
各プロセス・グループは、セッションのメンバーであ
り、かつプロセスは、そのプロセス・グループがメンバ
ーであるセッションのメンバーである。
は、単に主要なものである。しかしながら、ある一定の
UNIXTM機能が個々のプロセスまたはプロセス・グルー
プ、セッションまたは他のプロセス間関係で動作すると
いうことを説明すべく主要なもので充分である。マルチ
プロセッサ環境では、これらのプロセス間関係を操作
(処理)している同時、非同期オペレーションは、種々
のプロセッサのプロセスが分散型データ構造を変更する
ときに多数のレース条件を生成することができる。
ロセッサ・システムにおいて、プロセス間関係を潜在的
に変更することができ、分散型データ構造へのアクセス
のタイミングに依存している不可能なレース及び他の非
決定性挙動を行う、オペレーションの順序付けである。
セッサの故障が変更を全くないかまたは全ての生存して
いるプロセッサにわたり全ての生存しているプロセス間
で一貫的である変更のいずれかを結果として生ずるよう
なUNIXTM−ライク・マルチプロセッサ・システムであろ
う。
好な性能と共に、順序付け及び信頼プロセス間関係変更
を有する分散型プロセッシング・システムのUNIXTM−ラ
イク・インプリメンテーションである。本発明のこれら
及び他の目的は、以下に開示の読み込みで容易に明らか
である。
シング・システムの非共有メモリで複製されたデータ構
造のコピーで表されるようなUNIXTM−ライク・オペレー
ティング・システムのマルチプロセッサ・インプリメン
テーションを説明する。プロセス間関係を変更すること
を望んでいるプロセッサは、制御プロセッサによって保
守されるプロセッサ間ロックに対するアービトレーショ
ンを入力しなければならない。プロセス間ロックは、変
更されるべき特定のプロセス間関係に特定的であり、全
てのプロセス間関係のあるサブセットに特定的である
か、または全てのプロセス間関係に一般的であることが
できる。
に成功したならば、プロセッサは、次いで、プロセス間
関係の変更を−−所定のシーケンスで−−各プロセッサ
に知らせる。所望プロセッサは、次いで、プロセス間関
係ロックを解放する。
失敗したならば、所望プロセッサは、再びアービトレー
ションに入力する前に遅れる。一般に、所望プロセッサ
は、それがアービトレーションに再入力すべく待ってい
る間にプロセッサ間ロックを必要としないようにそのよ
うなプロセスを走らせる。
は、変更に対して確認すべくそのプロセス間関係を表し
ているデータ構造のその局所(ローカル)コピーを変更
する。
ったならば、他のプロセッサから非同期で動作する。各
受信プロセッサの更新前または更新後アクションは、他
のプロセッサのアクションである必要がなくかつそれら
に統合されない。
の失敗で、特定の分散型データ構造の一貫性を保証する
ために回復を全く必要としない。プロセッサ間ロックを
獲得した変更プロセッサの失敗で、制御プロセッサは、
変更を受信プロセッサの全てに知らせる機能を引く継
ぐ。
存プロセッサが制御プロセッサとして成功するかを決定
すべく所定の手順に従う。
図である。
るプロセスの状態の簡略図である。
るプロセスの状態の簡略図である。
るプロセスの状態の簡略図である。
ルチプロセッサ・システムを示す。Nは、16より大きい
かまたは小さいであろうが、Nは、一般に16である。各
プロセッサ2は、対応メモリ3に結合される。
フトウェアを走らせる。好ましい実施例では、プロセッ
サ2は、全て同じオペレーティング・システム・ソフト
ウェアを走らせる。基礎を成しているオペレーティング
・システムGは、タンデム・コンピュータズ・インコー
ポレーティッドから入手可能な、Guardian(ガーディア
ン)であり、オーバレイング(overlaying)オペレーテ
ィング・システムは、Portable Operating System Inte
rface,Part I(ここで参考文献として採り入れられる、
“POSIX",International Standard ISO/IEC 9945−1:19
90;IEEE Std 1003.1−1990)のインプリメンテーション
である、OSSを有するNSKである。ここでOSSは、UNIXTM
の変形であると考えられる。
ロセスPを有する。UNIXTMシステムにおけるパラダイム
のように、プロセスは子をフォークし、子は次いでフォ
ークし、それら自信の子を生成する、等。マルチプロセ
ッサ・システム1の好ましい実施例では、プロセッサ2a
のプロセスは、2aまたはプロセッサ2b、...、2nの一つ
で走らせることができる子を生成することができる。図
2は、時間t0におけるマルチプロセッサ・システム1の
プロセスを示す。プロセッサ2a、2b及び2cは、それらの
対応プロセス表PT4a、PT4b、PT4cによって表される。プ
ロセス表PT4cは、プロセス間関係分散型データ構造の例
である。プロセス表は、UNIXTMプロセス関係を定義する
累積表である。プロセス表は、各プロセッサのエクスタ
ント・プロセスが存在するようなシステム資源である。
ロセスP100は、プロセッサ2aに存在しない(〜R)がプ
ロセス2bに存在している、プロセスP110の親である。プ
ロセスP110は、次いで、プロセッサ2cのプロセスP111の
親である。プロセスP100のプロセス・グループは、プロ
セス・グループG1である。上記したように、プロセスP1
10のプロセス・グループは、デフォルトによりその親、
プロセスP100のプロセス・グループである。同様に、プ
ロセスP111のプロセス・グループは、その親、P110のプ
ロセス・グループである。プロセスP100、P110、及びP1
11のそれぞれは、プロセス・グループG1にある。
リオは、図3に示される。図3は、時間t1におけるマル
チプロセッサ・システムに存在しているプロセスのサブ
セットを示す。時間t1、t1>t0において、プロセスP100
は、第2の子、プロセスP120を生んだ。プロセスP120
は、その親、プロセスP100のプロセス・グループで生ま
れる。
t2、t2>t2>t0において、プロセスP111は、そのプロセ
ス・グループ・メンバーシップG1からG2に変更すること
を選んだ。従って、時間t2におけるプロセス・グループ
G1は、プロセスP100、P110及びP120を含む。プロセス・
グループG2は、プロセスP111だけを含む。
スP110は、そのプロセス・グループGにおける各プロセ
スPに信号を送ることを欲するであろう。P111がそのプ
ロセス・グループ・メンバーシップを変更している間に
プロセスP110が時間t2で信号を送るならば、プロセスP1
11が信号を受信するかどうかという不確定性が存在す
る。kill()またはsetpgid()がレースに勝つかどう
かにより、信号は、プロセスP100、P110、P111及びP120
に送付されるかまたはプロセスP100、P110及びP120にだ
け送付される。プロセスP111は、信号を受信するかまた
は受信しないであろう。
リング・プロセッサ2bと独立に動作しているということ
である。プロセッサ2b及び2cは、同じオペレーションを
実行していないけれども、プロセッサ2cがsetpgid()
を実行すると同時に、プロセッサ2bは、signal()を実
行し、両方をオペレーションにおいて影響を及ぼされる
基礎を成しているデータ構造は、プロセス表、PTであ
る。そのコピーは、各プロセッサ2のメモリ3に保守さ
れる。
もレース条件が生ずる。例えば、setpigd()は、その
子がexec()コールをまだ実行していないならばターゲ
ット子プロセスで作動すべく定義される。子がexec()
コールを発行すると同時にsetpigd()コールが発行さ
れると想定する。まずexecが生ずる(かつsetpigd()
が失敗する)ようにすべきか、またはsetpigd()がま
ず生じそしてexec()が設置された新しいグループ−id
を伴って後で生ずるかのいずれかである。
r)は、システム1のようなマルチプロセッサ・システ
ムにおけるプロセッサ中の更新された情報を通信する方
法、汎用更新手順(“GLUPP")を記述している。カー
は、多重故障のシステム・トレラントを生成することに
よってその従来技術のシングル−フォールト・トレラン
ト・システムを改良することを考えた。
サ2を二重に順序付ける。第1の順序付けは、プロセッ
サ2が汎用更新メッセージを受け取るような合意によっ
て定められかつ一般に知られたシーケンスである。第2
の順序付けは、オリジナル制御プロセッサ(第2の順序
付けにおける第1のプロセッサ)が故障(失敗)したな
らば、制御プロセッサとして合意によって定められかつ
一般に知られたプロセッサの継承である。二つのGLUPP
順序付けのそれぞれは、実際にループである。
用更新ロック(“GLUPP lock")によって保護される。
そのような分散型、クリティカル・データ構造を変更す
ることを望むプロセッサ2は、GLUPP lockをまず獲得
しなければならない。制御プロセッサは、lockを保守す
る単独のプロセッサである;それは、GLUPP lockの認
可及び否認を調停する。
データ構造に対する更新を通信することに注意を注いで
いるが、本発明は、プロセス間関係を変更する、非同
期、競合プロセッサ及び、ほぼ同時にそのような関係及
びシグナリングを変更する、非同期、競合プロセッサに
固有なレース条件に注意を注いでいる。UNIXTM−スタイ
ル・プロセス間関係変更及びシグナリングをインプリメ
ントすべく変更されるとき、そのプロセッサが別のプロ
セッサが同時発生的に変更しうるプロセス間関係を変更
することを欲するならば、GLUPPは、プロセッサにGLUPP
lockを獲得すべく要求する。GLUPP lockは、また、
シグナリングがそれに依存するプロセス・グルーピング
に影響を及ぼすことができるオペレーションに対して獲
得されなければならない。従って、別のプロセスへの送
付のために信号を生成し、かつ分散型プロセス表PT4を
従ってアクセスしなければならないプロセッサは、制御
プロセッサからGLUPP lockをまず獲得しなければなら
ない。即ち、上記例におけるシグナリング・プロセッサ
2bは、プロセス・グループG1のプロセスPに信号を送る
ためにGLUPP lockを獲得しなければならない。(GLUPP
lockを獲得することにおいて、プロセス2は、GLUPP
lockの支援により送信すべき汎用更新メッセージのコ
ピーを制御プロセスに送信する。制御プロセッサは、そ
の汎用更新メッセージ・メモリに汎用更新メッセージの
そのコピーを保守する。汎用更新メッセージ・メモリの
このコピーは、以下に説明するように用いられる。) 同様に、フォークすることを求めるプロセスは、制御
プロセスからGLUPP lockをまず獲得しなければならな
い。フォーキングは、分散型プロセス表PT4へのアクセ
スを必要とする:プロセス表PT4は、UNIXTMを走らせて
いるシステム1におけるプロセスのレジデンスである。
従って、プロセスP111は、時間t2においてそのプロセス
・グループ・メンバーシップを変更する前にGLUPP loc
kを獲得しなければならない。
・グループG1のメンバーシップは、シグナリングの時に
決定される。シグナリング・プロセッサ2bまたはグルー
プ−チェンジング・プロセッサ2cのいずれかがまずGLUP
P lockを獲得しなければならない−−それゆえに二つ
の他のものが待たなければならないので−−信号の送付
は、因果的に順序付けられる。
のプロセッサがグループ・メンバーシップを変更するこ
とを試みているときでさえも、信号がプロセス・グルー
プのある一貫的状態でプロセス・グループに到着するよ
うなUNIXTM−ライク・シグナリングのインプリメンテー
ションを記述する。プロセス・グループの一貫的状態
は、シグナリング・プロセッサがGLUPP lockを獲得す
るときのプロセス・グループである。次いで他のプロセ
ッサは、プロセス・グループをフォークし、変更するこ
とを試みるかさもなければプロセス・グループ・メンバ
ーシップを変更することを試みるであろうが、しかしそ
のようにする前にGLUPP lockで待機する。GLUPP lock
は、シグナリング・プロセッサがを分散型プロセス表へ
のその必要なアクセスを完了した場合にのみ再び利用可
能になるであろう。グループ・メンバーシップ変更及び
信号送付は、特定の順序で生ずることが保証され、かつ
その順序は、全てのプロセッサにおいて同じである。
グ・プロセッサ・シグナリング・グループGは、もしあ
れば、他の利用可能なプロセッサのプロセス・グループ
Gのメンバーシップである、プロセッサへ送付されるべ
き信号を全ての他の利用可能なプロセッサに通知しなけ
ればならない。一度シグナリング・プロセッサがGLUPP
lockを獲得したならば、シグナリング・プロセッサ
は、上記した第1の順序付けによって特定された順番に
各利用可能なプロセッサへのシグナリングを反映してい
る汎用更新メッセージ・パケットを送る。それゆえに、
時間t3>t2でシグナリング・プロセスP110がプロセス・
グループG1に信号S1及びS2を送ることを欲しておりかつ
シグナリング・プロセスP111がまたプロセス・グループ
G1に信号S3を送ることを欲している場合、プロセッサ2b
または2cの一つがGLUPP lockを獲得するであろう。プ
ロセッサ2cがGLUPP lockに対するアービトレーション
に勝つと想定すると、プロセッサ2cは、受信プロセッサ
2a、2b、2c、...,2nのそれぞれに通知する。プロセッサ
2cは、汎用更新メッセージ順序付けて特定された順番に
プロセッサに通知する。各プロセッサに送られた汎用更
新メッセージは、信号S3を有するプロセス・グループG
のシグナリングを反映する。汎用更新手順が要求するよ
うに、各受信プロセッサは、汎用更新メッセージの肯定
応答を送らなければならない。汎用更新メッセージ順序
付けで一つの受信プロセッサからの肯定応答の受信で、
シグナリング・プロセッサ2cは、汎用更新メッセージ順
序付けで次のプロセッサに汎用更新メッセージを送る。
退化の場合には、シグナリング・プロセッサ2cは、信号
をそれ自体に通知する。非−故障の場合には、受信プロ
セッサ2の肯定応答は、そのプロセッサ2が、もしあれ
ば、受信プロセッサ2のプロセス・グループG1におけ
る、順序付け各プロセスに汎用更新メッセージ・パケッ
トで表された信号S3を送付したということを示す。受信
プロセッサがプロセッサ2aであれば、次いでプロセスP1
00及びP120のそれぞれは、プロセッサ2aがシグナリング
・プロセッサ2cからの汎用更新メッセージを肯定応答す
るときにS3を受け取ったであろう。受信プロセッサがプ
ロセッサ2cであれば、次いでプロセッサ2cの全てのプロ
セスは、プロセッサ2cがシグナリング・プロセッサ2cか
らの汎用更新メッセージを肯定応答するときに信号S3を
受信しないであろう。
プG1への信号S3の送付を表している汎用更新メッセージ
を分散したならば、プロセッサ2cは、GLUPP lockを解
放する。シグナリング・プロセッサ2bは、ここで、信号
S1及びS2を送るためにロックに対してアービトレートす
る。同じ変更されたGLUPPに続いて、シグナリング・プ
ロセッサ2bは、プロセス・グループGへの信号S1及びS2
の送付を表している汎用更新メッセージの信号を送付す
る。
プロセスP100、P110及びP120のそれぞれは、まず信号S3
を受信しついで信号S1及びS2を受信する。
サがプロセス・グループ信号をプロセス・グループGに
送る場合に、各シグナリング・プロセッサからの全ての
信号は、全ての他のシグナリング・プロセッサによって
送られたそれらの前または後のいずれかでプロセス・グ
ループGの全てのメンバーに到着するような、シグナリ
ングのUNIXTM−ライク・インプリメンテーションを記述
する。プロセス・グループ・メンバーは、同じ順番で同
じ入力信号を常に見る。
が失敗したということを決定する場合、制御プロセッサ
は、汎用更新がプロセッサにあったかどうか、即ち、GL
UPP lockがシグナリング・プロセッサによって獲得さ
れたかっどうかをチェックする。制御プロセッサは、GL
UPP lockがそのように獲得されていないならば、あら
ゆる回復を実行する必要がない。
制御プロセッサは、各プロセッサに汎用更新メッセージ
の信号を送ることのタスクをそれ自体で引き請ける。制
御プロセッサは、それが失敗した場合にシグナリング・
プロセッサが送付していたシグナリング汎用更新メッセ
ージをその汎用更新メッセージ・メモリから再構築す
る。次いで制御プロセッサは、結果としてシグナリング
・プロセッサになり、汎用更新メッセージ順序付けによ
り、順次各プロセッサに信号汎用更新メッセージを送
る。それゆえに、プロセッサ2aが信号S1をプロセスG1に
信号で知らせることを望みかつプロセッサ2d(図示省
略)が制御プロセッサであれば、プロセッサ2aは、制御
プロセッサ2cのGLUPP lockを要求する。要求の受け取
りでかつ他のプロセッサが既にGLUPP lockを獲得して
いないならば、プロセッサ2dは、シグナリング汎用更新
メッセージをその汎用更新メッセージ・メモリの中にコ
ピーしかつそれがGLUPP lockを獲得したということを
シグナリング・プロセッサ2aに通知する。汎用更新メッ
セージ順序付けが2a、2b、2c、...、2nであると想定し
て、シグナリング・プロセッサ2aは、それ自体にS1シグ
ナリング汎用更新メッセージを送付し、それ自体に肯定
応答する。シグナリング・プロセッサ2aは、受信プロセ
ッサ2bに汎用更新メッセージを次に送り、かつプロセッ
サ2bは、肯定応答する。再び、受信プロセッサ2cに対し
て、シグナリング・プロセッサ2aは、汎用更新メッセー
ジを送りかつ肯定応答を待つ。ここで、プロセッサ2aが
受信プロセッサ2cの肯定応答の受け取りの前に故障する
と想定する。そして最終的に制御プロセッサ2dは、プロ
セッサ2aの故障を検出する。制御プロセッサ2dは、その
汎用更新メッセージ・メモリからのS1シグナリング汎用
更新メッセージを次いで生成する。その再生成コピー
で、制御プロセッサ2dは、結果としてシグナリング・プ
ロセッサになる。それは、汎用更新メッセージ順序付を
ウォークスルーしかつ順番に各プロセッサ2b、2
c、...、2nに汎用更新メッセージ・コピーを送る。(制
御プロセッサ2dは、プロセッサ2aが利用可能でないとい
うことに気付いている。) 一般に、UNIXTMプロセスは、どのくらいの数のある一
定の型の信号が受信されるかということを識別すること
ができない。従って、複製シグナリング汎用更新メッセ
ージを拒絶することが受信プロセッサ2に対して必要な
い。しかしながら、好ましい実施例では、受信プロセッ
サは、複製シグナリング汎用更新メッセージを拒絶すべ
く構成されている。例えば、各プロセッサ2は、固有の
汎用更新メッセージIDカウンタを保守する。これら複数
のカウンタは、システム・スタート・アップで同期する
ことができる。GLUPP lockの下で分散され各汎用更新
メッセージは、オリジネーティング・プロセッサ2から
固有の汎用更新メッセージIDを含み、かつ各受信プロセ
ッサ2は、そのIDが受信機プロセッサ2のカウンタに一
致する汎用更新メッセージの受信によりその固有汎用更
新メッセージIDカウンタを増分する。ここで、制御プロ
セッサ2dが、シグナリング・プロセッサとしてのその役
割において、プロセッサ2cに複製シグナリング汎用更新
メッセージを送付する場合、プロセッサ2cは、汎用更新
メッセージの汎用更新メッセージIDとプロセッサ2bの汎
用更新メッセージIDカウンタにおける対応IDが一致しな
いので、さもなければ肯定応答できるがシグナリング汎
用更新メッセージを無視する。同様に、プロセッサ2c
は、制御プロセッサ2dからの複製シグナリング汎用更新
メッセージを無視する。
グナリング・オペレーションの間に故障したならば、信
号は、なんのプロセスにも送付されないかまたはプロセ
ス・グループの全ての生存メンバーに送付されるかのい
ずれであるような、シグナリングのUNIXTM−ライク・イ
ンプリメンテーションを記述する:GLUPP lockを獲得す
る前にシグナリング・プロセッサが故障したならば、シ
グナリング・アクションは、決して行われない。−−シ
グナリング・プロセッサでさえも行われない。GLUPP l
ockを獲得した後にかつ受信プロセッサのあるものに信
号要求を潜在的に送付した後にシグナリング・プロセッ
サが故障したならば、生存しているプロセッサがなくな
るまで、GLUPPは、生存しているプロセッサを用いて同
じシグナリング汎用更新メッセージを送ることを再び試
みる。それゆえに、シグナリング・プロセッサは、死ぬ
ことができるが、生存しているプロセッサは、全ての他
のプロセッサに同じ信号を送付する。汎用メッセージ更
新IDは、各入力要求を“新しい”対“見られかつ作用さ
れた”として識別させる。複製要求は、単に無視され
る。纏めると、信号は、決して部分的に送付されないか
またはプロセス・グループに二度送付されない。
サ2の失敗(故障)は、一般的に全く取るに足らない。
各プロセッサは、その受信プロセッサ2のプロセスPに
信号を送付することに対してのみ責任があるので、その
受信プロセッサ2の故障は、一つの例外を有し、取り消
されまたはアカウントされなかったタスクを残さない。
故障した受信プロセッサ2が制御プロセッサであれば、
重要なタスクは、アカウントされないで残される。カー
は、汎用更新を実行しているマルチ−プロセッシング・
システムにおけるロッカー・プロセッサの故障に対する
手順を記述する。その手順は、この更新されたGLUPPコ
ンテキスト内で動作する。
ッサ故障を網羅するために充分である。複数のプロセッ
サ故障は、上記シナリオの組合せに分解することができ
る。
ば、どのくらいその受信プロセッサがそのプロセッサに
存在するプロセス・グループ・メンバーに信号を送付す
ることに成功していたかということが全く取るに足らな
いようなシグナリングのUNIXTM−ライク・インプリメン
テーションを記述する。受信プロセッサは、その受信プ
ロセッサに存在するプロセス・グループ・メンバーだけ
を扱うことに対して責任を有する。
装置及び方法に対する変更は、当業者において容易に明
らかであろうしかつそのような変更は、この発明の一部
である。
Claims (6)
- 【請求項1】複数のプロセッサを有しているマルチプロ
セッサ・システムにおいて、プロセス間関係を変更する
方法であって: 前記複数のプロセッサのそれぞれに前記プロセス間関係
を表わしているデータ構造を記憶し; 前記コピーの変更に対してアービトレートし;かつ 前記アービトレーションを得ている前記複数のプロセッ
サのプロセッサによって生成された変更に従って前記コ
ピーを非同期で変更する段階を具備し、 前記アービトレートする段階は、 前記複数のプロセッサを順序付け; プロセス間関係ロックを保守する制御プロセッサとして
前記複数のプロセッサの一つを設定し; 第1の前記複数のプロセッサに前記プロセス間関係ロッ
クを要求し、 かつプロセッサが前記プロセス間関係ロックを有してい
ない場合には、前記第1のプロセッサが前記プロセス間
関係ロックを有するということを前記第1のプロセッサ
に対して肯定応答することを更に具備し; 前記変更する段階は、 前記第1のプロセッサが前記プロセス間関係ロックを有
するならばプロセス間関係変更メッセージを順番に前記
プロセッサのそれぞれに送り、かつ前記変更するプロセ
ッサが前記プロセス間関係ロックを有していないならば
前記要求する段階から継続し; 前記プロセス間関係変更メッセージを受け取り; 前記プロセス間関係メッセージを非同期で処理し;かつ 前記制御プロセッサに前記プロセス間関係ロックを放棄
することを更に具備することを特徴とする方法。 - 【請求項2】前記第1のプロセッサは、前記プロセス間
関係に対する変更を生成したプロセッサを備えているこ
とを特徴とする請求の範囲第1項に記載の方法。 - 【請求項3】前記制御プロセッサとして連続して前記複
数のプロセッサを順序付け;かつ 前記制御プロセッサが故障したならば前記制御プロセッ
サとして連続した順番で次のものを設定することを更に
具備することを特徴とする請求の範囲第1項に記載の方
法。 - 【請求項4】前記プロセス間関係ロックを前記複数のプ
ロセッサの第2のプロセッサに要求し; 前記第2のプロセッサが前記プロセス間関係ロックを有
するということを前記第2のプロセッサに肯定応答する
ことを失敗し;かつ肯定応答することの失敗に応じて、
プロセス間関係変更メッセージを送ることを自制する段
階を更に具備することを特徴とする請求の範囲第1項に
記載の方法。 - 【請求項5】前記第1及び第2のプロセッサは、同じプ
ロセッサであることを特徴とする請求の範囲第4項に記
載の方法。 - 【請求項6】マルチプロセッサ・システムのプロセス間
関係を保守する方法であり、該システムは、複数の分散
型の、相互接続されたプロセッサを有し、該プロセッサ
のそれぞれは、メモリを有する、該方法であって: 前記複数のプロセッサを順序付けし; プロセス間関係ロックを保守する制御プロセッサとして
前記複数のプロセッサの一つを設定し; メンバーとして少なくとも一つのプロセスを有するプロ
セス・セットを生成し、該プロセス・セットの該プロセ
ス・メンバーは、プロセス間関係を有し、該プロセス間
関係は、該プロセッサの該それぞれの該メモリに表さ
れ; 前記プロセス間関係に対する変更を前記複数のプロセッ
サ中の変更プロセッサに生成し; 前記制御プロセッサの前記プロセス間関係ロックを要求
しかつ、プロセッサが前記プロセス間関係ロックを有し
ていない場合には、前記変更プロセッサが前記プロセス
間関係ロックを有していることを該変更プロセッサに肯
定応答し; 前記変更プロセッサが前記プロセス間関係ロックを有す
るならば、該変更プロセッサは、プロセス間関係変更メ
ッセージを順番に前記プロセッサのそれぞれに送りそし
て該制御プロセッサに該プロセス間関係ロックを放棄
し;かつ 前記変更プロセッサが前記プロセス間関係ロックを有し
ていないならば、前記要求段階から継続し; 前記プロセス間変更メッセージを受け取り;かつ 前記プロセス間変更メッセージをプロセスする段階を具
備するをことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/377,386 US5577261A (en) | 1995-01-23 | 1995-01-23 | Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor |
US08/377,386 | 1995-01-23 | ||
PCT/US1996/000502 WO1996023262A1 (en) | 1995-01-23 | 1996-01-16 | Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10502757A JPH10502757A (ja) | 1998-03-10 |
JP3055566B2 true JP3055566B2 (ja) | 2000-06-26 |
Family
ID=23488914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8522897A Expired - Fee Related JP3055566B2 (ja) | 1995-01-23 | 1996-01-16 | 分散型マルチプロセッサにおけるプロセス間関係の順序付き及び信頼保守 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5577261A (ja) |
EP (1) | EP0806012B1 (ja) |
JP (1) | JP3055566B2 (ja) |
CA (1) | CA2210522A1 (ja) |
DE (1) | DE69633777T2 (ja) |
WO (1) | WO1996023262A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860003A (en) * | 1997-02-28 | 1999-01-12 | Mti Technology, Inc. | I/O controller software with each I/O command having a plurality of nets, each with a group of threads |
US6163853A (en) | 1997-05-13 | 2000-12-19 | Micron Electronics, Inc. | Method for communicating a software-generated pulse waveform between two servers in a network |
US6249803B1 (en) | 1997-12-18 | 2001-06-19 | Sun Microsystems, Inc. | Method and apparatus for executing code during method invocation |
US6401110B1 (en) | 1998-11-30 | 2002-06-04 | International Business Machines Corporation | Method for managing concurrent processes using dual locking |
US6105099A (en) * | 1998-11-30 | 2000-08-15 | International Business Machines Corporation | Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes |
US6513084B1 (en) * | 1999-06-29 | 2003-01-28 | Microsoft Corporation | Arbitration of state changes |
US7996843B2 (en) * | 1999-08-25 | 2011-08-09 | Qnx Software Systems Gmbh & Co. Kg | Symmetric multi-processor system |
US6993523B1 (en) | 2000-12-05 | 2006-01-31 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency in a data base page |
US6751636B1 (en) | 2000-12-05 | 2004-06-15 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple instances of a database |
US6721739B1 (en) * | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
US6950901B2 (en) * | 2001-01-05 | 2005-09-27 | International Business Machines Corporation | Method and apparatus for supporting parity protection in a RAID clustered environment |
EP1495414B1 (en) * | 2002-03-25 | 2019-06-12 | Open Invention Network LLC | Transparent consistent active replication of multithreaded application programs |
US7305582B1 (en) * | 2002-08-30 | 2007-12-04 | Availigent, Inc. | Consistent asynchronous checkpointing of multithreaded application programs based on active replication |
US7206964B2 (en) * | 2002-08-30 | 2007-04-17 | Availigent, Inc. | Consistent asynchronous checkpointing of multithreaded application programs based on semi-active or passive replication |
US6845115B2 (en) * | 2002-12-05 | 2005-01-18 | Agilent Technologies, Inc. | Coupled resonant cavity surface-emitting laser |
US7546600B2 (en) * | 2004-04-30 | 2009-06-09 | Hewlett-Packard Development Company | Method of assigning virtual process identifier to process within process domain |
US8380549B2 (en) * | 2008-09-18 | 2013-02-19 | Sap Ag | Architectural design for embedded support application software |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8400186A (nl) * | 1984-01-20 | 1985-08-16 | Philips Nv | Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem. |
US4760521A (en) * | 1985-11-18 | 1988-07-26 | White Consolidated Industries, Inc. | Arbitration system using centralized and decentralized arbitrators to access local memories in a multi-processor controlled machine tool |
EP0239827B1 (de) * | 1986-04-02 | 1993-05-26 | Siemens Aktiengesellschaft | Verfahren zum Ansteuern eines gemeinsamen Speichers eines aus einzelnen Mikroprozessorsystemen bestehenden Mehrprozessorsystems |
US4937733A (en) * | 1987-05-01 | 1990-06-26 | Digital Equipment Corporation | Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system |
US5341510A (en) * | 1987-05-01 | 1994-08-23 | Digital Equipment Corporation | Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor |
US4965719A (en) * | 1988-02-16 | 1990-10-23 | International Business Machines Corporation | Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system |
US4984153A (en) * | 1988-04-27 | 1991-01-08 | Unisys Corporation | Storage locking control for a plurality of processors which share a common storage unit |
IT1227360B (it) * | 1988-11-18 | 1991-04-08 | Honeywell Bull Spa | Sistema multiprocessore di elaborazione dati con replicazione di dati globali. |
US5404501A (en) * | 1989-08-31 | 1995-04-04 | Motorola, Inc. | Fault-tolerant method of communicating between processes in a multi processor system by keeping track of the current node location of messages |
US5524255A (en) * | 1989-12-29 | 1996-06-04 | Cray Research, Inc. | Method and apparatus for accessing global registers in a multiprocessor system |
US5301290A (en) * | 1990-03-14 | 1994-04-05 | International Business Machines Corporation | Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store |
US5226143A (en) * | 1990-03-14 | 1993-07-06 | International Business Machines Corporation | Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager |
JPH07191944A (ja) * | 1991-09-11 | 1995-07-28 | Internatl Business Mach Corp <Ibm> | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 |
US5243596A (en) * | 1992-03-18 | 1993-09-07 | Fischer & Porter Company | Network architecture suitable for multicasting and resource locking |
US5317739A (en) * | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
US5423044A (en) * | 1992-06-16 | 1995-06-06 | International Business Machines Corporation | Shared, distributed lock manager for loosely coupled processing systems |
US5408629A (en) * | 1992-08-13 | 1995-04-18 | Unisys Corporation | Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system |
US5454108A (en) * | 1994-01-26 | 1995-09-26 | International Business Machines Corporation | Distributed lock manager using a passive, state-full control-server |
-
1995
- 1995-01-23 US US08/377,386 patent/US5577261A/en not_active Expired - Lifetime
-
1996
- 1996-01-16 WO PCT/US1996/000502 patent/WO1996023262A1/en active IP Right Grant
- 1996-01-16 EP EP96902676A patent/EP0806012B1/en not_active Expired - Lifetime
- 1996-01-16 JP JP8522897A patent/JP3055566B2/ja not_active Expired - Fee Related
- 1996-01-16 DE DE69633777T patent/DE69633777T2/de not_active Expired - Lifetime
- 1996-01-16 CA CA002210522A patent/CA2210522A1/en not_active Abandoned
-
1997
- 1997-09-23 US US08/935,617 patent/US5794034A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69633777T2 (de) | 2005-11-10 |
EP0806012A1 (en) | 1997-11-12 |
US5577261A (en) | 1996-11-19 |
EP0806012B1 (en) | 2004-11-03 |
EP0806012A4 (en) | 1998-07-15 |
JPH10502757A (ja) | 1998-03-10 |
US5794034A (en) | 1998-08-11 |
CA2210522A1 (en) | 1996-08-01 |
DE69633777D1 (de) | 2004-12-09 |
WO1996023262A1 (en) | 1996-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3055566B2 (ja) | 分散型マルチプロセッサにおけるプロセス間関係の順序付き及び信頼保守 | |
US5630136A (en) | Method and apparatus for serializing access to multithreading unsafe resources | |
US7536582B1 (en) | Fault-tolerant match-and-set locking mechanism for multiprocessor systems | |
AU713372B2 (en) | Multiprocessor cluster membership manager framework | |
US6360331B2 (en) | Method and system for transparently failing over application configuration information in a server cluster | |
US7206964B2 (en) | Consistent asynchronous checkpointing of multithreaded application programs based on semi-active or passive replication | |
EP1495414B1 (en) | Transparent consistent active replication of multithreaded application programs | |
JP5258019B2 (ja) | アプリケーション・プロセス実行の範囲内での非決定論的オペレーションを管理、ロギング、またはリプレイするための予測方法 | |
US6105049A (en) | Resource lock/unlock capability in multithreaded computer environment | |
US6112222A (en) | Method for resource lock/unlock capability in multithreaded computer environment | |
US7216346B2 (en) | Method and apparatus for managing thread execution in a multithread application | |
US7134050B2 (en) | Method and system for containing software faults | |
US7818429B2 (en) | Registering a resource that delegates commit voting | |
US5737515A (en) | Method and mechanism for guaranteeing timeliness of programs | |
JP3670017B2 (ja) | 分散型多重プロセッサにおける順序付けされた信頼できる信号送出 | |
Stewart | Reliable massively parallel symbolic computing: fault tolerance for a distributed Haskell | |
Posner et al. | Fault Tolerance for Cooperative Lifeline-Based Global Load Balancing in Java with APGAS and Hazelcast | |
US20050022199A1 (en) | Event processor for job scheduling and management | |
Chen | Multiprocessing with the Exokernel operating system | |
Pfeifer | JOLTS: checkpointing and coordination in grid systems | |
JPS6027954A (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 |
|
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: 20090414 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 14 |
|
LAPS | Cancellation because of no payment of annual fees |