JP2587141B2 - 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構 - Google Patents

共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構

Info

Publication number
JP2587141B2
JP2587141B2 JP3036667A JP3666791A JP2587141B2 JP 2587141 B2 JP2587141 B2 JP 2587141B2 JP 3036667 A JP3036667 A JP 3036667A JP 3666791 A JP3666791 A JP 3666791A JP 2587141 B2 JP2587141 B2 JP 2587141B2
Authority
JP
Japan
Prior art keywords
processor
task
message
queue
messages
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
Application number
JP3036667A
Other languages
English (en)
Other versions
JPH04217059A (ja
Inventor
エサム・アレワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04217059A publication Critical patent/JPH04217059A/ja
Application granted granted Critical
Publication of JP2587141B2 publication Critical patent/JP2587141B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、共用知能メモリを介し
て結合された複数のプロセッサ間でメッセージを伝達す
る機構、ならびにあるプロセッサが故障した場合、上記
機構を用いて、どのプロセッサがバックアップ・タスク
を実行して、故障プロセッサの影響を受ける1次タスク
の非実行を矯正するかを決定する、フォールト・トレラ
ンス・プロトコルに関する。
【0002】
【従来の技術】技術の進歩により、多数の低コストのプ
ロセッサおよびメモリを相互接続して強力で費用効果の
高いコンピュータ・システムを構築することが可能にな
ってきた。計算をプロセッサのあいだで分散させると、
並列実行が改善されるので、性能が向上する。このよう
な多重プロセッサ・システムの性能は、フロー制御機
構、スケジューリング、プロセッサ間の相互接続方式、
プロセス間通信の実施など多くの要因に依存する。
【0003】計算の分散によるもう一つの利点は、単一
プロセッサの故障に対する堅牢さが増すことである。こ
の堅牢さの増大は、プロセッサ間の接続媒体がプロセッ
サ構成要素にくらべてきわめて信頼が高い場合にのみ有
効である。この非常に高い信頼性は達成し難いので、プ
ロセッサは、主としてフォールト・トレラント・マシン
においては、第1の媒体で故障が検出されると第1媒体
から第2媒体に切り替える特別なマイクロコード機能を
もつ冗長搬送機構(重複バス・システムまたは冗長共用
メモリ)に接続されている。
【0004】さらに、今日では、この多重プロセッサ・
システムに単一のシステム・イメージを与えるのが当業
界の趨勢である。単一のシステム・イメージとは、適用
業務プログラマが数台のプロセッサに計算が分散されて
いることを知らず、従って基礎となるハードウエア構造
とは独立に自己のプログラムの開発に集中できるという
意味である。こうした方式では、単一のシステム・イメ
ージは、全面的に下層のソフトウエア(オペレーティン
グおよびドライバ)によって処理される。
【0005】最後に、コンピュータ市場では永久サービ
スの必要があるので(航空路制御、金融等)、フォール
ト・トレラント・マシンがますます日常的になってい
る。フランス特許第2261568号明細書に記載され
ているものなどこれらのマシンの多くは、故障が検出さ
れたときそれぞれ他方のプロセッサに置き換えることの
できる1組のプロセッサとして構成されている。このよ
うな場合、制御装置は、バックアップ・プロセッサが故
障プロセッサと置き換わってそのタスクを実行するため
の情報をセーブしている。
【0006】
【発明が解決しようとする課題】しかし、上記に引用し
た従来の手法で避けて通った主な問題の一つは、プロセ
ッサ間通信装置として正規に使用するため、あるいはフ
ォールト・トレランスの見地から故障プロセッサが故障
直前に使用していた最後の一貫したデータ状態をバック
アップ・プロセッサに与えるために、プロセッサ間で安
全にメッセージを伝達する機構がないことである。
【0007】したがって、本発明の一目的は、同じプロ
セッサ上で実行されるにせよ、柔軟結合装置によって結
合された異なるプロセッサ上で実行されるにせよ、プロ
セッサによって実行されるタスク間でメッセージを伝達
する機構を提供することにある。
【0008】本発明の他の目的は、上記のメッセージ伝
達機構を用いて、フォールト・トレラントなプロセッサ
内またはプロセッサ間メッセージ伝達を保証する方法を
提供することにある。
【0009】本発明の他の目的は、単一プロセッサまた
は異なるプロセッサ上で動作するタスクが受信または送
信するメッセージの先入れ先出しの順序を変更せずに、
全メッセージ伝達を行なうことにある。
【0010】本発明の他の目的は、本発明者のヨーロッ
パ特許出願第88480102.8号明細書に記載のも
ののような知能共用メモリを介して全プロセッサが柔軟
結合されているという特別な状況で、フォールト・トレ
ラント・メッセージ伝達機構を提供することにある。
【0011】
【課題を解決するための手段】本発明によれば、複数の
プロセッサが共用知能メモリによって相互接続されてい
る環境で、上記プロセッサ上で動作するタスク間でメッ
セージを確実に伝達するための機構が提供される。タス
ク間メッセージ伝達のために、送信側タスクから送られ
たメッセージを記憶する手段が共用知能メモリ内に設け
られ、さらに各プロセッサはその各プロセッサによって
動作されるタスクにメッセージを送るためのサービス手
段を含んでいる。1組の高水準マイクロコード式コマン
ドを用いて、メッセージをあるプロセッサから共用知能
メモリへ、そしてこの共用知能メモリから別のプロセッ
サへと伝達する。
【0012】 さらに、本発明によれば、上記のメッセ
ージ伝達機構ならびに共用メモリに組み込まれた冗長構
成を用いて、第1のプロセッサが故障した場合に、最初
に第1のプロセッサ上で動作していたタスクが、自動的
に第2のプロセッサ上で実行されるバックアップ・タス
クに置き換えられるという、フォールト・トレラントな
メッセージ伝達を確保する方法が提供される。
【0013】本発明による機構および方法の利点の一つ
は、あるプロセッサで複数のタスクが実行されるとき、
プロセッサ間通信のレベルだけでなくタスク間通信のレ
ベルでもフォールト・トレラントなメッセージ伝達が可
能なので、フォールト・トレラントなメッセージ伝達の
細分性が増すことである。
【0014】さらに、本発明による機構および方法は、
フォールト・トレラントに処理すべきタスクと、フォー
ルト・トレラントなメッセージ伝達が必須ではないタス
クとを区別することができ、従ってタスク間通信による
処理力のオーバヘッドを最小限に抑えることができる。
【0015】
【実施例】図1は、複数の処理装置(5)がバス(1
3)によって共用知能メモリ(3)に接続されている、
多重プロセッサ構造(1)を示している。共用メモリ
(3)を用いて処理装置(5)間で交換されるオブジェ
クトは、待ち行列(15)に入れられ、そこから外され
るメッセージである。したがって、共用メモリ(3)に
記憶されるオブジェクトを全処理装置(5)の間で共用
することができ、処理装置のプロセッサ(9)によりメ
モリ・インタフェースPMI(11)を介して共用メモ
リに提供される1組の高水準コマンドを用いてそれにア
クセスすることができる。このような構造および対応す
る高水準コマンドは、本発明者のヨーロッパ特許出願第
88480102.8号に既に詳しく記載されている。
【0016】個々のプロセッサ(9)がすべてそれ自体
のオペレーティング・システムを走行させ、従って異な
るオペレーティング・システムが同じシステム構造内で
共存できることに留意されたい。
【0017】処理装置の各個別プロセッサは、内部バス
(17)によって内部RAMメモリ(7)に接続されて
いる。
【0018】図1に示されているシステム(1)の基本
動作および対応する高水準コマンドは既に上記の特許出
願明細書に記載されているが、話をわかりやすくするた
め、上記の高水準コマンドすなわちプリミティブについ
て本明細書で再度手短かに説明する。システムおよびプ
リミティブのさらに詳細を、上記出願の引用により本明
細書に合体する。
【0019】ENQUEUEプリミティブ:(ENQ) ENQ(待ち行列化)プリミティブは、メッセージ要素
を共用メモリ中に置かれた待ち行列に入れるため、プロ
セッサによって使用される。このプリミティブは、次の
3つのパラメータを使用する。
【0020】 − 内部RAM内のアドレスを指すポインタ
【0021】 − メッセージの長さ(すなわちバイト数)
【0022】 − 共用メモリ中の待ち行列のアドレス空間トークン
【0023】これらのパラメータはすべて、プロセッサ
からPMIに渡され、PMIはメッセージのコピーを指
定された共用メモリの待ち行列に入れる。
【0024】DEQUEUEプリミティブ(DEQ) DEQ(待ち行列解除)プリミティブは、共用メモリ待
ち行列から1個、数個または全部の要素を外すために使
用される。このプリミティブは次のパラメータを使用す
る。
【0025】AST:待ち行列のアドレス空間トークン
【0026】MAX:プロセッサが受信しようとする要
素の最大数
【0027】INDEX:待ち行列から外される最初の
要素のインデックスを示し、PMIによって設定される
パラメータ。
【0028】n:待ち行列から外される要素の実際の数
で、PMIによって設定される。
【0029】プロセッサはまずその局所メモリで利用可
能な記憶域に応じて“max”の値を設定する。この値
を供給すると、PMIが待ち行列を空にしようと試みる
間に局所内部メモリが多数の要素であふれることが防止
される。
【0030】従って、“n”パラメータはつねに“ma
x”以下である。nが“max”に等しくない場合に
は、これはDEQ動作によって待ち行列から全要素が検
索されたことを意味する。nが“max”に等しい場合
には、待ち行列中の残りの要素の数は未知である。
【0031】共用メモリ待ち行列からある要素が外され
るとき、それは共用メモリから消去されるのではないこ
とを思い起こされたい。実際には要素は、共用メモリか
らPURGEプリミティブで「パージされる」。
【0032】PURGEプリミティブ 要素を待ち行列から消去するには、この要素に対してP
URGE(パージ)プリミティブを使用する。PURG
Eプリミティブは、プロセッサが設定したパラメータと
して“index”を用いる。この“index”は、
DEQ動作でPMIから供給されたインデックスにプロ
セッサが計算したカウントを加えた和である。
【0033】事実、DEQ動作は待ち行列から外される
最初の要素の指標をもたらす。待ち行列から外される要
素のうちのどの要素でもパージできるように、第1の要
素に対する変位数がインデックスに加えられる。図2は
様々なパラメータの使用を示している。
【0034】第2図で、DEQ前に、共用メモリ待ち行
列(15)は4個の要素を含み、プロセッサは8個まで
の要素を入れる場所があることをPMIに指定してい
る。DEQ後には、4個の要素が待ち行列から外されて
(しかしパージされず)局所メモリ(7)にロードさ
れ、以後のPURGE動作中に使用できるように“in
dex”が送出される。
【0035】PURGEプリミティブは、安全なメッセ
ージ伝達を実施するための重要な機能である。事実、共
用メモリからメッセージを検索するとき、これは目標タ
スクが対応する処理を実行したことを意味しない。言い
換えると、共用メモリからメッセージが待ち行列解除さ
れるが、受信側プロセッサはメッセージの処理中に故障
した場合、およびメッセージが実際に共用メモリから消
去された場合には、メッセージが永久的に失われている
ので、障害を起こしたタスクを回復することは不可能で
ある。従って、このメッセージに関連する作業が実際に
終了し、以後の回復でこのメッセージが必要でないと
き、PURGE動作を行なうと、タスクがメッセージを
共用メモリからクリアできるようになる。
【0036】RES DEQプリミティブ このプリミティブの作用は、共用メモリ待ち行列を復元
し、次いでその要素を待ち行列から外すことである。待
ち行列は、待ち行列から外されたがパージされてはいな
いすべての要素に対してリセットが実行されるとき、復
元されると言われる。従って、復元後に、最初に待ち行
列から外されたが、まだパージされてはいない要素を再
び検索することが可能である。共用メモリから検索され
た要素はそれがもはや必要でなくなるまで保護すべきで
あり、不必要となって初めて完全に共用メモリから除去
できるので、フォールト・トレラント・システムの構築
に当たって待ち行列を復元できることが不可欠である。
【0037】後で説明するように、回復シナリオ中にシ
ステムの保全性を確保するため、復元動作をDEQ動作
と組み合わせて単一のプリミティブにすることが必要で
ある。
【0038】システム概念 プログラマから見ると、マシン構造(1)は、単一シス
テムを表す。すなわち、そのプロセッサの実際の数は未
知であり、システムは独自のオペレーティング・システ
ムをもつ単一プロセッサであるかのように振舞う。
【0039】これは、プログラマから見て「マシン・オ
ペレーティング・システム」(MOS)と呼ばれ、実際
の単一プロセッサ向けに設計されたものは「局所オペレ
ーティング・システム」(LOS)と呼ばれる。
【0040】MOSは、複数のプロセッサに分散されて
いる多重タスク処理オペレーティング・システムであ
る。MOSは、各プロセッサで走行する同一の機能から
構成されている。こうした局所機能は次の2成分に分解
できる。
【0041】 − 局所タスクのスケジューリングを含めて、各プロセ
ッサの局所資源を管理する責任をもつ局所オペレーティ
ング・システム(LOS)。上記のように、局所オペレ
ーティング・システムは、以前からプロセッサで走行し
ているどのオペレーティング・システムでもよい。
【0042】 − マシン層は、メッセージをタスク相互間で交換する
ための1組のシステム・コールである、タスク間通信イ
ンタフェースを提供する。これは、ユーザがタスクの実
際の位置を知らないうちに他のコプロセッサと協同動作
して遠隔タスクの位置を突き止める責任も負っている。
【0043】第3図は、マシン・オペレーティング・シ
ステム機能の分解を概略的に示している。
【0044】マシン・オペレーティング・システムは、
タスクとメッセージ待ち行列の2種のシステム・オブジ
ェクトをもつ。
【0045】タスク タスクとは、命令と初期データ値から構成されるプログ
ラムを単一のプロセッサ上で実行することである。単一
プロセッサ上で同時にいくつかのタスクが共存でき、い
くつかのプロセッサが並列に走行できる。
【0046】タスクは、その他の監視タスクによって作
成できかつ削除できる動的オブジェクトである。タスク
自体のプログラムを構成するコードの他に、タスクはシ
ステム・コールによりマシン・オペレーティング・シス
テムのサービスを呼び込むことができる。本発明による
と、メモリ割振りやタイマ上での動作などの通常サービ
スに加えて、タスクは、システム中の別のタスクに、そ
れがどこにあろうと(すなわち同一のプロセッサ上でも
異なるプロセッサでも)メッセージを送ることができ
る。どちらの場合も、送信側タスクは多重プロセッサ・
システム内のこの通信相手の実際の位置を知らない。
【0047】タスクは、その入力が処理できる限り、プ
ロセッサ上で実行できる。タスクが追加入力を求めるコ
ールを出すごとに、タスクを実行状態に保つ決定が見直
される。通常、この決定は、要求された入力の準備状
態、および同一プロセッサの他の未処理タスクの優先順
位という2つの条件に依存する。
【0048】カーネルによるタスクの実行を順序付ける
活動は、「スケジューリング」と呼ばれる。この話は、
局所オペレーティング・システム(LOS)に特有であ
り、従って本件の範囲に含まれない。本明細書では、様
々なタスクをスケジュールするためのスケジューリング
機構は重要ではなく、周知の任意のスケジューリング機
構のうちから選択するものと仮定する。
【0049】メッセージ待ち行列 メッセージ待ち行列(または略して待ち行列)はタスク
によって作成し破壊することのできる動的オブジェクト
である。待ち行列は、メッセージを入れておき、タスク
が、この待ち行列に対してRECEIVEコールを出し
て検索するのを待つことのできる、1種のメールボック
スである。待ち行列は、FIFO(先入れ先出し)方式
に従い、待ち行列中のもっとも古いメッセージが最初に
サービスされる。
【0050】この環境では、待ち行列は共用メモリ中に
置かれている。
【0051】第3図は、各局所オペレーティング・シス
テムがその局所資源を管理するという、マシン・オペレ
ーティング・システム機能の分解を示している。マシン
層は、タスク間通信コールを提供する。
【0052】通常、各待ち行列には、メッセージをそこ
から読み出す権利をもつただ一つのタスクである所有タ
スクがそれぞれ1つあり、その待ち行列を作成したタス
クが自動的にその所有タスクになることを認められた
い。
【0053】待ち行列が作成されると、マシン・オペレ
ーティング・システムはシステム内で一義的な識別子
“queuid”を返す。タスクがメッセージを待ち行
列に送ろうとするとき、タスクは、まずOPENコール
を出して、メッセージを送る権利を得る。次いで、SE
NDコールを出して、その待ち行列の“queuei
d”をパラメータとして与える。“queueid”は
メッセージの宛先を指示する。メッセージを待ち行列か
ら外すことができるようにするため、上記待ち行列がメ
ッセージを受け取ると、所有タスクは“queuei
d”をパラメータとして用いてRECEIVEコールを
出す。
【0054】第4図は、システム・オブジェクトを、適
用業務プログラマから見た形で表している。適用業務プ
ログラマにとって、全タスクは同じオペレーティング・
システムによって束縛されており、プロセッサの実際の
数は不明である。
【0055】システム・コールの説明 次に、タスク通信および待ち行列管理用に用いられる頭
期のシステム・コールについて説明する。 OPEN CLOSE RESOLVE SEND RECEIVE
【0056】OPENコール メッセージを他のタスクが所有する待ち行列に送ること
ができるようにするため、送信タスクはOPENコール
を出す。
【0057】OPENコールは次の2つのパラメータを
もつ。
【0058】 − タスクがマシン層に渡す、タスクのシステム名。こ
れはプログラマが自分のタスク・プログラムを書くとき
知る名である。送信側タスクと受信側タスクの作成者の
間に命名規約が存在するものと仮定する。
【0059】 − 親タスクのこのシステム名に関連する待ち行列の識
別子“queueid”。マシン層がこれを返す。
【0060】CLOSEコール タスクがある“queueid”にメッセージを送るの
を止めようと決定するとき、この待ち行列に対するCL
OSEコールを出す。これは、呼出し側タスクが、OP
ENコールを再び出すまで、もはやこの待ち行列にメッ
セージを送ることができないことを意味する。実際に、
OPENコールおよびCLOSEコールの意味はオペレ
ーティング・システムにおける通常のOPENファイル
およびCLOSEファイルに非常によく似ている。
【0061】CLOSEコールは、待ち行列識別子であ
る単一のパラメータを用いる。
【0062】待ち行列の位置決定 :RESOLVEコール 待ち行列を動的に作成しかつ除去することができるもの
とすると、解決すべき一つの問題は、新たに作成された
待ち行列の位置を他のプロセッサの局所オペレーティン
グ・システムがどのようにして決定できるか、言い換え
ると、別のプロセッサ上のタスクが目標待ち行列の識別
子(すなわちqueueid)をどのようにして得るか
である。
【0063】実際には、タスクからOPENコールが出
ると、局所オペレーティング・システム(LOS)は共
用メモリの全LOSが知っているアドレス空間にレコー
ド(queueid、システム名、プロセッサ番号)を
書き込む。あるタスクが“queueid”を得る必要
があるときは、まず次の2つのパラメータを用いてRE
SOLVEコールを出す。
【0064】 − 以前に所有タスクがOPENコール時に渡したシス
テム名、
【0065】 − 局所オペレーティング・システムからタスクに返す
パラメータqueueid。
【0066】 RESOLVEコールが
出ると、局所オペレーティング・システムは以下のこと
を行なう。
【0067】 a.共用メモリから、そのコールの間に渡された「シス
テム名」をもつレコードを探索する。
【0068】 b.「queueid」を得て、これをパラメータとし
て呼出し側タスクに渡す。
【0069】 c.「プロセッサ名」を得て、待ち行列の位置を求め
る。
【0070】メッセージ送信 :SENDコール タスクは、SENDコールを用いてメッセージを待ち行
列に送ることができる。OPENコールが前もって出さ
れていなければならず、そうでないとこのコールは失敗
する。
【0071】SENDコールのパラメータには、次のも
のがある。
【0072】queueid:メッセージのコピーを送
る先の待ち行列の識別子。
【0073】メッセージ:送ろうとするメッセージ。メ
ッセージのコピーが宛先待ち行列に送られる。
【0074】メッセージ受信 :RECEIVEコール 待ち行列を所有するタスクは、RECEIVEコールを
出すことによりメッセージをその待ち行列から読み取る
ことができる。RECEIVEコールを出すタスクは、
待ち行列から外されたメッセージがコピーされる先のバ
イト列を指すポインタを渡す。
【0075】RECEIVEコールのパラメータには、
次のものがある。
【0076】queueid: メッセージをそこから
読み取る待ち行列の識別子
【0077】ポインタ: 受信側タスクが渡す、マシン
層がメッセージをコピーする個所を示すポインタ。
【0078】メッセージ伝達機構 わかりやすくするため、プロセッサ間でのメッセージ伝
達についてまず説明する(図5)。次いで、同一プロセ
ッサ上で走行しているタスク相互間でのプロセッサ内メ
ッセージ伝達について説明する(図6)。
【0079】基本概念は、他のプロセッサの着信メッセ
ージ用にプロセッサ1台当り1つの待ち行列を共用メモ
リで使用することである。すなわち、(21)はプロセ
ッサ間インバウンド待ち行列(IPIQ)と呼ばれる。
あるプロセッサ向けのすべてのプロセッサ間メッセージ
が、このIPIQ(21)に入れられる。
【0080】サーバとして活動し、メッセージ・インバ
ウンド処理機能(MIH)(23)と呼ばれる、各プロ
セッサ内の特別なタスクが、プロセッサに関連するIP
IQにサービスする責任をもつ。MIH(23)は、定
期的にインバウンド待ち行列を解除し、目標タスク向け
のメッセージが存在することを局所オペレーティング・
システムに通知する。これらのタスクは後で局所スケジ
ューリング規則に従って指名される。通常、局所オペレ
ーティング・システムにどのように通知するかが、所与
のオペレーティング・システムに対して指定される。例
えば、POST/WAIT EVENT機能がこの動作
を実施する。
【0081】図5および図6には、両方の場合における
メッセージ・フローを要約して示す。
【0082】 − 第5図では、タスクAがSENDコールを用いてメ
ッセージを送る。このコールには、“queueid”
を指定するパラメータがある。「待ち行列の位置決定」
の節で述べたように、SEND手順はこのパラメータを
用いて、宛先待ち行列の実際の位置を求める。
【0083】 − 宛先が局所である場合、たとえば図6でタスクAが
メッセージをタスクCに送る場合には、SEND手順は
メッセージを局所待ち行列供給タスクCへ経路指定す
る。
【0084】 − 宛先がたとえばタスクB1の場合には(図5)、S
END手順はメッセージをプロセッサBのIPIQに入
れる。
【0085】 − 後でいつか、プロセッサBのメッセージ・インバウ
ンド処理機能(MIH)がメッセージをIPIQから外
し、待ち行列(25)へのメッセージを処理して局所オ
ペレーティング・システム(LOS)に送る。
【0086】 − どちらのシナリオでも、受信側タスクがRECEI
VEコールを出す。
【0087】先に指摘した通り、メッセージ・インバウ
ンド処理機能の主目的は、他のプロセッサからの全メッ
セージが入れられる単一の待ち行列(21)にサービス
することにある。
【0088】もっとも興味深い点は、メッセージ処理機
能がアプリオリにIPIQの状態を知らず、メッセージ
到着を警告するPMIからの信号(たとえば割込み)が
ないことである。IPIQ間に対して待ち行列上で待ち
行列解除動作を試み、後になってメッセージが未処理で
あることを発見することにより、こうした信号の欠損が
克服できる。この方式に関連する問題は、プロセッサ間
のトラフィックが減少した場合に、不成功となる待ち行
列解除が多くなることによるオーバヘッドである。
【0089】メッセージ処理機能は、適用業務タスクに
比べて最低の優先順位をもつ(割込みで駆動されない)
タスクとして設計され、局所オペレーティング・システ
ムによって定期的に指名される。2つのタスク指名の間
の時間間隔はプロセッサの負荷に依存する。メッセージ
処理機能は、IPIQ内の未処理メッセージの数と2つ
のタスク指名の間に経過した時間との関数であるタイマ
を用いる。この方式では、局所処理が外部メッセージよ
りも高い優先順位をもち、インバウンド通信量にサービ
スできるのに充分なほど頻繁にメッセージ・インバウン
ド処理機能が指名されることが保証される。
【0090】メッセージ・インバウンド処理機能は、指
名されると、最大数のメッセージを単一動作で待ち行列
から外して、共用メモリへのアクセス回数を最小にしよ
うと試みる。メッセージ・インバウンド処理機能が待ち
行列から外すことのできるメッセージの数は、局所メモ
リ中でメッセージを受け取るのに利用可能な記憶機構
と、IPIQ内の未処理メッセージの実際の数とに依存
する。
【0091】すべての場合に、IPIQから外されるメ
ッセージの実際の数は、局所メモリが記憶できるメッセ
ージの最大数よりも小さくなる。従って、PMI上にD
EQUEプリミティブを出すとき、メッセージ・インバ
ウンド処理機能は転送しようとするメッセージの最大数
をパラメータ“MAX”で指定する。この動作の状況コ
ードが、転送されるメッセージの実際の数を与える。
【0092】プロセッサ間メッセージ 好ましい実施例では共用メモリ待ち行列の冗長構成が組
み込まれているので、共用メモリ中のすべての未処理メ
ッセージが単一ハードウエア故障から保護される。いず
れにせよ、宛先タスクがこのメッセージを処理し、プロ
セッサが故障した場合にデータを少しも失わずに有意な
状態からプログラムを再開することのできる、実行プロ
グラム中のある点にそれを渡すことができるようになる
まで、このメッセージを保護し続けるのに問題がある。
この点を文献では「回復点」と呼んでいる。
【0093】この問題は、共用メモリがメッセージを実
際に削除せずに共用メモリ待ち行列から外すことができ
るようにすることによって克服された。すなわち、メッ
セージが実際に削除されるのは、メッセージに対する明
示的パージが出されたときだけである。メッセージを共
用メモリから明示的にパージするタイミングは、受信側
タスクがメッセージを処理し終って新たな回復点を確立
するときである。この瞬間に、そのメッセージはもはや
不要となり、共用メモリからすっかり除去できる。
【0094】第5図は、別のプロセッサ中の保護された
タスクへのメッセージ伝達のシナリオを示している。こ
のフォールト・トレラントなメッセージ伝達過程は、次
の4段階から成る。
【0095】 1.タスクAが別のプロセッサ中で保護されているタス
クB(B1または B2)へメッセージを送る。SE
NDコールがBのIPIQ(21)にメッセージを入れ
る。
【0096】 2.メッセージ・インバウンド処理機能がIPIQを解
除し、待ち行列から全メッセージを排出しようと努め
る。ここまでで、メッセージはIPIQから外される
が、消去されてはいない。
【0097】 3.受信側タスクは、局所オペレーティング・システム
によって指名されると、メッセージを処理する。
【0098】 4.次の回復点に移るとき、メッセージがIPIQから
パージされる。
【0099】プロセッサ内メッセージ伝達 この場合も、共用メモリの冗長構成が組み込まれている
ので、共用メモリの冗長構成を用いてメッセージを保護
することが可能である。一つの解決方法は、メッセージ
を別個のアドレス空間としての共用メモリ中にコピー
し、受信側タスクがメッセージを処理するとき、それを
消去するものである。この解決方法は、共用メモリのア
ドレス空間を管理する際に大きな欠陥を呈する。実際
に、メッセージの大きさが与えられているとして、メッ
セージを保護するのに必要なアドレス空間が多くなりす
ぎる。さらに、これらのアドレス空間のアドレス空間ト
ークンを保護するのに、共用メモリへの追加のアクセス
が必要となる。要するに、この解決方法はプロセッサに
対して大きなオーバヘッドを生じすぎる。
【0100】それより良い解決方法は、 − 他のプロセッサからのすべてのメッセージと − 同一プロセッサ中の保護されているタスクに送られ
るメッセージの両方にプロセッサのIPIQを用いるも
のである。
【0101】言い換えると、タスクがメッセージを局所
保護タスクに送ると、そのメッセージは(局所待ち行列
に直ちに送られるのではなく)プロセッサのIPIQに
入れられる。次いで、前節に記載したのと同様にして、
メッセージがIPIQから外される。このプロセッサ内
メッセージ伝達過程は、次の諸段階から成る。
【0102】 1.メッセージ・インバウンド処理機能がIPIQから
メッセージを得る。 2.受信側タスクがメッセージを処理する。 3.次の回復点に移るとき、メッセージが共用メモリか
らパージされる。
【0103】こうして、次の2つの問題が解決される。
【0104】 1.局所メッセージ伝達をどのようにして保護するか
【0105】2.これらのメッセージで先入れ先出し順
序をどのようにして維持するか
【0106】上記に説明したようなメッセージ処理機能
の設計により、局所タスク向けのメッセージの順序が維
持される。
【0107】図6は、同一プロセッサ中の保護されてい
るタスクへのメッセージ伝達のシナリオを要約してい
る。
【0108】 1)タスクAがメッセージをタスクCに送る。メッセー
ジはAのIPIQに入れられる。
【0109】 2)メッセージ・インバウンド処理機能が、メッセージ
を待ち行列から外す。
【0110】 3)タスクCがメッセージを受け取る。
【0111】 4)タスクCが次の回復点に移り、メッセージが共用メ
モリからパージされる。
【0112】次に、上記のプロセッサ内およびプロセッ
サ間メッセージ伝達機構を適用してフォールト・トレラ
ントな多重処理を実現することについて説明する。
【0113】上記のように、このメッセージ伝達設計は
フォールト・トレラントなマシンを構築するための構成
単位となる。本節の意図は、メッセージ回復に焦点をお
いて、この設計を用いるとどのようにしてプロセッサ故
障後に回復が可能になるかを示すことにある。
【0114】考慮する状況は、正常動作中にプロセッサ
が故障し、故障したプロセッサで走行していたタスクの
活動を再開したい場合である。このシナリオによって提
起される主な問題は、故障したプロセッサの実行点がど
こであろうと、他方のプロセッサがどのようにして故障
したプロセッサの肩代りをするかである。
【0115】わかりやすくするため、フォールト・トレ
ランス・モデルを定義するため次のような仮定を行な
う。
【0116】 1.保護の細分性はプロセッサでなく、タスクである。
【0117】 2.保護された各1次タスクが、バックアップ・タスク
をもつ。バックアップ・タスクは、どのプロセッサ上に
あってもよい。
【0118】1次タスクとそのバックアップを同時に1
つのシステム・コールで作成する。その位置はこのシス
テム・コール内で指定される。1次タスクは能動的であ
り、バックアップは受動的である。言い換えると、1次
タスクはすべての操作作業を実行し、バックアップ・タ
スクは1次タスクによる回復点の確立を待つ。
【0119】 3.1次タスクは、定期回復点を確立することにより、
その動作をバックアップ・タスクと同期させる。この
「チェックポイント」は、下にあるマシン層またはその
タスク自体が実行できる。
【0120】 4.待ち行列上のすべての動作はタスク・コンテキスト
の一部であり、したがってバックアップ・タスクは直前
の回復点以降、待ち行列の状態に関して1次タスクと全
く同じ情報をもつ。
【0121】 5.プロセッサ間の内部プロトコルを用いると、各プロ
セッサがいつでも動作中のプロセッサについて知ってい
ることが保証される。このようなプロトコルはそれ自体
既知であり、このようなプロトコルの一つがIBMテク
ニカル・ディスクロージャ・ブルテン、Vol. 32, No.5
B,1989年10月に記載されている。したがって、プ
ロセッサが故障したとき、短時間のうちに他のプロセッ
サがその不在を検出して、回復に必要な活動を行なうこ
とができる。
【0122】 6.各プロセッサは、保護タスクを含むプロセッサのバ
ックアップ・リストを維持している。例えば、Apをプ
ロセッサPa上の1次タスクとし、そのバックアップを
プロセッサPbとする。従って、Paの名がプロセッサ
Pbのリストに載っている。
【0123】 7.各プロセッサはすべてのインバウンド・プロセッサ
待ち行列のアドレスをもつ。このアドレスは、設計によ
りあるいはシステム立上げ中に知られる。
【0124】上記の仮定は広い範囲のフォールト・トレ
ラント・システムに適合するのに充分なほど一般的なも
のであることに留意されたい。第7図は、上述の多重プ
ロセッサ・システムに移したときのモデルの一例を示し
ている。
【0125】1次タスク(A,B,C)だけが能動的で
あり、バックアップ・タスクは受動的なままであると仮
定する。プロセッサ2のリストは、プロセッサ3で走行
するタスクAのバックアップを収容しているので、要素
「プロセッサ3」から構成されている。
【0126】バックアップのシナリオ あるプロセッサが、たとえばプロセッサ3が故障すると
仮定する。
【0127】1次タスクの肩代り プロセッサ相互間の内部プロトコルにより、動作中のプ
ロセッサ(本例ではP1およびP2)はP3が故障した
ことを発見する。プロトコルは、肩代りの決定を下すの
に充分なほど確かであると仮定する。この時点で、各プ
ロセッサはそのバックアップ・リストを検査する。リス
トが空の場合には、このプロセッサは故障プロセッサ用
のどのバックアップ・タスクも含んでいないので、何の
活動も実行されない。
【0128】リストが空でない(P1のリスト=(P
2,P3)およびP2のリスト=(P3))場合、プロ
セッサは次のような活動を行なう。
【0129】 1.故障プロセッサの待ち行列(IPQ)からすべての
要素を復元して解除する。これは、先ず待ち行列を復元
し、次いで全要素を(PMからパージせずに)PM待ち
行列から外す、分割不能な共用メモリ・プリミティブR
ES−DEQを使って行なわれる。
【0130】RES−DEQが分割不能なことが、この
場合には不可欠である。実際には、待ち行列から外され
たかパージされてはいないメッセージを再び統合するた
めに、待ち行列をその初期状態に復元することが必要で
ある。ただし、この待ち行列上でいくつかのプロセッサ
による競合があり得るとすると、待ち行列を復元した直
後に徹底的な待ち行列解除を行なわなければならない。
【0131】 2.別のプロセッサ上にそのバックアップを有する1次
タスクを宛先とするすべてのメッセージを廃棄する。こ
れは、プロセッサ1で、タスクB向けのすべてのメッセ
ージが廃棄されることを意味する。
【0132】実際には、プロセッサはその全バックアッ
プ・タスクのリストをもっているので、それらのメッセ
ージを局所バックアップ・タスクが受け取るべきかどう
かを検出することができる。
【0133】 3.残りのメッセージが局所バックアップ・タスクに送
出される。これは、プロセッサ1で、タスクAへの全メ
ッセージがそのバックアップ・タスクに渡されることを
意味する。
【0134】 4.RES−DEQ動作の処理が終ると、このプリミテ
ィブを出したプロセッサは、他のすべての動作中のプロ
セッサに、タスク名のリストとそのプロセッサ番号付き
のBACK_UP_RESUMEというメッセージを同
報通信して、他のプロセッサに、そのバックアップ・タ
スクが故障したプロセッサの動作を再開できることを指
示する。
【0135】この例では、プロセッサ1がプロセッサ2
に“BACK_UP_RESUME,(TASK
A),PROCESSOR1”とのメッセージを送り、
プロセッサ2がプロセッサ1に“BACK_UP_RE
SUME,(TASKB),PROCESSOR2”と
のメッセージを送る。
【0136】このメッセージが受信側プロセッサによっ
てどのように利用されるかを次に説明する。
【0137】メッセージ伝達 P2がP3の故障を発見したと仮定する。
【0138】BACK_UP_RESUMEメッセージ
がタスク名のリスト及びプロセッサ名と共に到着するま
で、P3上にあるタスク(タスクAおよびタスクB)宛
の全メッセージが保持される。この例では、P2は“B
ACK_UP_RESUME(TASK A),PRO
CESSOR1”というメッセージを受け取ることを予
期している。このメッセージを受け取ると、マシン層
に、リストにその名が載っているタスク宛の全メッセー
ジを、再びメッセージにその名が載っているプロセッサ
のIPIQに送ることができることが指示される。この
例でも、これは、プロセッサ2が全メッセージをプロセ
ッサ1のIPIQを介してタスクAに送らなければなら
ないことを意味する。
【0139】
【発明の効果】以上説明したように本発明によれば、フ
ォールト・トレラントなメッセージ伝達の細分性が増
し、またタスク間通信による処理能力のオーバーヘッド
を最小限に抑えることができる。
【図面の簡単な説明】
【図1】図1は、本発明が適用できる環境を構成するマ
シンの一般構造を示す図である。
【図2】図2は、第1図のシステムで使用される特定の
DEQUEUEコマンドの動作の説明図である。
【図3】図3は、第1図のマシン構造の基礎となるオペ
レーティング・システムの構造の概略図である。
【図4】図4は、第3図の環境におけるタスク間メッセ
ージ伝達の概略図である。
【図5】図5は、本発明によるプロセッサ間メッセージ
伝達機構のより詳細な説明図である。
【図6】図6は、本発明によるプロセッサ内メッセージ
伝達機構のやや詳細な説明図である。
【図7】図7は、メッセージをタスク間で伝達するフォ
ールト・トレラントな方法で使用する際の、本発明によ
るメッセージ伝達機構の概略図である。
【符号の説明】
1 多重プロセッサ・システム 3 共用メモリ 5 処理装置 7 RAMメモリ 9 プロセッサ 11 メモリ・インタフェース(PMI) 15 待ち行列
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−292364(JP,A) 特開 平1−292559(JP,A) 特開 昭59−117619(JP,A)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサ(9)同士を結合するために
    共用メモリ(3)を用いる多重プロセッサ・システム
    (1)の中で走行するタスク間のメッセージ伝達機構に
    おいて、該共用メモリは該メッセージを記憶するために
    待ち行列記憶手段(15)を用いるものであり、前記メ
    ッセージ伝達機構は、 (a)複数の送信側タスクから所与の受信側タスクへ転
    送されるメッセージを記憶するための共用メモリ内に置
    かれた待ち行列記憶手段(15)と、 (b)前記受信側タスクを実行するプロセッサ内に置か
    れた先入れ先出し(FIFO)サービス手段(23)を
    含み、前記待ち行列記憶手段にサービスし、かつ、記憶
    されたメッセージを前記受信側タスクへ伝達することを
    特徴とするメッセージ伝達機構。
  2. 【請求項2】 上記記憶手段(15)が、まず送信側タ
    スクからOPEN(開放)コールが送られたとき開か
    れ、送信側タスクからSEND(送信)コールが送られ
    たときメッセージで充たされ、受信側タスクからREC
    EIVE(受信)コールが送られたとき解除される、各
    受信側プロセッサ専用のプロセッサ間インバウンド待ち
    行列IPIQ(15)を有することを特徴とする、請求
    項1に記載のメッセージ伝達機構。
  3. 【請求項3】 上記FIFOサービス手段(23)が、
    「受信プロセッサ」によって定期的に実行されるメッセ
    ージ・インバウンド処理タスク(MIH)(23)を有
    し、 該メッセージタスクが、上記プロセッサ間インバウンド
    待ち行列IPIQ(15)を解除し、待ち行列から外さ
    れたメッセージを「受信側プロセッサ」によって実行さ
    れる局所オペレーティング・システムに渡すことを特徴
    とする請求項2に記載のメッセージ伝達機構。
  4. 【請求項4】 共用メモリに接続された各プロセッサ
    が、1個または複数の1次タスクならびに別のプロセッ
    サ中で走行される1次タスクに対応する1個または複数
    のバックアップ・タスクを含めて複数のタスクを実行
    し、所与の1次タスク及び対応する2次タスクが、当該
    のプロセッサ中で、上記1次タスクを実行しているプロ
    セッサによる1回のシステム・コールで作成されること
    を特徴とする、請求項1から3のいずれかに記載のメッ
    セージ伝達機構。
  5. 【請求項5】 共用メモリ(3)に接続された所与の各
    プロセッサ(9)が、上記のプロセッサ(9)上でバッ
    クアップ・タスクを実行しているプロセッサのバックア
    ップ・リストを維持することを特徴とする、請求項4に
    記載のメッセージ伝達機構。
  6. 【請求項6】 (a)プロセッサ(9)相互間で、ある
    1つのプロセッサが故障した事象を検出する段階と、 (b)所定の各プロセッサが、そのバックアップ・リス
    トを検査する段階と、 (c)バックアップ・リストが空でない場合、故障プロ
    セッサのプロセッサ間インバウンド待ち行列IPIQ
    (15)から全てのメッセージを復元して待ち行列から
    外す段階と、 (d)上記メッセージのうち、バックアップ・タスクが
    異なるプロセッサ内にある1次タスクを宛先とするすべ
    てのメッセージを廃棄する段階と、 (e)残りのメッセージを上記の異なるプロセッサ上に
    あるバックアップ・タスクに供給する段階と、 (f)故障プロセッサに対応するバックアップ・タスク
    をいつでも残りのプロセッサに同報通信する段階とを含
    むことを特徴とする、請求項5に記載のメッセージ伝達
    機構の使用方法。
