JP2000339181A - プロセス間通信方法およびプロセス間通信装置 - Google Patents

プロセス間通信方法およびプロセス間通信装置

Info

Publication number
JP2000339181A
JP2000339181A JP11149363A JP14936399A JP2000339181A JP 2000339181 A JP2000339181 A JP 2000339181A JP 11149363 A JP11149363 A JP 11149363A JP 14936399 A JP14936399 A JP 14936399A JP 2000339181 A JP2000339181 A JP 2000339181A
Authority
JP
Japan
Prior art keywords
message
transmission
message identifier
user process
thread
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
JP11149363A
Other languages
English (en)
Inventor
Toru Kakinuma
徹 柿沼
Hikari Seshiyaka
光 瀬社家
Masaya Koyabu
正哉 小薮
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.)
Nippon Telegraph and Telephone Corp
Oki Electric Industry Co Ltd
Original Assignee
Nippon Telegraph and Telephone Corp
Oki Electric Industry Co Ltd
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 Nippon Telegraph and Telephone Corp, Oki Electric Industry Co Ltd filed Critical Nippon Telegraph and Telephone Corp
Priority to JP11149363A priority Critical patent/JP2000339181A/ja
Publication of JP2000339181A publication Critical patent/JP2000339181A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ユーザプロセス単位で排他制御を行うように
して、メッセージシーケンスが崩れないようにする。 【解決手段】 送信元のユーザプロセス10aは、共有
メモリ14にメッセージを書き込むと共に、このメッセ
ージに対応するメッセージ識別子を通信制御プロセス2
8に送信する。送信先のユーザプロセス10bは、通信
制御プロセスからメッセージ識別子を受信すると、この
メッセージ識別子に対応するメッセージを共有メモリか
ら読み出す。通信制御プロセスは、送信元のユーザプロ
セスからメッセージ識別子を受信すると、当該送信元の
ユーザプロセスに対するメッセージ識別子の受信を禁止
するロック状態を設定すると共に、当該送信元のユーザ
プロセスから受信したメッセージ識別子を、送信先のユ
ーザプロセスへ送信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータシ
ステム上のプロセス間通信を実現する方法および装置に
関する。
【0002】
【従来の技術】一般に、コンピュータシステムでは、ユ
ーザプロセス間で通信が行えることが必須になってい
る。多くのシステムでは、通信制御プロセスを用いて、
各ユーザプロセス間の通信動作を制御している。この通
信制御プロセスでは、多数のユーザプロセスからメッセ
ージ送信要求を受けることが予想される。そのため、通
信制御プロセスを、メッセージ受信用の複数個の受信ス
レッドと、メッセージ送信用の複数個の送信スレッドと
を具えたマルチスレッド構成とすることにより、メッセ
ージ転送速度の高速化を図っている。
【0003】また、通信制御プロセスでは、受信スレッ
ドで受信されたメッセージ識別子が、バッファを経て送
信スレッドに送られた後、送信先のユーザプロセスに送
られる。このとき、メッセージの順序性および正常性を
保つため、各スレッドにてバッファに対する排他制御が
行われる。
【0004】
【発明が解決しようとする課題】しかしながら、バッフ
ァに対する排他制御を行うだけでは、以下に説明する問
題が生じる。先ず、図6を参照して、従来のプロセス間
通信装置の構成につき説明する。
【0005】従来のプロセス間通信装置は、複数個のユ
ーザプロセス10と、通信制御プロセス12と、共有メ
モリ14とを具えている。各ユーザプロセス10は、通
信制御プロセス12を介して、相互にメッセージ識別子
の送受信を行う。ユーザプロセス10から送信されたメ
ッセージは、共有メモリ14に書き込まれる。ユーザプ
ロセス10は、そのメッセージに対応するメッセージ識
別子を通信制御プロセス12に送信する。このメッセー
ジ識別子は、共有メモリ14中の、メッセージが書き込
まれた記憶場所を示す先頭アドレスである。受信側のユ
ーザプロセス10では、通信制御プロセス12からメッ
セージ識別子を受け取ると、そのメッセージ識別子に対
応したメッセージを共有メモリ14から読み出す。
【0006】また、通信制御プロセス12は、複数個の
受信スレッド16と、複数個の送信スレッド18と、バ
ッファ20とで構成されている。受信スレッド16は、
ユーザプロセス10から送られたメッセージ識別子を、
バッファ20に送り出す。バッファ20から取り出され
たメッセージ識別子は、送信スレッド18を介して、送
信先のユーザプロセス10へ送られる。
【0007】次に、あるユーザプロセス10aから別の
ユーザプロセス10bへ応答型のメッセージが送信され
る場合を考える。先ず、送信元のユーザプロセス10a
は、受信スレッド16aに対して送信要求を行う。続い
て、ユーザプロセス10aは、共有メモリ14にメッセ
ージを書き込み、受信スレッド16aに対してメッセー
ジ識別子22を送信する。受信スレッド16aは、メッ
セージ識別子22をバッファ20に送信する。その際、
受信スレッド16aは、他の受信スレッドからバッファ
20に対してメッセージ識別子が送信されないようにす
るため、バッファ20をロック状態にする。このように
して、バッファ20に対する排他制御が行われる。
【0008】また、このバッファ20は、保持している
データを、その入力順に出力するものである。バッファ
20から出力されたメッセージ識別子22は、所定の送
信スレッド18bに送られる。送信スレッド18bは、
送信先のユーザプロセス10bに対してメッセージ識別
子22を送信する。このユーザプロセス10bは、受信
したメッセージ識別子22に基づいて、共有メモリ14
からメッセージを読み出す。その後、バッファ20のロ
ック状態が解除される。
【0009】続いて、ユーザプロセス10bは、メッセ
ージを受信したことを送信元のユーザプロセス10aに
対して通知する。そのため、ユーザプロセス10bは、
メッセージ受信完了通知24を受信スレッド16bに対
して送信する。受信スレッド16bは、バッファ20を
ロック状態にして、メッセージ受信完了通知24をバッ
ファ20に送信する。バッファ20から出力されたメッ
セージ受信完了通知24は、所定の送信スレッド18a
に送られる。送信スレッド18aは、送信元のユーザプ
ロセス10aに対してメッセージ受信完了通知24を送
信する。
【0010】しかし、ユーザプロセス10aは、常にメ
ッセージ送信だけを行っているわけではなく、別のユー
ザプロセスからメッセージを受信する場合もある。例え
ば、ユーザプロセス10cからユーザプロセス10aへ
メッセージが送信される場合を考える。上記の例と同様
に、ユーザプロセス10cから送信されたメッセージ識
別子26は、受信スレッド16c、バッファ20および
送信スレッド18cを順次に経て、ユーザプロセス10
aに送られる。
【0011】ここで、このユーザプロセス10cからの
メッセージ識別子26の送信が、ユーザプロセス10b
からのメッセージ受信完了通知24の送信よりも早い時
期に行われたとする。すると、ユーザプロセス10a
は、ユーザプロセス10cから送られたメッセージ識別
子26を、ユーザプロセス10bから送られたメッセー
ジ受信完了通知であると認識してしまう。そして、既に
メッセージ受信完了通知が受信されたことになるため、
本来のメッセージ受信完了通知24は破棄されてしま
う。
【0012】以上説明したように、ユーザプロセス間の
相互でメッセージ送信要求が発生した場合には、メッセ
ージシーケンスが崩れてしまい、本来送信すべきメッセ
ージが相手プロセスに到達しない可能性が生じる。この
ように、通信制御プロセスがメッセージ送信要求を受け
付けるタイミングにより、メッセージシーケンスが崩れ
てしまう。よって、バッファ20に対する排他制御を行
っているだけでは不十分であり、ユーザプロセス単位で
排他制御を行う必要がある。
【0013】従って、従来より、ユーザプロセス単位で
排他制御を行うプロセス間通信方法およびプロセス間通
信装置の出現が望まれていた。
【0014】
【課題を解決するための手段】そこで、この発明のプロ
セス間通信方法によれば、複数個の受信スレッドと、複
数個の送信スレッドと、バッファと、メモリとを具える
通信制御プロセスを使用して、ユーザプロセス間でメッ
セージ転送を行うプロセス間通信方法であって、(a)
受信スレッドに送信元のユーザプロセスからメッセージ
の送信要求が有ったとき、メモリの記憶内容を参照し
て、当該送信元のユーザプロセスが送信可能状態にある
ことを確認するステップと、(b)メモリに、送信元の
ユーザプロセスを送信先とするメッセージ識別子の受信
を禁止するロック状態を設定するステップと、(c)送
信元のユーザプロセスから送信されたメッセージを共有
メモリに書き込むと共に、このメッセージに対応するメ
ッセージ識別子を受信スレッドに送るステップと、
(d)メッセージ識別子を、排他制御が可能なバッファ
に送るステップと、(e)バッファから取り出したメッ
セージ識別子を、送信スレッドを介して送信先のユーザ
プロセスに送るステップと、(f)この送信先のユーザ
プロセスに、メッセージ識別子に基づいて、共有メモリ
からメッセージを読み出すステップと、(g)メモリに
設定されたロック状態を解除するステップとを含むこと
を特徴とする。
【0015】このように、メモリにロック状態を設定す
ることにより、送信元のユーザプロセスを送信先とする
メッセージ識別子の受信が禁止される。従って、ユーザ
プロセス単位で排他制御を行うので、メッセージ送信要
求を受け付けるタイミングにより、メッセージシーケン
スが崩れてしまうこともない。よって、プロセス間通信
の処理速度を劣化させることなく、正常にメッセージを
送信することが可能になる。
【0016】この発明のプロセス間通信方法において、
好ましくは、(a)ステップでは、送信元のユーザプロ
セスに対するロック状態が他の受信スレッドに対して設
定されているとき、このロック状態が解除されるまで待
ち状態にすると良い。
【0017】また、この発明のプロセス間通信方法にお
いて、好ましくは、送信元のユーザプロセスと送信先の
ユーザプロセスとが、通信制御プロセスをそれぞれ具え
た別々のコンピュータシステム上にある場合、送信元の
ユーザプロセスを具えたコンピュータシステムでは、
(a)〜(d)ステップを行った後、バッファから取り
出したメッセージ識別子を、送信スレッドを介して、送
信先のユーザプロセスを具えるコンピュータシステムの
通信制御プロセスに送るステップを行い、続いて(g)
ステップを行うと良い。
【0018】また、この発明のプロセス間通信方法にお
いて、好ましくは、送信先のユーザプロセスを具えたコ
ンピュータシステムでは、受信スレッドにメッセージ識
別子が送られたとき、メモリの記憶内容を参照して、送
信先のユーザプロセスが受信可能状態にあることを確認
するステップと、メモリに、送信先のユーザプロセスを
送信先とするメッセージ識別子の受信を禁止するロック
状態を設定するステップと、送信元のユーザプロセスを
具えたコンピュータシステムから送信されたメッセージ
を、送信先のユーザプロセスを具えたコンピュータシス
テムの共有メモリに書き込むと共に、このメッセージに
対応するメッセージ識別子をバッファに送るステップ
と、バッファから取り出したメッセージ識別子を、送信
スレッドを介して送信先のユーザプロセスに送るステッ
プと、この送信先のユーザプロセスに、メッセージ識別
子に基づいて、共有メモリからメッセージを読み出すス
テップと、メモリに設定されたロック状態を解除するス
テップとを含むと良い。
【0019】このように、複数のコンピュータシステム
上の各々の通信制御プロセス間でメッセージ識別子の送
受信が行えるので、送信元のユーザプロセスと送信先の
ユーザプロセスとが別々のコンピュータシステム上にあ
ってもプロセス間通信が行える。
【0020】また、この発明のプロセス間通信装置によ
れば、複数個のユーザプロセスと、通信制御プロセス
と、共有メモリとを具え、ユーザプロセス間でメッセー
ジ転送を行うプロセス間通信装置であって、送信元のユ
ーザプロセスは、共有メモリにメッセージを書き込むと
共に、このメッセージに対応するメッセージ識別子を通
信制御プロセスに送信するものであり、送信先のユーザ
プロセスは、通信制御プロセスからメッセージ識別子を
受信すると、このメッセージ識別子に対応するメッセー
ジを共有メモリから読み出すものであり、通信制御プロ
セスは、送信元のユーザプロセスからメッセージ識別子
を受信すると、当該送信元のユーザプロセスに対するメ
ッセージ識別子の受信を禁止するロック状態を設定する
と共に、当該送信元のユーザプロセスから受信したメッ
セージ識別子を、送信先のユーザプロセスへ送信するも
のであることを特徴とする。
【0021】このように、通信制御プロセスにより、送
信元のユーザプロセスを送信先とするメッセージ識別子
の受信が禁止される。従って、ユーザプロセス単位で排
他制御が行われるので、メッセージ送信要求を受け付け
るタイミングにより、メッセージシーケンスが崩れてし
まうこともない。よって、プロセス間通信の処理速度を
劣化させることなく、正常にメッセージを送信すること
が可能になる。
【0022】この発明のプロセス間通信装置において、
好ましくは、通信制御プロセスは、複数個の受信スレッ
ドと、複数個の送信スレッドと、バッファと、メモリと
を具えており、ユーザプロセスと通信制御プロセスとの
間のメッセージ識別子の送受信が受信スレッドおよび送
信スレッドを介して行われるように構成され、受信スレ
ッドに受信されたメッセージ識別子が、バッファを経
て、送信スレッドに送られるようになっており、メモリ
には、ユーザプロセスごとに記憶領域が画成されてい
て、各記憶領域には、ロック状態と共に、メッセージ識
別子を受信した受信スレッドの識別子が記憶されると良
い。
【0023】
【発明の実施の形態】以下、図を参照して、この発明の
実施の形態につき説明する。尚、図は、この発明が理解
できる程度に、接続関係および配置関係を概略的に示し
ているに過ぎない。また、以下に記載される数値等の条
件は単なる一例に過ぎない。よって、この発明は、この
実施の形態に何ら限定されるものではない。
【0024】[第1の実施の形態]先ず、この実施の形
態のプロセス間通信装置の構成につき、図1を参照して
説明する。図1は、第1の実施の形態のプロセス間通信
装置の構成を示すブロック図である。
【0025】このプロセス間通信装置は、複数個のユー
ザプロセス10と、通信制御プロセス28と、共有メモ
リ14とを具えており、ユーザプロセス間でメッセージ
転送を行うものである。各ユーザプロセス10は、通信
制御プロセス28を介して、相互にメッセージ識別子の
送受信を行う。ユーザプロセス10から送信されたメッ
セージは、共有メモリ14に書き込まれる。ユーザプロ
セス10は、そのメッセージに対応するメッセージ識別
子を通信制御プロセス28に送信する。このメッセージ
識別子は、共有メモリ14中の、メッセージが書き込ま
れた記憶場所を示す先頭アドレスである。受信側のユー
ザプロセス10では、通信制御プロセス28からメッセ
ージ識別子を受け取ると、そのメッセージ識別子に対応
したメッセージを共有メモリ14から読み出す。
【0026】このように、送信元のユーザプロセス10
(以下、番号10aで表す。)は、共有メモリ14にメ
ッセージを書き込むと共に、このメッセージに対応する
メッセージ識別子を通信制御プロセス28に送信する。
また、送信先のユーザプロセス10(以下、番号10b
で表す。)は、通信制御プロセス28からメッセージ識
別子を受信すると、このメッセージ識別子に対応するメ
ッセージを共有メモリ14から読み出す。
【0027】そして、通信制御プロセス28は、送信元
のユーザプロセス10aからメッセージ識別子を受信す
ると、当該送信元のユーザプロセス10aに対するメッ
セージ識別子の受信を禁止するロック状態を設定すると
共に、当該送信元のユーザプロセス10aから受信した
メッセージ識別子を、送信先のユーザプロセス10bへ
送信する。この点が、本実施の形態の構成の特色になっ
ている。
【0028】このため、上述の通信制御プロセス28
は、複数個の受信スレッド16と、複数個の送信スレッ
ド18と、バッファ20と、プロセスロックリソース3
0とで構成されている。受信スレッド16は、ユーザプ
ロセス10aから送られたメッセージ識別子を、バッフ
ァ20に送り出す。バッファ20から取り出されたメッ
セージ識別子は、送信スレッド18を介して、送信先の
ユーザプロセス10bへ送られる。このように、ユーザ
プロセス10と通信制御プロセス28との間のメッセー
ジ識別子の送受信が、受信スレッド16および送信スレ
ッド18を介して行われるように構成されている。ま
た、受信スレッド16に受信されたメッセージ識別子
が、バッファ20を経て、送信スレッド18に送られる
ようになっている。
【0029】そして、上述のプロセスロックリソース3
0は、上述のロック状態をユーザプロセス10ごとに記
憶するメモリである。このプロセスロックリソース(以
下、単にメモリと称する。)30には、ユーザプロセス
10ごとに記憶領域が画成されている。各記憶領域に
は、ロック状態と共に、メッセージ識別子を受信した受
信スレッド16の識別子が記憶される。
【0030】この例のメモリ30は、通信制御プロセス
28の初期起動時に全ユーザプロセス分の記憶エリアを
確保する。例えば、ユーザプロセス10の個数がn個
(nは自然数)であるとき、メモリ30には、n個の記
憶エリアが画成される。そして、各記憶エリアがユーザ
プロセスに対して個別に対応される。例えば、ユーザプ
ロセス10aに対応する記憶エリア30aや、ユーザプ
ロセス10bに対応する記憶エリア30bがメモリ30
中に形成される。これら記憶エリアには、対応するユー
ザプロセスのロック状態が記憶される。ロック状態が設
定されると、そのユーザプロセスを送信先とするメッセ
ージ受信が禁止される。ロック状態が解除されると、メ
モリ30には非ロック状態が設定されることになる。ま
た、スレッド識別子は、受信スレッド16を個別に識別
するためのものである。メッセージ送信要求を受信した
受信スレッド16(例えば、番号16aで表す。)は、
要求を行ったユーザプロセス(例えば、番号10aで表
す。)の記憶エリアに、ロック状態と当該受信スレッド
16aのスレッド識別子とを記録する。これにより、ユ
ーザプロセス10aが、受信スレッド16aによりロッ
クされているということがメモリ30に設定される。初
期状態では、全ての記憶エリアのスレッド識別子が
「0」になっており、各記憶エリアには非ロック状態が
設定されている。
【0031】次に、あるユーザプロセス10aから別の
ユーザプロセス10bへメッセージが送信される場合を
例にして、この実施の形態のプロセス間通信装置の動作
につき説明する。その際、図2に示すフローチャートを
参照する。
【0032】先ず、送信元のユーザプロセス10aは、
受信スレッド16aに対して送信要求を行う(図2のS
1)。このとき、受信スレッド16aは、メモリ30の
記憶内容を参照して、当該送信元のユーザプロセス(以
下、送信プロセスと略称する。)10aが送信可能状態
にあることを確認する。すなわち、送信プロセス10a
に対してロック状態が設定されているか否かを判断する
(図2のS2)。
【0033】次に、送信プロセス10aに対してロック
状態が設定されていない場合、受信スレッド16aは、
送信プロセス10aを送信先とするメッセージ識別子の
受信を禁止するロック状態を、メモリ30に設定する
(図2のS3)。このように、送信プロセス10aに対
する排他制御が行われる。
【0034】一方、送信プロセス10aが他の受信スレ
ッド16によりロックされている場合は、他の受信スレ
ッド16により、送信プロセス10aを送信先とするメ
ッセージ識別子の受信中である。従って、受信スレッド
16aは待ち状態となる。このロック状態が解除された
後に、受信スレッド16aが送信プロセス10aに対す
るロック状態をメモリ30に設定する(図2のS3)。
【0035】尚、送信プロセス10aが受信スレッド1
6aによりロックされている場合は、メモリ30の設定
を変更せずに、処理を続行する。
【0036】次に、受信スレッド16aは、バッファ2
0がロックされているか否かを確認する(図2のS
4)。ロックされている場合は、バッファ20が他の受
信スレッド16からのメッセージ識別子を受信中なの
で、待ち合わせを行う。ロックが解除された後、受信ス
レッド16aはバッファ20をロック状態にして、他の
受信スレッド16からバッファ20へメッセージ識別子
が送信されないようにする(図2のS5)。このよう
に、バッファ20に対する排他制御も行われる。
【0037】続いて、送信プロセス10aから送信され
たメッセージが共有メモリ14に書き込まれると共に、
このメッセージに対応するメッセージ識別子32が受信
スレッド16aに送られる(図2のS6)。さらに、受
信スレッド16aは、受信したメッセージ識別子32を
バッファ20に送る(キューイング)。このバッファ2
0は、保持しているデータをその入力順に出力するもの
であるため、バッファ20中における入力データの順序
性は保たれている。続いて、受信スレッド16aは、送
信プロセス10aに対して、要求されたメッセージが通
信制御プロセス28に受信されたことを通知する(図2
のS7)。その後、所定の送信スレッド18aに後の処
理を移行する。
【0038】この送信スレッド18aは、バッファ20
からメッセージ識別子32を受け取ると、このメッセー
ジ識別子32を送信先のユーザプロセス10bに対して
送信する(図2のS8)。このユーザプロセス10b
は、受信したメッセージ識別子32に基づいて、共有メ
モリ14から所定のメッセージを読み出す。
【0039】メッセージ送信完了後、送信スレッド18
aは、バッファ20のロック状態を解除し(図2のS
9)、それと共にユーザプロセス10aに対するロック
状態を解除する(図2のS10)。
【0040】[第2の実施の形態]図3は、第2の実施
の形態のプロセス間通信装置の構成を示すブロック図で
ある。図3には、複数のコンピュータシステムCS1お
よびCS2が示されており、これらコンピュータシステ
ムCS1およびCS2は、それぞれ、図1に示した構成
を有している。
【0041】すなわち、各コンピュータシステムCS1
およびCS2は、ユーザプロセス101および102を
それぞれ具えている。また、各コンピュータシステムC
S1およびCS2は、通信制御プロセス281および2
82をそれぞれ具えている。通信制御プロセス281
は、受信スレッド161、送信スレッド181、バッフ
ァ201およびメモリ301を具えている。また、通信
制御プロセス282は、受信スレッド162、送信スレ
ッド182、バッファ202およびメモリ302を具え
ている。さらに、各コンピュータシステムCS1および
CS2は、共有メモリ141および142をそれぞれ具
えている。
【0042】そして、各コンピュータシステム上の通信
制御プロセス間では、メッセージ識別子の送受信が相互
に行われるように構成されている。ユーザプロセスに対
するロックは、ロックされるユーザプロセスと同じコン
ピュータシステム上に存在する通信制御プロセスにより
行われる。また、各共有メモリ141および142間
で、メッセージの送受信が行えるようになっている。
【0043】ここで、コンピュータシステムCS1上の
ユーザプロセス101aから、別のコンピュータシステ
ムCS2上のユーザプロセス102aへメッセージが送
信される場合を例にして、この実施の形態のプロセス間
通信装置の動作につき説明する。その際、図4および図
5に示すフローチャートを参照する。
【0044】<コンピュータシステムCS1における処
理>先ず、コンピュータシステムCS1における処理に
つき説明する。送信元のユーザプロセス101aは、通
信制御プロセス281中の受信スレッド161に対して
送信要求を行う(図4のS1)。この受信スレッド16
1は、通信制御プロセス281中のメモリ301の記憶
内容を参照して、当該送信プロセス101aが送信可能
状態にあることを確認する。すなわち、送信プロセス1
01aに対してロック状態が設定されているか否かを判
断する(図4のS2)。
【0045】次に、送信プロセス101aに対してロッ
ク状態が設定されていない場合、受信スレッド161
は、送信プロセス101aを送信先とするメッセージ識
別子の受信を禁止するロック状態を、メモリ301に設
定する(図4のS3)。
【0046】一方、送信プロセス101aが他の受信ス
レッドによりロックされている場合は、受信スレッド1
61が待ち状態となる。このロック状態が解除された後
に、受信スレッド161が送信プロセス101aに対す
るロック状態をメモリ301に設定する(図4のS
3)。
【0047】次に、受信スレッド161は、通信制御プ
ロセス281のバッファ201がロックされているか否
かを確認する(図4のS4)。ロックされている場合
は、バッファ201が他の受信スレッドからのメッセー
ジ識別子を受信中なので、待ち合わせを行う。ロックが
解除された後、受信スレッド161はバッファ201を
ロック状態にして、他の受信スレッドからバッファ20
1へメッセージ識別子が送信されないようにする(図4
のS5)。
【0048】続いて、送信プロセス101aから送信さ
れたメッセージが共有メモリ141に書き込まれると共
に、このメッセージに対応するメッセージ識別子34が
受信スレッド161に送られる(図4のS6)。さら
に、受信スレッド161は、受信したメッセージ識別子
34をバッファ201へ送る。続いて、受信スレッド1
61は、送信プロセス101aに対して、要求されたメ
ッセージが通信制御プロセス281に受信されたことを
通知する(図4のS7)。その後、所定の送信スレッド
181に後の処理を移行する。
【0049】この送信スレッド181は、バッファ20
1からメッセージ識別子34を受け取ると、このメッセ
ージ識別子34を、送信先のユーザプロセス102aが
存在するコンピュータシステムCS2上の通信制御プロ
セス282に送信する(図4のS8)。送信後、送信ス
レッド181は、バッファ201のロック状態を解除し
(図4のS9)、ユーザプロセス101aに対するロッ
ク状態を解除する(図4のS10)。
【0050】<コンピュータシステムCS2における処
理>次に、コンピュータシステムCS2における処理に
つき説明する。上述のメッセージ識別子34は、通信制
御プロセス282中の受信スレッド162により受信さ
れる。この受信スレッド162は、通信制御プロセス2
82中のメモリ302の記憶内容を参照して、当該送信
先のユーザプロセス(以下、受信プロセスと称する。)
102aが受信可能状態にあることを確認する。すなわ
ち、受信プロセス102aに対してロック状態が設定さ
れているか否かを判断する(図5のS11)。
【0051】次に、受信プロセス102aに対してロッ
ク状態が設定されていない場合、受信スレッド162
は、受信プロセス102aを送信先とするメッセージ識
別子の受信を禁止するロック状態を、メモリ302に設
定する(図5のS12)。
【0052】一方、受信プロセス102aが他の受信ス
レッドによりロックされている場合は、他の受信スレッ
ドにより、受信プロセス102aを送信先とするメッセ
ージ識別子の受信中である。従って、受信スレッド16
2は待ち状態となる。このロック状態が解除された後
に、受信スレッド162が送信プロセス102aに対す
るロック状態をメモリ302に設定する(図5のS1
2)。
【0053】次に、受信スレッド162は、通信制御プ
ロセス282のバッファ202がロックされているか否
かを確認する(図5のS13)。ロックされている場合
は、バッファ202が他の受信スレッドからのメッセー
ジ識別子を受信中なので、待ち合わせを行う。ロックが
解除された後、受信スレッド162はバッファ202を
ロック状態にして、他の受信スレッドからバッファ20
2に対してメッセージ識別子が送信されないようにする
(図5のS14)。
【0054】続いて、共有メモリ141から送信された
メッセージが共有メモリ142に書き込まれると共に、
このメッセージに対応するメッセージ識別子34がバッ
ファ202に送られる(図5のS15)。続いて、受信
スレッド162は、所定の送信スレッド182に後の処
理を移行する。
【0055】この送信スレッド182は、バッファ20
2からメッセージ識別子34を受け取ると、このメッセ
ージ識別子34を受信プロセス102aへ送信する(図
5のS16)。この受信プロセス102aは、受信した
メッセージ識別子34に基づき、共有メモリ142から
所定のメッセージを読み出す。
【0056】メッセージ送信完了後、送信スレッド18
2は、バッファ202のロック状態を解除し(図5のS
17)、ユーザプロセス102aに対するロック状態を
解除する(図5のS18)。
【0057】この実施の形態では、2つのコンピュータ
システムを例にして説明したが、コンピュータシステム
は2つより多くても良く、この場合にも各コンピュータ
システム間でメッセージ識別子の送受信を行うことがで
きる。
【0058】
【発明の効果】この発明のプロセス間通信方法によれ
ば、メモリにロック状態を設定することにより、送信元
のユーザプロセスを送信先とするメッセージ識別子の受
信が禁止される。従って、ユーザプロセス単位で排他制
御を行うので、メッセージ送信要求を受け付けるタイミ
ングにより、メッセージシーケンスが崩れてしまうこと
もない。よって、プロセス間通信の処理速度を劣化させ
ることなく、正常にメッセージを送信することが可能に
なる。
【図面の簡単な説明】
【図1】第1の実施の形態のプロセス間通信装置の構成
を示す図である。
【図2】第1の実施の形態のプロセス間通信装置の動作
説明に供する図である。
【図3】第2の実施の形態のプロセス間通信装置の構成
を示す図である。
【図4】第2の実施の形態のプロセス間通信装置の動作
説明に供する図である。
【図5】図4に続く第2の実施の形態のプロセス間通信
装置の動作説明に供する図である。
【図6】従来のプロセス間通信装置の構成を示す図であ
る。
【符号の説明】
10,10a,10b,10c,101,101a,1
02,102a:ユーザプロセス 12,28,281,282:通信制御プロセス 14,141,142:共有メモリ 16,16a,16b,16c,161,162:受信
スレッド 18,18a,18b,18c,181,182:送信
スレッド 20,201,202:バッファ 22,26,32,34:メッセージ識別子 24:メッセージ受信完了通知 30,301,302:プロセスロックリソース(メモ
リ) 30a,30b:記憶エリア
───────────────────────────────────────────────────── フロントページの続き (72)発明者 瀬社家 光 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内 (72)発明者 小薮 正哉 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内 Fターム(参考) 5B045 BB12 BB32 BB36 BB47 EE03 EE18 5B098 AA09 AA10 GA04 GA05 GB13 GC16 GD04 GD05 GD15

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数個の受信スレッドと、複数個の送信
    スレッドと、バッファと、メモリとを具える通信制御プ
    ロセスを使用して、ユーザプロセス間でメッセージ転送
    を行うプロセス間通信方法であって、 (a)前記受信スレッドに送信元のユーザプロセスから
    メッセージの送信要求が有ったとき、前記メモリの記憶
    内容を参照して、当該送信元のユーザプロセスが送信可
    能状態にあることを確認するステップと、 (b)前記メモリに、前記送信元のユーザプロセスを送
    信先とするメッセージ識別子の受信を禁止するロック状
    態を設定するステップと、 (c)前記送信元のユーザプロセスから送信された前記
    メッセージを共有メモリに書き込むと共に、該メッセー
    ジに対応するメッセージ識別子を前記受信スレッドに送
    るステップと、 (d)前記メッセージ識別子を、排他制御が可能な前記
    バッファに送るステップと、 (e)前記バッファから取り出した前記メッセージ識別
    子を、前記送信スレッドを介して送信先のユーザプロセ
    スに送るステップと、 (f)該送信先のユーザプロセスに、前記メッセージ識
    別子に基づいて、前記共有メモリから前記メッセージを
    読み出すステップと、 (g)前記メモリに設定されたロック状態を解除するス
    テップとを含むことを特徴とするプロセス間通信方法。
  2. 【請求項2】 請求項1に記載のプロセス間通信方法に
    おいて、 前記(a)ステップでは、前記送信元のユーザプロセス
    に対するロック状態が他の受信スレッドに対して設定さ
    れているとき、該ロック状態が解除されるまで待ち状態
    にすることを特徴とするプロセス間通信方法。
  3. 【請求項3】 請求項1に記載のプロセス間通信方法に
    おいて、 前記送信元のユーザプロセスと前記送信先のユーザプロ
    セスとが、前記通信制御プロセスをそれぞれ具えた別々
    のコンピュータシステム上にある場合、 前記送信元のユーザプロセスを具えたコンピュータシス
    テムでは、前記(a)〜(d)ステップを行った後、 前記バッファから取り出した前記メッセージ識別子を、
    前記送信スレッドを介して、前記送信先のユーザプロセ
    スを具えるコンピュータシステムの通信制御プロセスに
    送るステップを行い、続いて前記(g)ステップを行う
    ことを特徴とするプロセス間通信方法。
  4. 【請求項4】 請求項3に記載のプロセス間通信方法に
    おいて、 前記送信先のユーザプロセスを具えたコンピュータシス
    テムでは、 前記受信スレッドにメッセージ識別子が送られたとき、
    前記メモリの記憶内容を参照して、前記送信先のユーザ
    プロセスが受信可能状態にあることを確認するステップ
    と、 前記メモリに、前記送信先のユーザプロセスを送信先と
    するメッセージ識別子の受信を禁止するロック状態を設
    定するステップと、 前記送信元のユーザプロセスを具えたコンピュータシス
    テムから送信された前記メッセージを、前記送信先のユ
    ーザプロセスを具えたコンピュータシステムの共有メモ
    リに書き込むと共に、該メッセージに対応するメッセー
    ジ識別子を前記バッファに送るステップと、 前記バッファから取り出した前記メッセージ識別子を、
    前記送信スレッドを介して前記送信先のユーザプロセス
    に送るステップと、 該送信先のユーザプロセスに、前記メッセージ識別子に
    基づいて、前記共有メモリから前記メッセージを読み出
    すステップと、 前記メモリに設定されたロック状態を解除するステップ
    とを含むことを特徴とするプロセス間通信方法。
  5. 【請求項5】 複数個のユーザプロセスと、通信制御プ
    ロセスと、共有メモリとを具え、前記ユーザプロセス間
    でメッセージ転送を行うプロセス間通信装置であって、 送信元の前記ユーザプロセスは、前記共有メモリにメッ
    セージを書き込むと共に、該メッセージに対応するメッ
    セージ識別子を前記通信制御プロセスに送信するもので
    あり、 送信先の前記ユーザプロセスは、前記通信制御プロセス
    からメッセージ識別子を受信すると、該メッセージ識別
    子に対応するメッセージを前記共有メモリから読み出す
    ものであり、 前記通信制御プロセスは、前記送信元のユーザプロセス
    からメッセージ識別子を受信すると、当該送信元のユー
    ザプロセスに対するメッセージ識別子の受信を禁止する
    ロック状態を設定すると共に、当該送信元のユーザプロ
    セスから受信したメッセージ識別子を、前記送信先のユ
    ーザプロセスへ送信するものであることを特徴とするプ
    ロセス間通信装置。
  6. 【請求項6】 請求項5に記載のプロセス間通信装置に
    おいて、 前記通信制御プロセスは、複数個の受信スレッドと、複
    数個の送信スレッドと、バッファと、メモリとを具えて
    おり、 前記ユーザプロセスと前記通信制御プロセスとの間のメ
    ッセージ識別子の送受信が前記受信スレッドおよび送信
    スレッドを介して行われるように構成され、 前記受信スレッドに受信されたメッセージ識別子が、前
    記バッファを経て、前記送信スレッドに送られるように
    なっており、 前記メモリには、前記ユーザプロセスごとに記憶領域が
    画成されていて、各記憶領域には、前記ロック状態と共
    に、前記メッセージ識別子を受信した前記受信スレッド
    の識別子が記憶されることを特徴とするプロセス間通信
    装置。
