JPH05233423A - データ処理システム用のセマフォ機構 - Google Patents

データ処理システム用のセマフォ機構

Info

Publication number
JPH05233423A
JPH05233423A JP4293600A JP29360092A JPH05233423A JP H05233423 A JPH05233423 A JP H05233423A JP 4293600 A JP4293600 A JP 4293600A JP 29360092 A JP29360092 A JP 29360092A JP H05233423 A JPH05233423 A JP H05233423A
Authority
JP
Japan
Prior art keywords
semaphore
node
message
nodes
owned
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.)
Withdrawn
Application number
JP4293600A
Other languages
English (en)
Inventor
Nicholas P Holt
ピーター ホルト ニコラス
Michael Fields
フィールズ マイケル
Mark N Fullerton
ノーマン フラートン マーク
Andrew J Knowles
ジョン ノウルズ アンドリュー
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.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services 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 Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of JPH05233423A publication Critical patent/JPH05233423A/ja
Withdrawn 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

(57)【要約】 (修正有) 【目的】 セマフォ動作と関連する中断時間を低減す
る。 【構成】 複数の処理ノードが資源を共有し、この共有
資源へのアクセスがセマフォによって制御されるが、各
ノードはこれら全てのセマフォのローカルコピーを持
つ。ノードが特定のセマフォに関するセマフォ動作を要
求する場合、セマフォのローカルコピーに関してセマフ
ォ動作を遂行することを指令するセマフォメッセージが
全てのノードに同報通信される。そのセマフォがそのノ
ードによって所有されてない場合、セマフォ動作に対し
て正しい入力順序を保つためノードはセマフォ動作を中
断しなければならない。たヾし、そのセマフォがこのノ
ードによって所有されている場合、ノードはメッセージ
が送られて来るのを待つことなくセマフォ動作を遂行す
ることができる。セマフォが他のノードによって所有さ
れているときは、この他のノードはセマフォ動作が遂行
できるようにするために所有権を放棄する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムの
ためのセマフォ機構(semaphore mechanisms)に関する。
より詳細には、本発明は、通信網によって相互接続され
た複数の処理ノードを持ち、ここで、これらノードが共
有メモリ等のような共有資源へのアクセスを持つデータ
処理システムに関する。
【0002】
【従来の技術】セマフォ機構は、たった1つの処理ノー
ドのみがある与えられた時間において共有資源にアクセ
スできることを保証するための手段である。セマフォ機
構の1つの周知の形式においては、各共有資源(例え
ば、共有メモリの各エリア)は、それと関連するセマフ
ォ位置を持つ。ノードが共有資源へのアクセスを求める
とき、これは必ず最初に関連するセマフォ位置を増分及
びテストすることによって他のノードが既にその資源に
アクセスしてないか調べる。反対に、そのノードが共有
資源へのアクセスを終了したときは、これは適当なセマ
フォ位置をテスト及び減分する。各ノードは全てのセマ
フォ位置のローカルコピーを保持し、これら全てのコピ
ーが一貫性を保つことを確保する。各セマフォ動作はそ
のセマフォ位置の各ローカルコピーに関する要求された
動作を先導するために通信網を介してセマフォメッセー
ジを送ることを要求する。
【0003】このようなシステムにおいては、セマフォ
動作を同期させるための何らかの方法を提供して、各ノ
ードが全てのセマフォ動作をどのノードがそれを発信し
たかに関係なく、同一の入力順に加えることを保証する
ことが必要である。これを達成するための1つの方法と
して、これらセマフォメッセージを発信ノードも含めて
システム内の全てのノードに同報通信(broadcast) する
方法が挙げられる。これらメッセージは、これらノード
に全てのノードがこれらメッセージを同一シーケンスに
て受信するように分配される。そして、このシーケンス
がセマフォ動作の一意的入力順序を定義する。
【0004】
【発明が解決しようとする課題】上述の方法の問題点
は、ノード内でランするプロセスが、これがセマフォ動
作を先導する毎に、そのプロセスが動作の正しい入力順
序を確保するため、関連するセマフォメッセージが“タ
ーンラウンド(turned round)”されてくる(即ち、通信
網から送り戻されてくる)まで中断されなければならな
いことである。これは、結果としてセマフォ動作の遂行
速度に大きな遅延を与えることとなる。
【0005】本発明の目的は、セマフォ動作と関連する
中断時間を低減し、それによりシステムの動作を高速化
することにある。
【0006】
【課題を解決するための手段】本発明は、以下の要素か
ら構成されるデータ処理システムを提供する。(a) 複数
の処理ノード、(b) 複数のノードをノードが通信網を通
じて他の全てのノードに入力順にメッセージを送れるよ
うにするための通信網、(c) 全てのノードによって共有
される複数の共有資源、(d) 対応する共有資源へのアク
セスを制御するための複数のセマフォ、ここで各ノード
はこれら全てのセマフォのローカルコピーを持つ、(e)
これらセマフォに対して所有状態を定義するための手
段、ここで、各セマフォは特定のノードによって所有さ
れた状態又は所有されていない状態として定義される、
(f) 各ノード内のノードによって所有されていないセマ
フォに関するセマフォ動作の要求に応答して、全てのノ
ードがセマフォのそれらローカルコピーに関してセマフ
ォ動作を遂行するように命令するセマフォメッセージを
通信網を通じて送るための手段、この場合、セマフォ動
作はこのノード内でセマフォメッセージが通信網から戻
されてくるまで停止される、(g) 各ノード内のこのノー
ドによって所有されるセマフォに関するセマフォ動作の
要求に応答して、全てのノードがセマフォのそれらロー
カルコピーに関してセマフォ動作を遂行するように指令
するセマフォメッセージを通信網を通じて送るための手
段。この場合、ノードが通信網からセマフォメッセージ
が送り返されて来るのを待つことなくセマフォ動作に進
むことが許される。
【0007】上述のようなシステムの結果としてセマフ
ォメッセージが同期されるのを待つためにノードの動作
が中断される回数が大きく低減することがわかる。これ
に加えて、遅延は2つのノードが特定のセマフォを同時
に使用することを試みたときにのみ発生するが、実際に
はこの状況が発生することは稀であり、従って、オーバ
ーヘッド(overhead)の問題は比較的小さい。
【0008】
【実施例】本発明による1つのデータ処理システムにつ
いて、添付図面を参照しつつ以下に一例として説明す
る。
【0009】図1に示されるように、このデータ処理シ
ステムは、通信網(ネットワーク)12によって相互接
続された複数の処理ノード10を含む。各ノードはこの
網を通じて他のノードにメッセージを送ることができ
る。通信網は、各メッセージをそのメッセージを発した
ノードを含む全てのノードに同報通信する。この通信網
は星形結合器(star coupler)であり、全てのノードがメ
ッセージを同一シーケンスにて受信することを保証す
る。このシーケンスはこれらメッセージに対する一意的
な入力順序(chronology)を定義する。
【0010】図2に示されるように、各ノードは複数の
同時プロセスをスケジュールし及び実行するための処理
ユニット20を含む。この処理ユニットは従来のもので
あってよく、従ってその詳細な説明は省略する。
【0011】各ノード内の処理ユニット20は複数の共
有資源(shared resources)21、つまり他のノードと共
有される資源へのアクセスを持つ。これら資源は、例え
ば共有メモリの領域からなる。
【0012】各ノードはセマフォユニット(semaphore u
nit)22を含むが、これは1セットのセマフォ位置2
3、セマフォ所有テーブル(semaphore ownership tabl
e) 24及びセマフォ待ち行列25を使用して共有資源
23へのアクセスを制御する。各ノードは、セマフォ位
置及びセマフォ所有テーブルの各ノードそれ自身のロー
カルコピー、並びに各ノードそれ自身のセマフォ待ち行
列を持つ。
【0013】各共有資源はそれと関連する特定のセマフ
ォ位置を持つ。資源がフリー(free)の場合、そのセマフ
ォ位置は−1の値を持つ。
【0014】プロセスが共有資源へのアクセスを得よう
とする毎に、これはINCT(incrementand test) 要求を発
する。すると、その資源と関連するセマフォ位置が増分
されて、その値がリターンされる。返されたセマフォ値
が0の場合は、動作は成功であり、プロセスはこの共有
資源にアクセスすることができる。返されたセマフォ値
が0よりも大きな場合は、動作は不成功である。
【0015】プロセスが共有資源の使用を終了すると、
これはTDEC(test and decrement)要求を発する。これは
セマフォ位置の値をリターンさせ、そしてこの値が次に
減分される。返された値が0であるときは、これは、共
有資源が現在フリーであることを意味し、他のプロセス
によるアクセスが可能である。
【0016】これらの動作(INCT及びTDEC)の両方と
も、これらが他の動作によって割り込みできないという
意味においてはアトミック(atomic)なものである。
【0017】セマフォ所有テーブル24は各ノードに対
して1つ割り当てられた複数のセクションからなる。各
セクションは固定数のスロットを持ち、各スロットは特
定のセマフォの所有状態を定義する項目(entry) を保持
する。所有テーブル内の各項目は以下のフィールドを含
む。 (ADDRESS) 項目がそれと関連するセマフォ位置の仮想
アドレス (STATE) セマフォ位置の所有状態(以下を参照)
【0018】各セマフォ位置は、IDLE、OWNED 、DISCAR
D 、OTHER-OWNED 及びQUEUEDからなる所有状態の1つを
持つ。セマフォの現在の状態は所有テーブル内の対応す
る項目内のSTATE フィールドによって示される。これに
対する例外は、IDLE状態であるが、これは所有テーブル
内にそのセマフォに対する項目が存在しないことを表わ
す。
【0019】これら所有状態の意味は以下の通りであ
る。 (IDLE) そのセマフォがどのノードによっても所有され
ていない。 (OWNED) そのセマフォがローカルノードによって所有
されている。 (DISCARD) そのセマフォの所有が放棄されている。 (OTHER-OWNED) そのセマフォが遠隔ノードによって所
有されている。 (QUEUED) そのセマフォが待ち行列25内に1つ又は複
数の中断された動作を持つ。
【0020】セマフォ待ち行列25は、中断されたセマ
フォ動作のリストである。後に説明されるように、ある
ノードがもう1つのノードによって現在所有されている
セマフォ上でセマフォ動作を遂行したいと思う毎に、そ
の動作はこの待ち行列上に置かれる。この動作は所有ノ
ードが所有権を放棄したとき遂行される。この待ち行列
内の各項目は以下のフィールドを含む。 (FUNCTION) 要求されたセマフォ動作 (INCT又はTDEC) (ADDRESS) セマフォ位置の仮想アドレス (VALUE) セマフォ位置の期待される値(即ち、セマフ
ォメッセージが戻されたときのセマフォの値)
【0021】異なるノード内のセマフォユニット22
は、通信網を通じて送られるセマフォメッセージを介し
て相互に通信を行なう。ここで、各メッセージは以下の
フィールドを持つ。 (FUNCTION) メッセージのタイプ(以下を参照) (ORIGIN) ソースノードの識別 (ADDRESS) メッセージが関連するセマフォ位置の仮想
アドレス (READ-VALUE) メッセージを送る前に発信ノードによっ
て読み出されるセマフォ位置の値
【0022】FUNCTIONフィールドは以下の機能の1つを
表わす。 (INCT) 指定されたセマフォを増分及びテストする。 (TDEC) 指定されたセマフォをテスト及び減分する。 (APPLIED-INCT) INCTが既に発信ノードによって実行さ
れている点を除いてINCTと同一である。 (APPLIED-TDEC) TDECが既に発信ノードによって実行さ
れている点を除いてTDECと同一である。 (DISCARD) セマフォの所有者によって所有権を放棄す
るために使用される。ここで、READ-VALUEフィールドは
DISCARD メッセージに対しては要求されないことに注意
すべきである。
【0023】「一般規則 (General Rules)」セマフォ機
構の動作の一般規則は以下の通りである。 (1) メッセージの順序付け セマフォ動作(Semaphore operations: Semops)に関する
全てのメッセージはグローバル的に順序付けされる。こ
れにより、あるメッセージは全てのノード内でシーケン
スの同一ポイントにおいて受信される。
【0024】(2) 所有権(Ownership) の掌握 ノードはINCT動作を発行した後に初めて所有権を得るこ
とができる。これは次に発行プロセスを中断しなければ
ならない。INCT動作が通信網によって戻されてきたら、
ノードは所有テーブルを調べる。他のノードが既に所有
権を得てないときは、発信ノードが所有権を得る。他の
ノードはINCTに遭遇すると前のメッセージの同一シーケ
ンスを受信することとなり、従って発信ノードの決定を
再生し、これに従ってテーブルのそれらのローカルコピ
ーを更新することができる。ノードはこうしてメッセー
ジのシーケンスの特定のポイントにおいて所有権を掌握
する。
【0025】(3) 所有権の放棄 ノードは、それによって所有されるセマフォの所有権を
TDEC又はDISCARD メッセージを送ることによって放棄す
ることができる。ノードは、所有権をシーケンスの特定
のポイントにおいて放棄する。放棄メッセージを発した
ノードはそれがTDEC又はDISCARD メッセージを発するや
いなやそれがもはや所有されていないものとみなす。但
し、この所有権は、そのメッセージが通信網によって送
り返されて来るまで完全には放棄されない。
【0026】(4) 所有権テーブル(Ownership Table) が
満杯のときの破棄 各ノード内の所有権テーブルは、もちろん有限である。
このため、テーブルが満杯にも拘らずノードがもう1つ
のINCT動作を発したいと思う状況が発生する。このよう
なケースにおいては、ノードはそれが所有しているセマ
フォの1つを選択し、これを放棄し(つまり、DISCARD
動作をそれに発行し)、こうして所有権テーブルのスロ
ットをフリーにすることが要求される。破棄できる少な
くとも1つのスロットが存在するようにするためには、
テーブルは一度にアウトスタンディングの状態にしてお
くことができるセマフォの総数よりも大きくなければな
らない。例えば、システムが一度にアウトスタンディン
グのノード当り1つのノードのみを持つことができる場
合は、各ノードに対して最低2スロットが要求される。
【0027】(5) エイリアン(Alien) セマフォ動作 ノードがそれが所有する位置から外れたエイリアンノー
ド(alien node)からセマフォ動作を受信した場合は、こ
れはこのエイリアンノードがその動作を完遂できるよう
にするためにDISCARD メッセージを発しなければならな
い。これは、この要求を後にTDECメッセージを送れば良
いという考えで無視してはならない。但し、DISCARD を
発する前に、TDECが生成されることを期待して少しの間
待つことは許される。
【0028】(6) −1から0までのみのINCTに関する所
有権の獲得 共有資源の制御とこれら資源を管理するセマフォの所有
との間のマッチを改良するために、ノードがセマフォの
所有権を資源の制御が得られたときにのみ得ることを許
されるようにすることが必要である。制御の獲得はソフ
トウエアの制御下にあるために完全なマッチ(match) を
得ることは不可能である。但し、制御がセマフォ位置が
−1から0に増分されたときにのみ得られる場合、これ
は、理想挙動にかなり近似させることができる。
【0029】「出INCT (Outgoing INCT)」図3は、セマ
フォユニット22のこれがローカル処理ユニット上でラ
ンしているプロセスからINCT要求を受信したときの動作
を示す図である。
【0030】INCT要求はパラメータとしてそれが関連す
るセマフォ位置の仮想アドレス及びこの位置の現在値を
含む。この要求を発したプロセスは中断され、セマフォ
動作が同期されるのを待つ。
【0031】セマフォユニットは、先ず最初にOWNED 状
態内の項目を探すために所有権テーブル24の自身のセ
クション(つまり、そのローカルノードと関連するセク
ション)を探索する(31)。
【0032】この項目が発見された場合は、これはこの
セマフォが既にこのノードによって所有されていること
を意味し、このためノードは動作が同期されることを待
つことなくセマフォ動作の遂行に進むことができる。AP
PLIED-INCTメッセージが通信網上に送られるが(3
2)、このメッセージはINCT要求にて供給されるセマフ
ォアドレス及び値を含んでいる。INCT動作がセマフォの
ローカルコピーに加えられ(33)、返された値が処理
ユニットにパスされる(34)。INCTを先導したプロセ
スはここで中断を解かれる。
【0033】一方、セマフォがこのノードによって所有
されてないときは、INCTメッセージが通信網上に送られ
るが(35)、このメッセージはINCT要求によって供給
されるセマフォアドレス及び値を含む。INCT要求を先導
したプロセスは中断されたままに留まり、メッセージが
帰って来るのを待つ。
【0034】後に説明されるように、ノードがINCTメッ
セージを送ると、ノードはそのセマフォが他のノードに
よって既に所有されてない場合には、セマフォの所有権
を獲得する。従って、INCTメッセージを送る前に、セマ
フォユニットはまず最初にセマフォ所有デーブルを調べ
ることによって、テーブルの自身のセクション内にフリ
ーのエントリが存在するか否かを決定する(36)。テ
ーブルのこのセクションが満杯である場合には、現存す
るエントリの1つが選択され、全てのノードにこのエン
トリを破棄すべきであることを知らせるDISCARD メッセ
ージが通信網を通じて送られる(37)。こうして選択
されたエントリの状態がDISCARD にセットされる。
【0035】「出TDEC (Outgoing TDEC)」図4は、セマ
フォがローカル処理ユニット上でランするプロセスから
TDEC要求を受信したときのセマフォユニットの動作を示
す図である。
【0036】TDEC要求は、パラメータとしてそれが関連
するセマフォ位置の仮想アドレス及びこの位置の現在値
を含む。この要求を発したプロセスは中断され、セマフ
ォ動作が同期されるのを待つ。
【0037】セマフォユニットは最初に所有権テーブル
の自身のセクションをOWNED 状態内にエントリがないか
探すためにチェックする(41)。このようなエントリ
が見つかった場合は、これはそのセマフォが既にこのノ
ードによって所有されていることを意味し、このためノ
ードは動作が同期されるのを待つことなくセマフォ動作
の遂行に進むことができる。APPLIED TDECメッセージが
通信網を通じて送られるが、このメッセージはTDEC要求
にて供給されるセマフォアドレス及びこの値を持つ(4
2)。TDEC動作がセマフォのローカルコピーに加えられ
(43)、返された値が処理ユニットにパスされる(4
4)。TDECを先導さたプロセスは、こうして中断を解か
れる。テーブルエントリが、このノードが現在セマフォ
の所有を放棄したことを示すために、DISCARD にセット
される(45)。
【0038】一方、セマフォがこのノードによって所有
されてないときは、TDECメッセージが通信網を通じて送
られるが、このメッセージはTDEC要求によって供給され
るセマフォアドレス及びこの値を含む(46)。
【0039】「自身の入りINCT (Incoming own INCT)」
図5は、ノードが通信網から自身から発せられたINCTメ
ッセージを受信したときのセマフォユニットの動作を示
す図である。
【0040】セマフォユニットは、最初に自身のテーブ
ルの全体を検索することによって、INCTメッセージによ
り指定されるセマフォと関連するエントリがないかどう
か探す(51)。エントリが存在しない場合(即ち、そ
のセマフォがIDLEの場合)、INCTメッセージ内のセマフ
ォ値がテストされ(52)、これが−1に等しいとき
は、ノードは所有権テーブルの自身のセクション内のエ
ントリを生成し、このエントリの状態をOWNED にセット
することにより(53)、セマフォの所有権を掌握す
る。INCT動作が次にセマフォのローカルコピーに加えら
れ(54)、返された値が処理ユニットにパスされる
(55)。INCTを先導したプロセスはこうして中断を解
かれる。
【0041】OWNED 又はDISCARD エントリが発見された
場合には(56)、INCTがセマフォのローカルコピーに
加えられ(57)、そして返された値が処理ユニットに
パスされ(58)、こうしてこのプロセスは中断を解か
れる。
【0042】OTHER-OWNED 又はQUEDエントリが発見され
た場合は(59)、INCTがセマフォのローカルコピーに
加えられる(510)。但し、返された値はプロセッサ
にパスされない。その代わり、INCTエントリがローカル
待ち行列に付加されるが、このエントリはセマフォアド
レスおよび返された値を含む(511)。セマフォがOT
HER-OWNED 状態にあるときは、この状態はQUEUED状態に
変えられる。
【0043】「自身の入りTDEC (Incoming own TDEC)」
図6は、ノードが通信網から自身から発せられたTDECメ
ッセージを受信したときのセマフォユニットの動作を示
す図である。
【0044】セマフォは、最初にセマフォ自身の所有権
テーブルの全体を探索することにより(61)、TDECメ
ッセージにて指定されるセマフォと関連するエントリが
ないか調べる。エントリが発見できないときは(つま
り、セマフォがIDLE)である場合には、TDEC動作がセマ
フォのローカルコピーに加えられ(62)、返された値
が処理ユニットにパスされる(63)。TDECを先導した
プロセスはこうして中断を解かれる。
【0045】OWNED 又はDISCARD エントリが発見された
場合には(64)、TDECがセマフォのローカルコピーに
加えられ(65)、そして返された値が処理ユニットに
パスされ(66)、こうしてプロセスは中断を解かれ
る。
【0046】OTHER-OWNED 又はQUEUEDエントリが発見さ
れた場合には(67)、TDECがセマフォのローカルコピ
ーに加えられ(68)、セマフォアドレス及び返された
値を含むTDECエントリがローカル待ち行列に加えられ
る。セマフォがOTHER-OWNED 状態にあるときは、この状
態がQUEUED状態に変えられる。
【0047】「自身の入りAPPLIED-INCT (Incoming own
APPLIED-INCT)」ノードが自身から発せられた入りAPPL
IED-INCTメッセージを受信すると、セマフォユニットは
以下のように動作する。
【0048】セマフォユニットは最初に所有権テーブル
の自身のセクションを探索して、指定されたセマフォと
関連するエントリがないか調べる。DISCARD 又はOWNED
状態内にエントリが発見された場合は、動作は要求され
ない。そうでない場合にはエラーが示される。
【0049】「自身の入りAPPLIED-TDEC又はDISCARD (I
ncoming own APPLIED-TDEC or DISCARD)」図7は、ノー
ドが自身から発せられたAPPLIED-TDEC又はDISCARD メッ
セージを受信したときのセマフォユニットの動作を示す
図である。
【0050】セマフォユニットは、まず最初に所有権テ
ーブルの自身のセクションを探索し(71)、指定され
るセマフォに対するエントリが存在しないかどうか調べ
る。DISCARD 状態内にエントリが発見された場合は(7
2)、セマフォの状態をIDLEにリセットするためにこの
エントリが削除される(73)。そうでない場合は、エ
ラーが示される。
【0051】「入りエイリアンINCT (Incoming Alien I
NCT)」図8は、他のノードから発せられたINCTメッセー
ジを受信したときのセマフォの動作を示す図である。
【0052】セマフォユニットはまず最初に指定された
セマフォと関連するエントリが存在しないか所有権テー
ブルの全体を探索する(81)。エントリが発見されな
い場合(つまり、セマフォがIDLEである場合)、セマフ
ォのローカルコピーにINCT動作が加えられる(82)。
またメッセージ内に含まれるセマフォ値がテストされ
(83)、これが−1である場合、このメッセージを発
したノードと対応する所有権テーブルのセクション内に
このセマフォがそのノードによって所有されていること
を示すため、OTHER-OWNED 状態を持つエントリが生成さ
れる(84)。
【0053】OWNED エントリが発見された場合は(8
5)、INCT動作がセマフォのローカルコピーに加えられ
る(86)。次に、DISCARD メッセージが送られ(8
7)、エントリの状態がDISCARD にセットされる(8
8)。
【0054】DISCARD 、OTHER-OWNED 又はQUEUEDエント
リが発見された場合には(89)、INCT動作がセマフォ
のローカルコピーに加えられる(810)。
【0055】「入りエイリアンTDEC (Incoming Alien T
DEC)」図9は、他のノードから発せられたTDECメッセー
ジを受信したときのセマフォユニットの動作を示す図で
ある。
【0056】セマフォユニットは最初に指定されるセマ
フォと関連するエントリが存在しないか所有権テーブル
の全体を探索する(91)。エンリトが発見されない場
合には(つまり、セマフォがIDLEの場合は)、TDEC動作
がセマフォのローカルコピーに加えられる(92)。
【0057】OWNED エントリが発見された場合は(9
3)、TDEC動作がセマフォのローカルコピーに加えられ
る(94)。次にDISCARD メッセージが送られ(9
5)、エントリの状態がDISCARD にセットされる(9
6)。
【0058】DISCARD 、OTHER-OWNED 又はQUEUEDエント
リが発見された場合には(97)、TDEC動作がセマフォ
のローカルコピーに加えられる(98)。
【0059】「入りエイリアンAPPLIED-INCT (Incoming
Alien APPLIED-INCT)」図10は、他のノードから発せ
られるAPPLIED-INCTメッセージが受信されたときのセマ
フォユニットを示す図である。
【0060】セマフォユニットは、最初に指定されたセ
マフォと関連するエントリが存在しないかどうか調べる
ためにメッセージを発したノードと関連する所有権テー
ブルのセクションを探索する(101)。エントリが存
在しないときは、エラーが示される。
【0061】OTHER-OWNED エントリが発見された場合は
(102)、INCT動作がセマフォのローカルコピーに加
えられる(103)。
【0062】QUEUEDエントリが発見された場合は(10
4)、セマフォのローカルコピーにINCT動作が加えられ
る(105)。この特定のセマフォと関連するローカル
待ち行列内の各エントリ次にその値のフィールドに1を
加えることによって調節される。尚、セマフォが任意の
他の状態にあるときは、エラーが示される。
【0063】「入りエイリアンAPPLEID-TDEC (Incoming
Alien APPLIED-TDEC)」図11は、他のノードから発せ
られたAPPLIED-TDECメッセージが受信されたときのセマ
フォの動作を示す図である。
【0064】セマフォユニットは、最初に指定されたセ
マフォに関連するエントリが発見されないか調べるため
にメッセージを発したノードと関連する所有権テーブル
のセクションを探索する(111)。エントリが存在し
ない場合は、エラーが示される。
【0065】OTHER-OWNED エントリが発見された場合は
(112)、セマフォのローカルコピーにTDEC動作が加
えられ(113)、セマフォをIDLEにセットするために
エントリが削除される(114)。
【0066】QUEUEDエントリが発見された場合には(1
15)、TDEC動作がセマフォのローカルコピーに加えら
れる(116)。このセマフォと関連するローカル待ち
行列内の各エントクリが次にその値フィールドから1を
引くことによって調節される(117)。次に、これら
の全ての待ち行列エントリが待ち行列から削除され、残
りのエントリが間隙を埋めるためにシフトダウンされ
る。最後に、所有権テーブル内のエントリがセマフォを
IDLEにセットするため削除される(119)。
【0067】「入りエイリアンDISCARD (Incoming Alie
n DISCARD)」図12は、他のノードから発せられたDISC
ARD メッセージが受信されたときのセマフォユニットの
動作を示す図である。
【0068】セマフォユニットはまず最初に指定された
セマフォと関連するエントリが存在しないか調べるため
にメッセージを発したノードと関連する所有権テーブル
のセクションを探索する(121)。エントリが発見さ
れないときは、エラーが示される。
【0069】OTHER-OWNED エントリが発見された場合に
は(122)、このエントリはセマフォをIDLEにセット
するために削除される(123)。
【0070】QUEUEDエントリが発見された場合は(12
4)、このセマフォと関連するこの待ち行列内の各エン
トリを処理ユニットにパスすることによって、ローカル
待ち行列が処理される(125)。最後に、セマフォを
IDLEにセットするために所有権テーブル内のこのエント
リが削除される(126)。
【0071】「動作の例(1)」ノード0内で実行中の
プロセスが共有資源へのアクセスを必要とし、この資源
に対するセマフォが現在いずれのノードによっても所有
されてない(つまり、セマフォがIDLEである)ケースに
ついて最初に考察する。
【0072】このプロセスはセマフォユニット22にIN
CT要求を発し、次いで中断状態となる。図3に示される
ように、セマフォユニットは、このセマフォに対するエ
ントリを発見せず、このためICNTメッセージが通信網を
通じて全てのノードに送られる。
【0073】図8に示されるように、このINCTメッセー
ジが他の各ノードの所に受信されたときに、INCTがセマ
フォのローカルメッセージに対して実行され、そのセマ
フォが現在ノード0によって所有されていることを示す
OTHER-OWNED エントリがそのノードの所有権テーブル内
に生成される。
【0074】図5に示されるように、INCTメッセージが
ノード0のところに受信されると、そのセマフォが現在
このノードによって所有されていることを示すOWNED エ
ントリが所有権テーブル内に生成される。INCTが次にセ
マフォのローカルコピーに加えられ、返された値がプロ
セッサにパスされる。中断されたプロセスはここで中断
を解かれ、共有資源へのアクセスが可能となる。
【0075】プロセスが共有資源へのアクセスを完遂す
ると、これは、TDEC要求を発し、再び中断状態となる。
図4に示されるように、セマフォユニットはセマフォが
既にこのノードによって所有されていることを見つけ、
このため、セマフォのローカルコピーに直ちにTDEC動作
を加えることができ、返された値をプロセスにパスす
る。中断されたプロセスは従って直ちにTDECメッセージ
が回って来るのを待つことなく中断を解かれる。こうし
て結果として、セマフォ動作がその実際の入力順の前に
加えられる。セマフォユニットはまた通信網上にAPPLIE
D-TDECメッセージを送り、所有権テーブル内のエントリ
の状態をDISCARD にセットする。
【0076】図11に示されるように、APPLIED-TDECメ
ッセージが他のノードのところで受信されると、これら
各ノード内のセマフォユニットはセマフォがOTHER-OWNE
D 状態であることを見つける。従って、これはTDEC動作
をセマフォのローカルコピーに加え、所有権テーブル内
のそのエントリを削除する(つまり、セマフォをIDLEに
セットする)。
【0077】図7に示されるように、APPLIED-TDECメッ
セージがノード0によって受信されると、このノード内
のセマフォはセマフォがDISCARD 状態であることを見つ
け、従って、これは所有権テーブル内のこのエントリを
削除し、セマフォをIDLE状態に戻す。
【0078】「動作の例(2)」次に、ノード0内で実
行中のプロセスが共有資源へのアクセスを要求し、この
資源に対するセマフォが既にノード1によって所有され
ているケースについて考察する。
【0079】前述の例と同様に、プロセスはINCT要求を
発し、中断され、セマフォユニットはINCTメッセージを
送る(図3)。
【0080】図8に示されるように、INCTメッセージが
ノード1のところで受信されると、ノード1内のセマフ
ォユニットはこのセマフォがOWNED 状態であること、つ
まりノード1によって所有されていることを見つける。
従ってこれはINCT動作をセマフォのローカルコピーに加
え、次にDISCARD メッセージを送り、セマフォの所有状
態をDISCARD にセットする。こうしてノード1はノード
0がそのセマフォ動作を遂行できるようにセマフォの所
有権を放棄する。
【0081】図5に示されるように、INCTメッセージが
ノード0のところに受信されると、ノード0内のセマフ
ォユニットはこのセマフォがOTHER-OWNED 状態にあるこ
とを見つける。従って、これはINCT動作をそのセマフォ
のローカルコピーに加え、戻された値をローカル待ち行
列内に入れ、セマフォの所有状態をQUEUEDにセットす
る。
【0082】図12に示されるように、ノード0にノー
ド1からのDISCARD メッセージが到着した場合、セマフ
ォユニットはそのセマフォがQUEUED状態にあることを見
つける。従って、これは待ち行列動作を行なって、待た
された値をプロセッサにパスし、それゆえプロセスはこ
こで中断を解かれる。最後に、これはローカル所有権テ
ーブルのこのエントリを削除し、セマフォをIDLE状態に
戻す。
【0083】DISCARD メッセージがノード1のところに
到着すると、ローカル所有権テーブルのこのエントリが
削除される。
【図面の簡単な説明】
【図1】本発明を具現するデータ処理システムのブロッ
ク図である。
【図2】システムの処理ノードをより詳細に示すブロッ
ク図である。
【図3】各ノードのセマフォ機構を図解する流れ図であ
る。
【図4】各ノードのセマフォ機構を図解する流れ図であ
る。
【図5】各ノードのセマフォ機構を図解する流れ図であ
る。
【図6】各ノードのセマフォ機構を図解する流れ図であ
る。
【図7】各ノードのセマフォ機構を図解する流れ図であ
る。
【図8】各ノードのセマフォ機構を図解する流れ図であ
る。
【図9】各ノードのセマフォ機構を図解する流れ図であ
る。
【図10】各ノードのセマフォ機構を図解する流れ図で
ある。
【図11】各ノードのセマフォ機構を図解する流れ図で
ある。
【図12】各ノードのセマフォ機構を図解する流れ図で
ある。
【符号の説明】
10 処理ノード 12 通信網
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル フィールズ イギリス国.ランカシャー,ラムズボト ム,ヴィクトリア ストリート 37 (72)発明者 マーク ノーマン フラートン イギリス国.ダービーシャー,グロソッ プ,シモンドレイ グローヴ 7 (72)発明者 アンドリュー ジョン ノウルズ イギリス国.チェシャー,マープル,イー スト ヴェイル 6

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システムにおいて、前記シス
    テムが、 (a) 複数の処理ノード、 (b) 複数のノードを連結して、ノードが通信網を通じて
    他の全てのノードに入力順にメッセージを送れるように
    するための通信網、 (c) 全てのノードによって共有される複数の共有資源、
    及び (d) 対応する共有資源へのアクセスを制御するための複
    数のセマフォをであって、各ノードがこれら全てのセマ
    フォのローカルコピーを持つものを含み、前記システム
    が更に、 (e) これらセマフォに対して所有状態を定義するための
    手段を含み、ここで、各セマフォは特定のノードによっ
    て所有された状態又は所有されていない状態として定義
    され、 (f) 各ノード内のノードによって所有されていないセマ
    フォに関するセマフォ動作の要求に応答して、全てのノ
    ードがセマフォのそれらローカルコピーに関してセマフ
    ォ動作を遂行するように命令するセマフォメッセージを
    通信網を通じて送るための手段を含み、この場合、セマ
    フォ動作がこのノード内でセマフォメッセージが通信網
    から戻されてくるまで停止され、そして (g) 各ノード内のこのノードによって所有されるセマフ
    ォに関するセマフォ動作の要求に応答して、全てのノー
    ドがセマフォのそれらローカルコピーに関してセマフォ
    動作を遂行するように指令するセマフォメッセージを通
    信網を通じて送るための手段を含み、この場合、このノ
    ードがセマフォ動作を通信網からセマフォメッセージが
    送り返されて来るのを待つことなくセマフォ動作に進む
    ことが許されることを特徴とするデータ処理システム。
  2. 【請求項2】 各ノードが、他のノードによって所有さ
    れるセマフォに関するセマフォ動作の要求に応答して全
    てのノードがセマフォのそれらローカルコピーに関する
    セマフォ動作を遂行するように指令するセマフォメッセ
    ージを通信網を通じて送るための手段を含み、前記セマ
    フォ動作が他のノードからの前進の許可が受信されるま
    で中断されることを特徴とする請求項1に記載のデータ
    処理システム。
  3. 【請求項3】 前記他のノードが、通信網を通じてそれ
    がセマフォの所有権を放棄することを示すメッセージを
    送ることにより前進の許可を与えることを特徴とする請
    求項2に記載のデータ処理システム。
  4. 【請求項4】 各ノードが、他のノードによって所有さ
    れるセマフォに関するセマフォ動作によって戻された値
    の処理のための待ち行列を含むことを特徴とする請求項
    2又は3に記載のデータ処理システム。
  5. 【請求項5】 各ノードが、このノードによって送られ
    たセマフォメッセージが通信網から戻されてきたとき
    に、所有されていないセマフォの所有権を取得するため
    の手段を含むことを特徴とする請求項1、2、3又は4
    に記載のデータ処理システム。
  6. 【請求項6】 各ノードが、それによって所有されるセ
    マフォの所有権を、それがそれと関連する共有資源を解
    放するセマフォ動作を遂行したとき、又はこれが他のノ
    ードからそのセマフォと関連するセマフォメッセージを
    受信したとき放棄することを特徴とする請求項1、2、
    3、4又は5に記載のデータ処理システム。
  7. 【請求項7】 セマフォに対する所有状態を定義する前
    記手段が所有テーブルを含み、各ノードがこの所有テー
    ブルのローカルコピーを持つことを特徴とする請求項
    1、2、3、4、5又は6に記載のデータ処理システ
    ム。
JP4293600A 1991-11-01 1992-11-02 データ処理システム用のセマフォ機構 Withdrawn JPH05233423A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9123264.5 1991-11-01
GB919123264A GB9123264D0 (en) 1991-11-01 1991-11-01 Semaphone arrangement for a data processing system

Publications (1)

Publication Number Publication Date
JPH05233423A true JPH05233423A (ja) 1993-09-10

Family

ID=10703946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4293600A Withdrawn JPH05233423A (ja) 1991-11-01 1992-11-02 データ処理システム用のセマフォ機構

Country Status (7)

Country Link
US (1) US5394551A (ja)
EP (1) EP0540161B1 (ja)
JP (1) JPH05233423A (ja)
AU (1) AU655684B2 (ja)
DE (1) DE69225671T2 (ja)
GB (1) GB9123264D0 (ja)
ZA (1) ZA927287B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0595453B1 (en) * 1992-10-24 1998-11-11 International Computers Limited Distributed data processing system
US5586318A (en) * 1993-12-23 1996-12-17 Microsoft Corporation Method and system for managing ownership of a released synchronization mechanism
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
CA2146170C (en) * 1995-04-03 2001-04-03 Matthew A. Huras Server detection of client process termination
US5799195A (en) * 1995-07-24 1998-08-25 Dell Usa, L.P. Structure and method for detecting occurrence of external events using semaphores
US5696939A (en) * 1995-09-29 1997-12-09 Hewlett-Packard Co. Apparatus and method using a semaphore buffer for semaphore instructions
US6532487B1 (en) * 1995-12-04 2003-03-11 International Business Machines Corporation Method and system for managing semaphores in an object-oriented multi-tasking computer system
US5931923A (en) * 1996-02-16 1999-08-03 Advanced Micro Devices, Inc. System for accessing control to a peripheral device utilizing a synchronization primitive within the peripheral device
US5842015A (en) * 1996-07-26 1998-11-24 Hewlett-Packard Company System and method for real-time control of hardware in a multiprocessing environment
US5727206A (en) * 1996-07-31 1998-03-10 Ncr Corporation On-line file system correction within a clustered processing system
US5828876A (en) * 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
US5900018A (en) * 1997-06-24 1999-05-04 Sun Microsystems, Inc. Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache
US6112282A (en) * 1997-06-24 2000-08-29 Sun Microsystems, Inc. Apparatus for atomic locking-accessing-unlocking of a shared resource
JPH11203254A (ja) * 1998-01-14 1999-07-30 Nec Corp 共有プロセス制御装置及びプログラムを記録した機械読み取り可能な記録媒体
US6405233B1 (en) 1999-06-30 2002-06-11 Intel Corporation Unaligned semaphore adder
GB2370131C (en) * 2000-12-12 2006-09-06 Advanced Risc Mach Ltd Exclusive access control to a processing resource
US7996592B2 (en) * 2001-05-02 2011-08-09 Nvidia Corporation Cross bar multipath resource controller system and method
US7966400B2 (en) * 2003-04-03 2011-06-21 International Business Machines Corporation Apparatus, system and method of delivering alternate web pages based on browsers' content filter settings
US7614054B2 (en) * 2003-12-31 2009-11-03 Intel Corporation Behavioral model based multi-threaded architecture
JP4649257B2 (ja) * 2005-04-04 2011-03-09 キヤノン株式会社 マルチcpuシステム
JP2007179190A (ja) * 2005-12-27 2007-07-12 Mitsubishi Electric Corp セマフォ管理方法、およびセマフォ管理プログラム
US7852845B2 (en) * 2006-10-05 2010-12-14 Waratek Pty Ltd. Asynchronous data transmission
WO2008040064A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Switch protocol for network communications
US9639474B2 (en) * 2013-03-15 2017-05-02 Nvidia Corporation Migration of peer-mapped memory pages

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253418A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253423A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4145739A (en) * 1977-06-20 1979-03-20 Wang Laboratories, Inc. Distributed data processing system
DE2963264D1 (en) * 1978-12-04 1982-08-19 Ibm Multiprocessor system with enqueue facility for access to sharable data facilities
US4380798A (en) * 1980-09-15 1983-04-19 Motorola, Inc. Semaphore register including ownership bits
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4964040A (en) * 1983-01-03 1990-10-16 United States Of America As Represented By The Secretary Of The Navy Computer hardware executive
US4594657A (en) * 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
JPS6481066A (en) * 1987-09-24 1989-03-27 Nec Corp Connection system for multi-processor
US5050072A (en) * 1988-06-17 1991-09-17 Modular Computer Systems, Inc. Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
DE3886756T2 (de) * 1988-10-28 1994-06-23 Ibm Betriebsmittelzugriff für Multiprozessorrechnersystem.
US5276886A (en) * 1990-10-11 1994-01-04 Chips And Technologies, Inc. Hardware semaphores in a multi-processor environment