JP3036667A 1990-02-27 1991-02-07 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構 Expired - Lifetime JP2587141B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP90480029A EP0444376B1 (en) 1990-02-27 1990-02-27 Mechanism for passing messages between several processors coupled through a shared intelligent memory
FR90480029.9 1990-02-27

Publications (2)

Publication Number Publication Date
JPH04217059A JPH04217059A (ja) 1992-08-07
JP2587141B2 true JP2587141B2 (ja) 1997-03-05

Family

ID=8205828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3036667A Expired - Lifetime JP2587141B2 (ja) 1990-02-27 1991-02-07 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構

Country Status (4)

Country Link
US (1) US5357612A (ja)
EP (1) EP0444376B1 (ja)
JP (1) JP2587141B2 (ja)
DE (1) DE69029084D1 (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315707A (en) * 1992-01-10 1994-05-24 Digital Equipment Corporation Multiprocessor buffer system
CA2097564C (en) * 1992-06-16 2004-05-25 David L. Phillips Method of coupling open systems to a proprietary network
JPH0628322A (ja) * 1992-07-10 1994-02-04 Canon Inc 情報処理装置
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
CA2123447C (en) * 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
GB9320982D0 (en) * 1993-10-12 1993-12-01 Ibm A data processing system
EP0664509A1 (en) * 1994-01-20 1995-07-26 International Business Machines Corporation Method and apparatus for passing control from a first process to a second process
US5640504A (en) * 1994-01-24 1997-06-17 Advanced Computer Applications, Inc. Distributed computing network
US6247064B1 (en) * 1994-12-22 2001-06-12 Unisys Corporation Enqueue instruction in a system architecture for improved message passing and process synchronization
CA2167633A1 (en) * 1995-01-23 1996-07-24 Leonard R. Fishler Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system
CA2167632A1 (en) * 1995-01-23 1996-07-24 Leonard R. Fishler Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US5894583A (en) * 1996-04-09 1999-04-13 International Business Machines Corporation Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
US5983266A (en) * 1997-03-26 1999-11-09 Unisys Corporation Control method for message communication in network supporting software emulated modules and hardware implemented modules
US5999969A (en) * 1997-03-26 1999-12-07 Unisys Corporation Interrupt handling system for message transfers in network having mixed hardware and software emulated modules
US5944788A (en) * 1997-03-26 1999-08-31 Unisys Corporation Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules
US6098105A (en) * 1997-04-08 2000-08-01 International Business Machines Corporation Source and destination initiated interrupt method for message arrival notification
US6105071A (en) * 1997-04-08 2000-08-15 International Business Machines Corporation Source and destination initiated interrupt system for message arrival notification
US6098104A (en) * 1997-04-08 2000-08-01 International Business Machines Corporation Source and destination initiated interrupts for message arrival notification, and related data structures
US5950170A (en) * 1997-04-11 1999-09-07 Vanguard International Semiconductor Corporation Method to maximize capacity in IC fabrication
US6289391B1 (en) * 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6192418B1 (en) 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US5978931A (en) * 1997-07-16 1999-11-02 International Business Machines Corporation Variable domain redundancy replacement configuration for a memory device
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6154765A (en) 1998-03-18 2000-11-28 Pasocs Llc Distributed digital rule processor for single system image on a clustered network and method
US6119215A (en) 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US6629152B2 (en) * 1998-06-29 2003-09-30 International Business Machines Corporation Message passing using shared memory of a computer
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6385659B1 (en) 1998-08-19 2002-05-07 International Business Machines Corporation Handling of asynchronous message packet in a multi-node threaded computing environment
US6415332B1 (en) 1998-08-19 2002-07-02 International Business Machines Corporation Method for handling of asynchronous message packet in a multi-node threaded computing environment
US6412018B1 (en) 1998-08-19 2002-06-25 International Business Machines Corporation System for handling asynchronous message packet in a multi-node threaded computing environment
US6119244A (en) * 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6853623B2 (en) 1999-03-05 2005-02-08 Cisco Technology, Inc. Remote monitoring of switch network
JP3769413B2 (ja) 1999-03-17 2006-04-26 株式会社日立製作所 ディスクアレイ制御装置
EP1049029A3 (en) * 1999-04-28 2003-07-09 Emc Corporation File systems with versatile indirection
US7100000B1 (en) * 1999-05-28 2006-08-29 International Business Machines Corporation System and methods for processing audio using multiple speech technologies
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6862689B2 (en) 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US20020144010A1 (en) * 2000-05-09 2002-10-03 Honeywell International Inc. Communication handling in integrated modular avionics
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
WO2001095098A2 (en) * 2000-06-02 2001-12-13 Inrange Technologies Corporation Enhanced channel adapter
US6799317B1 (en) 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
ES2249450T3 (es) * 2000-07-05 2006-04-01 ERNST & YOUNG LLP Metodo y aparato para proporcionar servicios informaticos.
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US7694302B1 (en) 2001-04-05 2010-04-06 Network Appliance, Inc. Symmetric multiprocessor synchronization using migrating scheduling domains
US7178137B1 (en) 2001-04-05 2007-02-13 Network Appliance, Inc. Automatic verification of scheduling domain consistency
US6996750B2 (en) 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US20030110232A1 (en) * 2001-12-11 2003-06-12 International Business Machines Corporation Distributing messages between local queues representative of a common shared queue
US7480697B2 (en) * 2002-05-28 2009-01-20 International Business Machines Corporation Method and apparatus using attached hardware subsystem to communicate between attached hosts
US7185033B2 (en) 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory
US7185034B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with guaranteed at least once delivery
US7181482B2 (en) * 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
US7203706B2 (en) 2002-08-01 2007-04-10 Oracle International Corporation Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue
US7373640B1 (en) 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
US8365193B2 (en) 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US8171480B2 (en) * 2004-01-27 2012-05-01 Network Appliance, Inc. Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor
US7792274B2 (en) * 2004-11-04 2010-09-07 Oracle International Corporation Techniques for performing multi-media call center functionality in a database management system
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US7818386B2 (en) * 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US7779418B2 (en) * 2004-12-30 2010-08-17 Oracle International Corporation Publisher flow control and bounded guaranteed delivery for message queues
WO2006134373A2 (en) * 2005-06-15 2006-12-21 Solarflare Communications Incorporated Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
US20070028144A1 (en) * 2005-07-29 2007-02-01 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US20070038891A1 (en) * 2005-08-12 2007-02-15 Stratus Technologies Bermuda Ltd. Hardware checkpointing system
US8196150B2 (en) * 2005-10-07 2012-06-05 Oracle International Corporation Event locality using queue services
US8347293B2 (en) * 2005-10-20 2013-01-01 Network Appliance, Inc. Mutual exclusion domains to perform file system processes on stripes
US8443158B2 (en) * 2005-10-25 2013-05-14 Harris Corporation Mobile wireless communications device providing data management and security features and related methods
US20070288938A1 (en) * 2006-06-12 2007-12-13 Daniel Zilavy Sharing data between partitions in a partitionable system
US7949815B2 (en) 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US9027025B2 (en) 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
US9128895B2 (en) 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
JP2010257262A (ja) * 2009-04-27 2010-11-11 Fujitsu Frontech Ltd 通信制御プログラム、通信システム、通信制御装置および通信制御方法
JP5636832B2 (ja) 2009-09-15 2014-12-10 株式会社リコー 画像形成装置、画像形成方法およびプログラム
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8627331B1 (en) 2010-04-30 2014-01-07 Netapp, Inc. Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
WO2012020698A1 (en) * 2010-08-11 2012-02-16 Nec Corporation Primary-backup based fault tolerant method for multiprocessor systems
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
JP5598493B2 (ja) 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
WO2015102874A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
JP6518672B2 (ja) 2013-12-30 2019-05-22 ストラタス・テクノロジーズ・バミューダ・リミテッド 動的チェックポインティングシステムおよび方法
GB2532227B (en) * 2014-11-12 2021-10-27 Arm Ip Ltd Methods of communication between a remote resource and a data processing device
US11086608B2 (en) 2016-02-05 2021-08-10 Sas Institute Inc. Automated message-based job flow resource management in container-supported many task computing
US11169788B2 (en) * 2016-02-05 2021-11-09 Sas Institute Inc. Per task routine distributed resolver
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US10382380B1 (en) 2016-11-17 2019-08-13 Amazon Technologies, Inc. Workload management service for first-in first-out queues for network-accessible queuing and messaging services

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
JPS59117619A (ja) * 1982-12-24 1984-07-07 Omron Tateisi Electronics Co デ−タ転送処理装置
GB8328396D0 (en) * 1983-10-24 1983-11-23 British Telecomm Multiprocessor system
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.
JPS63292364A (ja) * 1987-05-26 1988-11-29 Fujitsu Ltd 共通メモリ制御方式
JPH01292559A (ja) * 1988-05-20 1989-11-24 Fujitsu Ltd 並列計算機メッセージ処理方式及びデータ転送方式

Also Published As

Publication number Publication date
US5357612A (en) 1994-10-18
EP0444376A1 (en) 1991-09-04
JPH04217059A (ja) 1992-08-07
EP0444376B1 (en) 1996-11-06
DE69029084D1 (de) 1996-12-12

Similar Documents

Publication Publication Date Title
JP2587141B2 (ja) 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構
US5434975A (en) System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
US5386512A (en) System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information
Rashid et al. Accent: A communication oriented network operating system kernel
US4630196A (en) Store and forward facility for use in multiprocessing environment
US5784617A (en) Resource-capability-based method and system for handling service processor requests
US5488716A (en) Fault tolerant computer system with shadow virtual processor
US6401216B1 (en) System of performing checkpoint/restart of a parallel program
US7549151B2 (en) Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US6070189A (en) Signaling communication events in a computer network
US6393583B1 (en) Method of performing checkpoint/restart of a parallel program
EP0475080B1 (en) Distributed messaging system and method
US8495573B2 (en) Checkpoint and restartable applications and system services
US6338147B1 (en) Program products for performing checkpoint/restart of a parallel program
JPS59133663A (ja) 分散マルチプロセツサ・コンピユ−タの障害許容システムにおけるタスク実行手段間のメツセ−ジ転送方法
EP0909071A2 (en) Communication method and apparatus using active messages
US6415332B1 (en) Method for handling of asynchronous message packet in a multi-node threaded computing environment
KR20040085045A (ko) 애플리케이션에 투명한 방식으로 메시징 시스템에서가용성 및 확장성을 향상시키는 방법 및 시스템
JPH08287021A (ja) 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
JP2505050B2 (ja) 複数プロセツサ間で通信するためのシステム
JPH03126158A (ja) スケジユーリング方法及び装置
JPH10124470A (ja) ロー・コンテクスト・スイッチングのオーバーヘッドが小さいマルチプレックス化メッセージの呼出し処理のメカニズム
US7640549B2 (en) System and method for efficiently exchanging data among processes
US6393503B2 (en) Efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
US6032267A (en) Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system