JPH06314208A - プロセス間通信方法 - Google Patents

プロセス間通信方法

Info

Publication number
JPH06314208A
JPH06314208A JP5103167A JP10316793A JPH06314208A JP H06314208 A JPH06314208 A JP H06314208A JP 5103167 A JP5103167 A JP 5103167A JP 10316793 A JP10316793 A JP 10316793A JP H06314208 A JPH06314208 A JP H06314208A
Authority
JP
Japan
Prior art keywords
message
priority
shared space
virtual shared
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.)
Pending
Application number
JP5103167A
Other languages
English (en)
Inventor
Ushio Inoue
潮 井上
Ryoji Kataoka
良治 片岡
Fumimitsu Miura
史光 三浦
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
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5103167A priority Critical patent/JPH06314208A/ja
Publication of JPH06314208A publication Critical patent/JPH06314208A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 仮想共有空間を用いて複数プロセス間の通信
を実現する場合の処理効率の改善を図る。 【構成】 仮想共有空間120は、メッセージの優先度
を管理する優先度管理部121とメッセージ本体を記憶
するメッセージ記憶部122を有する。メッセージに優
先度を付加し、あるプロセス110が仮想共有空間12
0にメッセージを送り出す際、処理の異常等を通知する
メッセージの優先度は通常のメッセージの優先度より高
く設定する。優先度管理部121はメッセージ記憶部1
22のメッセージを優先度順に管理する。そして、ある
プロセス110が仮想共有空間120からメッセージを
取り込む際、パタンに合致するメッセージがメッセージ
記憶部122に複数存在する場合、優先度の高い方が取
り込まれるようにする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列処理または分散処
理を行うシステム内でのプロセス間通信方法に関し、特
に仮想共有空間を用いるシステムにおいて、1つのクラ
イアントプロセスから複数のサーバプロセスに対して並
行して処理を依頼した場合のプロセス間通信方法に関す
る。
【0002】
【従来の技術】複数のプロセス間の通信モデルとして、
仮想的な共有空間を用いる方法が、例えば、W.Lele
r,“Linda Meets Unix”,IEEE Computer,V
ol.23,No2,pp.43−54,Feb.1990に示
されている。
【0003】図2に、仮想共有空間を用いてクライアン
トプロセスとサーバプロセス間で通信を行う基本的なメ
カニズムを示す。図2において、クライアントプロセス
210は、サーバプロセス220に対する要求をタプル
と呼ばれる一定の形式を持つメッセージ中に記述し、タ
プルスペースと呼ばれる仮想共有空間230に対して、
Outコマンドを用いて送り出す(1)。一方のサーバ
プロセス220は、受け取りたいパタンを持つメッセー
ジのみをInコマンドを用いて仮想共有空間230から
取り込む(2)。この結果、クライアントプロセス21
0からサーバプロセス220へ情報が伝達され、処理が
依頼される。同様にサーバ220の処理結果は、サーバ
プロセス220がOutコマンドでメッセージを仮想共
有空間230に送り出し(3)、クライアントプロセス
210がInコマンドでメッセージを仮想共有空間23
0から取り込む(4)ことにより、サーバプロセス22
0からクライアントプロセス210へ返却される。
【0004】なお、Outコマンドを発行したプロセス
はブロックされることはない。一方、Inコマンドを発
行したプロセスは、パタンに合致するメッセージが仮想
共有空間に存在しない場合には、他のプロセスによって
パタンに合致するメッセージが仮想共有空間に送り出さ
れるまでブロックされる。また、Inコマンドを発行し
た時点でパタンに合致するメッセージが仮想共有空間に
複数存在する場合には、任意の1つ(一般には一番古い
もの)が取り込まれる。
【0005】この仮想共有空間を用いて、1つのクライ
アントプロセスから複数のサーバプロセスに対して並行
して処理を依頼した場合の従来のプロセス間通信を図3
により説明する。図3は、クライアントプロセス310
が3つのサーバプロセス320−1、320−2、32
0−3からデータX、データY及びデータZの値を入手
し、3つのデータの和を求める動作シーケンスの例を示
したものである。
【0006】まず、クライアントプロセス310は仮想
共有空間330に対し、データXの読み出し要求メッセ
ージをOutコマンドで送り出す(1)。一般に、並列
処理または分散処理を行うシステムでは複数のサーバプ
ロセスが同時に動作可能な状態にあることが期待できる
ため、クライアントプロセス310は引き続き仮想共有
空間330に対して、データYとデータZの読み出し要
求メッセージをOutコマンドでそれぞれ送り出す
(2)、(3)。その後、クライアントプロセス310
は、サーバ側から報告メッセージが到着するまで待機状
態に入る。
【0007】一方、サーバプロセス320−1はInコ
マンドでクライアント310の最初のメッセージを仮想
共有空間330から取り込み(4)、同様に、サーバプ
ロセス320−2はInコマンドでクライアント310
の2番目のメッセージを、サーバプロセス320−3は
Inコマンドでクライアント310の3番目のメッセー
ジを、それぞれ仮想共有空間330から取り込む
(5)、(6)。その後、サーバプロセス320−1は
データXの値を記憶装置から読み出し、報告メッセージ
をOutコマンドで仮想共有空間330へ送り出す
(7)。同様に、サーバプロセス320−2もデータY
の値を読み出し、報告メッセージをOutコマンドで仮
想共有空間330へ送り出す(8)。さらに、サーバプ
ロセス320−3も処理を開始するが、記憶装置の障害
等、何らかの理由によりデータZの読み出しができなか
ったとする。この場合、サーバプロセス320−3はそ
れを通知する報告メッセージをOutコマンドで仮想共
有空間330へ送り出す(9)。
【0008】その後、クライアントプロセス310は待
期状態から抜け出し、まず、仮想共有空間330から、
Inコマンドでサーバプロセス320−1からの報告メ
ッセージを取り込み(10)、データXの値を入手す
る。引き続きクライアントプロセス310は、仮想共有
空間330から、Inコマンドでサーバプロセス320
−2からの報告メッセージを取り込み(11)、データ
XとデータYの和を求める。最後に、クライアントプロ
セス310は仮想共有空間330から、Inコマンドで
サーバプロセス320−3からの報告メッセージを取り
込むが(12)、ここでデータZの値が入手できないこ
とを知り、処理をアボートさせる。
【0009】
【発明が解決しようとする課題】上記の例からも分かる
様に、従来の仮想共有空間を用いてプロセス間通信を行
う場合、処理効率が悪くなることがある。即ち、図3の
例においては、クライアントプロセス310の処理はデ
ータX、データY及びデータZの3つのデータの値がす
べて入手できた場合にのみ有効となるものであるが、デ
ータZの値が入手できないことをクライアントプロセス
310が知ることができるのは処理の最終段階となり、
それまで行った処理のすべて無効になる。このような例
は、処理の原始性すなわち処理結果がオール・オア・ナ
ッシングであることが要求されるトランザクション処理
の分野では頻繁に現われる。しかしながら、従来の技術
では、図3の例のように処理をアポートさせなければな
らない状況の検出を早期に行うことができないため、最
終的に無効となる処理をクライアントプロセスが延々と
進めていく場合が生じ、処理効率が悪いという問題があ
った。
【0010】本発明の目的は、仮想共有空間を用いたプ
ロセス間通信方法において、クライアントプロセスはサ
ーバプロセス側で処理の異常等が生じたことを早期に検
出することができ、処理効率の改善を図ることにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、仮想共有空間にメッセージの優先度を管
理する優先度管理部とメッセージ本体を記憶するメッセ
ージ記憶部を設け、あるプロセスがInコマンドでメッ
セージを取り込む際に、パタンに合致するメッセージが
仮想共有空間に複数存在する場合には、優先度が最も高
いものが取り込まれるようにしたことである。
【0012】
【作用】処理の異常等を通知する報告メッセージの優先
度を通常の報告メッセージの優先度よりも高く設定す
る。クライアントプロセスが複数のサーバプロセスに並
行して処理を依頼した場合、処理の異常等が生じたサー
バプロセスの報告メッセージの優先度は他のサーバプロ
セスの報告メッセージよりも高いため、クライアントプ
ロセスは処理の異常等が生じたことを早期に検出でき、
それ以降の無駄なメッセージを取り込まないようにする
ことが可能になる。
【0013】
【実施例】以下、図面を用いて本発明の一実施例を説明
する。
【0014】図1は本発明によるシステム構成の概念図
を示したもので、110はプロセス、120は仮想共有
空間である。ここで、仮想共有空間120は、メッセー
ジの優先度を管理する優先度管理部121とメッセージ
本体を記憶するメッセージ記憶部122を有する。ある
プロセス110が仮想共有空間120にメッセージを送
り出す際に、処理の異常等を通知するメッセージの優先
度を通常のメッセージの優先度より高く設定して送出す
る。優先度管理部121は、メッセージ記憶部122に
記憶されるメッセージを、メッセージに設定されている
優先度に従って管理し、あるプロセス110が仮想共有
空間120からメッセージを取り込む際に、パタンに合
致するメッセージがメッセージ記憶部122に複数存在
する場合には、優先度の高い方が取り込まれるようにす
る。
【0015】図4は、図3と同じ例を本発明のプロセス
間通信方法によって実現した場合の動作シーケンスを示
したものである。
【0016】図4において、クライアントプロセス41
0が要求メッセージを送り出してから、3つのサーバプ
ロセス420−1、420−2、420−3がそれぞれ
報告メッセージを送り出し、クライアントプロセス41
0が最初の報告メッセージを取り込むまでの動作(1)
〜(10)は、メッセージに優先度が付与されているこ
とを除き、図3と同じである。優先度は、クライアント
プロセス410、サーバプロセス420−1及びサーバ
プロセス420−2が送り出した通常のメッセージは優
先度1、サーバプロセス420−3が送り出した処理の
異常を通知するメッセージは優先度0(これは優先度1
よりも高い)である。
【0017】クライアントプロセス310が2回目のI
nコマンドを出した時、仮想共有空間430には、サー
バプロセス420−2からの優先度1の通常のメッセー
ジとサーバプロセス420−3からの優先度0の異常通
知メッセージが存在するとする。この場合、クライアン
トプロセス410は、この2回目のInコマンドによ
り、仮想共有空間430から優先度の高いサーバプロセ
ス420−3からのメッセージを取り込み(11)、デ
ータZの値が入手できないことを知り、サーバプロセス
420−2からのメッセージを取り込むことなく、ただ
ちに処理をアポートさせる。
【0018】ただし、クライアントプロセス410が出
すInコマンドと3つのサーバプロセス420−1、4
20−2、420−3が出すOutコマンドのタイミン
グによっては、クライアントプロセス410が最初に取
り出す報告メッセージが、サーバプロセス420−2の
ものであったり、サーバプロセス420−3のものであ
ったりする。しかしいずれにしても、仮想共有空間43
0に2つ以上の報告メッセージが存在する場合には、必
ず優先度の高いものから取り込まれるため、異常等の報
告メッセージは早い段階でクライアントプロセス410
に届くことが保証される。
【0019】図5は、図1の優先度管理部121でのメ
ッセージ優先度管理の実現方法の具体例を示したもので
ある。図5において、510はメッセージ記憶部122
のロック/アンロックを示すフラグ、520はメッセー
ジ記憶部122に記憶されているメッセージの先頭ポイ
ンタを管理しているレジスタ、530は優先度対応にメ
ッセージ記憶部122に記憶されているメッセージの最
終ポインタを管理しているポインタテーブルである。図
5では6個のメッセージがメッセージ記憶部122に記
憶された状態を示している。
【0020】以下、図5を用いてOutコマンド、In
コマンドにおける動作を説明する。
【0021】<Outコマンド>一例として、あるプロ
セスが優先度1の新たなメッセージNを送り出す場合を
想定する。この場合、以下の手順が行われる。 (1)同時に他のプロセスがInコマンドを実行しない
ように、ロックXを獲得する。 (2)メッセージ記憶部内の任意の空き領域に新しいメ
ッセージNを格納する。 (3)ポインタテーブルの優先度1の行を参照し、最終
メッセージポインタ(P12)を得る。次に、この値を
メッセージNのアドレスに書き換える。 (4)メッセージE、メッセージN、メッセージFの順
にチェインされるように、各メッセージ後尾の次メッセ
ージポインタを設定する。 (5)ロックXを開放する。 以上の処理をプロセスがOutコマンドを出すごとに繰
り返すことにより、メッセージ記憶部中のメッセージは
優先度順に管理される。
【0022】<Inコマンド>以下の手順で処理を行
う。 (1)同時に他のプロセスがInコマンドまたはOut
コマンドを実行しないように、ロックXを獲得する。 (2)先頭メッセージポインタ(P00)を得る。 (3)各メッセージ後尾の次メッセージポインタを用い
て、メッセージAから順にパタンをチエックし、要求さ
れたパタンと一致するメッセージを探索する。一致する
ものがない場合は、ロックXを開放し、一定時間経過
後、再度(1)から手順を繰り返す。 (4)見つかったメッセージを要求元に転送後、削除
し、前メッセージ後尾の次メッセージポインタを修正す
る。必要に応じて、ポインタテーブルおよび先頭メッセ
ージポインタを修正する。 (5)ロックXを開放する。 以上により、メッセージ記憶部中のメッセージは優先度
順に管理されているため、同一パタンを持つメッセージ
が複数存在する場合に、Inコマンドでは常に優先度が
高い方が取り込まれる。
【0023】なお、優先度の付与に関しては、プロセス
がOutコマンドでメッセージを送り出す時点で設定す
るかわりに、仮想共有空間の優先度管理部120がメッ
セージの内容に応じて優先度を決定する方法とすること
も可能である。優先度は任意の数の段階に付与すること
ができる。また、Inコマンドによるメッセージの取り
込みに関しては、図5に示したように、メッセージ記憶
部122中のメッセージを一般的な記憶管理手法によっ
て優先度順に管理することにより、効率良く取り込むこ
とが可能である。さらに、クライアントプロセスが取り
込まないメッセージに関しても、一般的な手法、例えば
定期的に走行するガーベージ処理プロセスによって回収
できる。また、一般のシステムではサーバプロセスはク
ライアントプロセスよりも優先的に実行されるが、仮に
クライアントプロセスの処理がサーバプロセスよりも先
行した場合でも、従来の方法と同じ状況が生じるだけ
で、本発明の方法によって生じる新たな問題はない。
【0024】
【発明の効果】以上説明したように、本発明のプロセス
間通信方法によれば、クライアントプロセスはサーバプ
ロセス側で異常等が生じたことを早期に検出することが
でき、従ってそれ以降受け取る必要のないメッセージを
取り込んだり、最終的に無効となる無駄な処理を行った
りしないようにでき、処理の異常が頻繁に生じるシステ
ムにおいて処理効率を改善することができる。
【図面の簡単な説明】
【図1】本発明のプロセス間通信方法のシステムの概念
図である。
【図2】仮想共有空間を用いたプロセス間通信の基本動
作を説明する図である。
【図3】仮想共有空間を用いて並列処理を行う場合の従
来の動作シーケンス例を示した図である。
【図4】本発明の方法によって並列処理を行う場合の動
作シーケンス例を示した図である。
【図5】仮想共有空間の優先度管理部でのメッセージ優
先度管理の実現方法の一例を示した図である。
【符号の説明】
110 プロセス 120 仮想共有空間 121 優先度管理部 122 メッセージ記憶部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセス間を仮想共有空間を介し
    て接続し、送信側のプロセスは要求または通知を一定の
    形式で記述したメッセージを前記仮想共有空間に送り出
    し、受信側のプロセスは前記仮想共有空間から受け取り
    たいパタンを持つメッセージを取り込むプロセス間通信
    方法において、 前記仮想共有空間にメッセージの優先度を管理する優先
    度管理部とメッセージ本体を記憶するメッセージ記憶部
    を設け、受信側のプロセスが該仮想共有空間からメッセ
    ージを取り込む際、パタンに合致するメッセージが複数
    存在する場合に優先度の最も高いものが取り込まれるよ
    うに制御することを特徴とするプロセス間通信方法。