JP11149363A 1999-05-28 1999-05-28 プロセス間通信方法およびプロセス間通信装置 Pending JP2000339181A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11149363A JP2000339181A (ja) 1999-05-28 1999-05-28 プロセス間通信方法およびプロセス間通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11149363A JP2000339181A (ja) 1999-05-28 1999-05-28 プロセス間通信方法およびプロセス間通信装置

Publications (1)

Publication Number Publication Date
JP2000339181A true JP2000339181A (ja) 2000-12-08

Family

ID=15473512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11149363A Pending JP2000339181A (ja) 1999-05-28 1999-05-28 プロセス間通信方法およびプロセス間通信装置

Country Status (1)

Country Link
JP (1) JP2000339181A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318083B2 (en) 2001-08-27 2008-01-08 Ricoh Company, Ltd. Information processing system
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
JP2011193297A (ja) * 2010-03-15 2011-09-29 Kyocera Mita Corp データ処理装置およびデータ処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318083B2 (en) 2001-08-27 2008-01-08 Ricoh Company, Ltd. Information processing system
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US8281060B2 (en) 2006-09-27 2012-10-02 Intel Corporation Virtual heterogeneous channel for message passing
JP2011193297A (ja) * 2010-03-15 2011-09-29 Kyocera Mita Corp データ処理装置およびデータ処理プログラム

