JP4923288B2 - 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構 - Google Patents

非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構 Download PDF

Info

Publication number
JP4923288B2
JP4923288B2 JP2000068746A JP2000068746A JP4923288B2 JP 4923288 B2 JP4923288 B2 JP 4923288B2 JP 2000068746 A JP2000068746 A JP 2000068746A JP 2000068746 A JP2000068746 A JP 2000068746A JP 4923288 B2 JP4923288 B2 JP 4923288B2
Authority
JP
Japan
Prior art keywords
identifier
value
binary variable
shared
variable array
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.)
Expired - Fee Related
Application number
JP2000068746A
Other languages
English (en)
Other versions
JP2001256209A (ja
Inventor
陽子 友保
健一 松浦
典可 吉田
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2000068746A priority Critical patent/JP4923288B2/ja
Publication of JP2001256209A publication Critical patent/JP2001256209A/ja
Application granted granted Critical
Publication of JP4923288B2 publication Critical patent/JP4923288B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
共有オブジェクトを通じて情報を伝達する複数の非同期プロセッサからなる共有オブジェクトシステムにおいて、
故障していないプロセッサの全てが故障により停止したプロセッサの影響を受けることなく有限ステップ後に合意を得る手法、耐故障性をもつ非同期共有オブジェクトシステムにおける合意問題を解く手法、および、それらの実現機構。
【0002】
【従来の技術】
複数のプロセッサからなる共有オブジェクトシステムにおいて、
故障して停止しているプロセッサに関わらず、故障していないプロセッサの全てが1つの値に合意する非同期共有オブジェクトシステムにおける耐故障合意問題は非同期システムにおける同期化およびプロセッサの故障検出に有効な応用をもつ。
非同期共有オブジェクトシステムは複数のプロセッサと有限個の共有2値変数配列の集合である共有オブジェクトからなる。
プロセッサは共有2値変数配列を介して通信する。
各プロセッサは入力動作や出力動作を行い外部と対話するためのポートをもつ。
Vをある値の集合とし、1からnまでの自然数でラベル付けされたn個のプロセッサと共有2値変数の集合Xからなる共有オブジェクトシステムを考える。
各プロセッサへの外部入力をinit(v)とする。
ここで、vは集合Vの要素である。また、各プロセッサはdecide(v) の形で外部に出力する。
【0003】
各プロセッサは特別な入力 Stop をもつ可能性がある。
Stop信号は特定できない外部からの入力で、プロセスのStop信号受信後は動作を停止する。
共有オブジェクトシステムが以下の3つの条件を満たすとき合意に達する。
(1) 任意のプロセッサに対して、そのプロセッサのinitとdecideとの時間的系列は列init(v)、 decide(w)のある接頭辞である。
つまり、何もないか、init(v) のみであるか、init(v)、 decide(w)の2つの動作の列である。
(2) 全ての決定値は同じ値である。(Agreement条件) (3) 決定値はあるプロセッサの入力値である。(Validity条件)
【0004】
共有オブジェクトシステムで1からn-1までの任意の個数のプロセッサがStop信号を受信して停止した場合でも、残りの停止していないプロセッサの全てが合意するとき、システムが耐故障合意に達する。
【0005】
この耐故障合意を共有オブジェクトの各2値変数配列を適用可能な操作でタイプ分けした場合、どのような手法が存在するかを示す。
従来、共有オブジェクトの2値変数配列は1命令中に読み出しまたは書き込みのみを許すread-write 2値変数配列と書き込みと読み出しの両方を1命令中に実行可能な read-modify-write 2値変数配列に大別される。
非同期共有オブジェクトシステムでは、read-write 2値変数配列のみでは耐故障合意が得られない。
初期値unknownである共有2値変数配列xを用いる合意手法の具体例を示す。
【0006】
外部からの入力値をkとする。
次に、read(x)命令により共有2値変数配列xの値を戻り値vとして受け取る。
もし、値vが初期値unknownのままであれば、write(x、k)命令により共有2値変数配列xにkの値を代入しdecide(k)で値kに合意する。そうでなければ、decide(v)で値vに合意する。
この場合共有オブジェクトの内容を読み込んで、プロセッサがその内容に従って書き込みを行う前に共有オブジェクトの内容が変化してしまうことで不合意を導いてしまう。
【0007】
そこで、読み出しと書き込みの両方を1命令で行うread-modify-write により耐故障性をもつ合意手法が考えられる。
read-modify-write命令の1つであるcompare-and-swap命令について説明する。
共有2値変数配列xと値v、 値kにおいてcompare-and-swap(x、v、k)命令は共有2値変数配列xの値wがvと一致するなら共有2値変数配列xに値kを書き込み値wを戻り値として返す。そうでなければ何もせず、値wを戻り値として返す。この手続きを1命令ステップ中に実行する。
【0008】
compare-and-swap命令による耐故障合意を得る手法の例を示す。
初期値がunknownである共有2値変数配列xにおいて、始めに外部からの入力値をkとする。
次に、compare-and-swap(x、unknown、k)命令により共有2値変数配列xの値wがunknownならxにkを書き込み戻り値としてunknownを受け取る。そうでなければ、wを戻り値として受け取る。compare-and-swap命令の戻り値vがunknownなら、decide(k)により値kに合意する。
そうでなければ、decide(v)により値vに合意する。
【0009】
共有2値変数配列内容の多重書き込みを許さない単一書き込みのみ可能な2値配列変数xの場合、read-modify-write命令を実行中、変数xはロックされ、変数xに対する他の全ての命令が実行不能となる。
【0010】
複数のプロセッサが同時に変数xに対するread-modify-write命令を発行した場合、プロセッサ数の長さをもつロックの連なりができてしまう。
この状況を競合と呼ぶ。また、1つの命令に対してできる可能性のあるロックの連なりに属しているロックの最大個数、つまり、長さを競合のコストとする。
【0011】
【発明が解決しようとしている課題】
上記従来手法のread-modify-write 命令では競合コストはシステム内のプロセッサ数に比例して大きくなる。
理論的にはread-modify-write 命令を用いる任意の耐故障合意手法の競合コストがプロセッサ数に比例して大きくなることが示されている。
この競合コストの削減を目的にread命令とwrite命令だけで合意が失敗する確率を保証する手法も存在する。
この場合、競合のコストはプロセス数に依存しないが、手法の実行ステップ数はプロセッサ数の二乗ないし三乗に比例する。
本発明は競合のコストがプロセッサ数に依存しない耐故障性をもち、特にほとんど同期してプロセッサが動作する場合に効率よく合意を得る手法とその実現機構を提案する。
【0012】
【課題を解決するための手段】
上記の目的を達成するため、
本発明の共有オブジェクトシステムでは全てのプロセッサが同時に書き込み、読み出しができる多重読み出し多重書き込み可能な共有2値変数配列xと各プロセッサごとにそのプロセッサのみが書き込みができ他の全てのプロセッサが同時に読み出しができる単一書き込み多重読み出し可能な2値変数配列を設定する。
【0013】
さらに、本発明の共有オブジェクトシステムでは新たな命令read-and-write(x、y、k)を備えもつ。
read-and-write命令は共有2値変数配列xの読み込みと共有2値変数配列yの書き込みを1ステップで行う命令であり、
命令開始から終了まで書き込む変数yがロックされ、他のプロセッサが読み書きできない。しかし、読み出しの対象である変数xは排他的制御を必要としない、つまり、多重読み出し、書き込みを許す。
具体的には変数xが1ならば変数yにkを書き込み1を返し、変数xが1でなければ何もせずに0を返すという以下の手続きを1命令ステップで実行する。
【0014】
【発明の実施の形態】
このとき、共有オブジェクトシステムは全ての多重書き込み多重読み出し可能な2値配列xと単一書き込み、多重読み出し可能なレジスタをプロセッサnの2倍であるn×2個の2次元2値変数配列y[n][2]を備えもつ。
各プロセッサiは配列yではi行目の要素であるy[i][1]とy[i][2]のみを書き込むことが可能である。
初期設定x=1、 y[n][2]の全ての2n個の要素をNULLとして、各プロセッサiにおいて以下のプロトコルを実行する。
【0015】
始めに入力値をkとする。write(y[i][2]、k)命令により共有2値変数配列y[i][2]に値kを書き込む。次に、read-and-write(x、 y[i][1]、1)命令により共有2値変数配列xの値が1ならば共有変数配列y[i][1]に値1を書き込む、そうでなければなにもしない。次にwrite(x、0)命令によって共有2値変数配列xに0を書き込む。
その後、局所変数jによりインデックス付けされたループ内においてread(y[i][1])命令による戻り値が1となるインデックスjを見つけるまでjを1からnまで1ずつ増加する。ループを抜けた後,read(y[j][2])命令を実行して共有2値変数配列y[j][2]の値をvとする。最後にdecide(v)により値vに合意する。
共有2値変数配列xと共有2値変数配列群の各プロセッサiに割り当てられた領域y[i][1],y[i][2]の合意手法における役割は以下である。共有2値変数配列xでは、その真偽により共有2値変数配列を1回でも書き込んだプロセスが存在するか否かを示す。一方、共有2値変数配列群の値y[i][2]は合意の対象として各プロセスiが提示する入力値を示し、y[i][1]はその真偽により他のプロセスに値y[i][2]が合意の候補であるかどうかを示す。
【0016】
【発明の効果】
発明合意プロトコルではシステム中に故障したプロセッサが存在しても、故障していないプロセッサはプロトコルを終了することができる。
発明合意プロトコルにおいて発明機構を用いた場合、各プロセッサはwrite命令でy[i][2]を、read-and-write命令でy[i][1]のみをロックする。
xに対するwrite命令は多重書き込み読み出しが可能であるためロックを必要としない。
よって、各命令に対するロックの連なりの長さは高々1であり、発明合意プロトコルの競合コストは1である。
つまり、競合コストはシステム中のプロセス数に依存しない。特にほとんど同期したシステム中ではどんなにプロセス数が大きくともプロトコルの終了はほとんど同時に小さいステップ数で終了する。
【図面の簡単な説明】
【図1】共有オブジェクトシステムの実施例を示す図である。
【図2】共有2値変数配列の実施例を示す図である。

Claims (3)

  1. 2以上の非同期プロセッサとプロセッサの数をnとしたときに初期値を真とし、真か偽の値を記憶する共有2値変数配列xと
    プロセッサ各々でそのプロセッサの識別子を1以上n以下の整数iとしたとき、識別子iと領域y[i][1]が1対1に対応する、初期値を偽とする真か偽の値を記憶する領域y[i][1]により構成されている共有2値変数配列群y[1...n][1]とプロセッサ各々でそのプロセッサの識別子を1以上n以下の整数iとしたとき,識別子i と領域y[i][2]が1対1に対応する,領域y[i][2]により構成されている共有2値変数配列群y[1...n][2]なる共有オブジェクトを備える非同期共有オブジェクトシステムの
    プロセッサにより利用される合意解決手法であって、
    外部より受け取った入力値を当該プロセッサの識別子で1以上n以下の整数iに対応する前記共有2値変数配列群y[1...n][2]の領域y[i][2]へ書き込むステップと、
    前記共有2値変数配列xの値を読み出し、その結果が真である場合のみ当該プロセッサの前記識別子iに対応する前記共有2値変数配列群y[1...n][1]の領域y[i][1]に真の値を書き込むという動作を単一ステップ時間で行うステップと、
    前記共有2値変数配列xに偽の値を書き込むステップと、
    前記共有2値変数配列群y[1...n][1]の中の各識別子jに対応する領域y[j][1]を識別子1から識別子の値の増加順に読み出し、前記領域y[j][1]の値が真である最も小さな識別子jminを求めるステップと、前記共有2値変数配列群y[1...n][2]の中の前記識別子jminに対応する領域y[jmin][2]の値を読み出し決定候補値とするステップと、
    前記決定候補値を出力するステップとを
    有することを特徴とする合意解決手法。
  2. 2以上の非同期プロセッサと共有オブジェクトで構成される非同期共有オブジェクトシステムであって、
    プロセッサの数をnとしたときに初期値を真とし、真か偽の値を記憶する共有2値変数配列xとプロセッサ各々でそのプロセッサの識別子を1以上n以下の整数iとしたとき、識別子iと領域y[i][1]が1対1に対応する、初期値を偽とする真か偽の値を記憶する領域y[i][1]により構成されている共有2値変数配列群y[1...n][1]とプロセッサ各々でそのプロセッサの識別子を1以上n以下の整数iとしたとき,識別子i と領域y[i][2]が1対1に対応する、領域y[i][2]により構成されている共有2値変数配列群y[1...n][2]なる共有オブジェクトを備え、
    各プロセッサが外部より受け取った入力値を当該プロセッサの識別子で1以上n以下の整数iに対応する前記共有2値変数配列群y[1...n][2]の領域y[i][2]へ書き込む手段と、
    前記共有2値変数配列xの値を読み出し、その結果が真である場合のみ当該プロセッサの識別子iに対応する前記共有2値変数配列群y[1...n][1]の領域y[i][1]に真の値を書き込むという動作を1命令ステップで行うread-and-write(x,y[i][1],1)命令を実行する手段と、
    前記共有2値変数配列xに偽の値を書き込む手段と、前記共有2値変数配列群y[1...n][1]の中の各識別子jに対応する領域y[j][1]を識別子1から識別子の値の増加順に読み出し、領域y[j][1]の値が真である最も小さな識別子jminを求める手段と、
    前記共有2値変数配列群y[1...n][2]の中の前記識別子jminに対応する領域y[jmin][2]の値を読み出し決定候補値とする手段と、
    前記決定候補値を出力する手段とを
    有することを特徴とし、請求項1の手法を実施可能な非同期共有オブジェクトシステム。
  3. 前記read-and-write(x,y[i][1],1)命令を実行する手段は、
    前記識別子iをもつ当該プロセッサが前記共有2値変数配列群y[1...n][1]の前記領域y[i][1]に前記共有2値変数配列xの値が真の場合のみ真の値を書き込み、
    前記共有2値変数配列群y[1...n][1]の前記領域y[i][1]を前記共有2値変数配列xの読み出し開始から前記領域y[i][1]の書き込み終了までの間前記識別子i以外の識別子をもつプロセッサが読み書きできないようロックする、
    しかし、
    前記共有2値変数配列xの排他的制御を行わず、前記識別子iをもつプロセッサ以外のプロセッサによる読み出し、真の値の書き込みを許す
    ことを特徴とする請求項2に記載の非同期共有オブジェクトシステム。
JP2000068746A 2000-03-13 2000-03-13 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構 Expired - Fee Related JP4923288B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000068746A JP4923288B2 (ja) 2000-03-13 2000-03-13 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000068746A JP4923288B2 (ja) 2000-03-13 2000-03-13 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構

Publications (2)

Publication Number Publication Date
JP2001256209A JP2001256209A (ja) 2001-09-21
JP4923288B2 true JP4923288B2 (ja) 2012-04-25

Family

ID=18587755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000068746A Expired - Fee Related JP4923288B2 (ja) 2000-03-13 2000-03-13 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構

Country Status (1)

Country Link
JP (1) JP4923288B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5201434B2 (ja) * 2001-09-28 2013-06-05 陽子 友保 耐故障合意手法およびその高速動作を保証する非同期共有オブジェクトシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512100A (ja) * 1991-07-05 1993-01-22 Fujitsu Ltd セルの管理方法及びセル管理テーブル
JP2781742B2 (ja) * 1995-05-30 1998-07-30 甲府日本電気株式会社 並列計算機
US5696939A (en) * 1995-09-29 1997-12-09 Hewlett-Packard Co. Apparatus and method using a semaphore buffer for semaphore instructions
JP3675623B2 (ja) * 1997-10-31 2005-07-27 株式会社東芝 プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体
JPH11312148A (ja) * 1998-04-28 1999-11-09 Hitachi Ltd バリア同期方法及び装置

Also Published As

Publication number Publication date
JP2001256209A (ja) 2001-09-21

Similar Documents

Publication Publication Date Title
US4497059A (en) Multi-channel redundant processing systems
Jayanti et al. Fault-tolerant wait-free shared objects
JPS62208158A (ja) マルチプロセツサシステム
US20030126404A1 (en) Data processing system, array-type processor, data processor, and information storage medium
JP4923288B2 (ja) 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構
JPH0833842B2 (ja) 論理演算装置
RU2411570C2 (ru) Способ и устройство для сравнения данных в вычислительной системе, включающей в себя по меньшей мере два исполнительных блока
CA2258859A1 (en) Arrangement for operating two functionally parallel processors
JP2001337822A (ja) 命令バッファ及びバッファキュー制御
JP3553793B2 (ja) シングルイベントアップセット対策データ処理装置およびシングルイベントアップセット対策処理方法
CA2151673C (en) Parallel processing system with a plurality of communication register modules
CN114981781B (zh) 信息处理装置、控制方法和记录介质
JP5201434B2 (ja) 耐故障合意手法およびその高速動作を保証する非同期共有オブジェクトシステム
JPS62180470A (ja) ベクトル処理装置
JPH0713818B2 (ja) マイクロプロセッサ
JPH0769836B2 (ja) マイクロプロセッサ
SU1365086A1 (ru) Устройство дл контрол блоков управлени
JPH0690728B2 (ja) マイクロプロセッサ
JPH10340202A (ja) 故障検証を容易にするアドレストラップ比較回路
JP2968658B2 (ja) バリア同期実現方法
JPH1074186A (ja) アレイからエントリを選択する方法および装置
JPH04286031A (ja) プログラムのループ並列実行処理方法
Elphick et al. Enhanced distributed recovery blocks: a unified approach for the design of safety-critical distributed systems
JP2004302831A (ja) 非同期分散システムとその排他的命令の耐故障かつ競合低減化実行方法
JPH0769754B2 (ja) 同期タイミング制御方式

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20000313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070427

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070504

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120118

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees