JPH10307732A - メッセージ伝送方法 - Google Patents

メッセージ伝送方法

Info

Publication number
JPH10307732A
JPH10307732A JP8029971A JP2997196A JPH10307732A JP H10307732 A JPH10307732 A JP H10307732A JP 8029971 A JP8029971 A JP 8029971A JP 2997196 A JP2997196 A JP 2997196A JP H10307732 A JPH10307732 A JP H10307732A
Authority
JP
Japan
Prior art keywords
message
data
processor
processes
queue
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.)
Pending
Application number
JP8029971A
Other languages
English (en)
Inventor
Leonard R Fishler
レオナード・アール・フィシラー
Thomas M Clark
トーマス・エム・クラーク
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH10307732A publication Critical patent/JPH10307732A/ja
Pending 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 データ処理システムにおける各種プロセス
間、および、各種プロセスとドライバとの間のデータ転
送の効率を高めることができるようにする。 【解決手段】 並列処理によるフォールトトレラント型
のコンピュータシステムにおいて、2つの方法によっ
て、単一のCPUにおける複数の処理の間でデータが伝
送される。第1の方法によると、データの伝送が行われ
る毎に、該データが複写される。第2の方法によると、
データは、複写されることなく、共用メモリ待ち行列シ
ステムを介して送られる。第1の方法は、故障許容性お
よび線形拡張性を保証するために使用される。第2の方
法は、プロセス間通信に必要な時間を最短化するために
使用される。前記共用メモリ待ち行列システムの使用に
よって、同一のCPUによって実行されるプロセス間で
より高速化した通信が可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、オペレーティン
グシステムソフトウエアに関し、特に、データ処理シス
テムにおける各種プロセス間、および、各種プロセスと
ドライバとの間のデータ伝送効率を高めるための方法に
関する。
【0002】
【従来の技術】従来のマイクロプロセッサコンピュー
タ、および、大量並列処理(MPP:Massively Parallel P
rocessing)コンピュータは、同じまたは異なる命令を
実行する多数のCPUを備えている。一定の情況下にお
いて、複数のプロセッサの間で伝送されるデータは、1
つのプロセッサから他のプロセッサに送られるときに複
写される。例えば、従来のフォールトトレラント型(Fa
ult Tolerant:故障許容型)のコンピュータでは、故障
許容性、線形拡張性および大量並列処理能力を高めるた
めに、データがバックアップされ、チェックポイント処
理される。このように、フォールトトレラント型のコン
ピュータでは、CPU間でデータの複写が行われるの
で、1つのCPUが故障した場合であっても、最少のデ
ータ損失を生じるだけで(またはデータ損失を全く生じ
ることなく)、他のCPUによって処理を続行すること
ができる。システムの故障許容性を保証するために使用
される場合、このようなプロセッサレベルでのデータの
重複は大いに望ましいものである。
【0003】ある従来のシステムにあっては、1つのプ
ロセスからのデータを物理的に複写して他のプロセスに
送るメッセージシステムによって、ソフトウエアプロセ
ス間でデータが伝送されるようになっている。前記他の
プロセスは、同一のCPUまたは異なるCPUによって
実行可能である。前記メッセージシステムは、各メッセ
ージを物理的に複写し、一度に1個ずつ、各前記メッセ
ージを受取り側のプロセスに送る。例えば、複写された
データが複数のプロセス間におけるチェックポイントの
ために使用される場合、データが物理的に複写されるこ
とが望ましい。しかし、複数のプロセスが相互に通信し
合うことを可能にするために、データが単に伝送される
ことがある。このような場合、前記複数のプロセスが同
一のCPUに属するものであれば、データを物理的に複
写する必要はない。というのは、受取り側のプロセスが
実際にデータを処理するために必要とする時間より、前
記データを複写して送るために必要とする時間の方が長
くなることがあり、同一のCPUによって実行されるプ
ロセスの間でデータが送られる場合には、前記プロセス
の間で送られるデータを複写することは効率的ではな
い、からである。
【0004】
【発明が解決しようとする課題】しかし、いずれの情況
下においても、従来のフォールトトレラント型のコンピ
ュータは、複数のプロセスまたはCPUが同一のメモリ
を共用することを可能にするものではなかった。各CP
Uは他のCPUが前記共用メモリにアクセスし終われる
のを待つ必要があるので、前記複数のCPUによって共
用されるメモリは、このようなコンピュータにおける
“ネック”になりがちであった。さらに、複数のCPU
が同一のメモリを共用する場合において、1つのCPU
が故障したときには、他のCPUに対して支障の無いメ
モリスペースが保証され得ない。このため、従来にあっ
ては、処理レベルにおける厳密なデータの完全性を確保
するために、個々のプロセス間においてメッセージの複
写が行われていた。
【0005】一方、データを複写することによって複数
のプロセス間でデータを伝送する場合、時間がかかると
いう課題がある。実行時間効率を高めるために、プログ
ラマは、いくつかの機能をより多くより小さなプロセス
に分解する代りに、これらの機能を組込んだより大きな
プロセスをプログラムする傾向がある。このように、よ
り少なくより大きなプロセスをプログラムすることによ
って、プログラマは、プロセス間でデータを複写するこ
とによって生じる時間的な遅延を回避できる。しかし、
このようなより大きなプロセスは、より小さなプロセス
に比べて、プログラムしたり維持したりするのが難し
い。そこで、現在、データの複写が実行すべきプロセス
より長い時間を必要とし、故障許容性を保証するために
データを複写することが重要ではない場合において、複
数のプロセス間でデータの伝送を効率的に行えるように
するメカニズムが要望されている。この発明は上述の点
に鑑みてなされたもので、データ処理システムにおける
各種プロセス間、および、各種プロセスとドライバとの
間のデータ伝送効率を高めることができるようにする方
法を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、この発明は、少なくとも第1のプロセッサおよび第
2のプロセッサを有するデータ処理システムにおいて複
数のプロセスの間でメッセージを伝送する方法であっ
て、前記データ処理システムのメモリ内に共用メモリ部
を設けるステップと、前記共用メモリ部内に、前記第1
のプロセッサにおける第1のプロセスのための入力待ち
行列を作成するステップと、前記第1のプロセッサにお
ける第2のプロセスによって、伝送すべきメッセージを
指示するポインタを前記第1のプロセスの入力待ち行列
内に格納するステップと、前記第1のプロセスの入力待
ち行列に格納された前記ポインタによって指示される前
記メッセージを、前記第1のプロセスによって消費する
ステップと、前記データ処理システムにおける故障許容
性を保証するために、前記第1のプロセッサから前記第
2のプロセッサに伝送されるメッセージをチェックポイ
ントするステップであって、チェックポイントの際に該
メッセージを複写するが、前記第1のプロセスの入力待
ち行列内に格納されているときは複写しないようにする
該ステップとを具備し、これらのステップが前記データ
処理システムによって実行されるものである。
【0007】また、この発明の別の観点に従う方法は、
少なくとも第1のプロセッサおよび第2のプロセッサを
有するデータ処理システムにおいて複数のプロセスの間
でメッセージを伝送する方法であって、前記データ処理
システムのメモリ内に共用メモリ部を設けるステップ
と、前記共用メモリ部内に、前記第1のプロセッサにお
ける第1のプロセスのための入力待ち行列を作成するス
テップと、前記第1のプロセッサにおける第2のプロセ
スによって、伝送すべきメッセージを指示するポインタ
を前記第1のプロセスの入力待ち行列内に格納し、これ
により、前記第1のプロセスと第2のプロセスとの間で
メッセージを伝送するステップと、前記第1のプロセス
の入力待ち行列に格納された前記ポインタによって指示
される前記メッセージを、前記第1のプロセスによって
消費するステップと、前記メッセージを複写するメッセ
ージシステムを使用することによって前記第1のプロセ
スと第3のプロセスとの間で前記メッセージを伝送する
ステップであって、この第1のプロセスと第3のプロセ
スとの間で前記メッセージを伝送するステップは、前記
ポインタを前記第1のプロセスの入力待ち行列内に格納
するステップよりも時間がかかるものであるものとを具
備し、これらのステップが前記データ処理システムによ
って実行されるものである。
【0008】この発明は、データ処理システムにおける
各種プロセス間、および、各種プロセスとドライバとの
間のデータ伝送効率を高めるための方法を提供する。こ
の発明において、複数のプロセスは、2通りの異なる方
法を用いて相互に通信可能である。第1の方法による
と、前記複数のプロセスは、データが前記プロセス間で
伝送される毎に複写される従来のメッセージシステムに
よって相互に通信可能である。伝送されるデータを複写
することが望ましい、または、少なくとも容認できるも
のである場合、この第1の方法は、主に、故障許容性、
線形拡張性および大量並列処理能力に関する機能のため
に使用される。第2の方法によると、前記複数のプロセ
スは、共用メモリ待ち行列システム(Shared Memory Qu
eueing System:“共用メモリ(Shared Memory)”、
“待ち行列I/O(Queued I/O)”または“QIO”と
略称される)によって相互に通信可能である。この第2
の方法は、主に、サーバプロセス、LANプロトコルプ
ロセス、および、同一のプロセッサで実行されるプロセ
スの間におけるデータ伝送に関する機能のために使用さ
れる。
【0009】前記共用メモリ待ち行列システムによっ
て、同一のプロセッサは、データを伝送する毎に該デー
タを複写することなしに、前記データを伝送できる。ま
た、このようにして実現されるプロセス間速度の上昇
は、前記プロセスを小さな機能モジュールに細分化する
ことを可能にする。プロセスのモジュール性は“垂直方
向”であってよく、例えば、単一の大きなプロセスは、
プロセス間でのデータ伝送による時間損失を最少にしな
がら、いくつかのより小さなプロセスに分解されること
ができる。プロセスのモジュール性は“水平方向”であ
ってもよく、例えば、様々なクライアントプロセスは、
前記共用メモリ待ち行列システムによって、1つのサー
バプロセスにアクセスできる。
【0010】
【発明の実施の形態】以下、添付図面を参照してこの発
明の実施の形態の一例を説明しよう。図1は、共用メモ
リ待ち行列システムを組込んだフォールトトレラント
型、並列データ処理システムを示すブロック図である。
該システム100は、LAN(Local Area Network)を
介して通信するノード102とワークステーション10
4とを含んでいる。前記ノード102は、当業者に知ら
れたタイプの冗長バスであるプロセス間バス(IPB:Inte
rーProcess Bus)109によって接続されたプロセッサ
106とプロセッサ108とを備えている。図1には示
されていないが、前記システム100は、少なくとも1
つのプロセッサが該システム100における他のプロセ
ッサからのデータをチェックポイントする、フォールト
トレラント型の並列処理コンピュータシステムである。
このようなフォールトトレラント型システムは、例え
ば、Katzmanらに付与された米国特許No.4、817、091に開
示されている。しかし、この発明は、各種のハードウエ
アプラットフォームに基づいて実施可能である。
【0011】図1およびこの明細書全体にわたって示さ
れている“プロセス”は、メモリに格納されていてCP
Uによって実行されるソフトウエアプログラムによって
実施されるのが好ましい。同様に、“ドライバ”は、メ
モリに格納されていてCPUによって実行されるソフト
ウエアプログラムによって実施されるのが好ましい。プ
ロセッサまたはCPU“における”プロセスとは、概
ね、そのプロセスが前記CPUのメモリに格納されてい
て該CPUによって実行される、ことを意味する。
【0012】プロセッサ106は、CPU110とメモ
リ112とを備えており、ディスクコントローラ114
とディスクドライブ116とに接続されている。前記メ
モリ112は、ソフトウエアプロセス120、ソフトウ
エアディスクプロセス122および共用メモリ部124
を含んでおり、該共用メモリ部124は、後述する待ち
行列125を含んでいる。前記プロセス120およびプ
ロセス122は、QIOライブラリルーチン126を介
して、共用メモリ部124にアクセスする。前記共用メ
モリ部124およびQIOライブラリルーチン126を
使用して送られるメッセージは、データを複写すること
なく送られる。
【0013】前記プロセス120は、メッセージシステ
ム(MS)128およびファイルシステム(FS)13
0を使用することによって、前記プロセス間バス109
と通信を行う。前記メッセージシステム128は、例え
ば、Tandem Part No.024507の6章の“Introduction to
Guardian 90 Internal Design”に記載されている。ま
た、前記ファイルシステム130は、例えば、Tandem P
art No.096042の“Guardian Programmer's Guide”、な
らびに、Tandem Part No.026148および026149の1巻お
よび2巻の“System Procedure Calls Definition Manu
al”に記載されている。
【0014】前記ディスクプロセス122は、ソフトウ
エアディスクドライバ132およびディスクコントロー
ラ114を介して、ディスク116にデータを送る。前
記ノード102は、LANコントローラ140を介して
LAN105に接続されている。前記ノード102のプ
ロセッサ108は、CPU142とメモリ144とを備
えている。該メモリ144は、TCP/IPプロセス1
46とNFSディトリビュータプロセス148とを含ん
でおり、該TCP/IPプロセス146およびNFSデ
ィトリビュータプロセス148は、QIOライブラリル
ーチン152を使用することによって、共用メモリ部1
50を介して通信する。後述するように、前記共用メモ
リ部150は、複数の待ち行列151を含んでいる。
【0015】前記TCP/IPプロセス146は、上述
のようなメッセージシステム154およびファイルシス
テム156を使用することによって、前記プロセス間バ
ス109と通信を行う。また、前記TCP/IPプロセ
ス146は、前記QIOライブラリルーチン152を経
由して、ソフトウエアLANドライバ158を介して前
記LANコントローラ140と通信する。前記共用メモ
リ部150を使用する通信はデータの複写を伴わない
が、前記メッセージシステム154およびファイルシス
テム156を使用する通信はデータの複写を伴う。図1
には示さないが、この発明のある実施の形態において
は、前記メッセージシステム154およびファイルシス
テム156を使用して、単一のプロセッサにおけるプロ
セス間の通信を行ってよい。例えば、前記プロセス12
0は、前記ファイルシステムおよびメッセージシステム
を使用して、ディスクプロセス122と通信してよい。
【0016】図1は、前記プロセス120、122の間
および前記プロセス146、148の間における通信の
ために使用される共用メモリ待ち行列システムを示すと
ともに、前記プロセス146とLANドライバ158と
の間の共用メモリ待ち行列システムを使用する通信を示
す。
【0017】図2は、図1のプロセッサ106を示すブ
ロック図であり、複数のODBCサーバプロセス21
4、複数のディスクプロセス122、複数のオブジェク
トサーバプロセス214およびDOMSディストリビュ
ータプロセス220である4種類のプロセスを示すもの
である。“ODBC”は、“Open Database Connectivi
ty”を意味し、Microsoft Corporationによって供給さ
れる遠隔SQLデータベースアクセス用の規格に準拠す
るデータベースクライアント/サーバ法である。“DO
MS”は、“Distributed Object Management System”
を意味し、CORBAに対応した分散オブジェクト管理
サーバである。各前記プロセス214、122、21
8、220は、これに関連したメッセージシステム23
0、ファイルシステム232、QIOソケットライブラ
リ234およびQIOライブラリ236を有する。(ラ
イブラリ234、236は図1のライブラリ126のサ
ブセットである)。前記ライブラリ234およびライブ
ラリ236の内容例が本発明の理解に必要となる場合に
は、本出願人は、1994年7月20日発行の“QIQ Li
brary Interface Specification”(以下、参考文献A
という)、および、1994年8月22日発行の“ES f
or NonStop IPX/SPX”(以下、参考文献Bという)を提
出する用意がある。
【0018】図2は、メッセージデータの複写を伴う、
プロセスの間でデータを伝送する第1の方法を示す。図
2のメッセージ260は、プロセッサ108のプロセス
から、プロセス間バス109を介して、メッセージシス
テム230を経由して前記ディスクプロセス122に受
信される。このタイプのメッセージは、単一のプロセッ
サにおける任意のプロセス間で伝送されることもでき
る。例えば、あるプロセスが任意のプロセッサに含まれ
る、ことが望ましい場合がある。その場合、前記プロセ
スは、他のプロセッサにおけるプロセスおよび同一のプ
ロセッサにおけるプロセスの両方からメッセージを受信
可能でなければならず、そのメッセージシステム230
を介してメッセージを送受信しなければならない。
【0019】さらに、図2は、メッセージが前記共用メ
モリ待ち行列システムを介して送られる、プロセスの間
でデータを伝送する第2の方法を示す。図2において、
前記プロセス214は、他のプロセス(例えばプロセス
122)からのメッセージ270を保持する待ち行列2
40を有する。このような待ち行列240の詳細につい
ては、図9〜図11を参照して後述する。各前記プロセ
ス214、218、220は、それぞれの入力待ち行列
を有する。前記プロセス122は、他のプロセスによっ
て送られたメッセージ272を保持するコマンド待ち行
列250を有する。
【0020】図3は、共用メモリ部150を有する図1
のプロセス108を示すブロック図である。図3は、O
DBCディストリビュータプロセス314、NFSディ
ストリビュータプロセス316、FTPサーバプロセス
318、DOMSディストリビュータプロセス320お
よびTCP/IPプロトコルプロセス146である5種
類のプロセスを示す。“NFS”は、Sun Microsystem、
Inc.の遠隔ファィルサーバ規格である“Network File S
ystem”を意味する。“FTP”は、コンピュータシス
テムの間でデータを伝送するために使用される通信プロ
トコルを意味する。“TCP/IP”は、ノード間の通
信に使用される通信プロトコルである“Transmission C
ontrol Protocol/Internet Protocol”を意味する。
【0021】各前記プロセス314、316、318、
320は、これに関連したメッセージシステム330、
ファイルシステム332、QIOソケットライブラリ3
34およびQIOライブラリ336を有する。(ライブ
ラリ334、336は図1のライブラリ152のサブセ
ットである)。前記共用メモリ部150にアクセスする
ために使用されるライブラリ336の一例は上記参考文
献Aに示されており、前記ライブラリ334の一例は上
記参考文献Bに示されている。
【0022】TCP/IPプロトコルプロセス146
は、共用メモリ部150および3つのI/Oドライバ3
38にアクセスするためのQIOライブラリ336を有
する。前記ドライバ338は、図4および図5に示す方
法で、共用メモリ待ち行列システムを使用する前記TC
P/IPプロトコルプロセス146と通信する。図3
は、前記メッセージシステム330およびファイルシス
テム332を介して他のプロセッサにおけるプロセスに
送られるメッセージ260を示す。特に、図3は、前記
プロセス間バス109によって、前記プロセス318か
ら図2のディスクプロセス122に送られるメッセージ
260を示す。このようにして、前記メッセージシステ
ムを使用して、前記プロセッサ106、108の間でメ
ッセージが伝送される。また、前記メッセージシステム
を使用して、前記プロセッサ108におけるプロセス間
で伝送されることもできる。上述のように、前記メッセ
ージシステム330は、メッセージを送るとき、そのデ
ータを複写する。
【0023】さらに、図3は、単一のプロセッサにおけ
るプロセス間、および、単一のプロセッサにおけるプロ
セスとドライバとの間でメッセージの伝送を行う第2の
方法を示す。この第2の方法においては、前記共用メモ
リ待ち行列システムを介してメッセージが送られる。図
3において、前記プロセス314は、他のプロセス(例
えばプロセス146)からのメッセージ370を保持す
る待ち行列340を有する。このような待ち行列340
の詳細については、図9〜図11を参照して後述する。
前記プロセス146は、他のプロセスからのメッセージ
372を保持するコマンド待ち行列350を有する。
【0024】図2および図3は、共用メモリ待ち行列シ
ステムがプロセスの“水平方向のモジュール性”および
“垂直方向のモジュール性”を促進する動作を説明する
図。前記共用メモリ待ち行列システムを使用する場合、
プロセスとドライバとの間でデータを伝送するための処
理量がほとんど無いので、プログラマは、1つの機能
を、図3および図4に示したプロセスのような個々のプ
ロセスに容易に分解できる。縦方向のモジュール性は、
前記プロセス214のような高いレベルのプロセスが前
記プロセス122のようなより低いレベルのプロセスと
通信することを意味する。また、横方向のモジュール性
は、前記プロセス314、316、318、320のよ
うな複数のプロセスが前記プロセス146のような同じ
低いレベルのプロセスと通信することを意味する。
【0025】図4および図5は、例えば、前記共用メモ
リ待ち行列システムにアクセスするドライバを介して、
LAN105のメッセージを受信する2つのプロセスを
それぞれ示す。また、図5は、同じドライバを介して、
LAN105のメッセージを送信するプロセスを示す。
図4および図5の各々の例において、一定のセットアッ
プ機能が予め実行されている、と仮定する。例えば、各
前記プロセスは、前記共用メモリ待ち行列システムによ
って自己“登録”しており、モジュールID(識別情
報)を受信している(上記参考文献AにおけるQIOラ
イブラリルーチンの“SM_MODULE_ID_CREATE”を参
照)。前記プロセスは、前記共用メモリ待ち行列システ
ムとのすべての対話のために独自のモジュールIDを有
する。登録時において、各前記プロセスは、前記共用メ
モリ待ち行列システムのうちの何パーセントを消費でき
るかを定義するオプションを有する。好ましい実施の形
態においては、デフォルトとして、各プロセスは、前記
共用メモリの100%までを消費できるようになってい
る。また、各プロセスは、前記共用メモリ待ち行列シス
テムに対して、“プールスペース(pool space)”を要
求する。該プールは、制御バッファなどの、プロセスが
データ構造を割り当てるための“プライベートスペー
ス”として使用される。
【0026】各前記プロセスは、例えば上記参考文献A
におけるSM_DR_REGISTERルーチンを呼出すことによっ
て、LANドライバ158によって自己登録する。この
ルーチンは、指定されたLANおよび指定されたポート
を使用して、プロセスを登録する。また、このルーチン
は、前記プロセスのための共用メモリに入力待ち行列お
よび出力待ち行列を作成し、各作成された待ち行列ごと
に、待ち行列IDをそのプロセスに返す。こうして、図
4において、TCP/IPプロセス402は、入力AR
P待ち行列および出力ARP待ち行列、ならびに、入力
IP待ち行列および出力IP待ち行列を得るために、2
回登録される。前記入力待ち行列は、LAN105から
メッセージを受信するために使用される。図2および図
3を参照して説明したように、前記プロセスは、例え
ば、他のプロセスおよび/または他のドライバと通信す
るための他の入力待ち行列および出力待ち行列を有する
ことがある。これらの待ち行列は、上記参考文献Aにお
けるSM_Q_CREATEを介して作成される。前記出力待ち行
列は、LAN105に送信すべきデータのためのメッセ
ージ記述子を保持するために使用される。ドライバ/割
込みハンドラ158は、入力メッセージを正しい入力待
ち行列に送るために使用される、メモリに格納されたテ
ーブルを維持する。こうして、クライアントプロセス
は、その入力待ち行列からメッセージを取り出すことが
できる。
【0027】図4は、TCP/IPプロセス402およ
びTLAM IOP(Tandem LAN Access Method I/O Pr
ocess)404の各々が、共用メモリ待ち行列システム
を介してLAN105からメッセージを受け取る動作を
説明する図である。前記TCP/IPプロセス402
は、公知のTCP/IPプロトコルを使用し、IPおよ
びARPの両方からメッセージを受け取る。このため、
前記TCP/IPプロセス402は、2つの入力待ち行
列および出力待ち行列を有する。前記TLAMIOP4
04は、LANにアクセスするための工業規格インター
フェースを使用する。このTLAM IOP404は、I
EEE 802.2論理リンク制御基準に基づいており、タイプ
1コネクションレスサービスおよびMULTILAN
NETBIOSプロトコルをサポートする。“MULT
ILAN”はTandem Computers,Inc.の商標である。こ
うして、前記TLAM IOP404は、様々な種類の
LANに接続可能である。
【0028】前記ドライバ158がLAN105からメ
ッセージを受信する場合、該ドライバ158は、そのメ
ッセージを正しいプロセスのための入力待ち行列にセッ
トし、その待ち行列のクリエータモジュールIDのフィ
ールドにおいて特定されるプロセスを呼出す。こうし
て、例えば、図4において、入力メッセージは、TLA
M入力待ち行列406、入力IP待ち行列414または
入力ARP待ち行列416にセットされる。前記ドライ
バ/割込みハンドラ158は、メモリに格納されたテー
ブルを参照し、その入力メッセージによって示される受
信者に応じて、どの待ち行列に入力メッセージをセット
すべきかを判定し、どのプロセスを呼出すべきかを判定
する。
【0029】プロセスは“QIOイベント”によって呼
出される。該QIOイベントは、当該コンピュータのオ
ペレーティングシステムを使用することによって、図1
2の(a)に示すようなイベントマスクにQIOビット
を設定し、そのプロセスの待ち行列が空き状態ではない
ことを示すためのビットをQIO補助マスク(図12の
(b))に設定する。イベントが発生すると、前記オペ
レーティングシステムは受信側プロセスを呼出し、従っ
て、該プロセスは待ち状態から準備完了(ready)状態
になる。前記イベントマスク1200にQIOビット1
202が設定されている場合、前記プロセスは前記ビッ
トをQIO補助マスク1204をチェックする。“QU
EUE_NOT_EMPTY”ビット1206が設定され
ているとき、前記プロセスは、関連した待ち行列からの
データを消費する。QIOイベントの一例は、上記19
94年7月20日発行の“QIQ Library Interface Spec
ification”中の“QIO Library External Specificatio
n”(以下、参考文献Cという)に示されている。
【0030】プロセスは、例えば、前記参考文献AのS
M_Q_GET_MSGルーチンを呼出すことによって、
入力待ち行列からのメッセージを消費する。このルーチ
ンは、前記入力待ち行列の最初の端からメッセージを取
り出す。前記ドライバ158は、返送待ち行列ポインタ
1022(図10参照)が該ドライバのリターン待ち行
列を指示するよう、前記入力待ち行列を設定する。こう
して、前記プロセスは、バッファを再使用されるよう前
記ドライバ158に返すために、単に、例えば、前記参
考文献AのSM_MD_RETURNルーチンを呼出す。
【0031】図5は、前記TCP/IPプロセス402
およびTLAM IOP404の各々が、前記共用メモ
リ待ち行列システムを介して前記LAN105からメッ
セージを送る動作を説明する図である。メッセージを送
るために、プロセスは、例えば、特定された出力待ち行
列のPUTルーチンを呼出す前記参考文献AのSM_Q_PUT
_MSGを読み出す。こうして、前記ドライバによって定義
された出力待ち行列にメッセージがセットされる。必ず
しも必要ではないが、前記プロセスは、前記ドライバ1
58が送られた後のメッセージを返すよう、リターン待
ち行列を指示する。こうして、前記TLAM IOP4
04が前記SM_Q_PUT_MSGを読み出すと、送られるべきメ
ッセージが、TLAM出力待ち行列406の“PUT”
ルーチンを呼出す。同様に、前記TCP/IPプロセス
402がARPメッセージについてSM_Q_PUT_MSGを読み
出すと、送られるべきメッセージが、出力ARP待ち行
列418の“PUT”ルーチンを呼出す。前記TCP/
IPプロセス402がIPメッセージについてSM_Q_PUT
_MSGを読み出すと、送られるべきメッセージが、出力I
P待ち行列412の“PUT”ルーチンを呼出す。
【0032】好ましい実施の形態において、前記ドライ
バ158は、前記メッセージを待ち行列にセットしない
で、前記メッセージがLAN105に送信可能であるか
否かをチェックする。送信可能である場合、前記ドライ
バ158はそのメッセージを送信する。送信可能でない
場合、前記ドライバ158は、そのメッセージを該ドラ
イバ158内部の待ち行列にセットする。割込みが発生
すると、前記ドライバ158は、出力メッセージが待ち
行列に待機中であるか否かをチェックする。待機中であ
る場合、前記ドライバ158は、前記メッセージを前記
内部の待ち行列から取り出して送る。その待ち行列構造
にリターン待ち行列が明示されていない場合、メッセー
ジバッファがバッファフリーリストに返される。
【0033】あるプロセスがLAN105から断続され
るべき場合、該プロセスは、例えば、前記参考文献Aの
SM_DR_DEREGISTERルーチンを読み出す。このルーチン
は、前記プロセスのための入力待ち行列および出力待ち
行列を解除し、前記プロセスを前記ドライバの内部ルー
ティングテーブルから除去する。この発明の共用メモリ
待ち行列システムは、当該システムにおけるプロセスの
内容および構成を向上することを可能にし、前記システ
ムにおいてデータが辿るデータパスの効率を向上する。
例えば、この発明は、TCP/IPを使用するLANに
よってデータを送受信するために使用されるOSI(Op
en System Interconnection)−7層通信プロトコルが
効率的に実施されることを可能にする。図6〜図8に関
する次の説明は、いかにして、共用メモリ待ち行列シス
テムの使用によって、フォールトトレラント型コンピュ
ータシステムにおけるOSIモデルの速度および実施効
率を高められるかを説明するものである。
【0034】図6は、共用メモリ待ち行列システムを含
んでいないシステムにおいて、応用プロセス602とイ
ーサネット(Ethernet)LAN639との間でデータを
伝送するためのデータパスを示す図である。クライアン
ト応用プロセス602は、ソケットライブラリ604、
ファイルシステム606およびメッセージシステム60
8を含んでいる。前記メッセージシステム608は、同
一のプロセッサ内または他のプロセッサにおけるTCP
/IPプロセス612にデータを送る。同一のプロセッ
サへの送信は、前記データを複写し、前記TCP/IP
プロセス612のメッセージシステム614に送ること
によって実行される。他のプロセッサへの送信は、前記
データを複写し、前記プロセス間バス109を介して送
ることによって実行される。この場合、前記データは、
前記TCP/IPプロセス612に送られる前に、プロ
セス間バス109で再度複写される。
【0035】前記TCP/IPプロセス612は、メッ
セージシステム614、ファイルシステム616および
TCP/IPプロトコル618を含んでいる。前記メッ
セージシステム614およびファイルシステム616
は、これらが同一のプロセッサおよび他のプロセッサの
両方に使用されるものであることを示すために、2回図
示されている。メッセージシステム626は、同一のプ
ロセッサ内または他のプロセッサにおけるTLAMI/
Oプロセス616にデータを送る。前記同一のプロセッ
サへの送信は、前記データを複写し、前記TLAMI/
Oプロセス626のメッセージシステム628に送るこ
とによって実行される。前記他のプロセッサへの送信
は、前記データを複写し、前記プロセス間バス109を
介して送ることによって実行される。この場合、前記デ
ータは、前記TLAMI/Oプロセス626に送られる
前に、プロセス間バス109で再度複写される。
【0036】前記TLAMI/Oプロセス626は、メ
ッセージシステム628、TLAM手続き630、36
13ドライバ632およびカーネルI/Oドライバ63
4を含んでいる。前記ドライバ634はチャネルハード
ウエア636にデータを送り、該ハードウエア636は
イーサネットコントローラ638に前記データを送る。
該イーサネットコントローラ638はLAN639に前
記データを送る。図6のデータパスの不利な点は、前記
メッセージシステムを介してデータを送る度に、該デー
タを少なくとも1回複写しなければならない、というこ
とである。
【0037】図7は、メッセージシステムおよび共用メ
モリ待ち行列システムを含むこの発明の第1の実施の形
態において、応用プロセス702とLAN639との間
で伝送されるデータのデータパスを示す図である。クラ
イアント応用プロセス702は、ソケットライブラリ7
04、ファイルシステム706およびメッセージシステ
ム708を含んでいる。前記メッセージシステム708
は、同一のプロセッサ内または他のプロセッサにおける
TCP/IPプロセス712にデータを送る。前記同一
のプロセッサへの送信は、前記データを複写し、前記T
CP/IPプロセス712のメッセージシステム714
に送ることによって実行される。前記他のプロセッサへ
の送信は、前記データを複写し、前記プロセス間バス1
09を介して送ることによって実行される。この場合、
前記データは、前記プロセス712に送られる前に、プ
ロセス間バス109で再度複写される。
【0038】前記TCP/IPプロセス712は、メッ
セージシステム714およびTCP/IPプロトコル手
続き718を含んでいる。前記メッセージシステム71
4は、前記プロセス702に対してデータを伝送するめ
たに使用される。図7においては、図5および図6に示
した方法で、前記TCP/IPプロセス712とドライ
バ742との間でデータが伝送される。このようにし
て、この発明にあっては、送信中に、データが前記メッ
セージシステムを通る回数が少なく、(750で示す地
点で)データを複写する回数も少なく、従って、LAN
に対してデータを送受信する時間の節約、および、より
効率的な処理が可能になる。
【0039】図8は、この発明の第2の実施の形態にお
いて、応用プロセス102とLAN639との間でデー
タを伝送するためのデータパスを示す図。クライアント
応用プロセス802は、特殊なソケットライブラリ85
0およびQIOライブラリ840を含んでいる。前記プ
ロセス802は、前記ソケットライブラリ850および
QIOライブラリ840を介してデータを列に並ばせ
る。共用メモリ待ち行列システムを介してデータを受信
する場合、TCP/IPプロセス812は、前記プロセ
ス802と同じプロセッサ内に含まれていなければなら
ない。他のプロセッサに対する送受信は、データを複写
し、図1のメッセージシステム(図8には図示せず)を
介して前記プロセス間バス109によって送ることによ
って行われる。同一のプロセッサにおけるプロセスの間
における送信は、概ね、前記共用メモリ待ち行列システ
ムを介して行われる。
【0040】前記TCP/IPプロセス812は、その
QIOライブラリ840のルーチンを介して前記待ち行
列システムから、メッセージを受信する。こうして、こ
の第2の実施の形態においては、データを複写すること
が望ましいとき、および/または、データが前記プロセ
ス間バス109によって送信されるときにのみ、前記デ
ータは前記メッセージシステムを通る。このように複写
回数を減少させることによって、メッセージを送受信す
る単一のプロセッサにおけるプロセス間で通信を行う上
で(例えば、LANによって大量のデータを送受信する
ネットワークマルチメディアにおいて)、大幅な時間節
約および効率向上が実現される。
【0041】図9は、共用メモリ待ち行列システム12
4、150における待ち行列のフォーマット900を示
す図。例えば、図2の待ち行列240は図9のフォーマ
ットで形成されている。待ち行列は、記述子タイプ90
1、人が読める待ち行列名902、最初のメッセージ記
述子(MD)ポインタ904、最後のメッセージ記述子
(MD)ポインタ906、メッセージ記述子カウント値
908、待ち行列属性910、クリエータモジュールI
D912、ユーザが定義した“GET−Q”機能940
へのポインタ914、ユーザが定義した“PUT−Q”
機能950へのポインタ916、および、ユーザが定義
した制御ブロック960へのポインタ918を含んでい
る。
【0042】前記記述子タイプ901は、そのデータ構
造が待ち行列であることを示すものである。前記待ち行
列名902は、例えば“ODBC DIST IN Q”
のようなその待ち行列の名前である。前記最初のメッセ
ージ記述子(MD)ポインタ904は、メッセージの二
重にリンクされたリスト920における最初のメッセー
ジについての最初のメッセージ記述子922であり、前
記最後のメッセージ記述子(MD)ポインタ906は、
前記二重にリンクされたリスト920における最後のメ
ッセージについての最初のメッセージ記述子924であ
る。メッセージのフォーマットについては、図10およ
び図11を参照して後述する。
【0043】前記メッセージ記述子カウント値908
は、前記二重にリンクされたリスト920におけるメッ
セージの数を示す。また、前記待ち行列属性910は、
例えば、データがその入力待ち行列にセットされるとき
にプロセスが呼出されるべきか、などのその待ち行列の
属性を含むものである。前記クリエータモジュールID
912は、その待ち行列を作成したモジュール(または
プロセス)の識別情報である。概ね、待ち行列が非空き
状態(例えば図4および図5を参照)になる度に、前記
共用メモリ待ち行列システムはこのプロセスを呼出す。
前記ポインタ914は、ユーザが定義した“GET−
Q”機能940を指示する。該“GET−Q”機能94
0は、その待ち行列から情報を得るためにGET機能が
実行される度に実行される機能であり、該ユーザが定義
した機能が、前記QIOライブラリにおいて、標準的な
“GET”機能に加えてまたは該標準的な“GET”機
能の代りに実行されることを可能にするものである。例
えば、前記待ち行列がI/Oドライバのための入力待ち
行列である場合、このユーザが定義した“GET−Q”
機能940が、前記ドライバによるI/O動作を開始す
る。また、前記ドライバは、多数の未決定のI/Oを追
跡し、GET(またはPUT)機能が実行される毎にこ
の数を調節することもできる。他別の例として、GET
機能は、待ち行列を作成したプロセスによってハウスキ
ーピングルーチンが実行されるようにすることができ
る。
【0044】前記ポインタ916はユーザが定義した
“PUT−Q”機能を指示するものであり、該PUT−
Q機能は、情報をその待ち行列にセットするために実行
される。該ポインタは、標準的な“PUT”機能に加え
てまたは該標準的な“PUT”機能の代りに、前記ユー
ザが定義した“PUT−Q”機能が実行されることを可
能にするものである。例えば、LANドライバに関連し
た待ち行列において、前記PUT−Q機能は、LAN1
05に情報を出力するためにトランスポート層ルーチン
を呼出すことができる。前記ポインタ918は、ユーザ
が定義した制御ブロック960を指示する。しばしば、
この制御ブロック960は、前記PUT−Q機能および
GET−Q機能の一方または両方に必要な制御ブロック
である。例えば、該制御ブロックは、前記待ち行列シス
テムに情報が送られたときに情報を出力するドライバの
ための制御ブロックである場合がある。
【0045】図10は、図9の二重にリンクされたリス
ト920に格納されたメッセージのフォーマットを示す
図である。メッセージは、リンクされたメッセージ記述
子によって構成されている。(1つまたは複数のメッセ
ージ記述子によって構成される)メッセージは、図9の
リスト920に示すようにリンクされる。図10は、ポ
インタ1014、1014’によってリンクリストとし
て結合され、メッセージを形成するメッセージ記述子9
22、922’を示す。メッセージ記述子は、記述子タ
イプ1004、次メッセージ記述子ポインタ1010、
前メッセージ記述子ポインタ1012、継続メッセージ
記述子ポインタ1014、バッファ記述子(BD)ポイ
ンタ1016、ユーザデータ読出しポインタ1018、
ユーザ書込みポインタ1020およびリターン待ち行列
ポインタ1022を含んでいる。
【0046】図10において、前記メッセージ記述子9
22、922’は1つのメッセージを形成している。前
記記述子タイプ1004は、その記述子がメッセージ記
述子であることを示すものである。前記次メッセージ記
述子ポインタ1010は、前記二重にリンクされたリス
ト920に格納された前のメッセージの最初のメッセー
ジ記述子を指示するものである。前記継続メッセージ記
述子ポインタ1014は、現在のメッセージの次のメッ
セージ記述子を指示するものである。分散したデータは
多数のメッセージ記述子を必要とし、1つのメッセージ
は、異なるバッファ位置のデータを指示する多数のメッ
セージ記述子によって構成されることがある。そこで、
前記バッファ記述子(BD)ポインタ1016は1つの
バッファ記述子1030を指示するものであり、このバ
ッファ記述子は図11を参照して後述する。前記バッフ
ァ記述子1030は、データバッファ1040を指示す
るものである。
【0047】さらに、前記ユーザデータ読出しポインタ
1018は、読出しを開始すべき(または、読出しが終
了した)データバッファ1040における位置を示すポ
インタである。前記ユーザ書込みポインタ1020は、
書込みを開始すべき(または、書込みが終了した)デー
タバッファ1040における位置を示すポインタであ
る。さらに、前記リターン待ち行列ポインタ1022
は、リターン待ち行列を指示するものである。前記共用
メモリ待ち行列システムを介してメッセージがリターン
されると(すなわち、前記メッセージの処理が完了する
と)、リターン待ち行列が明示されている場合、前記リ
ターンされたメッセージは該リターン待ち行列にセット
される。例えば、現在のプロセスが、送られたメッセー
ジをカウントする必要があることがある。前記待ち行列
から除去されたメッセージを“フリーメモリプール”に
入れる代りに、前記メッセージは、現在のプロセスによ
るいっそうの処理をうけるために前記リターン待ち行列
にセットされる。メッセージにおける他のメッセージ記
述子は、異なる、補助的なリターン待ち行列ポインタ1
022’を有することもあるし、全く有さないこともあ
る。これらの補助的なリターン待ち行列ポインタは、主
リターン待ち行列ポインタに関連した個々のプロセスに
よって処理される。
【0048】図11は、図10のメッセージの一部分で
あるバッファ記述子1030のフォーマットを示す図で
ある。該バッファ記述子1030は、記述子タイプ11
02、データバッファベースポインタ1108、データ
バッファリミットポインタ1110およびデータバッフ
ァ長さ1112を含んでいる。前記記述子タイプ110
2は、その記述子がバッファ記述子であることを示し、
前記データバッファベースポインタ1108は、メモリ
におけるデータバッファ1140のベースを指示するも
のである。前記データバッファリミットポインタ111
0は、データバッファ1140の終わりを指示し、前記
データバッファ長1112は、データバッファ1140
の長さである。
【0049】以上説明したことを要約すると、共用メモ
リ待ち行列システムを使用することによって、単一プロ
セッサ内におけるプロセス間の通信動作時間を高速化で
き、その結果、当該システムのおける全体的な処理速度
を高めることができる。さらに、共用メモリ待ち行列シ
ステムを使用することによって、各種プロセスを定義す
る際、プログラマは自由に垂直方向のモジュール性およ
び水平方向のモジュール性を実現できる。このようなモ
ジュール性の向上によって、各種プロセス間および各種
プロセスとドライバとの間における効率的なデータ伝送
を可能にしながら、前記プロセスの保守の容易性を向上
できる。さらに、上記実施の形態は、送信時にデータが
複写されるメッセージシステムを含んでいる。このよう
な複写は、例えば故障許容性を保証する上で望ましい。
これらのプロセス間送信をチェックポイントすることに
よって確実性が付加されるので、上記のようにプロセス
間でメッセージを複写することによって損なわれる実行
速度が受入れ可能なものになる。
【0050】
【発明の効果】以上のように、この発明は、データ処理
システムにおける各種プロセス間、および、各種プロセ
スとドライバとの間のデータ伝送効率を高めることがで
きる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】共用メモリ待ち行列システムを組込んだフォー
ルトトレラント型、並列データ処理システムを示すブロ
ック図。
【図2】図1の第1のプロセッサを示すブロック図。
【図3】図1の第2のプロセッサを示すブロック図。
【図4】TCP/IPプロセスおよびTLAM IOP
の各々が、共用メモリ待ち行列システムを介してLAN
からメッセージを受け取る動作を説明する図。
【図5】前記TCP/IPプロセスおよびTLAM I
OPの各々が、前記共用メモリ待ち行列システムを介し
て前記LANからメッセージを送る動作を説明する図。
【図6】共用メモリ待ち行列システムを含んでいないシ
ステムにおいて、応用プロセスからLANに出力される
データのデータパスを示す図。
【図7】この発明の第1の実施の形態において、応用プ
ロセスからLANに出力されるデータのデータパスを示
す図。
【図8】この発明の第2の実施の形態において、応用プ
ロセスからLANに出力されるデータのデータパスを示
す図。
【図9】前記共用メモリ待ち行列システムにおける待ち
行列のフォーマットを示す図。
【図10】図9の待ち行列に格納されたメッセージのフ
ォーマットを示す図。
【図11】図10のメッセージの一部分であるバッファ
記述子のフォーマットを示す図。
【図12】QIQイベントにおいて前記共用メモリ待ち
行列システムによって使用されるイベントマスクおよび
補助マスクを示す図。
【符号の説明】
100 データ処理システム 102 ノード 104 ワークステーション 105 ローカルエリアネットワーク(LAN) 106 第1のプロセッサ 108 第2のプロセッサ 109 プロセス間バス(IPB) 110 CPU 112 メモリ 114 ディスクコントローラ 116 ディスクドライブ 120 ソフトウエアプロセス 122 ディスクプロセス 124 共用メモリ部 125 待ち行列 126 QIOライブラリルーチン 128 メッセージシステム(MS) 130 ファイルシステム(FS)
フロントページの続き (72)発明者 トーマス・エム・クラーク アメリカ合衆国 95065 カリフォルニア, サンタクルズ,グラナイト・クリード・ロ ード 1333

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも第1のプロセッサおよび第2
    のプロセッサを有するデータ処理システムにおいて複数
    のプロセスの間でメッセージを伝送する方法であって、 前記データ処理システムのメモリ内に共用メモリ部を設
    けるステップと、 前記共用メモリ部内に、前記第1のプロセッサにおける
    第1のプロセスのための入力待ち行列を作成するステッ
    プと、 前記第1のプロセッサにおける第2のプロセスによっ
    て、伝送すべきメッセージを指示するポインタを前記第
    1のプロセスの入力待ち行列内に格納するステップと、 前記第1のプロセスの入力待ち行列に格納された前記ポ
    インタによって指示される前記メッセージを、前記第1
    のプロセスによって消費するステップと、 前記データ処理システムにおける故障許容性を保証する
    ために、前記第1のプロセッサから前記第2のプロセッ
    サに伝送されるメッセージをチェックポイントするステ
    ップであって、チェックポイントの際に該メッセージを
    複写するが、前記第1のプロセスの入力待ち行列内に格
    納されているときは複写しないようにする該ステップと
    を具備し、これらのステップが前記データ処理システム
    によって実行されるメッセージ伝送方法。
  2. 【請求項2】 少なくとも第1のプロセッサおよび第2
    のプロセッサを有するデータ処理システムにおいて複数
    のプロセスの間でメッセージを伝送する方法であって、 前記データ処理システムのメモリ内に共用メモリ部を設
    けるステップと、 前記共用メモリ部内に、前記第1のプロセッサにおける
    第1のプロセスのための入力待ち行列を作成するステッ
    プと、 前記第1のプロセッサにおける第2のプロセスによっ
    て、伝送すべきメッセージを指示するポインタを前記第
    1のプロセスの入力待ち行列内に格納し、これにより、
    前記第1及び第2のプロセス間でメッセージを伝送する
    ステップと、 前記第1のプロセスの入力待ち行列に格納された前記ポ
    インタによって指示される前記メッセージを、前記第1
    のプロセスによって消費するステップと、 前記メッセージを複写するメッセージシステムを使用す
    ることによって前記第1のプロセスと第3のプロセスと
    の間で前記メッセージを伝送するステップであって、こ
    の第1のプロセスと第3のプロセスとの間で前記メッセ
    ージを伝送するステップは、前記ポインタを前記第1の
    プロセスの入力待ち行列内に格納するステップよりも時
    間がかかるものであるものとを具備し、これらのステッ
    プが前記データ処理システムによって実行されるメッセ
    ージ伝送方法。
  3. 【請求項3】 前記第1のプロセスおよび前記第3のプ
    ロセスが、それぞれ、前記第1のプロセッサおよび前記
    第2のプロセッサによって実行され、プロセス間バスに
    よって前記第1のプロセスと第3のプロセスとの間で前
    記メッセージを伝送するステップをさらに含む請求項2
    に記載の方法。
  4. 【請求項4】 前記第1のプロセスおよび前記第3のプ
    ロセスの両方が、前記第1のプロセッサによって実行さ
    れる請求項2に記載の方法。