Similar Documents

Publication Publication Date Title
US20040240472A1 (en) Method and system for maintenance of packet order using caching
US20050169309A1 (en) System and method for vertical perimeter protection
JP3439320B2 (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
JP2778893B2 (ja) 通信制御装置
JP2000339181A (ja) プロセス間通信方法およびプロセス間通信装置
JP4112717B2 (ja) データ処理装置
US6064647A (en) Method and system for sending frames around a head of line blocked frame in a connection fabric environment
US6396806B1 (en) Transmission line duplexing processing method and apparatus thereof, and recording medium for recording its processing procedure
CN112469030A (zh) 一种跨终端多文件传输方法
US6647442B1 (en) Data processing device
JP3799741B2 (ja) バスコントローラ
JP2001325212A (ja) マルチプロセッサシステムにおけるソースプロセッサから宛先プロセッサにデータブロックを送信する方法と装置
JP3175682B2 (ja) 通信制御装置
JPH1124945A (ja) 複数プロセス間におけるデータ転送方法及び方式
JPH054040Y2 (ja)
JP4015304B2 (ja) データ処理装置
JPH0974410A (ja) 通信中継装置
FR2665810A1 (fr) Controleur de communication entre un ordinateur et une pluralite de terminaux de type rnis.
JPH0292043A (ja) データ受信方式
JP2856150B2 (ja) トランザクション履歴記録システム
JP2000174779A (ja) データ処理装置
JP4411138B2 (ja) データフロー制御方式、その回路、およびその方法
EP1347597A2 (en) Embedded system having multiple data receiving channels
JP2002185470A (ja) Lan接続システム
JPH05314061A (ja) バス・インタフェース制御方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040907