JPS6339039A - プロセス同期方法 - Google Patents
プロセス同期方法Info
- Publication number
- JPS6339039A JPS6339039A JP18244786A JP18244786A JPS6339039A JP S6339039 A JPS6339039 A JP S6339039A JP 18244786 A JP18244786 A JP 18244786A JP 18244786 A JP18244786 A JP 18244786A JP S6339039 A JPS6339039 A JP S6339039A
- Authority
- JP
- Japan
- Prior art keywords
- token
- ownership
- processes
- control block
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 150
- 230000008569 process Effects 0.000 title claims abstract description 128
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000005856 abnormality Effects 0.000 claims abstract description 7
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 7
- 230000036962 time dependent Effects 0.000 description 6
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数のプロセスがお互いにメツセージを交換
しながら処理を進めていくシステムにおけるプロセスの
同期方法に関する。
しながら処理を進めていくシステムにおけるプロセスの
同期方法に関する。
複数のプロセスがお互いにメツセージを交換しながら処
理を進めていくシステムにおけるプロセス同期方法には
大きく分けて2通りある。1つはタイム・インデペンデ
ント(Time−1ndependent)型のプロセ
ス同期方法、もう1つはタイム・デベンデンI・(Ti
me−Dependent)型のプロセス同期方法であ
る。ここでプロセスとは1つの実行中ブロダラム単位と
考えることにする。タイム・インデペンデント型のプロ
セス同期方法は、メツセージと送るとそれに対する送達
確認情報(ACK)を受けとることで送受間プロセスの
同期をとるものである。この方法はメツセージ交換型の
プロセス同期の典型的な方法として知られているが、障
害時の回復が困難となる点、また多プロセスでのコマン
ド実行に矛盾が生じることがある点などの問題点がある
。この矛盾が生じる場合に関しては、例えば次のような
例を考えればわかる。今、航空機の座席予約を行なうた
めの分散型データベースシステムを考える。プロセスA
(ユーザーA)とプロセスB(ユーザーB)とがほぼ同
時に分散データベースX、Yをアクセスし、座席予約を
行なおうとしている。ここで、分散データベースX、Y
には全く同じ座席予約状況を示す情報が格納されている
゛とする。この場合、伝送路遅延のバラつきあるいは処
理時間のバラつきからデータベースX、Yに到着するプ
ロセスA、Bからのメツセージは順序関係が一意に決ま
らない。即ち、データベースXにはA、Bの順序で到着
し、データベースYにはB、Aの順序で到着することが
起こり得る。この時、座席が1席しか空いていないとす
ると、データベースXではユーザーAに席を与え、デー
タベースYではユーザーBに席を与える状態となり、本
来同じ座席予約状況を示す情報が格納されている筈のデ
ータベースに違う情報が入り矛盾を生じてしまう。
理を進めていくシステムにおけるプロセス同期方法には
大きく分けて2通りある。1つはタイム・インデペンデ
ント(Time−1ndependent)型のプロセ
ス同期方法、もう1つはタイム・デベンデンI・(Ti
me−Dependent)型のプロセス同期方法であ
る。ここでプロセスとは1つの実行中ブロダラム単位と
考えることにする。タイム・インデペンデント型のプロ
セス同期方法は、メツセージと送るとそれに対する送達
確認情報(ACK)を受けとることで送受間プロセスの
同期をとるものである。この方法はメツセージ交換型の
プロセス同期の典型的な方法として知られているが、障
害時の回復が困難となる点、また多プロセスでのコマン
ド実行に矛盾が生じることがある点などの問題点がある
。この矛盾が生じる場合に関しては、例えば次のような
例を考えればわかる。今、航空機の座席予約を行なうた
めの分散型データベースシステムを考える。プロセスA
(ユーザーA)とプロセスB(ユーザーB)とがほぼ同
時に分散データベースX、Yをアクセスし、座席予約を
行なおうとしている。ここで、分散データベースX、Y
には全く同じ座席予約状況を示す情報が格納されている
゛とする。この場合、伝送路遅延のバラつきあるいは処
理時間のバラつきからデータベースX、Yに到着するプ
ロセスA、Bからのメツセージは順序関係が一意に決ま
らない。即ち、データベースXにはA、Bの順序で到着
し、データベースYにはB、Aの順序で到着することが
起こり得る。この時、座席が1席しか空いていないとす
ると、データベースXではユーザーAに席を与え、デー
タベースYではユーザーBに席を与える状態となり、本
来同じ座席予約状況を示す情報が格納されている筈のデ
ータベースに違う情報が入り矛盾を生じてしまう。
次に、タイム・デペンデント型のプロセス同期はニーシ
ーエム・トランズアクションズ・オン・プログラミング
・ラングエジズ・アンド・システムズ、ボリューム6、
ナンバー2.エイプリル1984 (A CM Tra
nsactions on Program+sing
Languages and 5ystea+s、Vo
l、6.l11a2.April 1984)に記載さ
れているランボート・エル(Lampot、L)著の“
ユージング・タイム・インステッド・オン・タイムアウ
ト・フォー・フォールトトレラント・デイストリビュー
テッド・システムズ(Using Time In5t
ead or Timeout for Fault−
tolerant Distributed Syst
ems)にあるように、各プロセスがほとんど同じ時刻
を指すクロックをそれぞれ有しており、プロセス間の送
受信コマンド実行は、このクロックに基づいて行なわれ
る。
ーエム・トランズアクションズ・オン・プログラミング
・ラングエジズ・アンド・システムズ、ボリューム6、
ナンバー2.エイプリル1984 (A CM Tra
nsactions on Program+sing
Languages and 5ystea+s、Vo
l、6.l11a2.April 1984)に記載さ
れているランボート・エル(Lampot、L)著の“
ユージング・タイム・インステッド・オン・タイムアウ
ト・フォー・フォールトトレラント・デイストリビュー
テッド・システムズ(Using Time In5t
ead or Timeout for Fault−
tolerant Distributed Syst
ems)にあるように、各プロセスがほとんど同じ時刻
を指すクロックをそれぞれ有しており、プロセス間の送
受信コマンド実行は、このクロックに基づいて行なわれ
る。
即ち、一定時間間隔おきに、上記送受信あるいはコマン
ド実行の起動がかけられるわけである。この動作原理を
第4図を用いて説明する。図において、横軸は時間tを
示す。時刻T、T十△、T+2Δにて各プロセスのメツ
セージ送受信、コマンド実行の起動がかけられる。ここ
でΔはその時間内にメツセージの送受信が終了するに十
分なだけの時間で、あらかじめシステムに設定された値
である。図においては時刻TとT+Δの間にプロセス1
とプロセスnがそれぞれメツセージC1とメツセージC
8とを全てのプロセスに送信した例を示している。ここ
でプロセス之ではメツセージC1が先に受信され、次に
メツセージCnが受信されている。しかし、プロセス3
ではメツセージcoが先に受信され、次にメツセージC
1が受信されている。このような場合、タイム・インデ
ペンデント型のプロセス同期方法であると、プロセス2
ではc’、、c、の順に実行され、プロセス3ではC,
、C,の順に実行されて、先程述べたような処理矛盾が
生じる。しかし、タイム・デペンデントのプロセス同期
方法ではコマンド実行は次のタイミング、即ちT+△の
時刻まで待ってからΔの間に受信された全てのメツセー
ジに対して一括して行なわれるので、例えばコマンドの
うち送信したプロセスの番号の若い方から実行するとい
う規則を全てのプロセスに持たせることで、全てのプロ
セスでC,、C,の順にコマンド実行させることが可能
となり、矛盾ない処理が実現できる。また、障害発生時
においてもタイム・デペンデント型のプロセス同期方法
では同期のとれたクロックを全てのプロセスが有してい
るので、全てのプロセスをある絶対時刻の矛盾のない状
態に戻す制御が容易に行なえる。ここでΔ時間内に受信
できなかったメツセージ、即ち遅延メツセージは棄却さ
れるものとする。この遅延メツセージの検出は、メツセ
ージにタイムスタンプを付加することで容易にできるも
のである。この際の現象は障害発生と等価となり回復制
御がなされる。ところで、このタイム・デペンデント型
のプロセス同期方法は、各プロセスが有しているクロッ
クを精密に調整し、各クロックが示す絶対時刻がほとん
ど等しくなるようにする必要がある。即ち、Δに比較し
て各クロックの差が十分小さくなるようにしなければな
らない。この条件が満たされないと△を非常に大きくと
る必要が生じ、システムの効率が大きく損われる。しか
し、このタロツクの調整は伝送路の障害、遅延のバラつ
き等を考慮すると困難なものとなる。
ド実行の起動がかけられるわけである。この動作原理を
第4図を用いて説明する。図において、横軸は時間tを
示す。時刻T、T十△、T+2Δにて各プロセスのメツ
セージ送受信、コマンド実行の起動がかけられる。ここ
でΔはその時間内にメツセージの送受信が終了するに十
分なだけの時間で、あらかじめシステムに設定された値
である。図においては時刻TとT+Δの間にプロセス1
とプロセスnがそれぞれメツセージC1とメツセージC
8とを全てのプロセスに送信した例を示している。ここ
でプロセス之ではメツセージC1が先に受信され、次に
メツセージCnが受信されている。しかし、プロセス3
ではメツセージcoが先に受信され、次にメツセージC
1が受信されている。このような場合、タイム・インデ
ペンデント型のプロセス同期方法であると、プロセス2
ではc’、、c、の順に実行され、プロセス3ではC,
、C,の順に実行されて、先程述べたような処理矛盾が
生じる。しかし、タイム・デペンデントのプロセス同期
方法ではコマンド実行は次のタイミング、即ちT+△の
時刻まで待ってからΔの間に受信された全てのメツセー
ジに対して一括して行なわれるので、例えばコマンドの
うち送信したプロセスの番号の若い方から実行するとい
う規則を全てのプロセスに持たせることで、全てのプロ
セスでC,、C,の順にコマンド実行させることが可能
となり、矛盾ない処理が実現できる。また、障害発生時
においてもタイム・デペンデント型のプロセス同期方法
では同期のとれたクロックを全てのプロセスが有してい
るので、全てのプロセスをある絶対時刻の矛盾のない状
態に戻す制御が容易に行なえる。ここでΔ時間内に受信
できなかったメツセージ、即ち遅延メツセージは棄却さ
れるものとする。この遅延メツセージの検出は、メツセ
ージにタイムスタンプを付加することで容易にできるも
のである。この際の現象は障害発生と等価となり回復制
御がなされる。ところで、このタイム・デペンデント型
のプロセス同期方法は、各プロセスが有しているクロッ
クを精密に調整し、各クロックが示す絶対時刻がほとん
ど等しくなるようにする必要がある。即ち、Δに比較し
て各クロックの差が十分小さくなるようにしなければな
らない。この条件が満たされないと△を非常に大きくと
る必要が生じ、システムの効率が大きく損われる。しか
し、このタロツクの調整は伝送路の障害、遅延のバラつ
き等を考慮すると困難なものとなる。
本発明によれば、お互いにメツセージを交換しながら処
理を進めていく複数のプロセスの中で唯一のプロセスが
トークン所有権を有し、該トークン所有権は前記複数の
プロセス内を所定の時間毎に受け渡されていき論理的な
トークン所有権の巡回ループを形成し、即ちトークン所
有権を有するプロセスはトークン所有権を得てから前記
所定の時間経過後にトークンを全てのプロセスに送出す
ると共に前記トークン所有権を次のプロセスに渡し、ト
ークン所有権が第1のプロセスから順次受け渡されてい
き再び該第1のプロセスに戻ってくるまでの時間をトー
クン周期とし、各プロセスでは該トークンを受信すると
ただちにメツセージの送信を行ない、1トークン周期前
に受信したメツセージの中のコマンドの実行を行ない、
前記トークン所有権を有するプロセスではシステム状態
が正常か異常かを判断し、システム状態の異常を検出す
ると全てのプロセスを過去の正常状態に戻し、メツセー
ジの再送信、受信コマンドの再実行を行なわせることを
特徴とするプロセス同期方法が得られる。
理を進めていく複数のプロセスの中で唯一のプロセスが
トークン所有権を有し、該トークン所有権は前記複数の
プロセス内を所定の時間毎に受け渡されていき論理的な
トークン所有権の巡回ループを形成し、即ちトークン所
有権を有するプロセスはトークン所有権を得てから前記
所定の時間経過後にトークンを全てのプロセスに送出す
ると共に前記トークン所有権を次のプロセスに渡し、ト
ークン所有権が第1のプロセスから順次受け渡されてい
き再び該第1のプロセスに戻ってくるまでの時間をトー
クン周期とし、各プロセスでは該トークンを受信すると
ただちにメツセージの送信を行ない、1トークン周期前
に受信したメツセージの中のコマンドの実行を行ない、
前記トークン所有権を有するプロセスではシステム状態
が正常か異常かを判断し、システム状態の異常を検出す
ると全てのプロセスを過去の正常状態に戻し、メツセー
ジの再送信、受信コマンドの再実行を行なわせることを
特徴とするプロセス同期方法が得られる。
第2図、第3図を用いて、本発明の方法の原理を説明す
る。第2図は、各プロセスでのメツセージ送出のタイミ
ング、および受信メツセージ中のコマンド実行のタイミ
ングを決定するトークンの受け渡し方法を示している。
る。第2図は、各プロセスでのメツセージ送出のタイミ
ング、および受信メツセージ中のコマンド実行のタイミ
ングを決定するトークンの受け渡し方法を示している。
前記トークンを所有するトークン所有プロセスは、図に
示すように時間的に順次移動していく。図においてプロ
セス200 (1)〜200 (6)が全プロセスを構
成し、矢印がトークン所有権の移動方向を示し、黒丸を
付したプロセスが、ある時刻でのトークン所有プロセス
である。トークン所有プロセスは重連したように、各プ
ロセスの処理を起動するためにトークンを全プロセスに
発行し、トークン所有権を次プロセスに受け渡す。この
トークン所有権はある時刻で見ると、唯一つのプロセス
が有している。プロセス数が4の場合の、本発明の詳細
な説明するタイミングチャートを第3図に示す。図にお
いて横軸は時間tを示す。またトークンの受け渡し間隔
Tpは、その時間内にトークンの送受信及びメツセージ
の送受信処理が終了するに十分なだけの時間で、あらか
じめのシステムに設定された値である。本図においては
、第O周期でプロセス1がトークン所有プロセスであり
、第1周期の始まりを示すトークンTKIを送信する。
示すように時間的に順次移動していく。図においてプロ
セス200 (1)〜200 (6)が全プロセスを構
成し、矢印がトークン所有権の移動方向を示し、黒丸を
付したプロセスが、ある時刻でのトークン所有プロセス
である。トークン所有プロセスは重連したように、各プ
ロセスの処理を起動するためにトークンを全プロセスに
発行し、トークン所有権を次プロセスに受け渡す。この
トークン所有権はある時刻で見ると、唯一つのプロセス
が有している。プロセス数が4の場合の、本発明の詳細
な説明するタイミングチャートを第3図に示す。図にお
いて横軸は時間tを示す。またトークンの受け渡し間隔
Tpは、その時間内にトークンの送受信及びメツセージ
の送受信処理が終了するに十分なだけの時間で、あらか
じめのシステムに設定された値である。本図においては
、第O周期でプロセス1がトークン所有プロセスであり
、第1周期の始まりを示すトークンTKIを送信する。
プロセス2からプロセス4ではトークンTKIを受信す
るとメツセージ送出、受信コマンド実行が起動される。
るとメツセージ送出、受信コマンド実行が起動される。
本例では第1周期でプロセス1とプロセス4とがそれぞ
れメツセージC1(11、C,+41を送信している。
れメツセージC1(11、C,+41を送信している。
これらメツセージ間隔Tp内に全てのプロセスに行きわ
たる。第1周期ではトークン所有権は予め決められた順
序に従がい、例えば本例ではプロセス2に受け渡される
。以下、トークンの受け渡しがプロセス3.プロセス4
へと行なわれ、再びプロセス1に1トークン周期後、即
ち第4周期に戻ってくる。なお、トークン周期とは、ト
ークン所有権が第1のプロセスから順次受け渡されてい
き再び第1のプロセスに戻ってくるまでの時間である。
たる。第1周期ではトークン所有権は予め決められた順
序に従がい、例えば本例ではプロセス2に受け渡される
。以下、トークンの受け渡しがプロセス3.プロセス4
へと行なわれ、再びプロセス1に1トークン周期後、即
ち第4周期に戻ってくる。なお、トークン周期とは、ト
ークン所有権が第1のプロセスから順次受け渡されてい
き再び第1のプロセスに戻ってくるまでの時間である。
この時、プロセス1はトークンTK5を送出するが、各
プロセスではトークンTK5を受信した際に1トークン
周期前、即ち第1周期に受信したメツセージのコマンド
c、”’(2,(41を実行するわけである。トークン
所有権は全てのプロセス間で巡回されるので、各プロセ
スは11・−クン周期内で必ず1回トークン所有権を得
ることができるので、障害発生後確実に11・−クン周
期内に障害検出は可能である。逆に言うと、1トークン
周期の間障害検出がなければ1トークン周期前に送出さ
れたメツセージは確実に全てのプロセスに矛盾なく到達
しているので実行可能ということになる。本発明は、以
上述べた性質を利用し、受信コマンドの実行は1トーク
ン周期前に受信されたメツセージ中のものとすることで
、実行コマンドの無矛盾性を保証しようとするものであ
る。プロセス障害が生起することを考えると、本発明の
コマンド実行は、1トークン周期の間プロセス障害が生
起しなかった場合に、1トークン周期前に受信されたメ
ツセージ中のコマンドが実行される、と考えることと等
価である。
プロセスではトークンTK5を受信した際に1トークン
周期前、即ち第1周期に受信したメツセージのコマンド
c、”’(2,(41を実行するわけである。トークン
所有権は全てのプロセス間で巡回されるので、各プロセ
スは11・−クン周期内で必ず1回トークン所有権を得
ることができるので、障害発生後確実に11・−クン周
期内に障害検出は可能である。逆に言うと、1トークン
周期の間障害検出がなければ1トークン周期前に送出さ
れたメツセージは確実に全てのプロセスに矛盾なく到達
しているので実行可能ということになる。本発明は、以
上述べた性質を利用し、受信コマンドの実行は1トーク
ン周期前に受信されたメツセージ中のものとすることで
、実行コマンドの無矛盾性を保証しようとするものであ
る。プロセス障害が生起することを考えると、本発明の
コマンド実行は、1トークン周期の間プロセス障害が生
起しなかった場合に、1トークン周期前に受信されたメ
ツセージ中のコマンドが実行される、と考えることと等
価である。
また、例えば受信コマンドのうち送信したプロセス番号
の若い方から実行する、という規則を全てのプロセスに
持たせることで、全てのプロセスにてC,(口 C1(
41の順にコマンド実行させることが可能となり、いわ
ゆるコンカレンシイ(Concurrency)制御も
簡単に実現できる。
の若い方から実行する、という規則を全てのプロセスに
持たせることで、全てのプロセスにてC,(口 C1(
41の順にコマンド実行させることが可能となり、いわ
ゆるコンカレンシイ(Concurrency)制御も
簡単に実現できる。
第1図に本発明を実現するアルゴリズムの1実施例を示
す。第1図(a)は特許請求の範囲(1)に記載された
発明の実施例における、トークン所有プロセスの基本処
理アルゴリズムを示す。各プロセスでは制御ブロック1
00でトークンT(ts、Sv 、CNT)を受信する
と、自プロセスが次にトークン所有権を有するプロセス
か否かを制御ブロック101で判定する。ここで、トー
クンの中の変数としてのタイムスタンプtsは、正常動
作時にはI・−クン所有権が受け渡される毎に1ずつ増
加していく。またS、はシステム状態変数であり、CN
Tは制御変数である。制御ブロック101での判定がY
ESの場合にトークン所有権を有するプロセスの処理に
入るわけで、制御ブロック102にて前述したタイムス
タンプ及びシステム状態変数などをチエツクすることで
システムの異常を検出する。もし、システムの異常がな
ければ、即ち、制御ブロック102での判定結果がNo
の場合は、制御ブロック103で、メツセージ送出コマ
ンド実行が起動され、また他プロセスからのメツセージ
の受信を行なうと共にシステム状態変数が更新され、ト
ークン間隔処理が行なわれる。制御ブロック103での
一連の処理はトークン所有プロセスも一般のプロセスも
同じである、1・−クン間隔処理部103の詳細処理ア
ルゴリズムを第1図(c)に示す。制御ブロック102
の判断がNoの場合、制御ブロック120,121.1
22の各処理が実行される。制御ブロック120ではタ
イムスタンプts時刻でのメツセージ送出がなされ、1
21ではタイムスタンプ(t、s −1>時刻、即ち
1トークン間隔前に送出されたメツセージの受信処理が
なされ、122では1トークン周期前に受信されたメツ
セージm(t、 s N 、 C1s−N)中のコマ
ンドCti−Nが実行される。その後制置ブロック12
3にてシステム状63が更新されるわけである。これら
のトークン間隔処理が終了すると、トークン所有プロセ
スは制御ブロック104にてタイムスタンプの値を1増
加し、システム状態変数を新しい値に更新し、またCN
TにNULLなる値を入れる。制御ブロック105で、
次の1・−クン制御プロセスに1−−クンを受け渡すべ
き時刻になると、即ち1〜−クンを前のトークン所有プ
ロセスから受けとり、間隔Tpの時間経過すると、トー
クン所有プロセスは制御ブロック106でこれらの値を
変数として有するトークンを全てのプロセスに送出し、
トークン所有権を放棄する。勿論、1〜−クンには次の
トークン所有プロセスのアドレスを示す変数が入ってい
るので、このトークンを受けた全てのプロセスの内、次
トークン所有プロセスと指定されたプロセスが次のトー
クン間隔処理に対するトークン所有プロセスのアルゴリ
ズムを実行するわけである。制御ブロック102にてシ
ステム異常が検出された場合、即ち、検出結果がYES
の場合には、トークン所有プロセスは制御ブロック10
7でタイムスタンプの値、システム状態変数を過去の正
常な位置の値に戻し、全てのプロセスをその過去の時点
に戻すためのロールパック要求処理を行なう。この制御
ブロックではパラメータCNT=ロールパックを設定す
る。第1図(b)にトークン所有プロセス以外のプロセ
スでのトークン間隔処理を示す。制御ブロック101で
の判定がNoの場合の処理として、まず制御ブロック1
10にてトークンの中の変数CNTがNULLかロール
パックかをチエツクする。もしNULLであるならば、
即ち制御ブロック110の判定の結果がYESの場合に
は制御ブロック103にてメツセージ送出、コマンド実
行が起動され、他プロセスからの受信コマンドが実行さ
れ、システム状態変数の更新がなされる。制御ブロック
103の処理は前述した第1図(c)に示す処理である
。その後、制御ブロック11,2でタイムスタンプの値
を1増加し、制御ブロック112の処理に続く次のトー
クン受信を待つ。また、制御ブロック110の判定結果
がNoを場合には制御ブロック111にてタイムスタン
プの値とシステム状態を、トークン中の変数で示された
過去の正常な状態の値に戻すロールパック処理がなされ
る。
す。第1図(a)は特許請求の範囲(1)に記載された
発明の実施例における、トークン所有プロセスの基本処
理アルゴリズムを示す。各プロセスでは制御ブロック1
00でトークンT(ts、Sv 、CNT)を受信する
と、自プロセスが次にトークン所有権を有するプロセス
か否かを制御ブロック101で判定する。ここで、トー
クンの中の変数としてのタイムスタンプtsは、正常動
作時にはI・−クン所有権が受け渡される毎に1ずつ増
加していく。またS、はシステム状態変数であり、CN
Tは制御変数である。制御ブロック101での判定がY
ESの場合にトークン所有権を有するプロセスの処理に
入るわけで、制御ブロック102にて前述したタイムス
タンプ及びシステム状態変数などをチエツクすることで
システムの異常を検出する。もし、システムの異常がな
ければ、即ち、制御ブロック102での判定結果がNo
の場合は、制御ブロック103で、メツセージ送出コマ
ンド実行が起動され、また他プロセスからのメツセージ
の受信を行なうと共にシステム状態変数が更新され、ト
ークン間隔処理が行なわれる。制御ブロック103での
一連の処理はトークン所有プロセスも一般のプロセスも
同じである、1・−クン間隔処理部103の詳細処理ア
ルゴリズムを第1図(c)に示す。制御ブロック102
の判断がNoの場合、制御ブロック120,121.1
22の各処理が実行される。制御ブロック120ではタ
イムスタンプts時刻でのメツセージ送出がなされ、1
21ではタイムスタンプ(t、s −1>時刻、即ち
1トークン間隔前に送出されたメツセージの受信処理が
なされ、122では1トークン周期前に受信されたメツ
セージm(t、 s N 、 C1s−N)中のコマ
ンドCti−Nが実行される。その後制置ブロック12
3にてシステム状63が更新されるわけである。これら
のトークン間隔処理が終了すると、トークン所有プロセ
スは制御ブロック104にてタイムスタンプの値を1増
加し、システム状態変数を新しい値に更新し、またCN
TにNULLなる値を入れる。制御ブロック105で、
次の1・−クン制御プロセスに1−−クンを受け渡すべ
き時刻になると、即ち1〜−クンを前のトークン所有プ
ロセスから受けとり、間隔Tpの時間経過すると、トー
クン所有プロセスは制御ブロック106でこれらの値を
変数として有するトークンを全てのプロセスに送出し、
トークン所有権を放棄する。勿論、1〜−クンには次の
トークン所有プロセスのアドレスを示す変数が入ってい
るので、このトークンを受けた全てのプロセスの内、次
トークン所有プロセスと指定されたプロセスが次のトー
クン間隔処理に対するトークン所有プロセスのアルゴリ
ズムを実行するわけである。制御ブロック102にてシ
ステム異常が検出された場合、即ち、検出結果がYES
の場合には、トークン所有プロセスは制御ブロック10
7でタイムスタンプの値、システム状態変数を過去の正
常な位置の値に戻し、全てのプロセスをその過去の時点
に戻すためのロールパック要求処理を行なう。この制御
ブロックではパラメータCNT=ロールパックを設定す
る。第1図(b)にトークン所有プロセス以外のプロセ
スでのトークン間隔処理を示す。制御ブロック101で
の判定がNoの場合の処理として、まず制御ブロック1
10にてトークンの中の変数CNTがNULLかロール
パックかをチエツクする。もしNULLであるならば、
即ち制御ブロック110の判定の結果がYESの場合に
は制御ブロック103にてメツセージ送出、コマンド実
行が起動され、他プロセスからの受信コマンドが実行さ
れ、システム状態変数の更新がなされる。制御ブロック
103の処理は前述した第1図(c)に示す処理である
。その後、制御ブロック11,2でタイムスタンプの値
を1増加し、制御ブロック112の処理に続く次のトー
クン受信を待つ。また、制御ブロック110の判定結果
がNoを場合には制御ブロック111にてタイムスタン
プの値とシステム状態を、トークン中の変数で示された
過去の正常な状態の値に戻すロールパック処理がなされ
る。
本発明によれば従来のタイム・デペンデント型のプロセ
ス同期方法に必要なりロックの再同期をとる必要がなく
、現実的なプロセス同期方法が得られる。また、コンカ
レンシイ制御も容易に行なうことができる。更に、トー
クン所有権を巡回させていることから、障害が発生して
から確実に1トークン周期内で、この障害を検出するこ
とが可能であり、信頼性高いプロセス同期が可能である
1、各プロセスに過去の状態を格納させておくことで、
障害検出時にロールパックさせることが可能となる。ま
た受信コマンドを1トークン周期待たせてから実行する
ことで、確実に正確な状態が保証されたコマンドを実行
することになり、例えばデータベースの変更のような後
戻りが出来にくい系、コマンド実行に高信頼性が要求さ
れる系に適用し大きな効果を発揮することができる。
ス同期方法に必要なりロックの再同期をとる必要がなく
、現実的なプロセス同期方法が得られる。また、コンカ
レンシイ制御も容易に行なうことができる。更に、トー
クン所有権を巡回させていることから、障害が発生して
から確実に1トークン周期内で、この障害を検出するこ
とが可能であり、信頼性高いプロセス同期が可能である
1、各プロセスに過去の状態を格納させておくことで、
障害検出時にロールパックさせることが可能となる。ま
た受信コマンドを1トークン周期待たせてから実行する
ことで、確実に正確な状態が保証されたコマンドを実行
することになり、例えばデータベースの変更のような後
戻りが出来にくい系、コマンド実行に高信頼性が要求さ
れる系に適用し大きな効果を発揮することができる。
第1図(a>、(b)、(c)は、本発明の実施例にお
けるアルゴリズムを示す流れ図、第2図は本発明の方法
を実現するためのトークン所有権の巡回を示す説明図、
第3図は本発明の方法の原理を示すタイミングチャート
、第4図は従来のタイム・デペンデント型のプロセス同
期方法の原理を示すタイミングチャートである。 Tp・・・(トークンの)受け渡し間隔、T K +・
・・トークン、ts ・・・タイムスタンプ、St・
・・システム状態変数、CNT・・・制御変数、101
〜107.111〜113,120,121・・・制御
ブロック。
けるアルゴリズムを示す流れ図、第2図は本発明の方法
を実現するためのトークン所有権の巡回を示す説明図、
第3図は本発明の方法の原理を示すタイミングチャート
、第4図は従来のタイム・デペンデント型のプロセス同
期方法の原理を示すタイミングチャートである。 Tp・・・(トークンの)受け渡し間隔、T K +・
・・トークン、ts ・・・タイムスタンプ、St・
・・システム状態変数、CNT・・・制御変数、101
〜107.111〜113,120,121・・・制御
ブロック。
Claims (1)
- お互いにメッセージを交換しながら処理を進めていく複
数のプロセスの中で唯一のプロセスがトークン所有権を
有し、該トークン所有権は前記複数のプロセス内を所定
の時間毎に受け渡されていき論理的なトークン所有権の
巡回ループを形成し、即ちトークン所有権を有するプロ
セスはトークン所有権を得てから前記所定の時間経過後
にトークンを全てのプロセスに送出すると共に前記トー
クン所有権を次のプロセスに渡し、トークン所有権が第
1のプロセスから順次受け渡されていき再び該第1のプ
ロセスに戻ってくるまでの時間をトークン周期とし、各
プロセスでは該トークンを受信するとただちにメッセー
ジの送信を行ない、1トークン周期前に受信したメッセ
ージの中のコマンドの実行を行ない、前記トークン所有
権を有するプロセスではシステム状態が正常か異常かを
判断し、システム状態の異常を検出すると全てのプロセ
スを過去の正常状態に戻し、メッセージの再送信、受信
コマンドの再実行を行なわせることを特徴とするプロセ
ス同期方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18244786A JPS6339039A (ja) | 1986-08-01 | 1986-08-01 | プロセス同期方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18244786A JPS6339039A (ja) | 1986-08-01 | 1986-08-01 | プロセス同期方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6339039A true JPS6339039A (ja) | 1988-02-19 |
Family
ID=16118422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18244786A Pending JPS6339039A (ja) | 1986-08-01 | 1986-08-01 | プロセス同期方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6339039A (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59158161A (ja) * | 1983-02-14 | 1984-09-07 | プライム・コンピュータ・インコーポレイテッド | ト−クンに基づいたデ−タ通信網における消失ト−クンの検出および再生のための方法および装置 |
-
1986
- 1986-08-01 JP JP18244786A patent/JPS6339039A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59158161A (ja) * | 1983-02-14 | 1984-09-07 | プライム・コンピュータ・インコーポレイテッド | ト−クンに基づいたデ−タ通信網における消失ト−クンの検出および再生のための方法および装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4816989A (en) | Synchronizer for a fault tolerant multiple node processing system | |
US6938070B2 (en) | Conflict resolution for collaborative work system | |
US5261085A (en) | Fault-tolerant system and method for implementing a distributed state machine | |
US4497059A (en) | Multi-channel redundant processing systems | |
US20100191884A1 (en) | Method for replicating locks in a data replication engine | |
US7334014B2 (en) | Consistent time service for fault-tolerant distributed systems | |
US10135929B2 (en) | Fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine | |
Stamos et al. | Coordinator log transaction execution protocol | |
US20110289056A1 (en) | Method, node and system for controlling version in distributed system | |
EP0709781A2 (en) | System for using mirrored memory as a robust communication path between dual disk storage controllers | |
WO2022170938A1 (en) | Distributed database remote backup | |
CN102724304A (zh) | 订阅/发布系统中信息仓库联邦及数据同步方法 | |
CN115550384B (zh) | 集群数据同步方法、装置、设备及计算机可读存储介质 | |
CN113934745A (zh) | 数据同步处理方法、电子设备以及存储介质 | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
US6247038B1 (en) | Optimized synchronization procedure | |
Walter | A robust and efficient protocol for checking the availability of remote sites | |
CN116909759B (zh) | 信息处理方法、装置及设备、介质和控制器集群 | |
Ferreira et al. | Achieving fault tolerance in FTT-CAN | |
JPS6339039A (ja) | プロセス同期方法 | |
JPS6339038A (ja) | プロセス同期方法 | |
Moraru et al. | A proof of correctness for Egalitarian Paxos | |
EP2009557A1 (en) | Method and device for data processing and system comprising such device | |
JPS6339040A (ja) | プロセス同期方法 | |
JPS62177649A (ja) | プロセス同期方法 |