(57)【特許請求の範囲】
【請求項１】
常用系及び待機系ホストからなる組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組の常用系及び待機系ホストのプロセス間の同期を取るプロセス間同期方法であって、
上記同期監視装置が、上記各常用系及び待機系ホストが同期待ちの状態から同期待ちの状態を解除するまでの間に、上記常用系及び待機系ホストの各プロセスが発する同期呼び出し数を、それぞれの組毎に常用系及び待機系を区別して計数するステップと、
上記同期監視装置が、上記常用系ホストのプロセスが発した同期呼び出し数の計数値の全組の総数が、予め規定された値に一致したときに、全組の常用系ホストのプロセスの同期待ちを解除するステップと、
上記同期監視装置が、上記待機系ホストのプロセスが発した同期呼び出し数の計数値が、当該待機系ホストと同一組の上記常用系ホストのプロセスの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、当該待機系ホストのプロセスの同期待ちを解除するステップと、
を備えたプロセス間同期方法。
【請求項２】
複数のホストから構成される組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組の上記各ホストのプロセス間の同期を取るプロセス間同期方法であって、
上記同期監視装置が、上記各常用系及び待機系ホストが同期待ちの状態から同期待ちの状態を解除するまでの間に、上記各ホストのプロセスが発する同期呼び出し数を、それぞれの組毎かつホスト毎に区別して計数するステップと、
上記同期監視装置が、同じ組内で上記各ホストの発した同期呼び出し数の計数値の最大値を選び、当該最大値について全組の総和を取り、当該総和が予め規定された値に一致したときに、組毎に当該最大値を与えるそれぞれのホストを常用系ホストとして、常用系ホストのプロセスの同期待ちを解除するステップと、
上記同期監視装置が、同じ組内で上記常用系ホスト以外となったホストを待機系ホストとし、当該待機系ホストのプロセスの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の上記常用系ホストの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、当該待機系ホストの同期待ちを解除するステップと、
を備えたプロセス間同期方法。
【請求項３】
常用系及び待機系ホストからなる組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組の常用系及び待機系ホストのプロセス間の同期を取るプロセス間同期方法であって、
上記同期監視装置が、上記各常用系及び待機系ホストが同期待ちの状態から同期待ちの状態を解除するまでの間に、上記各ホストのプロセスが発する同期呼び出し数を、それぞれの組毎に常用系及び待機系を区別して計数するステップと、
上記同期監視装置が、上記常用系ホストのプロセスが発した同期呼び出し数の計数値の全組の総数が、予め規定された値に一致し、なおかつ当該常用系ホストと同一組の待機系ホストのプロセスの同期呼び出し数の計数値が、当該常用系ホストの同期呼び出し数の計数値と一致したときに、当該常用系ホストのプロセスの同期待ちを解除するステップと、
上記同期監視装置が、上記待機系ホストの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の常用系ホストのプロセスの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、当該待機系ホストの同期待ちを解除するステップと、
を備えたプロセス間同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のプロセス間で同期を取って処理を行う計算機システムのプロセス間同期方法に関するものである。
【背景技術】
【０００２】
従来のプロセス間同期方法は、バリア同期に参加するプロセッサについて、あらかじめ同期ポイントの総数を同期管理部に設定しておき、各プロセッサからのバリア同期要求が発生する毎にカウンタによって同期ポイントへの到達数を計数し、カウンタの計数値が同期ポイントの総数に到達したときに、バリア同期成立通知を発行して、各プロセッサにおける同期待ちを解除していた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２１５１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら従来のプロセス間同期方法は、常用系及び待機系のホストプロセッサからなる、フォールトトレラントシステム（Fault tolerant system）構成を組んだ計算機システムへの適用についてまで、想定されたものではない。このため、待機系の全てのホストプロセッサが起動しないと、同期待ちが解除されないという問題があった。
【０００５】
また、常用系と待機系のホストプロセッサが切り替わる場合、切り替わるホストプロセッサが再起動し初期化されるので、この再起動したホストプロセッサでは同期待ちの解除がなされないという問題が発生する。この問題を解決するためには、所定のタイムアウト時間を設定し、当該タイムアウト時間に達した場合は常用系と待機系が切り替わり再起動していると判断して、強制的に同期待ちの解除をかけるようにする必要がある。
【０００６】
しかし、当該タイムアウト時間は、ホストプロセッサの再起動後に同期ポイントに至るまでの到達時間を考慮して、通常十分に長い時間が設定される。このため、タイムアウト時間が到達するまでは何れのホストプロセッサも同期待ちの解除がなされないことから、同期が完了するまでの時間が無駄に延びてしまうという問題がある。
【０００７】
この発明は係る課題を解決するために成されたものであり、常用系及び待機系のフォールトトレラントシステム構成の計算機システムにおいて、タイムアウトに依存しないプロセス間同期方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明によるプロセス間同期方法は、常用系及び待機系ホストからなる組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組のプロセス間で同期待ちの状態から同期待ち解除の状態を得てタイミング調整を行い、プロセス間の同期を取るプロセス間同期方法であって、上記各ホストが同期待ちを解除するまでに実行する所定のタスク数の進行に応じて、各ホストが発する同期呼び出し数を、それぞれの組毎に常用系及び待機系を区別して計数するステップと、上記常用系ホストの発した同期呼び出し数の計数値の全組の総数が、予め規定された値に一致したときに、常用系ホストの同期待ちを解除するステップと、上記待機系ホストの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の常用系ホストの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、待機系ホストの同期待ちを解除するステップと、を備えたものである。
【発明の効果】
【０００９】
この発明によれば、常用系ホストの同期待ちの解除条件が待機系ホストの同期待ちの解除条件に依存しないので、不要なタイムアウト待ちを無くすことができ、タイムアウトに依存しないプロセス間同期方法を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１による常用系及び待機系のフォールトトレラントシステムをなす計算機システムの構成を示す図である。
【図２】実施の形態１による同期監視装置の動作例を示すフローチャートである。
【図３】実施の形態１による同期監視装置が常用待機切り替えを検出した場合の処理フローを示す図である。
【図４】実施の形態２による同期監視装置の動作例を示すフローチャートである。
【図５】実施の形態３による同期監視装置の処理フローを示す図である。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１は、この発明に係る実施の形態１による常用系及び待機系のフォールトトレラントシステムをなす計算機システムの構成を示す図であり、（ａ）は計算機システムの全体構成を示し、（ｂ）は計算機システムに設けられた同期監視装置の構成を示し、（ｃ）は同期監視装置に設けられた記憶部の一部のデータ領域の構成例を示す図である。
【００１２】
図１（ａ）において、実施の形態１の計算機システムは、常用系ホスト群３ａと、待機系ホスト群３ｂと、同期監視装置２と、ネットワーク６から構成されたフォールトトレラントシステムをなしている。フォールトトレラントシステムは、その構成部品の一部が故障しても正常に処理を続行するシステムであり、この例では１対の常用系と待機系のホストを設けることで、何れか一方のホストが故障しても故障していない他方のホストに切り替わり、処理が正常に継続するようにシステムが構成されている。ここでのホストとは、ネットワーク６を介して別の機器やコンピュータ、プロセッサにサービスや処理能力などを提供するコンピュータ若しくはプロセッサである。常用系ホスト群３ａ及び待機系ホスト群３ｂの各ホストは、ネットワーク６を介して異なる所属グループ（組）間でプロセス間通信を行い、共有情報へのアクセス時に衝突がないように、プロセス間で同期を取って、相互に情報のやり取りを行っている。ネットワーク６は、ＬＡＮ（Local Area Network）ケーブルや、電話回線、光回線や、プロセッサ間を接続するデータバスであっても良い。
【００１３】
図１（ａ）の例では、常用系及び待機系のフォールトトレラントシステムをなす計算機システムの形態として、常用系に３つのホストがあるという想定で説明を行う。この場合、待機系は必然的に、常用系と対をなす３つのホストが存在することになる。
この常用系ホスト群３ａを、ホスト１ａ、ホスト１ｃ、ホスト１ｅとする。また、常用系と対をなす待機系ホスト群３ｂを、ホスト１ｂ、ホスト１ｄ、ホスト１ｆとする。
常用系ホスト群３ａの各ホスト１ａ、１ｃ、１ｅと、待機系ホスト群３ｂの各ホスト１ｂ、１ｄ、１ｆは、それぞれネットワーク６に接続される。
常用系ホストと対を成す待機系ホストを同一のグループ（組）とするようにグループ化し、ホスト１ａとホスト１ｂをグループ４ａ、ホスト１ｃとホスト１ｄをグループ４ｂ、ホスト１ｅとホスト１ｆをグループ４ｃとして、複数の異なる所属グループにグループ分けする。
各グループは、１つの常用系ホストと対を成す１つの待機系ホストで構成されていることになる。
なお、各グループに属する常用系及び待機系のホストは、それぞれ２つ以上設けられても良く、またグループ数も２つ若しくは３つ以上の複数個設けられても良い
【００１４】
常用系ホスト群３ａの各ホスト１ａ、１ｃ、１ｅと、待機系ホスト群３ｂの各ホスト１ｂ、１ｄ、１ｆは、何れかのホストに異常が生じた場合、計算機システムに設けられた制御部（図示せず）がその異常を検出し、それぞれ同一のグループ内で、常用系ホストと待機系ホストを互いに切り替えるように自動的に制御される。
また、常用系ホストと待機系ホストが切り替わるとき、異常が生じて切替えられる方のホストは再起動が行われ、遂行中のプロセスの進行が初期化される（リスタートされる）。
【００１５】
各ホスト１ａ〜１ｆは、そのプロセッサに設定されたプログラムにしたがって、予め設定されたプロセスを順次遂行していく。各ホスト１ａ〜１ｆに設定されたプログラムは、一群のプロセスからなる複数のタスクから構成される。各ホスト１ａ〜１ｆは、所定のタスクの処理を完了することで予め設定された「同期ポイント」に到達すると、同期呼び出しを発する。この同期ポイントは、各ホスト１ａ〜１ｆにおいてそれぞれ規定のタスクが完了する毎に設定されている。すなわち、各ホスト１ａ〜１ｆは順次タスクを処理し、同期ポイントに到達する都度、同期呼び出しを発する。
【００１６】
ホスト１ａ〜１ｆ間でプロセス間同期が行われるまでの間に、各ホストは同期待ちの状態を得る。例えば、各ホスト１ａ〜１ｆがそれぞれ所要数の同期呼び出しを発呼し、異なるホスト間でプロセス間同期を実行すべきタイミングである「同期待ちポイント」に到達すると、各ホスト１ａ〜１ｆはホスト情報を含むメッセージを送信して同期待ちの状態となる。その後、後述する同期監視装置２によって、各ホスト１ａ〜１ｆの同期待ちの解除がなされる。
各ホスト１ａ〜１ｆは、同期待ちが解除されると、異なるグループ間で各所属ホストの処理するプロセス間の同期を取って、共有情報へのアクセスに衝突がないように相互に同期タイミングを取りながら並列処理を行うことで、異なるグループ間の各所属ホストの協調作業により、所定の一連のタスクが遂行される。
なお、ホスト間でプロセス間同期が行われるまでの間に、各ホストが発する同期呼び出しの数（以下、同期呼び出し数と呼ぶ）は通常ホスト毎に異なり、各ホストの同期待ち時間は必ずしも一様ではない。
【００１７】
同期監視装置２は、ネットワーク６を介して各ホスト（１ａ〜１ｆ）に接続される。また、図２（ｂ）に示すように同期監視装置２は、主要な処理を行うメイン制御部（図示せず）と、同期呼び出し認識部２１と、記憶部２２と、再起動認識部２３と、書き込み部２４と、同期待ち判定部２５と、同期待ち解除指示部２６を具備している。
【００１８】
同期監視装置２の同期呼び出し認識部２１は、各ホスト（１ａ〜１ｆ）からの同期呼び出しを認識する手段である。同期呼び出し認識部２１は、常用系ホスト群３ａと待機系ホスト群３ｂを区別して、各ホスト１ａ〜１ｆからの同期呼び出しを認識する。
【００１９】
同期監視装置２の保持する記憶部２２は、常用系ホスト群３ａと待機系ホスト群３ｂに接続され、各ホストのシステム状態を記録及び再生する。また、図２（ｃ）に示すように、記憶部２２が保持する一部のデータ領域には、各グループ（４ａ〜４ｃ）の常用系及び待機系毎に区分けされたカウンタからなる、マトリクス表７が構成されている。このマトリクス表７のカウンタには、グループ（４ａ〜４ｃ）毎に、常用系及び待機系別の「同期呼び出し数」のカウント値（同期呼び出しの発生数を累積した計数値）がそれぞれ計上され、記憶保持される。マトリクス表７への値の書き込みは書き込み部２４によって行われる。
【００２０】
また、図２（ｃ）に示すように、記憶部２２が保持するデータ領域には、同期呼び出し総数領域８が設定されている。この同期呼び出し総数領域８には、常用系だけの呼び出し数の総和で設定される「同期呼び出し総数」の値が記憶保持される。同期呼び出し総数領域８への値の書き込みは書き込み部２４によって行われる。
【００２１】
同期監視装置２の再起動認識部２３は、各ホスト１ａ〜１ｆが再起動したことを認識する手段である。再起動認識部２３は、常用系から待機系へのホストの切り替わりのタイミングで、切り替わりによって新たに待機系となる元の常用系ホストの再起動を認識すると、マトリクス表７のデータ領域にアクセスし、切替えられる元の常用系ホストが属するグループにおける、待機系ホストのプロセス間同期呼び出し数を、０にリセットする。なお、常用系と待機系の切り替えが起こると、切り替わった方のホストは新たに常用系となり、切替えられて再起動する方のホストは新たに待機系となる。
【００２２】
また、同期監視装置２の同期待ち判定部２５は、タスクが同期待ちになったことを判定する手段である。例えば、何れかのホストのタスクが同期待ちポイントに到達したら、当該ホストのタスクは同期監視装置２の同期待ち判定部２５に自身のホスト情報を含むメッセージを送信することで、同期待ち判定部２５は当該タスクが同期待ちになったことを認識して、判定が行われる。
【００２３】
同期監視装置２の同期待ち解除指示部２６は、同期待ち解除の条件が整うと、同期待ち解除の命令を任意のホストに指示する手段である。例えば、同期監視装置２は、同期待ち判定部２５によってタスクが同期待ちになったことが判定され、かつ同期待ち解除の条件が整ったことを認識すると、ホストへ同期待ち解除を指示するメッセージを送信する。ホスト側では、このメッセージを受信すると同期待ちを解除する。
【００２４】
次に、実施の形態１による同期監視装置２の動作の一例について、以下に説明する。
この動作例では、常用系ホスト１ａは同期待ちが必要なタスク数（以下、同期待ち数と呼ぶ）が３つあり、ホスト１ｃは同期待ち数が４つあり、ホスト１ｅは同期待ち数が２つあるとした場合を想定する。
つまり、ホスト間でプロセス間同期を行うタイミングに到達して、同期待ちが解除される「同期待ち解除の条件」は、同期待ち状態になったタスクの総数が９になったときである。この値は、常用系ホスト１ａの同期待ち数３と、常用系ホスト１ｂの同期待ち数４と、常用系ホスト１ａの同期待ち数２の和に相当する（すなわち、９＝３＋４＋２である）。
この同期呼び出し総数が例えば９であることは、システム設計時に確定する情報であるため、同期監視装置２は、予めプロセス間同期の同期呼び出し総数を９として記憶するために、書き込み部２４により同期呼び出し総数領域８にこのプロセス間同期の呼び出し総数の値９を書き込んでいる。
なお、同期待ち数は、同期待ちが解除されるまでの間に、各ホスト１ａ〜１ｆが必要とする同期呼び出し数の計数値に相当する。タスクが同期待ちになったときは、「同期呼び出し数」の計数値は、同期待ち数に一致することとなる。
【００２５】
図２は、実施の形態１による同期監視装置２の動作例を示すフローチャートである。
図において、同期監視装置２は、同期呼び出し認識部２１にて、各ホスト１ａ〜１ｆからの同期呼び出しがなされたか否かを監視する処理を行う（ステップＳ１００）。
監視の結果、同期呼び出しがなされたことを検出すると、記憶部２２にアクセスして、同期呼び出しを実施したホストのマトリクス表７における、該当するカウンタの「同期呼び出し数」のカウント値を、１つインクリメント（カウントアップ）する（ステップＳ１０１）。
【００２６】
次に、同期監視装置２は、ホストが常用系ホスト群３ａと待機系ホスト群３ｂの何れに属するホストであるかを判定する（ステップＳ１０２）。
ステップＳ１０２の判定の結果、常用系ホスト群３ａに属する常用系ホストであった場合は、マトリクス表７にアクセスし、全グループの常用系ホスト１ａ、１ｃ、１ｅに対応したカウンタの同期呼び出し数の総和を求め、求めた総和に基づいて、常用系ホストの「同期待ちの解除条件」を満足するか否かの判定を行う（ステップＳ１０３）。
ここでは、「全グループの常用系ホストの同期呼び出し数の総和が、同期呼び出し総数領域８に記憶された値（予め設定された同期呼び出し総数）に一致している」ことが、常用系ホストの同期待ちの解除条件を満足する判定条件となる。
【００２７】
ステップＳ１０３の判定の結果、常用系ホストの同期待ちの解除条件が満足される、すなわち「全グループの常用系ホストの同期呼び出し数の総和が同期呼び出し総数領域８の値に一致」となった段階で、同期監視装置２の同期待ち解除指示部２６は、常用系ホスト群３ａの全てのホスト１ａ、１ｃ、１ｅに対して、同期待ちの解除の命令を指示する（ステップＳ１０４）。
また、「全グループの常用系ホストの同期呼び出し数の総和が同期呼び出し総数領域８の値に不一致」となった場合は、ステップＳ１００に立ち戻り、引き続き同期呼び出し認識部２１による監視処理が行われる。
【００２８】
一方、ステップＳ１０２の判定の結果、待機系ホスト群３ｂに属する待機系ホストであった場合は、同期監視装置２がステップＳ１０５の処理を行う。
ステップＳ１０５では、待機系ホストが「同期待ちの解除条件」を満足しているか否かの判定が行われる。
【００２９】
この待機系ホストの「同期待ちの解除条件」は、常用系ホストとは異なる。
ここでの「同期待ちの解除条件」は、「常用系ホストが同期解除済みの状態であって、かつその状態で待機系ホストの属するグループの対をなす常用系ホストの同期呼び出し数の計数値（この場合同期待ち数となる）と同じ数の同期呼び出し数の計数値が、マトリクス表７のカウンタに設定されている」こととなっている。
また、この場合、同期監視装置２の同期待ち判定部２５によって、タスクが同期待ちになったことが認識されたときに、「常用系ホストが同期解除済み」の状態となる。
【００３０】
判定の結果、待機系ホストが「同期待ちの解除条件」を満足している場合、その待機系ホストに対してのみ同期が解除される（ステップＳ１０６）。
【００３１】
ここで、同期監視装置２は、グループごとに常用系の同期呼び出し数のカウント値（計数値）を集計しているので、待機系が同期状態を解除するのに必要な、同期待ち数を認識することができる。
例えば、待機系の同期解除の条件となる、全総数で９回の同期呼び出しを行ったときの、各ホストの同期呼び出し数の計数値（すなわち同期待ち数）の内訳は、グループ４ａが３、グループ４ｂが４、グループ４ｃが２となる。
したがって、待機系のホスト１ｂは、常用系のホスト１ａの同期が解除されているという条件と、同期待ち数が３となった場合に、同期待ちが解除される。同様に、待機系のホスト１ｄは、同期待ち数が４となったとき、待機系のホスト１ｆは、同期待ち数が２となったときに、それぞれ同期監視装置２の同期待ち解除指示部２６によって同期待ちの解除がなされる。
【００３２】
なお、一度、常用系の同期解除条件が成立すると、マトリクス表７の各常用系ホストにおける、同期呼び出し総数を得るための同期待ち数の値は、固定化する。常用系と待機系の切り替えなどで、ホストが再起動する場合は、再起動する側のホストは新たに待機系となって起動する。
【００３３】
図３は、同期監視装置２が常用系と待機系の切り替えを検出した場合の処理について示している。
同期監視装置２の再起動認識部２３は、常用系と待機系の切り替えによって、新たに待機系となる元の常用系ホストの再起動を検出すると、待機系の同期呼び出し数を０にリセットする（ステップＳ２００）。
新たに待機系となる元の常用系ホストが再起動してくると、図２と同じ処理によって、新たな待機系ホストの同期呼び出し数の計数値が、待機系の同期待ちの解除条件と一致して、待機系ホストの同期呼び出し数の計数値が常用系ホストの同期待ち数と同じ値になると、同期待ちが解除される。
【００３４】
ここで、常用系と待機系の区別は、最初の起動時にはホストにあらかじめ割り振られているが、ホストに対して常に固定化されているものではなく、上記した通り、常用系と待機系の切り替えによって、同じグループ内のホストで役割が切り替わることとなる。
常用系ホストの同期待ちの解除条件は待機系ホストの同期待ちの解除条件に依存しないため、待機系ホストが異常となっても同期待ちが解除されない状態にはならない。このため、常用系ホストさえ条件が整えば、同期待ちの解除が達成され、不要なタイムアウト待ちを無くすことができる。
【００３５】
なお、待機系ホストの同期待ち解除は、常用系ホストの同期待ちの解除よりも遅れることがあり得る。このため実施の形態１では、常用系ホストが同期待ちの解除後、即座に異常を発生すると待機系ホストへの切り替え時に、待機系ホストが同期待ちの解除条件に到達していないことから、その切り替えに支障をきたすことが可能性としてあり得る。
しかし、同じグループのホストでは同じ処理が実行されている関係上、常用系ホストが同期待ちの解除に到達するタイミングよりそれほど遅れることなく、待機系ホストが同期待ちの解除の条件に到達することが想定される。このため、常用系ホストの同期待ちの解除の直後に、常用系ホストの異常が発生して常用系と待機系のホストの切り替えが発生しない限りは、このような事象が問題となることはなく、その可能性は僅少であり実質的な問題はない。
【００３６】
以上説明した通り、実施の形態１によるプロセス間同期方法は、常用系及び待機系ホストからなる組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組のプロセス間で同期待ちの状態から同期待ち解除の状態を得てタイミング調整を行い、プロセス間の同期を取るプロセス間同期方法であって、上記各ホストが同期待ちを解除するまでに実行する所定のタスク数の進行に応じて、各ホストが発する同期呼び出し数を、それぞれの組毎に常用系及び待機系を区別して計数するステップと、上記常用系ホストの発した同期呼び出し数の計数値の全組の総数が、予め規定された値に一致したときに、常用系ホストの同期待ちを解除するステップと、上記待機系ホストの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の常用系ホストの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、待機系ホストの同期待ちを解除するステップと、を備えたことを特徴とする。
【００３７】
これによって、常用系ホストの同期待ちの解除条件が待機系ホストの同期待ちの解除条件に依存しないので、不要なタイムアウト待ちを無くすことができ、タイムアウトに依存しないプロセス間同期方法を得ることができるという効果が得られる。
【００３８】
実施の形態２．
この発明に係る実施の形態２による計算機システムの同期監視装置２では、常用系ホストの同期待ちの解除条件として、実施の形態１の条件と合わせて、同じグループ内の待機系ホストの同期待ちの解除条件が揃ったことを、条件に加えている。
【００３９】
図４は、実施の形態２による同期監視装置２の動作を示すフローチャートである。
図２で説明した実施の形態１のフローチャートと比べて、実施の形態２では、ステップＳ１０４がステップＳ１０４−２に代わっている。なお、その他のステップは同じであるので、説明を略す。
【００４０】
図４のステップＳ１０４−２では、ステップＳ１０３の条件が成立することに加えて、同じグループの常用系ホストと対を成す待機系ホストの同期待ちの解除条件が成立している場合のみ、該当する常用系ホストの同期待ちが解除されるように、条件判定の処理が行われる。すなわちこの場合、同じグループの常用系ホストと対を成す待機系ホストとの間で、同期呼び出し数のカウント値（計数値）が一致することとなる。
【００４１】
実施の形態２では、常用系ホストは対となる待機系ホストの同期待ちが解除されるまで待機するため、同期待ちが解除された直後に、常用系ホストで異常が発生したときは、待機系ホストへの切り替えが発生しても、待機系ホストが同期ポイントに到達していることを確実に保証することができる。
【００４２】
このように実施の形態２では、待機系ホストが異常などによって同期ポイントに規定数到達できないケースを想定して、常用系ホストが待機系ホストの同期待ち数への到達を待機できる最大タイムアウト時間を規定して、タイムアウトが発生した場合には、待機系の同期待ちが完了するのを待つことなく、同期待ちを解除するための仕組みを備えたことを特徴する。
【００４３】
このようにすることで、不必要に長いタイムアウト時間によるフォールトトレラントシステムのハングアップを回避することができる。また、実施の形態２では、従来のプロセス間同期方法と比べて、タイムアウト待ちの範囲を同一のグループ内に限定できるため、より短い適切なタイムアウト時間を設定できるので、より適切に同期待ちの解除を行うことができるようになる。
【００４４】
以上説明した通り、実施の形態２によるプロセス間同期方法は、複数のホストから構成される組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組のプロセス間で同期待ちの状態から同期待ち解除の状態を得てタイミング調整を行い、プロセス間の同期を取るプロセス間同期方法であって、上記各ホストが同期待ちを解除するまでに実行する所定のタスク数の進行に応じて、各ホストが発する同期呼び出し数を、それぞれの組毎かつホスト毎に区別して計数するステップと、同じ組内で上記各ホストの発した同期呼び出し数の計数値の最大値を選び、当該最大値について全組の総和を取り、当該総和が予め規定された値に一致したときに、組毎に当該最大値を与えるそれぞれのホストを常用系ホストとして、常用系ホストの同期待ちを解除するステップと、同じ組内で上記常用系ホスト以外となったホストを待機系ホストとし、当該待機系ホストの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の常用系ホストの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、当該待機系ホストの同期待ちを解除するステップと、を備えたことを特徴とする。
【００４５】
これによって、タイムアウト待ちの範囲を同一のグループ内に限定できるため、より短い適切なタイムアウト時間を設定できるという効果が得られる。
【００４６】
実施の形態３．
この発明に係る実施の形態３による計算機システムでは、ホストの起動時に、グループ内のどちらのホストが常用系と待機系になるのかを予め決めることなしに同期待ちを開始して、同期監視装置２が、全グループの何れかのホストの同期呼び出し数のカウント値（計数値）の総和が予め設定された同期呼び出し総数に到達したことを検出したときに、各グループで最大の同期呼び出し数（この場合同期待ち数になる）に到達したものを常用系ホストと定義して、常用系ホストの同期待ちを解除することを特徴とする。このようにすることで、同期が取れるまでに要する時間を最短にすることができる。
【００４７】
つまり、実施の形態３では、常用系及び待機系ホストが動的に決定され、最も早く同期待ちの解除の条件がそろったものを常用系ホストとするため、常用系ホストの同期待ちの解除にかかる時間も最も早くできる。
【００４８】
図５は、実施の形態３による計算機システムの同期監視装置２の処理を示すフローチャートである。
ステップＳ３００では、各ホストからの同期呼び出しを受けて、同期呼び出しを受け付けると、マトリクス表７の該当ホストの同期呼び出し数のカウンタを１インクリメントする。
【００４９】
しかし、該当ホストが常用系か待機系の何れであるかは確定していないので、暫定常用系または暫定待機系としてカウンタをインクリメントする（ステップＳ３０１）。
次に、各グループの同期呼び出し数のカウンタのカウント値（計数数）が最大値となる値を抽出し、全グループから抽出された各カウント値の最大値を合計する計算を行って、計算された合計値が規定数の同期呼び出し総数領域８の値と一致しているか否かを確認する（ステップＳ３０２）。
【００５０】
確認の結果、これが一致した場合は、同期待ちの解除に必要な組み合わせがあることを示すため、各グループ内で同期呼び出し数のカウント値の最大値を与えるホストを、常用系ホストとして扱う。
【００５１】
このとき、もしも暫定待機系ホストのカウンタ値が最大値になっている場合は、マトリクス表７の常用系の値と待機系の値を入れ替える（ステップＳ３０３）。
これで常用系の同期待ちの解除条件が揃うので、常用系に確定したホストの同期待ちを解除する（ステップＳ３０４）。
この後の処理は、実施の形態１で説明した図２のフローチャートと同じ処理フローとなるので、説明を略す。
【００５２】
以上説明した通り、実施の形態３によるプロセス間同期方法は、複数のホストから構成される組を複数組備えるとともに、同期監視装置を備えた計算機システムにおいて、異なる組のプロセス間で同期待ちの状態から同期待ち解除の状態を得てタイミング調整を行い、プロセス間の同期を取るプロセス間同期方法であって、上記各ホストが同期待ちを解除するまでに実行する所定のタスク数の進行に応じて、各ホストが発する同期呼び出し数を、それぞれの組毎かつホスト毎に区別して計数するステップと、同じ組内で上記各ホストの発した同期呼び出し数の計数値の最大値を選び、当該最大値について全組の総和を取り、当該総和が予め規定された値に一致したときに、組毎に当該最大値を与えるそれぞれのホストを常用系ホストとして、常用系ホストの同期待ちを解除するステップと、同じ組内で上記常用系ホスト以外となったホストを待機系ホストとし、当該待機系ホストの発した同期呼び出し数の計数値が、当該待機系ホストと同一組の常用系ホストの同期待ちが解除されるときの同期呼び出し数の計数値と同じになったとき、当該待機系ホストの同期待ちを解除するステップと、を備えたことを特徴とする。
【００５３】
これによって、実施の形態１の効果に加えて、同期が取れるまでに要する時間を最短にすることができるという効果が得られる。
【００５４】
信頼性が求められる計算機システムでは、一部の計算機が故障しても処理が継続できるように、フォールトトレラントシステムを構成する。一方、規模の大きな計算機システムでは、各計算機間でプログラムが連携するために、同期を取りながら並列処理を行う必要性がある。
上記実施の形態１乃至３で説明したプロセス間同期方法は、フォールトトレラントシステムをなした計算機システムを構成する、各計算機間のプログラムについて、同期処理を行うために利用することが可能である。
【符号の説明】
【００５５】
１ａ〜１ｆ  ホスト、２  同期監視装置、３ａ  常用系を構成するホスト群、３ｂ  待機系を構成するホスト群、４ａ〜４ｃ  常用系及び待機系のグループ（組）を構成するホスト群、５ａ  常用系の同期解除指示、５ｂ  待機系の同期解除指示、６  同期呼び出し指示、７  マトリクス表、８  同期呼び出し総数領域。
【図１】
0005605279.tif 000002
【図２】
0005605279.tif 000003
【図３】
0005605279.tif 000004
【図４】
0005605279.tif 000005
【図５】
0005605279.tif 000006