JPH04251338A - プロセス間通信の制御方式 - Google Patents
プロセス間通信の制御方式Info
- Publication number
- JPH04251338A JPH04251338A JP3259546A JP25954691A JPH04251338A JP H04251338 A JPH04251338 A JP H04251338A JP 3259546 A JP3259546 A JP 3259546A JP 25954691 A JP25954691 A JP 25954691A JP H04251338 A JPH04251338 A JP H04251338A
- Authority
- JP
- Japan
- Prior art keywords
- manager
- client
- shared memory
- area
- clients
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 22
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセスを管理
するプロセス(マネージャ)と、マネージャによって管
理される複数のプロセス(クライアント)とによって構
成されるシステムに関し、とくにマネージャとクライア
ント間のプロセス間通信の制御方式に関する。
するプロセス(マネージャ)と、マネージャによって管
理される複数のプロセス(クライアント)とによって構
成されるシステムに関し、とくにマネージャとクライア
ント間のプロセス間通信の制御方式に関する。
【0002】
【従来の技術】プロセス間通信の制御方式に関しては、
いくつかの方式が知られているが、それらの一つとして
、マネージャとクライアントの双方からアクセス可能な
共有メモリを用意し、この共有メモリにデータを読み書
きすることにより、マネージャとクライアント間でデー
タの交換を行う方式が古くから知られている。この方式
では共有メモリに対する競合を防ぐために例えばセマフ
ォのような排他制御が採用されている。
いくつかの方式が知られているが、それらの一つとして
、マネージャとクライアントの双方からアクセス可能な
共有メモリを用意し、この共有メモリにデータを読み書
きすることにより、マネージャとクライアント間でデー
タの交換を行う方式が古くから知られている。この方式
では共有メモリに対する競合を防ぐために例えばセマフ
ォのような排他制御が採用されている。
【0003】
【発明が解決しようとする課題】上記のような従来の共
有メモリを用いるプロセス間通信の制御方式では、複数
のクライアントからのマネージャに対する処理要求がマ
ネージャに伝わらず、マネージャよってその処理要求が
確実に処理されないことがあった。また、マネージャに
対しクライアントが処理要求を共有メモリに書き込んだ
後のマネージャの処理状態をクライアント側から知るこ
とができないので、共有メモリに対する競合を完全に排
除することはできず、システム信頼性が十分には保てな
いという問題があった。
有メモリを用いるプロセス間通信の制御方式では、複数
のクライアントからのマネージャに対する処理要求がマ
ネージャに伝わらず、マネージャよってその処理要求が
確実に処理されないことがあった。また、マネージャに
対しクライアントが処理要求を共有メモリに書き込んだ
後のマネージャの処理状態をクライアント側から知るこ
とができないので、共有メモリに対する競合を完全に排
除することはできず、システム信頼性が十分には保てな
いという問題があった。
【0004】本発明は、このような従来技術の問題点を
解決することを目的とするものである。すなわち、本発
明は、マネージャがクライアントの管理を容易に行うこ
とができ、クライアント側からの処理要求を確実に処理
することができるプロセス間通信の制御方式を提供する
ことを目的とするものである。さらに、本発明はマネー
ジャの処理状態をクライアント側に知らせる手段を有し
、共有メモリに対する競合を完全に排除することができ
、これにより信頼性の高いプロセス間通信の制御方式を
得ることを目的とするものである。
解決することを目的とするものである。すなわち、本発
明は、マネージャがクライアントの管理を容易に行うこ
とができ、クライアント側からの処理要求を確実に処理
することができるプロセス間通信の制御方式を提供する
ことを目的とするものである。さらに、本発明はマネー
ジャの処理状態をクライアント側に知らせる手段を有し
、共有メモリに対する競合を完全に排除することができ
、これにより信頼性の高いプロセス間通信の制御方式を
得ることを目的とするものである。
【0005】
【課題を解決するための手段および作用】本発明は、複
数のプロセスの管理をするプロセスである一つのマネー
ジャ(1)と、そのマネージャによって管理され、マネ
ージャに対してデータ交換を行おうとする複数のプロセ
スであるクライアント(21〜23)との間での通信を
制御するプロセス間通信の制御方式に関するものである
。そして、本発明は、マネージャとのプロセス間通信を
行うクライアントを、複数のクライアントの中からただ
一つ選択するための排他制御手段(4)と、マネージャ
とクライアントの間でデータを交換するために双方が参
照可能な共有メモリ(3)と、クライアントが共有メモ
リにデータを設定したことをマネージャに通知するため
の通知手段(5)とを備えている。この発明によれば、
クライアントが共有メモリにデータの書き込みを終了し
たとき、そのことが通知手段によりマネージャへ通知さ
れ、その通知に応じてマネージャはクライアントからの
情報を共有メモリから読み出すことができる。従って、
クライアントから確実に情報を受け取ることができ、従
ってクライアントの要求する処理を確実に行うことがで
きる。
数のプロセスの管理をするプロセスである一つのマネー
ジャ(1)と、そのマネージャによって管理され、マネ
ージャに対してデータ交換を行おうとする複数のプロセ
スであるクライアント(21〜23)との間での通信を
制御するプロセス間通信の制御方式に関するものである
。そして、本発明は、マネージャとのプロセス間通信を
行うクライアントを、複数のクライアントの中からただ
一つ選択するための排他制御手段(4)と、マネージャ
とクライアントの間でデータを交換するために双方が参
照可能な共有メモリ(3)と、クライアントが共有メモ
リにデータを設定したことをマネージャに通知するため
の通知手段(5)とを備えている。この発明によれば、
クライアントが共有メモリにデータの書き込みを終了し
たとき、そのことが通知手段によりマネージャへ通知さ
れ、その通知に応じてマネージャはクライアントからの
情報を共有メモリから読み出すことができる。従って、
クライアントから確実に情報を受け取ることができ、従
ってクライアントの要求する処理を確実に行うことがで
きる。
【0006】本発明の実施の一態様によれば、前記共有
メモリが、クライアントの要求とその要求に対応するデ
ータをクライアントが書き込み、マネージャが読むクラ
イアント用共有メモリ(31)と、クライアントおよび
マネージャの双方からアクセス可能であり、マネージャ
の状態を格納するマネージャ用共有メモリ(32)とを
有している。そして、クライアント用共有メモリ(31
)によりクライアントの要求とデータをクライアントか
らマネージャに渡すために用い、そのクライアントの要
求やデータのクライアント用共有メモリ(31)への書
き込み終了をイベント通知部(5)により通知するよう
にしたので、複数のクライアントからのマネージャに対
する処理要求が、一つずつマネージャに確実に伝達され
る。また、マネージャはその通知に応じてマネージャが
クライアントの要求の処理を行っている状態であること
およびその処理が終了したことをマネージャ用共有メモ
リ(32)に表示し、クライアントがマネージャの状態
を知ることができるようにしたので、共有メモリに対す
る競合を完全に排除することができ、これにより信頼性
の高いプロセス間通信の制御方式を得ることができる。
メモリが、クライアントの要求とその要求に対応するデ
ータをクライアントが書き込み、マネージャが読むクラ
イアント用共有メモリ(31)と、クライアントおよび
マネージャの双方からアクセス可能であり、マネージャ
の状態を格納するマネージャ用共有メモリ(32)とを
有している。そして、クライアント用共有メモリ(31
)によりクライアントの要求とデータをクライアントか
らマネージャに渡すために用い、そのクライアントの要
求やデータのクライアント用共有メモリ(31)への書
き込み終了をイベント通知部(5)により通知するよう
にしたので、複数のクライアントからのマネージャに対
する処理要求が、一つずつマネージャに確実に伝達され
る。また、マネージャはその通知に応じてマネージャが
クライアントの要求の処理を行っている状態であること
およびその処理が終了したことをマネージャ用共有メモ
リ(32)に表示し、クライアントがマネージャの状態
を知ることができるようにしたので、共有メモリに対す
る競合を完全に排除することができ、これにより信頼性
の高いプロセス間通信の制御方式を得ることができる。
【0007】
【実施例】図1は本発明の一実施例の装置の構成を示す
ブロック図である。この実施例は、ある一つのプロセス
であるマネージャ1と、そのマネージャ1に対してデー
タ交換を行おうとする複数のプロセスであるクライアン
ト群2との間での通信を制御するプロセス間通信の制御
装置である。この装置は、マネージャとのプロセス間通
信を行うクライアントを、複数のクライアント21,2
2,…の中からただ一つ選択するための排他制御部4と
、マネージャ1とクライアント2の間でデータを交換す
るために双方が参照可能な共有メモリ3と、クライアン
トが設定したデータの読み出し開始をマネージャ1に通
知するためのイベント通知部5とを備えている。
ブロック図である。この実施例は、ある一つのプロセス
であるマネージャ1と、そのマネージャ1に対してデー
タ交換を行おうとする複数のプロセスであるクライアン
ト群2との間での通信を制御するプロセス間通信の制御
装置である。この装置は、マネージャとのプロセス間通
信を行うクライアントを、複数のクライアント21,2
2,…の中からただ一つ選択するための排他制御部4と
、マネージャ1とクライアント2の間でデータを交換す
るために双方が参照可能な共有メモリ3と、クライアン
トが設定したデータの読み出し開始をマネージャ1に通
知するためのイベント通知部5とを備えている。
【0008】共有メモリ3は、クライアントが書き込み
、マネージャが読み出すクライアント用共有メモリ31
と、マネージャおよびクライアントの双方が書き込み読
み出しできるマネージャ用共有メモリ32とからなって
いる。マネージャ用共有メモリ32は、クライアント用
共有メモリ31の状態を書き込むエリアを有している。 マネージャ1は、このエリアに対し、クライアント用共
有メモリ31が利用可能状態であるか、あるいは使用禁
止状態であるかを示す情報を書き込むことができる。他
方、クライアントはこのエリアに、その内容が利用可能
状態を示しているとき、クライアント用共有メモリ31
が使用中であることを示す情報を書き込むことができる
。
、マネージャが読み出すクライアント用共有メモリ31
と、マネージャおよびクライアントの双方が書き込み読
み出しできるマネージャ用共有メモリ32とからなって
いる。マネージャ用共有メモリ32は、クライアント用
共有メモリ31の状態を書き込むエリアを有している。 マネージャ1は、このエリアに対し、クライアント用共
有メモリ31が利用可能状態であるか、あるいは使用禁
止状態であるかを示す情報を書き込むことができる。他
方、クライアントはこのエリアに、その内容が利用可能
状態を示しているとき、クライアント用共有メモリ31
が使用中であることを示す情報を書き込むことができる
。
【0009】図2は、マネージャ側の処理の流れを示す
図、図3はクライアント側の処理の流れを示す図、図4
はクライアント側の処理とマネージャ側の処理の関係を
示す図である。以下、これらの図面を参照して、本実施
例の処理動作を説明する。図2に示すようにマネージャ
側の処理は次のような処理ステップよりなっている。
図、図3はクライアント側の処理の流れを示す図、図4
はクライアント側の処理とマネージャ側の処理の関係を
示す図である。以下、これらの図面を参照して、本実施
例の処理動作を説明する。図2に示すようにマネージャ
側の処理は次のような処理ステップよりなっている。
【0010】〔ステップ21〕データを交換するために
、マネージャとクライアントの双方が参照可能なメモリ
の領域の確保と初期化を行う。すなわち、クライアント
用共有メモリ31およびマネージャ用共有メモリ32の
ための領域確保とその初期化を行う。
、マネージャとクライアントの双方が参照可能なメモリ
の領域の確保と初期化を行う。すなわち、クライアント
用共有メモリ31およびマネージャ用共有メモリ32の
ための領域確保とその初期化を行う。
【0011】〔ステップ22〕クライアントのイベント
通知部5からのイベントを待機する。 〔ステップ23〕クライアント2の一つからのイベント
を受け取った場合、マネージャ1はマネージャ用共有メ
モリ32内のクライアント用共有メモリ31の状態を表
す情報を書き込む(設定する)エリアに、使用中状態を
表す情報が書き込まれていることを確認する。このエリ
アの設定情報が使用中状態を表す情報でないときは、ク
ライアントがクライアント用共有メモリ31の使用を意
図していないので、クライアントからのイベントを無視
する。
通知部5からのイベントを待機する。 〔ステップ23〕クライアント2の一つからのイベント
を受け取った場合、マネージャ1はマネージャ用共有メ
モリ32内のクライアント用共有メモリ31の状態を表
す情報を書き込む(設定する)エリアに、使用中状態を
表す情報が書き込まれていることを確認する。このエリ
アの設定情報が使用中状態を表す情報でないときは、ク
ライアントがクライアント用共有メモリ31の使用を意
図していないので、クライアントからのイベントを無視
する。
【0012】〔ステップ24〕マネージャ1は、マネー
ジャ用共有メモリ32内のクライアント用共有メモリ3
1の状態を表す情報を設定するエリアに使用中を表す情
報が設定されていたとき、このエリアを使用禁止状態を
表す情報に設定しなおす。これにより、クライアント用
共有メモリ31にアクセスできないことを表すと共に、
マネージャ1がクライアントの要求を処理中の状態であ
ることを表していることになる。
ジャ用共有メモリ32内のクライアント用共有メモリ3
1の状態を表す情報を設定するエリアに使用中を表す情
報が設定されていたとき、このエリアを使用禁止状態を
表す情報に設定しなおす。これにより、クライアント用
共有メモリ31にアクセスできないことを表すと共に、
マネージャ1がクライアントの要求を処理中の状態であ
ることを表していることになる。
【0013】〔ステップ25〕マネージャ1は、クライ
アント用共有メモリ31の内容を読み込んで、クライア
ントの要求を解析し処理する。 〔ステップ26〕マネージャ1は、クライアントの要求
の処理を終了したら、マネージャ用共有メモリ32内の
クライアント用共有メモリの状態を表す情報を設定する
エリアに利用可能な状態表す情報を設定する。これによ
り、マネージャ1が、クライアントからの要求の受け付
けが可能な状態であることを表している。
アント用共有メモリ31の内容を読み込んで、クライア
ントの要求を解析し処理する。 〔ステップ26〕マネージャ1は、クライアントの要求
の処理を終了したら、マネージャ用共有メモリ32内の
クライアント用共有メモリの状態を表す情報を設定する
エリアに利用可能な状態表す情報を設定する。これによ
り、マネージャ1が、クライアントからの要求の受け付
けが可能な状態であることを表している。
【0014】次に、図3を参照してクライアント側の処
理ステップを説明する。 〔ステップ31〕マネージャとのデータ交換を要求する
一つのクライアントは、マネージャ用共有メモリ32内
のクライアント用共有メモリ31の状態を設定したエリ
アを参照し、設定内容が利用可能状態であるとき、すな
わち、マネージャ1がクライアントの要求を受け付け可
能な状態となっているとき、以下の作業を開始する。
理ステップを説明する。 〔ステップ31〕マネージャとのデータ交換を要求する
一つのクライアントは、マネージャ用共有メモリ32内
のクライアント用共有メモリ31の状態を設定したエリ
アを参照し、設定内容が利用可能状態であるとき、すな
わち、マネージャ1がクライアントの要求を受け付け可
能な状態となっているとき、以下の作業を開始する。
【0015】〔ステップ32〕マネージャとのデータ交
換を要求する前記クライアントは、排他制御部4の排他
制御によって他のクライアントからのクライアント用共
有メモリ31へのアクセスを禁止し、クライアント用共
有メモリ31の参照権を得る。 〔ステップ33〕前記クライアントは、マネージャ用共
有メモリ32内のクライアント用共有メモリ31の状態
を示すエリアを使用中状態に設定する。
換を要求する前記クライアントは、排他制御部4の排他
制御によって他のクライアントからのクライアント用共
有メモリ31へのアクセスを禁止し、クライアント用共
有メモリ31の参照権を得る。 〔ステップ33〕前記クライアントは、マネージャ用共
有メモリ32内のクライアント用共有メモリ31の状態
を示すエリアを使用中状態に設定する。
【0016】〔ステップ34〕前記クライアントは、ク
ライアント用共有メモリ31にマネージャに渡したい要
求する処理の種類および必要なデータを書き込む。 〔ステップ35〕前記クライアントは、クライアント用
共有メモリ31へのデータの書き込み終了後、データ書
き込みが終了したことをマネージャ1にイベント通知部
5を介してイベントによって通知する。 〔ステップ36〕前記クライアントは、マネージャ1が
クライアント用共有メモリ31を開放するのを待つ。 〔ステップ37〕前記クライアントは、マネージャ1に
よってクライアント用共有メモリが開放されたときに、
排他制御部4によってロックしていた排他制御を解く。
ライアント用共有メモリ31にマネージャに渡したい要
求する処理の種類および必要なデータを書き込む。 〔ステップ35〕前記クライアントは、クライアント用
共有メモリ31へのデータの書き込み終了後、データ書
き込みが終了したことをマネージャ1にイベント通知部
5を介してイベントによって通知する。 〔ステップ36〕前記クライアントは、マネージャ1が
クライアント用共有メモリ31を開放するのを待つ。 〔ステップ37〕前記クライアントは、マネージャ1に
よってクライアント用共有メモリが開放されたときに、
排他制御部4によってロックしていた排他制御を解く。
【0017】図4は、マネージャ側の処理とクライアン
ト側の処理の関係を示すもので、図における左側部に円
で囲った1〜6(以下、本文中では、「○1」〜「○6
」と表記する)は、図2のステップ21〜26に対応し
ている。また、同図における右側部に正方形の枠で囲っ
た1〜7(以下、本文中では「□1」〜「□7」と表記
する)は図3のステップ31〜37に対応している。 図の中央部の矩形はマネージャ用共有メモリの内容を示
しており、クライアント用共有メモリの状態すなわちク
ライアント用共有メモリが使用可能状態か、使用中状態
か、使用禁止状態かのいずれかの情報が記憶される。
ト側の処理の関係を示すもので、図における左側部に円
で囲った1〜6(以下、本文中では、「○1」〜「○6
」と表記する)は、図2のステップ21〜26に対応し
ている。また、同図における右側部に正方形の枠で囲っ
た1〜7(以下、本文中では「□1」〜「□7」と表記
する)は図3のステップ31〜37に対応している。 図の中央部の矩形はマネージャ用共有メモリの内容を示
しており、クライアント用共有メモリの状態すなわちク
ライアント用共有メモリが使用可能状態か、使用中状態
か、使用禁止状態かのいずれかの情報が記憶される。
【0018】以上の図1〜図4により説明した本実施例
によれば、クライアント用共有メモリ31とマネージャ
用共有メモリ32とを設け、クライアント用共有メモリ
31によりクライアントの要求とデータをクライアント
からマネージャに渡すために用い、そのクライアントの
要求やデータのクライアント用共有メモリ31への書き
込み終了をイベント通知部5により通知するようにした
ので、複数のクライアントからのマネージャに対する処
理要求が、一つづつマネージャに確実に伝達される。
によれば、クライアント用共有メモリ31とマネージャ
用共有メモリ32とを設け、クライアント用共有メモリ
31によりクライアントの要求とデータをクライアント
からマネージャに渡すために用い、そのクライアントの
要求やデータのクライアント用共有メモリ31への書き
込み終了をイベント通知部5により通知するようにした
ので、複数のクライアントからのマネージャに対する処
理要求が、一つづつマネージャに確実に伝達される。
【0019】また、マネージャはその通知に応じてマネ
ージャがクライアントの要求の処理を行っている状態で
あることおよびその処理が終了したことをマネージャ用
共有メモリ32に表示し、クライアントがマネージャの
状態を知ることができるようにしたので、共有メモリに
対する競合を完全に排除することができ、これにより信
頼性の高いプロセス間通信の制御方式を得ることができ
る。
ージャがクライアントの要求の処理を行っている状態で
あることおよびその処理が終了したことをマネージャ用
共有メモリ32に表示し、クライアントがマネージャの
状態を知ることができるようにしたので、共有メモリに
対する競合を完全に排除することができ、これにより信
頼性の高いプロセス間通信の制御方式を得ることができ
る。
【0020】次に、プロセスの具体例を挙げて説明する
。図5は、管理用のプロセスとしてウィンドウ・マネー
ジャを適用し、クライアントプロセスとして、ウィンド
ウ・マネージャのカレント・ディレクトリを変更するツ
ール(excdirと名付ける)を適用したプロセス間
通信の制御装置を示すものである。ワークステーション
のオペレーティング・システムとして知られているUI
NXにおいて、各プロセスはカレント・ディレクトリを
持っている。このカレント・ディレクトリは親のプロセ
スのものを承継するようになっている。つまり、ウィン
ドウ・マネージャからあるツールを起動したとき、その
ツールのカレントディレクトリは親であるウィンドウ・
マネージャのそれと同じものになる。UNIXでは作業
対象となるファイルを作業ごとのディレクトリに集めて
おくので、ウィンドウ・マネージャから起動するツール
のカレント・ディレクトリをそのディレクトリに設定で
きると便利である。このためにはツールごとにカレント
・ディレクトリを変更するという方法も考えられるが、
複数のツールを利用する場合には煩雑となる。そこで、
ウィンドウ・マネージャのカレント・ディレクトリを所
望のディレクトリに変更することができれば、起動する
ツールのカレント・ディレクトリはすべて、作業対象と
なるファイルが存在するディレクトリとなるので便利で
ある。
。図5は、管理用のプロセスとしてウィンドウ・マネー
ジャを適用し、クライアントプロセスとして、ウィンド
ウ・マネージャのカレント・ディレクトリを変更するツ
ール(excdirと名付ける)を適用したプロセス間
通信の制御装置を示すものである。ワークステーション
のオペレーティング・システムとして知られているUI
NXにおいて、各プロセスはカレント・ディレクトリを
持っている。このカレント・ディレクトリは親のプロセ
スのものを承継するようになっている。つまり、ウィン
ドウ・マネージャからあるツールを起動したとき、その
ツールのカレントディレクトリは親であるウィンドウ・
マネージャのそれと同じものになる。UNIXでは作業
対象となるファイルを作業ごとのディレクトリに集めて
おくので、ウィンドウ・マネージャから起動するツール
のカレント・ディレクトリをそのディレクトリに設定で
きると便利である。このためにはツールごとにカレント
・ディレクトリを変更するという方法も考えられるが、
複数のツールを利用する場合には煩雑となる。そこで、
ウィンドウ・マネージャのカレント・ディレクトリを所
望のディレクトリに変更することができれば、起動する
ツールのカレント・ディレクトリはすべて、作業対象と
なるファイルが存在するディレクトリとなるので便利で
ある。
【0021】ウィンドウ・マネージャのカレント・ディ
レクトリを変更するためのツールexcdirは、本発
明のプロセス間通信の制御方式を用いて構成されたもの
である。図5において、ウィンドウ・マネージャが、e
xcdir用共有メモリ531、およびウィンドウ・マ
ネージャ用共有メモリ532の各領域を確保し、初期化
する。excdir用共有メモリ531は図6に示すよ
うに、クライアントからの要求のタイプを格納する領域
RequestTypeとexcdir521からウィ
ンドウ・マネージャに渡すデータの領域Content
sとを有している。このexcdir用共有メモリ53
1に対しては、ツールexcdir521は書き込むで
けであり、ウィンドウ・マネージャ51は読むだけであ
る。ウィンドウ・マネージャ用共有メモリ532は、図
7に示すように、excdir用共有メモリの状態Cl
ientBufferStatusを格納するエリアと
、ウィンドウ・マネージャのカレントディレクトリcw
dを格納するエリアとを有している。このウィンドウ・
マネージャ用共有メモリ532は、excdir、ウィ
ンドウ・マネージャとも読み書きを行うことができる。
レクトリを変更するためのツールexcdirは、本発
明のプロセス間通信の制御方式を用いて構成されたもの
である。図5において、ウィンドウ・マネージャが、e
xcdir用共有メモリ531、およびウィンドウ・マ
ネージャ用共有メモリ532の各領域を確保し、初期化
する。excdir用共有メモリ531は図6に示すよ
うに、クライアントからの要求のタイプを格納する領域
RequestTypeとexcdir521からウィ
ンドウ・マネージャに渡すデータの領域Content
sとを有している。このexcdir用共有メモリ53
1に対しては、ツールexcdir521は書き込むで
けであり、ウィンドウ・マネージャ51は読むだけであ
る。ウィンドウ・マネージャ用共有メモリ532は、図
7に示すように、excdir用共有メモリの状態Cl
ientBufferStatusを格納するエリアと
、ウィンドウ・マネージャのカレントディレクトリcw
dを格納するエリアとを有している。このウィンドウ・
マネージャ用共有メモリ532は、excdir、ウィ
ンドウ・マネージャとも読み書きを行うことができる。
【0022】図4の流れを参照して、excdirの動
作を説明する。ウィンドウ・マネージャと通信しようと
するexcdirは、まずUNIXのセマフォ機能(排
他制御部54)によってウィンドウ・マネージャ用共有
メモリ532に対するアクセスの排他制御を行う。これ
によりウィンドウ・マネージャ用共有メモリ532のア
クセス権を得る。アクセス権を得たら、同メモリのCl
ientBufferStatusのエリアにアクセス
し、excdir用共有メモリ531が使用可能である
かどうかをチェックする(図4□1)。 ClientBufferStatusの値は次の3つ
のいずれかである。 available 使用可能 reserved excdirが書き込み中fo
rbidden ウィンドウ・マネージャが処理中ク
ライアントであるexcdir521は、Client
BufferStatusの値がavailableで
あったとき、この値をreservedに変更する(図
4□3)。
作を説明する。ウィンドウ・マネージャと通信しようと
するexcdirは、まずUNIXのセマフォ機能(排
他制御部54)によってウィンドウ・マネージャ用共有
メモリ532に対するアクセスの排他制御を行う。これ
によりウィンドウ・マネージャ用共有メモリ532のア
クセス権を得る。アクセス権を得たら、同メモリのCl
ientBufferStatusのエリアにアクセス
し、excdir用共有メモリ531が使用可能である
かどうかをチェックする(図4□1)。 ClientBufferStatusの値は次の3つ
のいずれかである。 available 使用可能 reserved excdirが書き込み中fo
rbidden ウィンドウ・マネージャが処理中ク
ライアントであるexcdir521は、Client
BufferStatusの値がavailableで
あったとき、この値をreservedに変更する(図
4□3)。
【0023】次に、excdir521は、excdi
r用共有メモリ531のRequestTypeのエリ
アに要求のタイプ「ChangeDir」を設定し、C
ontentsのエリアに変更したいディレクトリ名を
書き込む(図4□4)。これらのデータの書き込みが終
了した時点で、excdir521はウィンドウ・マネ
ージャに対してXWindowのイベント発生機能(関
数XStoreBuffer、イベント通知部55)を
使って書き込み終了を通知する(図4□5)。その後、
excdir521はClientBufferSta
tusの値がavailableになるのを待つ(図4
□6)。そしてexcdir用共有メモリが開放された
ところで、セマフォによってロックしていた排他制御を
解き、その共有メモリを他のクライアントによる利用を
可能にする(図4□7)。
r用共有メモリ531のRequestTypeのエリ
アに要求のタイプ「ChangeDir」を設定し、C
ontentsのエリアに変更したいディレクトリ名を
書き込む(図4□4)。これらのデータの書き込みが終
了した時点で、excdir521はウィンドウ・マネ
ージャに対してXWindowのイベント発生機能(関
数XStoreBuffer、イベント通知部55)を
使って書き込み終了を通知する(図4□5)。その後、
excdir521はClientBufferSta
tusの値がavailableになるのを待つ(図4
□6)。そしてexcdir用共有メモリが開放された
ところで、セマフォによってロックしていた排他制御を
解き、その共有メモリを他のクライアントによる利用を
可能にする(図4□7)。
【0024】一方、ウィンドウ・マネージャ51は、e
xcdir521から書き込み終了イベントを受けたと
き、ウィンドウ・マネージャ用共有メモリ532のCl
ientBufferStatusの値をforbid
denに変更する(図4○4)。
xcdir521から書き込み終了イベントを受けたと
き、ウィンドウ・マネージャ用共有メモリ532のCl
ientBufferStatusの値をforbid
denに変更する(図4○4)。
【0025】ウィンドウ・マネージャ51は、excd
ir用共有メモリ531のRequestTypeのエ
リアを参照し、クライアントであるexcdir521
からの要求の種類(タイプ)を判定する。このexcd
ir521からの要求の場合は要求の種類はChang
eDirである。この要求の種類にしたがってexcd
ir用共有メモリ531のContentsのエリアか
らデータを読み込む。この実施例のようにReques
tTypeがChangeDirである場合には、Co
ntentsのエリアにディレクトリが入っているもの
として読み込む。次に要求の種類にしたがって、Con
tentsから読み込んだデータを使って処理を行う。 ChangeDirのときは、ウィンドウ・マネージャ
のカレントディレクトリを、Contetsのエリアに
入っているデータすなわちexcdir521から要求
されたディレクトリ名に変更する(図4○5)。この変
更後、ウィンドウ・マネージャ用共有メモリ532のc
wdエリアに新しいカレント・ディレクトリを設定し、
ClientBufferStatusの値をavai
lableにする(図4○6)。
ir用共有メモリ531のRequestTypeのエ
リアを参照し、クライアントであるexcdir521
からの要求の種類(タイプ)を判定する。このexcd
ir521からの要求の場合は要求の種類はChang
eDirである。この要求の種類にしたがってexcd
ir用共有メモリ531のContentsのエリアか
らデータを読み込む。この実施例のようにReques
tTypeがChangeDirである場合には、Co
ntentsのエリアにディレクトリが入っているもの
として読み込む。次に要求の種類にしたがって、Con
tentsから読み込んだデータを使って処理を行う。 ChangeDirのときは、ウィンドウ・マネージャ
のカレントディレクトリを、Contetsのエリアに
入っているデータすなわちexcdir521から要求
されたディレクトリ名に変更する(図4○5)。この変
更後、ウィンドウ・マネージャ用共有メモリ532のc
wdエリアに新しいカレント・ディレクトリを設定し、
ClientBufferStatusの値をavai
lableにする(図4○6)。
【0026】
【発明の効果】本発明によれば、クライアントが共有メ
モリにデータの書き込みを終了したとき、そのことが通
知手段によりマネージャへ通知され、その通知に応じて
マネージャはクライアントからの情報を共有メモリから
読み出すことができる。従って、クライアントから確実
に情報を受け取ることができ、従ってクライアントの要
求する処理を確実に行うことができる。また、本発明に
よれば、マネージャは、マネージャがクライアントの要
求の処理を行っている状態であることおよびその処理が
終了したことをマネージャ用共有メモリに表示し、クラ
イアントがマネージャの状態を知ることができるように
したので、共有メモリに対する競合を完全に排除するこ
とができ、これにより信頼性の高いプロセス間通信の制
御方式を得ることができる。
モリにデータの書き込みを終了したとき、そのことが通
知手段によりマネージャへ通知され、その通知に応じて
マネージャはクライアントからの情報を共有メモリから
読み出すことができる。従って、クライアントから確実
に情報を受け取ることができ、従ってクライアントの要
求する処理を確実に行うことができる。また、本発明に
よれば、マネージャは、マネージャがクライアントの要
求の処理を行っている状態であることおよびその処理が
終了したことをマネージャ用共有メモリに表示し、クラ
イアントがマネージャの状態を知ることができるように
したので、共有メモリに対する競合を完全に排除するこ
とができ、これにより信頼性の高いプロセス間通信の制
御方式を得ることができる。
【図1】 本発明の一実施例の装置の構成を示すブロ
ック図である。
ック図である。
【図2】 マネージャ側の処理の流れを示す図である
。
。
【図3】 クライアント側の処理の流れを示す図であ
る。
る。
【図4】 クライアント側の処理とマネージャ側の処
理の関係を示す図である。
理の関係を示す図である。
【図5】 管理用のプロセスとしてウィンドウ・マネ
ージャを適用し、クライアントプロセスとして、ウィン
ドウ・マネージャのカレント・ディレクトリを変更する
ツール(excdirと名付ける)を適用したプロセス
間通信の制御方式を示す図である。
ージャを適用し、クライアントプロセスとして、ウィン
ドウ・マネージャのカレント・ディレクトリを変更する
ツール(excdirと名付ける)を適用したプロセス
間通信の制御方式を示す図である。
【図6】 excdir用共有メモリ531の記憶領
域の構成を示す図である。
域の構成を示す図である。
【図7】 ウィンドウ・マネージャ用共有メモリ53
2の記憶領域の構成を示す図である。
2の記憶領域の構成を示す図である。
1…マネージャ,51…ウィンドウ・マネージャ、2,
52…クライアント群、21〜23…クライアント、5
21…excdir、3…共有メモリ、31…クライア
ント用共有メモリ、32…マネージャ用共有メモリ、5
31…excdir用共有メモリ、532…ウィンドウ
・マネージャ用共有メモリ、4,54…排他制御部、5
,55…イベント通知部。
52…クライアント群、21〜23…クライアント、5
21…excdir、3…共有メモリ、31…クライア
ント用共有メモリ、32…マネージャ用共有メモリ、5
31…excdir用共有メモリ、532…ウィンドウ
・マネージャ用共有メモリ、4,54…排他制御部、5
,55…イベント通知部。
Claims (1)
- 【請求項1】 複数のプロセスの管理をするプロセス
である一つのマネージャと、そのマネージャによって管
理され、マネージャに対してデータ交換を行おうとする
複数のプロセスであるクライアントとの間での通信を制
御するプロセス間通信の制御方式であって、マネージャ
とのプロセス間通信を行うクライアントを、複数のクラ
イアントの中からただ一つ選択するための排他制御手段
と、マネージャとクライアントの間でデータを交換する
ために双方が参照可能な共有メモリと、クライアントが
共有メモリにデータを設定したことをマネージャに通知
するための通知手段とを備えたことを特徴とするプロセ
ス間通信の制御方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59496790A | 1990-10-10 | 1990-10-10 | |
US07/594,967 | 1990-10-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04251338A true JPH04251338A (ja) | 1992-09-07 |
Family
ID=24381162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3259546A Pending JPH04251338A (ja) | 1990-10-10 | 1991-08-16 | プロセス間通信の制御方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5437031A (ja) |
JP (1) | JPH04251338A (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3385091B2 (ja) * | 1994-05-13 | 2003-03-10 | 三菱電機株式会社 | 計算機間の排他制御装置 |
JPH0816446A (ja) * | 1994-07-05 | 1996-01-19 | Fujitsu Ltd | クライアント/サーバ・システム |
US6101525A (en) * | 1995-05-19 | 2000-08-08 | Emc Corporation | Method and apparatus for shared memory cleanup |
US5765208A (en) * | 1995-09-29 | 1998-06-09 | Motorola, Inc. | Method of speculatively executing store instructions prior to performing snoop operations |
US6587889B1 (en) * | 1995-10-17 | 2003-07-01 | International Business Machines Corporation | Junction manager program object interconnection and method |
AU1860097A (en) * | 1996-02-09 | 1997-08-28 | Michael David McCartney | A multiprocessing system having processes that share objects |
JP3507307B2 (ja) * | 1996-12-27 | 2004-03-15 | キヤノン株式会社 | 情報処理装置およびネットワークプリントシステムおよびその制御方法およびプログラムが格納された記憶媒体 |
US5926635A (en) * | 1997-02-05 | 1999-07-20 | Hewlett Packard Company | Method for reducing complexities when communicating between tasks |
US6442549B1 (en) * | 1997-07-25 | 2002-08-27 | Eric Schneider | Method, product, and apparatus for processing reusable information |
US6760746B1 (en) * | 1999-09-01 | 2004-07-06 | Eric Schneider | Method, product, and apparatus for processing a data request |
US5974486A (en) * | 1997-08-12 | 1999-10-26 | Atmel Corporation | Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint |
US7188138B1 (en) | 1999-03-22 | 2007-03-06 | Eric Schneider | Method, product, and apparatus for resource identifier registration and aftermarket services |
US9141717B2 (en) | 1999-03-22 | 2015-09-22 | Esdr Network Solutions Llc | Methods, systems, products, and devices for processing DNS friendly identifiers |
US8037168B2 (en) | 1999-07-15 | 2011-10-11 | Esdr Network Solutions Llc | Method, product, and apparatus for enhancing resolution services, registration services, and search services |
US6338082B1 (en) | 1999-03-22 | 2002-01-08 | Eric Schneider | Method, product, and apparatus for requesting a network resource |
USRE43690E1 (en) | 1999-03-22 | 2012-09-25 | Esdr Network Solutions Llc | Search engine request method, product, and apparatus |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
US6920475B1 (en) * | 1999-04-23 | 2005-07-19 | Oracle International Corporation | Communication architecture for distributed computing environment |
USRE44207E1 (en) | 1999-09-01 | 2013-05-07 | Esdr Network Solutions Llc | Network resource access method, product, and apparatus |
US7552440B1 (en) * | 1999-09-28 | 2009-06-23 | Rockwell Automation Technologies, Inc. | Process communication multiplexer |
US6895400B1 (en) * | 1999-10-05 | 2005-05-17 | Veritas Operating Corporation | Dynamic symbolic link resolution |
CA2335561A1 (en) * | 2000-05-31 | 2001-11-30 | Frank J. Degilio | Heterogeneous client server method, system and program product for a partitioned processing environment |
US6601148B2 (en) * | 2001-03-01 | 2003-07-29 | International Business Machines Corporation | Infiniband memory windows management directly in hardware |
US6880109B2 (en) * | 2001-07-03 | 2005-04-12 | The United States Of America As Represented By The Secretary Of The State | Functional element test tool and method |
US7565402B2 (en) | 2002-01-05 | 2009-07-21 | Eric Schneider | Sitemap access method, product, and apparatus |
US7240350B1 (en) | 2002-01-07 | 2007-07-03 | Slt Logic, Llc | System and method for providing communications to processes |
US7386619B1 (en) * | 2003-01-06 | 2008-06-10 | Slt Logic, Llc | System and method for allocating communications to processors in a multiprocessor system |
JP4458929B2 (ja) * | 2003-07-16 | 2010-04-28 | キヤノン株式会社 | プログラム間通信装置、プログラム間通信方法、コンピュータ読み取り可能な記録媒体およびプログラム |
US9052973B2 (en) * | 2005-11-07 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Inter-process communication mechanism |
US8776038B2 (en) * | 2008-08-07 | 2014-07-08 | Code Systems Corporation | Method and system for configuration of virtualized software applications |
US8434093B2 (en) | 2008-08-07 | 2013-04-30 | Code Systems Corporation | Method and system for virtualization of software applications |
US8954958B2 (en) | 2010-01-11 | 2015-02-10 | Code Systems Corporation | Method of configuring a virtual application |
US8959183B2 (en) | 2010-01-27 | 2015-02-17 | Code Systems Corporation | System for downloading and executing a virtual application |
US9104517B2 (en) | 2010-01-27 | 2015-08-11 | Code Systems Corporation | System for downloading and executing a virtual application |
US9229748B2 (en) | 2010-01-29 | 2016-01-05 | Code Systems Corporation | Method and system for improving startup performance and interoperability of a virtual application |
US8763009B2 (en) | 2010-04-17 | 2014-06-24 | Code Systems Corporation | Method of hosting a first application in a second application |
US8782106B2 (en) | 2010-07-02 | 2014-07-15 | Code Systems Corporation | Method and system for managing execution of virtual applications |
US9021015B2 (en) | 2010-10-18 | 2015-04-28 | Code Systems Corporation | Method and system for publishing virtual applications to a web server |
US9209976B2 (en) | 2010-10-29 | 2015-12-08 | Code Systems Corporation | Method and system for restricting execution of virtual applications to a managed process environment |
CN103176854B (zh) * | 2011-12-26 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 一种进程间通信方法、装置及系统 |
US9712606B2 (en) * | 2014-05-21 | 2017-07-18 | Nasdaq Technology Ab | Efficient and reliable host distribution of totally ordered global state |
RU2592461C2 (ru) * | 2014-12-05 | 2016-07-20 | Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук"(ФГУ ФНЦ НИИСИ РАН) | Способ передачи данных между процессами |
US10467151B2 (en) | 2017-09-05 | 2019-11-05 | NGINX, Inc. | Using shared memory to transport data between server processes |
US11062030B2 (en) * | 2018-03-09 | 2021-07-13 | Huawei Technologies Co., Ltd. | Systems and methods for managing access control between processes in a computing device |
US11042424B1 (en) | 2018-04-24 | 2021-06-22 | F5 Networks, Inc. | Pipelined request processing using shared memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1601955A (en) * | 1977-10-21 | 1981-11-04 | Marconi Co Ltd | Data processing systems |
JPS596415B2 (ja) * | 1977-10-28 | 1984-02-10 | 株式会社日立製作所 | 多重情報処理システム |
CA1244555A (en) * | 1985-06-17 | 1988-11-08 | Walter H. Schwane | Process transparent multi storage mode data transfer and buffer control |
US5257374A (en) * | 1987-11-18 | 1993-10-26 | International Business Machines Corporation | Bus flow control mechanism |
IL88165A (en) * | 1987-12-21 | 1993-01-31 | Honeywell Bull | Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units |
-
1991
- 1991-08-16 JP JP3259546A patent/JPH04251338A/ja active Pending
-
1994
- 1994-02-25 US US08/202,674 patent/US5437031A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5437031A (en) | 1995-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04251338A (ja) | プロセス間通信の制御方式 | |
US8812682B2 (en) | Concurrent web based multi-tasks support for computer system | |
US4961224A (en) | Controlling access to network resources | |
US5729734A (en) | File privilege administration apparatus and methods | |
US6023712A (en) | Method and apparatus for brokering memory resources | |
EP0665495A2 (en) | A distributed lock manager using a passive, state-full control-server | |
JPS6131500B2 (ja) | ||
JPH05282260A (ja) | コンピユータネツトワーク及びその操作方法 | |
JP2500964B2 (ja) | ソフトウェアコマンドオペレ―ションの合意的な委任を許可する方法及びデ―タ処理システム | |
JPH036751A (ja) | フアイル・ロツク方法及び装置 | |
JP2915612B2 (ja) | 共有領域管理方式 | |
JPH07168789A (ja) | イベントメッセージ送付方式 | |
JP2003058266A (ja) | ライセンス管理方法とライセンス管理プログラム | |
JPH03100712A (ja) | サーバワークステーションの電源断制御方式 | |
JP2912046B2 (ja) | ファイルサーバの制御方法 | |
JPS63168743A (ja) | 仮想計算機システムにおけるフアイル共用制御方式 | |
JPH1021196A (ja) | オペレータコマンド制御方法 | |
JPH0793204A (ja) | データベース管理システムとその管理方法 | |
JPH04353961A (ja) | マルチプロセッサシステムにおける排他制御方式 | |
JPH05165702A (ja) | ファイル管理方法 | |
JP3171271B2 (ja) | ファイルロック管理方法 | |
JPS63100542A (ja) | 資源管理方式 | |
JPS6314236A (ja) | ジヨブ管理方式 | |
JP2002024035A (ja) | プロセス間通信装置及び方法 | |
JPH01111273A (ja) | 端末システムの役席承認方式 |