JP8029971A 1995-01-23 1996-01-23 メッセージ伝送方法 Pending JPH10307732A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37730395A 1995-01-23 1995-01-23
US08/377,303 1995-01-23

Publications (1)

Publication Number Publication Date
JPH10307732A true JPH10307732A (ja) 1998-11-17

Family

ID=23488561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8029971A Pending JPH10307732A (ja) 1995-01-23 1996-01-23 メッセージ伝送方法

Country Status (4)

Country Link
US (1) US6393503B2 (ja)
EP (1) EP0725345A1 (ja)
JP (1) JPH10307732A (ja)
CA (1) CA2167632A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671792B1 (en) * 2000-04-28 2003-12-30 Hewlett-Packard Development Company, L.P. Share masks and alias for directory coherency
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
US7171509B2 (en) * 2002-01-09 2007-01-30 International Business Machines Corporation Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices
US7310724B2 (en) * 2003-06-30 2007-12-18 Intel Corporation Parallel execution of enhanced EFI based BIOS drivers on a multi-processor or hyper-threading enabled platform
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US20050086667A1 (en) * 2003-09-30 2005-04-21 Feng Jin Symmetric Scheduling for parallel execution
US8370855B2 (en) * 2008-12-23 2013-02-05 International Business Machines Corporation Management of process-to-process intra-cluster communication requests
US9098354B2 (en) * 2008-12-23 2015-08-04 International Business Machines Corporation Management of application to I/O device communication requests between data processing systems
US8521895B2 (en) * 2008-12-23 2013-08-27 International Business Machines Corporation Management of application to application communication requests between data processing systems
US8499029B1 (en) 2008-12-23 2013-07-30 International Business Machines Corporation Management of process-to-process communication requests
US9009214B2 (en) * 2008-12-23 2015-04-14 International Business Machines Corporation Management of process-to-process inter-cluster communication requests
CN102147751B (zh) * 2011-04-26 2012-11-21 北京新媒传信科技有限公司 一种多进程间的通信方法
CN104391662B (zh) * 2014-12-12 2018-02-09 北京奇虎科技有限公司 一种数据读写方法及装置
CN114691051B (zh) * 2022-05-30 2022-10-04 恒生电子股份有限公司 数据处理方法以及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
GB8328396D0 (en) * 1983-10-24 1983-11-23 British Telecomm Multiprocessor system
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
US5222217A (en) 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
EP0444376B1 (en) 1990-02-27 1996-11-06 International Business Machines Corporation Mechanism for passing messages between several processors coupled through a shared intelligent memory
EP0537401A1 (en) * 1991-10-16 1993-04-21 International Business Machines Corporation Method for exchanging messages between a shared memory and communication adapters using an efficient logical protocol
US5649092A (en) * 1994-04-21 1997-07-15 Unisys Corporation Fault tolerant apparatus and method for maintaining one or more queues that are shared by multiple processors