JP5103167A 1993-04-28 1993-04-28 プロセス間通信方法 Pending JPH06314208A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5103167A JPH06314208A (ja) 1993-04-28 1993-04-28 プロセス間通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5103167A JPH06314208A (ja) 1993-04-28 1993-04-28 プロセス間通信方法

Publications (1)

Publication Number Publication Date
JPH06314208A true JPH06314208A (ja) 1994-11-08

Family

ID=14346954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5103167A Pending JPH06314208A (ja) 1993-04-28 1993-04-28 プロセス間通信方法

Country Status (1)

Country Link
JP (1) JPH06314208A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3927246B2 (ja) * 1997-02-19 2007-06-06 株式会社 デジパーク 仮想空間情報処理装置
WO2010109609A1 (ja) * 2009-03-25 2010-09-30 トヨタ自動車株式会社 処理装置及び車両用エンジン制御装置
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3927246B2 (ja) * 1997-02-19 2007-06-06 株式会社 デジパーク 仮想空間情報処理装置
WO2010109609A1 (ja) * 2009-03-25 2010-09-30 トヨタ自動車株式会社 処理装置及び車両用エンジン制御装置
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器
JPWO2015019421A1 (ja) * 2013-08-06 2017-03-02 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器

Similar Documents

Publication Publication Date Title
US7801997B2 (en) Asynchronous interconnect protocol for a clustered DBMS
JPH0535903B2 (ja)
CN106033422A (zh) 一种数据库操作控制方法、装置及系统
CN105373563B (zh) 数据库切换方法及装置
EP1894096A1 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
US6339812B1 (en) Method and apparatus for handling invalidation requests to processors not present in a computer system
JPH06314208A (ja) プロセス間通信方法
CN107102901A (zh) 一种任务处理方法和装置
CN114124680B (zh) 一种文件访问控制告警日志管理方法及装置
CN115774521A (zh) Pcie ssd的数据迁移方法、系统、设备及存储介质
JP2922342B2 (ja) 割込み制御装置
JP2910176B2 (ja) 要求受付処理装置
CN110716812A (zh) 一种支持高并发的分布式同步管理方法与装置
JPH0348315A (ja) タイマ管理方式
JPH0628407A (ja) データベースシステム
JP2000227860A (ja) 並行アクセス制御方法とその装置及びマルチスレッドプロセス方法
JP2001273269A (ja) 複数プロセッサの構成情報更新方式
JPS62209635A (ja) 非同期通信におけるシステム管理フアイルアクセス方式
JPH02118841A (ja) 入力待ち行列管理方式
CN115309528A (zh) 一种一主多从的数据源调度、管理装置
JP2004252514A (ja) データ管理方法
JPS6380347A (ja) フアイル転送の再送方式
JPH04302040A (ja) 電子計算機システム
JP2006072880A (ja) 情報処理方法、情報処理プログラム、及び情報処理システム
JPH02284257A (ja) プロセッサ間通信方式