Also Published As

Publication number Publication date
EP0540161B1 (en) 1998-05-27
DE69225671D1 (de) 1998-07-02
ZA927287B (en) 1993-03-25
EP0540161A1 (en) 1993-05-05
US5394551A (en) 1995-02-28
AU655684B2 (en) 1995-01-05
AU2744892A (en) 1993-05-06
DE69225671T2 (de) 1999-01-21
GB9123264D0 (en) 1991-12-18

Similar Documents

Publication Publication Date Title
JPH05233423A (ja) データ処理システム用のセマフォ機構
US7080377B2 (en) Method for effective utilizing of shared resources in computerized system
US6510478B1 (en) Method and apparatus for coordination of a shared object in a distributed system
EP0006216B1 (en) Improvements in digital data processing systems
DE69931052T2 (de) Middleware-basiertes echtzeit-kommunikationssystem
US5513345A (en) Searching system for determining alternative routes during failure in a network of links and nodes
JPS6358418B2 (ja)
JP3172192B2 (ja) データ会議ネットワーク
JPH03503832A (ja) バスシステムとして構成された局域通信用のチャネルアクセス方法
JPH0448350A (ja) データベース管理システム
US20030018606A1 (en) Revocation of tokens without communication between the token holders and the token server
JP2003527777A (ja) ファイバーチャネルアービトレーテッドループの可変アクセス公平性
JPH04162155A (ja) ファイル転送管理システム
JP3544140B2 (ja) 分散オブジェクト環境における排他制御方式
JPH09259051A (ja) アラーム通知処理方式
JPH0292043A (ja) データ受信方式
JP3904251B2 (ja) 排他制御方法
JPH06110850A (ja) オンラインシステムの負荷分散方式
JPH04367037A (ja) 計算機システム
AU635097B2 (en) System and method for reducing storage channels in disk systems
JPH04262425A (ja) 共有資源排他制御方式
Knott A proposal for certain process management and intercommunication primitives
JPH09282185A (ja) リアルタイムシステムおよびその資源管理方法
JPH07107679B2 (ja) クライアントとサーバ間のメッセージ通信制御方式
Lien et al. Design and Performance Study of DDBLMN; A Distributed Database on a Local Computer System

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000104