Also Published As

Publication number Publication date
US6393503B2 (en) 2002-05-21
CA2167632A1 (en) 1996-07-24
US20010023467A1 (en) 2001-09-20
EP0725345A1 (en) 1996-08-07

Similar Documents

Publication Publication Date Title
EP0790562B1 (en) Computer system data I/O by reference among CPUs and I/O devices
US6868442B1 (en) Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment
US7233984B2 (en) Light weight file I/O over system area networks
Kronenberg et al. VAXcluster: A closely-coupled distributed system
US5652885A (en) Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
JP3266481B2 (ja) クラスタ化コンピューティング・システムのディスク・アクセス・パスにおける障害から回復する方法および関連する装置
US6044415A (en) System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection
US5434975A (en) System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
TW544589B (en) Loosely coupled-multi processor server
US5954794A (en) Computer system data I/O by reference among I/O devices and multiple memory units
US5852719A (en) System for transferring data over a network in which a data source sends only a descriptor which a data sink uses to retrieve data
JPH10307732A (ja) メッセージ伝送方法
US7140015B1 (en) Microkernel for real time applications
US5941959A (en) System for transferring a data stream to a requestor without copying data segments to each one of multiple data source/sinks during data stream building
US6032267A (en) Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system
EP0614139A2 (en) External procedure call for distributed processing environment
Liu et al. Zoro: A robotic middleware combining high performance and high reliability
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
US5931903A (en) Computer system data I/O by reference among multiple CPUS
Maginnis Design considerations for the transformation of MINIX into a distributed operating system
EP0139727A1 (en) Multi-computer computer architecture
Whitcroft TimWilkinson NickWilliams PeterOsmon Systems Architecture Research Centre City University London England {trs| andy| tim| njw| p. osmon}@ cs. city. ac. uk
JP2001236334A (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JP2005043940A (ja) 計算機システム