(57)【要約】【課題】  稼働系の排他制御装置の故障から待機系の排他制御装置に切り替えて運用再開するまでの時間を短縮する排他制御装置等を提供する。【解決手段】  排他制御装置は、複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、前記優先資源リストを前記各ホストに送信する通信部とを備える。【選択図】      図１
2014164647.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、
前記優先資源リストを前記各ホストに送信する通信部と
を備えた排他制御装置。
【請求項２】
前記優先資源リスト追加部は、前記優先資源リスト作成部が作成した前記優先資源リストに登録される優先資源を排他待ちするタスクがある場合、当該タスクよりも先に当該優先資源を排他している第１のタスクが排他または排他待ちする資源を、前記優先資源に関連する資源として前記優先資源リストに追加する
請求項１記載の排他制御装置。
【請求項３】
前記優先資源リスト追加部は、前記第１のタスクが排他待ちをしている資源がある場合、当該資源を先に排他するタスクが排他待ちしている資源を、前記優先資源に関連する資源として前記優先資源リストに追加する
請求項２記載の排他制御装置。
【請求項４】
前記優先資源リスト追加部は、前記共有資源に対する排他状況に基づいて、前記優先資源リストに登録される優先資源の前または後に、前記優先資源リストに登録されない資源を排他するか否かを判断し、排他する場合、当該排他する資源と、前記優先資源リストに登録される優先資源との相関度が所定値を超える場合、当該排他する資源を前記優先資源に関連する資源として前記優先資源リストに追加する
請求項１ないし請求項３のいずれか１項記載の排他制御装置。
【請求項５】
前記優先資源リスト追加部は、前記排他する資源が受ける排他要求の回数と当該資源が排他される平均時間の積と、前記優先資源リストに登録される優先資源が受ける排他要求の回数と当該優先資源が排他される平均時間の積を算出すると共に、当該２つの算出された値の商を、前記相関度として算出する
請求項４記載の排他制御装置。
【請求項６】
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、
前記優先資源リストを前記各ホストに送信する通信部と
を備えた第１の排他制御装置と、
前記各ホストから、前記優先資源リストに登録される資源に対する当該各ホストからの排他要求状況を含む排他情報を受信すると共に、当該排他情報に含まれるように排他制御を実施する排他制御部
を備えた第２の排他制御装置と
を備えた排他制御システム。
【請求項７】
前記第１の排他制御装置から故障の通知を受けると、自ホストが実行するタスクが排他または排他待ちする資源のうち、前記第１の排他制御装置から受信している前記優先資源リストに登録される資源に関する排他情報を、前記第２の排他制御装置に送信する排他情報送信部と、
前記排他情報送信部が前記排他情報を送信した後、前記優先資源リストに登録される資源に対する排他要求を、前記第２の排他制御装置に送信する排他要求部と
を備えるホストをさらに備えた
請求項６記載の排他制御システム。
【請求項８】
前記排他情報送信部は、前記優先資源リストに登録される資源に関する排他情報を前記第２の排他制御装置に送信した後に、前記優先資源リストに登録されない資源に関する排他情報を前記第２の排他制御装置に送信する
請求項６記載の排他制御システム。
【請求項９】
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成し、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を優先資源リスト追加部により前記優先資源リストに追加し、
前記優先資源リストを前記各ホストに通信部により送信する
排他制御方法。
【請求項１０】
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成する処理と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する処理と、
前記優先資源リストを前記各ホストに通信部により送信する処理とを
コンピュータに実行させる排他制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のホストが共有して使用する資源に対して排他制御を実施する技術分野に関する。
【背景技術】
【０００２】
１台で複数の業務を行う汎用機（ホスト）では、オンライン処理やバッチ処理などの様々な処理が動作する。近年、ホストの処理性能が向上するにつれ、処理業務が多様化すると共に利用する資源が増加する傾向にある。
【０００３】
複数のホスト間で共有される共有資源を、排他制御装置を用いて制御しながら複数の処理を行うシステムでは、当該システムの運用性を高めるために、排他制御装置の待機系を用意することが多い。待機系の排他制御装置を用意することにより、当該システムは、故障した稼働系の排他制御装置の復旧を待たずに待機系の排他制御装置に動作を切り替えることができるので、運用を継続することができる。
【０００４】
具体的には、稼動系の排他制御装置に障害が発生した場合、各ホストは、自装置が保有する排他情報を待機系の排他制御装置に送信する。待機系の排他制御装置は、受信した排他情報を再生、すなわち排他情報に保持されるように排他制御を実施する。これにより、稼働系の排他制御装置から待機系の排他制御装置に排他制御が切り替わるので、当該システムは運用を継続できる。
【０００５】
上述の排他制御装置の障害による切り替え処理において、排他制御装置は、受信した排他情報をすべて再生した後に運用再開するので、当該排他情報が多いほど、運用再開までに時間がかかる。このため、当該システムを、すべての排他情報の再生を待ち合わせた後に運用を再開するように構成すると、高速なレスポンスが求められるオンライン処理などは、求められる応答性能に対して遅延してしまう。
【０００６】
上述したように、近年ホストの処理能力の向上に伴って各ホストが管理する共有資源に関する排他情報が増加する傾向にある。また、オンライン処理など高速なレスポンスを求められる業務に対して、ダウンタイムの許容範囲はよりシビアになっている。このような背景にも関わらず、待機系の排他制御装置への切り替え処理は、オンライン処理でもバッチ処理でも上述のように排他情報を再生した後に運用再開する方法が採用されている。
【０００７】
例えば、特許文献１は、共有資源の使用効率を向上させるために、予め決められたルールに従って資源に優先度を設定し、排他制御装置の障害による切り替え処理において当該優先度に基づいて段階的に運用を再開する共有資源排他制御方式を開示する。
【０００８】
また、特許文献２は、複数のプロセッサが、排他制御待ち情報と排他制御獲得優先度情報とに基づいて共有リソースの排他制御を獲得するマルチプロセッサを開示する。
【０００９】
また、特許文献３は、複数のホストにより共有ファイルをアクセスするファイルシステムであって、障害が発生したときの信頼性の向上を図るファイルシステムを開示する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１１−３０６０３５号公報
【特許文献２】特開２０１０−１４０２９０号公報
【特許文献３】特開２０１２−２１２２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１に開示される共有資源排他制御方式では、予め決められたルールに従って資源に優先度を設定し、優先度の高い資源を優先して排他制御を行うことはできる。しかしながら、優先度の高い資源のみを優先するので、当該資源に関連する資源、例えばデッドロックを生じる可能性のある資源に関しては優先して排他制御を行うことはできない。したがって、デッドロックを回避するためのデッドロックチェックを優先して行うことができないので、デッドロックを生じる可能性のある資源に対する排他制御を待つ時間がかかってしまう。よって、稼働系の排他制御装置が故障した場合に待機系の排他制御装置に切り替えて運用再開するまでに時間がかかってしまうという課題がある。
【００１２】
また、特許文献２および特許文献３にも、上記のように優先度の高い資源に関連する資源を優先して排他制御する技術は開示されていない。
【００１３】
本願発明は、上記課題を鑑みてなされたものであり、優先度の高い資源、および当該資源に関連する資源を優先的に排他制御することにより、稼働系の排他制御装置の故障から待機系の排他制御装置に切り替えて運用再開するまでの時間を短縮する排他制御装置等を提供することを主要な目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の排他制御装置は、複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、前記優先資源リストを前記各ホストに送信する通信部とを備える。
【００１５】
本発明の第１の排他制御方法は、複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成し、前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を優先資源リスト追加部により前記優先資源リストに追加し、前記優先資源リストを前記各ホストに通信部により送信する。
【００１６】
なお同目的は、上記の各構成を有する排他制御装置または排他制御方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１７】
本願発明によれば、優先度の高い資源、および当該資源に関連する資源を優先的に排他制御することにより、稼働系の排他制御装置の故障から待機系の排他制御装置に切り替えて運用再開するまでの時間を短縮できる効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係る排他制御システムの構成を示す図である。
【図２】本発明の第１の実施形態に係る排他制御装置またはホストのハードウエア構成を示す図である。
【図３Ａ】本発明の第１の実施形態に係る排他情報に含まれる資源管理テーブルの構成を例示する図である。
【図３Ｂ】本発明の第１の実施形態に係る排他情報に含まれるタスク管理テーブルの構成を例示する図である。
【図４】本発明の第１の実施形態に係るログ情報に含まれる資源リストテーブル（ａ）と、タスクリストテーブル（ｂ）の構成を例示する図である。
【図５】本発明の第１の実施形態に係る排他制御装置の優先リスト作成部が作成する優先資源リストを示す図である。
【図６】本発明の第１の実施形態に係る排他制御装置の優先リスト作成部による優先リスト作成動作を示すフローチャートである。
【図７】本発明の第１の実施形態に係る排他制御装置の優先リスト追加部による優先資源のデッドロックチェック対象となる資源の優先資源リストへの追加の動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係る排他制御装置の優先リスト追加部による優先資源を排他するタスクが処理の前後で排他要求する資源の優先資源リストへの追加の動作を示すフローチャートである。
【図９】本発明の第１の実施形態に係る排他制御装置の排他情報送信部の動作を説明するフローチャートである。
【図１０】本発明の第２の実施形態に係る排他制御装置の構成を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００２０】
第１の実施形態
図１は、本発明の第１の実施形態に係る排他制御システム１００の構成を示す図である。図１に示すように、排他制御システム１００は、複数のホスト１０，２０と、稼働系の排他制御装置４０と、待機系の排他制御装置５０とを備える。複数のホスト１０，２０は、共有資源記憶部３０に格納される共有資源を共有して使用する。ホスト１０，２０は、それぞれ、共有資源記憶部３０と、排他制御装置４０，５０に通信可能に接続される。
【００２１】
図１には、ホスト、共通資源記憶部、排他制御装置の各台数について、最小構成単位を示すがこれに限定されず、ホスト、共通資源記憶部、排他制御装置の各台数は増加してもよい。
【００２２】
次に、ホスト１０の構成要素および各構成要素の動作の概略を説明する（詳細は後述する）。図１に示すように、ホスト１０は、排他要求部１１、排他情報送信部１２および通信部１３を備える。
【００２３】
排他要求部１１は、ホスト１０がタスクを実行する際に使用する共有資源（例えば、ファイル、フォルダ、プログラム等）の排他要求を生成すると共に、当該排他要求を通信部１３を介して稼動系の排他制御装置４０に送信する。排他要求部１１は、また、ホスト１０において生成した共有資源の排他要求の状態を保持するホスト固有排他情報１４を生成する。ホスト１０はまた、稼動系の排他制御装置４０から受信した優先資源リスト１５を格納する。
【００２４】
排他情報送信部１２は、稼動系の排他制御装置４０に障害が生じ、待機系の排他制御装置５０に切り替えが行われる際に、ホスト固有排他情報１４を通信部１３を介して、待機系の排他制御装置５０に送信する。このとき、排他情報送信部１２は、優先資源リスト１５を参照することにより、ホスト固有排他情報１４のうち優先資源に対する排他情報のみを送信する。ホスト２０は、ホスト１０と同様の構成を有するので、その説明を省略する。
【００２５】
次に、稼動系の排他制御装置４０の構成要素および各構成要素の動作の概略を説明する（詳細は後述する）。図１に示すように、稼動系の排他制御装置４０は、通信部４１、排他制御部４２、優先リスト作成部４３、優先リスト送信部４４、優先リスト追加部４５を備える。
【００２６】
通信部４１は、ホスト１０，２０と通信を行う。排他制御部４２は、通信部４１を介してホスト１０，２０から送信される排他要求に基づいて、共有資源の排他制御を実施すると共に、排他情報４６およびログ情報４７を生成する。優先リスト作成部４３は、定期的にログ情報４７を参照し、優先資源リスト４８を作成する。
【００２７】
優先リスト送信部４４は、優先資源リスト４８を通信部４１を介してホスト１０，２０に送信する。優先リスト追加部４５は、優先資源リスト４８を参照して、優先資源に付随する資源を優先資源リストに追加する。
【００２８】
待機系の排他制御装置５０は、通信部５１、排他制御部５２、および排他制御部５２が生成する排他情報５３を備える。通信部５１、排他制御部５２および排他情報５３は、稼働系の排他制御装置４０における通信部４１、排他制御部４２および排他情報４６とそれぞれ同様の構成であるので、その説明を省略する。
【００２９】
図１にそれぞれ示すホスト１０，２０の排他要求部１１，２１、排他情報送信部１２，２２は、それぞれコンピュータにより実現した場合、図２に例示するハードウエア構成を有する。同様に、排他制御装置４０，５０の排他制御部４２，５２、優先リスト作成部４３、優先リスト送信部４４、優先リスト追加部４５は、それぞれコンピュータにより実現した場合、図２に例示するハードウエア構成を有する。なお、通信部１３，２３，４１，５１は、情報を送受信するためのハードウエアを備える。
【００３０】
図２に示す構成は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００、メモリ等の記憶媒体２０１および記憶媒体２０１に格納されるプログラム２０２を備える。ＣＰＵ２００は、各種ソフトウエア・プログラム（コンピュータ・プログラム）を実行することにより、ホスト１０，２０または排他制御装置４０，５０の全体的な動作を司る。本実施形態および以下に示す他の実施形態において、ＣＰＵ２００が、メモリ等の記憶媒体２０１を適宜参照しながら、以下に示すホスト１０，２０または排他制御装置４０，５０が備える各機能（各部）のソフトウエア・プログラムを実行する。
【００３１】
上述したように、排他制御装置４０は、排他情報４６とログ情報４７とを格納する。排他情報４６は、排他制御部４２がホスト１０，２０から取得した排他要求に基づいて生成される、資源とタスクとの排他制御の関係を管理する情報である。ログ情報４７は、排他制御が実施された状況を示す情報である。
【００３２】
排他情報４６は、資源管理テーブル４６１とタスク管理テーブル４６５とを含む。図３Ａは、排他情報４６に含まれる資源管理テーブル４６１の構成を例示する図である。また、図３Ｂは、排他情報４６に含まれるタスク管理テーブル４６５の構成を例示する図である。図３Ａに示すように、資源管理テーブル４６１は、資源ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）４６２、タスクチェイン４６３、タスクＩＤ４６４を含む。
【００３３】
資源ＩＤ４６２は、共有資源記憶部３０に格納される共有資源の識別情報を格納する。タスクチェイン４６３は、資源ＩＤにより識別される共有資源に排他要求を出しているタスクチェインへのポインタを格納する。タスクＩＤ４６４は、当該ポインタにより特定されるタスクチェインに含まれる各タスクの識別情報を格納する。
【００３４】
一方、図３Ｂに示すように、タスク管理テーブル４６５は、タスクＩＤ４６６、資源チェイン４６７、資源ＩＤ４６８および排他状態４６９を含む。タスクＩＤ４６６は、タスクの識別情報を格納する。資源チェイン４６７は、当該タスクが排他要求している資源チェインへのポインタを格納する。資源ＩＤ４６８は、当該ポインタにより特定される資源チェインに含まれる各資源の識別情報を格納する。排他状態４６９は、当該資源に対する排他状態を格納する。
【００３５】
ログ情報４７は、資源リストテーブル４７１とタスクリストテーブル４７７とを含む。図４は、ログ情報４７に含まれる資源リストテーブル４７１（ａ）と、タスクリストテーブル４７７（ｂ）の構成を例示する図である。図４（ａ）に示すように、資源リストテーブル４７１は、資源ＩＤ４７２、排他要求回数４７３、待ち回数４７４、タスク数４７５および待ち時間４７６を含む。排他要求回数４７３は、単位時間当たりの当該資源に対する排他要求の回数を格納する。待ち回数４７４は、単位時間あたりに発生した、排他待ちをした回数を格納する。タスク数４７５は、当該資源に排他要求するタスクの数を格納する。待ち時間４７６は、排他要求を送った後、排他成功までにかかる時間を格納する。
【００３６】
一方、図４（ｂ）に示すように、タスクリストテーブル４７７は、タスクＩＤ４７８、資源チェイン４７９、資源ＩＤ４８０、排他要求回数４８１および平均排他時間４８２を含む。資源チェイン４７９は、当該タスクが排他要求した資源チェインへのポインタを格納する。資源ＩＤ４８０は、当該ポインタにより特定される資源チェインに含まれる各資源の識別情報を格納する。排他要求回数４８１は、単位時間当たりの当該資源に対する排他要求の回数を格納する。平均排他時間４８２は、１回の排他にかかる時間の平均値を格納する。
【００３７】
排他制御部４２は、排他要求を受ける毎に排他情報４６を作成する。また、排他制御部４２は、排他制御を実施する毎にログ情報４７を作成する。
【００３８】
次に、排他制御装置４０の動作の詳細について説明する。まず、優先リスト作成部４３による優先リスト作成動作について説明する。優先リスト作成部４３は、定期的にログ情報４７を参照して、優先的に使用されるべき優先資源を記載した優先資源リスト４８を作成する。
【００３９】
図５は、優先リスト作成部４３が作成する優先資源リスト４８を示す図である。図５に示すように、優先資源リスト４８は、資源ＩＤ４８１、相関チェイン４８２および相関資源ＩＤ４８３を含む（詳細は後述する）。
【００４０】
図６は、優先リスト作成部４３による優先リスト作成動作を示すフローチャートである。図５と図６とを参照して、優先リスト作成部４３による優先リスト作成動作について説明する。
【００４１】
優先リスト作成部４３は、例えば、一定間隔で動作する。動作を開始すると、優先リスト作成部４３は、前回作成した優先資源リスト４８を初期化する（ステップＳ５０１）。続いて、優先リスト作成部４３は、ログ情報４７を参照して（ステップＳ５０２）、資源ごとの優先度を計算する（ステップＳ５０３）。優先リスト作成部４３は、ログ情報４７に含まれる資源リストテーブル４７１の排他要求回数４７３、待ち回数４７４、タスク数４７５および待ち時間４７６にそれぞれ格納される値を用いて、優先度を計算する。
【００４２】
具体的には、優先リスト作成部４３は、例えば以下の計算式を使用して優先度を算出する。すなわち、
優先度＝（ａ×排他要求回数）＋（ｂ×待ち回数）＋（ｃ×タスク数）＋（ｄ×待ち時間）
ここで、ａ，ｂ，ｃ，ｄは、重み付けのための定数である。
【００４３】
優先リスト作成部４３は、上記計算した優先度と優先資源リスト４８に登録される資源の優先度との比較を行う（ステップＳ５０４）。優先リスト作成部４３は、優先資源リスト４８に一定数の資源が登録されるまで当該資源を追加し、その一定数を超えて登録されたら、優先資源リスト４８に登録される最も優先度が低い資源と、当該計算された優先度を持つ資源とを入れ替える（ステップＳ５０５）。このとき、優先リスト作成部４３は、図５に示す資源ＩＤ４８１に当該資源のＩＤを登録する。
【００４４】
優先リスト作成部４３は、資源リストテーブル４７１に格納されるすべてのログ情報に関してステップＳ５０３からステップＳ５０５までの処理を行う（ステップＳ５０６）。優先リスト作成部４３は、すべてのログ情報に関して上記処理を終了したら、優先資源リスト４８の作成を終了する。優先リスト送信部４４は、優先リスト作成部４３が作成した優先資源リスト４８を、通信部４１を介してホスト１０，２０に送信する。ホスト１０，２０は、受信した優先資源リスト１５，２５を保持しておく。
【００４５】
次に、優先リスト追加部４５の動作について説明する。優先資源リスト４８は、登録される資源（優先資源）を優先的に排他制御するためのリストであるが、登録される優先資源だけでなく、当該優先資源に付随する資源も優先的に排他制御できると、当該優先資源に付随する資源に関する排他情報の再生待ちのための時間を削減できる。そこで、優先リスト追加部４５は、優先資源リスト４８に登録される優先資源に付随する資源も優先資源リスト４８に登録する動作を行う。
【００４６】
ここで、優先資源に付随する資源とは、例えば、当該優先資源に対してデッドロックを起こしうるタスクが排他または排他待ちする資源である。また、優先資源を排他するタスクが処理の前後で排他要求する資源も優先資源に付随する資源となる。
【００４７】
優先リスト追加部４５は、優先リスト作成部４３が優先資源リスト４８を作成した後に動作を開始する。
【００４８】
図７は、優先リスト追加部４５による優先資源のデッドロックチェック対象となる資源を優先資源リスト４８に追加する動作を示すフローチャートである。図７を参照して、上記動作について説明する。
【００４９】
優先リスト追加部４５は、優先資源リスト４８を参照し（ステップＳ６０１）、登録されている優先資源について、順に以下の処理を行う。すなわち、優先リスト追加部４５は、優先資源リスト４８に登録されている資源と同一ＩＤを有する資源について資源管理テーブル４６１およびタスク管理テーブル４６５を参照し（ステップＳ６０２）、当該優先資源の排他待ちをしているタスクの有無をチェックする（ステップＳ６０３）。
【００５０】
排他待ちをしているタスクがある場合、優先リスト追加部４５は、当該排他待ちをしているタスクよりも先に当該優先資源を排他しているタスクの排他状態をタスク管理テーブル４６５から読み出す（ステップＳ６０４）。当該タスクが排他または排他待ちをしている資源がある場合、優先リスト追加部４５は、当該資源が優先資源リスト４８に登録済みかを確認する（ステップＳ６０５）。登録済みでない場合、優先リスト追加部４５は、当該資源を相関資源として優先資源リスト４８に追加する（ステップＳ６０６）。このとき、優先リスト追加部４５は、当該相関資源へのポインタを、図５に示す相関チェイン４８２に格納すると共に、当該相関資源のＩＤを相関資源ＩＤ４８３に格納する。
【００５１】
続いて、優先リスト追加部４５は、上記優先資源を排他しているタスクが排他待ちをしている資源の有無をチェックし（ステップＳ６０７）、排他待ちをしている資源がある場合、当該資源を排他しているタスクの排他状態をタスク管理テーブル４６５から読み出す（ステップＳ６０４）。当該タスクが排他待ちしている資源がある場合、優先リスト追加部４５は、その資源をさらに優先資源リスト４８に追加する。以降、当該優先資源を排他しているタスクが排他待ちしている資源を、先に排他しているタスクが排他待ちする資源が出現しなくなるまで、優先リスト追加部４５は、ステップＳ６０４からステップＳ６０７を繰り返す。
【００５２】
優先資源リスト４８に登録されているすべての資源について上記ステップＳ６０２からステップＳ６０７の処理を行ったら（ステップＳ４０８）、優先リスト追加部４５は、優先リスト追加動作を終了する。
【００５３】
続いて、優先リスト追加部４５による、優先資源を排他するタスクが処理の前後で排他要求する資源の優先資源リスト４８への追加の動作を説明する。図８は、優先リスト追加部４５による上記動作を示すフローチャートである。図８を参照して、上記動作について説明する。
【００５４】
優先リスト追加部４５は、ログ情報４７のタスクリストテーブル４７７を参照し（ステップＳ７０１）、タスクごとに優先資源を排他しているか否かをチェックする（ステップＳ７０２）。優先資源を排他するタスクがあった場合、優先リスト追加部４５は、当該優先資源を排他する前後で優先資源以外の他の資源を排他するかチェックする（ステップＳ７０３）。当該タスクが優先資源以外の他の資源を排他する場合、優先リスト追加部４５は、その資源と当該優先資源との相関度を計算する（ステップＳ７０４）。
【００５５】
優先リスト追加部４５は、相関度を、図４（ｂ）に示す、排他要求回数４８１、平均排他時間４８２にそれぞれ格納される値を用いて、相関度を計算する。
【００５６】
具体的には、優先リスト作成部４３は、例えば以下の計算式を使用して相関度を算出する。すなわち、
相関度＝（排他要求回数×平均排他時間）
÷（優先資源の排他要求回数×優先資源の平均排他時間）。
【００５７】
上記の式に基づいて算出される相関度は、１に近いほど優先資源との相関度が高いと判断される。例えば、資源Ａ、資源Ｂ、優先資源Ｃが順に排他された後に、優先資源Ｃ、資源Ｂ、資源Ａの順に排他解除される処理が有限ループするタスクがある。資源Ａ、資源Ｂは、優先資源Ｃが排他されるときに必ず排他される資源である。このとき、（資源Ａの排他要求回数×平均排他時間）≒（資源Ｂの排他要求回数×平均排他時間）≒（資源Ｃの排他要求回数×平均排他時間）となる。この場合、優先資源Ｃと資源Ａ、資源Ｂとの各相関度は、それぞれ１に近い値となる。
【００５８】
優先リスト追加部４５は、上記計算した優先資源との相関度と所定の閾値とを比較し（ステップＳ７０５）、所定の閾値より相関度が高い資源について、優先資源リスト４８に登録済みか否かをチェックする（ステップＳ７０６）。登録済みでない場合、優先リスト追加部４５は、当該資源を優先資源リスト４８に追加する（ステップＳ７０７）。優先リスト追加部４５は、ログ情報４７のタスクリストテーブル４７７のすべてのログを参照したら（ステップＳ７０８）、処理を終了する。
【００５９】
以上説明した優先リスト作成部４３および優先リスト追加部４５の各動作により、優先資源リスト４８が作成される。優先リスト送信部４４は、優先資源リスト４８が作成されると、当該優先資源リスト４８を通信部４１を介してホスト１０，２０に送信する。ホスト１０，２０は、それぞれ通信部２３を介して受信した優先資源リスト１５，２５を保持しておく。
【００６０】
次に、稼働系の排他制御装置４０に障害が発生した際に、当該排他制御装置４０から待機系の排他制御装置５０への切り替え処理について説明する。
【００６１】
稼働系の排他制御装置４０に障害が発生すると、当該排他制御装置４０は、ホスト１０，２０に対して障害が発生した旨を、通信部４１を介して通知する。ホスト１０，２０は、通信部１３，２３を介して上記障害が発生した旨の通知を受信すると、排他情報送信部１２は、待機系の排他制御装置５０への切り替えのための排他情報の送信のための動作を開始する。
【００６２】
図９は、排他情報送信部１２による排他情報の送信のための動作を説明するフローチャートである。図９を参照して、排他情報送信部１２の上記動作を説明する。
【００６３】
排他情報送信部１２は、待機系の排他制御装置５０への切り替えのための動作を開始すると、まず、排他制御装置４０，５０に対する排他要求を含む新規のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）の発行を抑止する要求を排他要求部１１に出す（ステップＳ８０１）。続いて、排他情報送信部１２は、ホスト固有排他情報１４を参照し（ステップＳ８０２）、登録されている排他情報が優先資源リスト１５に登録されている資源に対する排他情報であるか否かをチェックする（ステップＳ８０３）。
【００６４】
排他情報送信部１２は、優先資源リスト１５に登録されている資源に対する排他情報である場合、当該排他情報をホスト固有排他情報１４から抽出すると共に、通信部１３を介して待機系の排他制御装置５０に送信する（ステップＳ８０４）。優先資源リスト１５に登録されていない資源に対する排他情報である場合、排他情報送信部１２は、当該排他情報を保持する（ステップＳ８０５）。排他情報を受信した排他制御装置５０は、当該排他情報に基づいて排他制御を実施（再生）する。
【００６５】
排他情報送信部１２は、ホスト固有排他情報１４をすべて参照し、ステップＳ８０２からステップＳ８０５の処理を行ったら（ステップＳ８０６）、優先資源リスト１５に登録される資源を使用するタスクを優先的に実施する優先運用を開始する（ステップＳ８０７）。ホスト１０の優先運用中は、排他情報送信部１２は、優先資源リスト１５に登録される資源に対する排他要求を排他制御装置５０に送ることを認める指示を排他要求部１１に供給する。
【００６６】
そして、ホスト１０の優先運用中は、優先資源リスト１５に登録される資源に対する排他要求は、排他要求部１１から待機系の排他制御装置５０に送られ、当該資源を使用するタスクがホスト１０において実施される。一方、優先資源リスト１５に登録されない資源に関する排他情報は排他制御装置５０に未送信である。したがって、当該資源に対する排他要求は、ホスト１０内でＩ／Ｏ発行が抑止され、当該資源を使用するタスクはホスト１０において実施されない。このように、優先度の高い資源、および当該資源に関連する資源を優先的に排他制御することにより、優先度の高い資源を使用するタスクを短時間で再開できる。
【００６７】
優先運用を開始した後、排他情報送信部１２は、ステップＳ８０５において保持していた排他情報がある場合（ステップＳ８０８）、当該排他情報をすべて排他制御装置５０に送信する（ステップＳ８０９）。排他制御装置５０において、当該排他情報に基づく排他制御がすべて実施（再生）されると、すべての資源に対して排他要求が可能となるので、排他制御システムは、排他制御装置５０による排他制御を用いて通常の運用（完全運用）を再開する。
【００６８】
上記動作により、本第１の実施形態では、以下のような効果が得られる。ここで、排他制御装置４０において作成される優先資源リスト４８の閾値を全資源に対して上位α％（例えば２０％）とし、優先資源リスト４８に登録されている資源と上記優先運用再開以降、完全運用再開までの間に排他要求される資源とのマッチング率をβ％（例えば７５％）とする。
【００６９】
優先運用再開以降に排他要求できる資源は、全資源のαβ％（例えば１５％）となり、残り（例えば８５％）の資源は、すべての排他情報が再生完了（完全運用）された後に排他制御が可能となる。つまり、αβ％の資源に関しては、運用再開までの時間が短縮され（例えば５分の１）、（α−αβ）％の資源に関しては、優先運用再開後に排他要求は出されるが優先資源リスト４８とマッチングしないので完全運用まで待機することとなる。
【００７０】
優先資源リスト４８に登録されていない残りの（１−α）％の資源は、優先度が低いので、完全運用の再開まで待機されても問題ない。
【００７１】
【表１】
2014164647.tif 000003
【００７２】
優先資源リスト４８の閾値α＝２０％、優先運用再開後のマッチング率β＝７５％、完全運用の再開までのダウンタイム＝６０秒として、具体例を以下に示す。
【００７３】
【表２】
2014164647.tif 000004
【００７４】
ここで、いわゆるパレートの法則によれば、重要な２０％の仕事が８０％の成果を、残りの８０％の仕事が２０％の成果を生むといわれている。共有資源の排他制御において、重要な資源を上記のように優先的に運用再開することによりダウンタイムを短縮することで、システム全体としてのスループットが飛躍的に向上させることができるという効果が得られる。特に、様々な業務を１台のホストで処理する汎用機で効果を発揮する。
【００７５】
以上のように、本第１の実施形態によれば、排他制御装置１００において、排他制御装置４０の優先リスト作成部４３は、定期的に排他情報４６とログ情報４７とを参照しながら優先資源リスト４８を作成する。優先リスト追加部４５は、優先資源リスト４８に登録された資源に付随する資源を優先資源リスト４８に追加する。優先リスト送信部４４は、作成された優先資源リスト４８をホスト１０，２０に送信する。
【００７６】
ホスト１０は、自装置の排他情報であるホスト固有排他情報１４を保持する。排他制御装置４０が故障すると、優先資源リスト１５に登録される排他情報をホスト固有排他情報１４から抽出すると共に、当該排他情報を待機系の排他制御装置５０に送信する。その後、ホスト１０は、優先資源リスト１５に登録される資源を使用するタスクを優先的に実施する優先運用を開始する。
【００７７】
上記構成を採用することにより、本第１の実施形態によれば、排他制御システム１００において排他制御装置４０の故障が生じても、優先度の高い資源、および当該資源に関連する資源を優先的に排他制御することにより、稼働系の排他制御装置の故障から待機系の排他制御装置に切り替えて運用再開するまでの時間を短縮できるという効果が得られる。
第２の実施形態
図１０は、本発明の第２の実施形態に係る排他制御装置３００の構成を示すブロック図である。図１０に示すように、排他制御装置３００は、優先資源リスト作成部３０１、優先資源リスト追加部３０２および通信部３０３を備える。
【００７８】
優先資源リスト作成部３０１は、複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度が高い順に所定数の共有資源を優先資源として登録した優先資源リストを作成する。なお、算出した優先度が高い順に優先資源リストに登録することは一例であり、いずれの順に優先資源リストに登録してもよい。
【００７９】
優先資源リスト追加部３０２は、作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する。通信部３０３は、優先資源リストを前記各ホストに送信する。
【００８０】
本第２の実施形態によれば、上記構成を採用することにより、優先度の高い資源、および当該資源に関連する資源を優先的に排他制御することにより、稼働系の排他制御装置の故障から待機系の排他制御装置に切り替えて運用再開するまでの時間を短縮できるという効果が得られる。
【００８１】
なお、上述した各実施形態では、図１および図１０に示す排他制御装置またはホストを、図２に示すＣＰＵ２００が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図１および図１０に示す各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【００８２】
また、上述した各実施形態を例に説明した本発明は、上述した排他制御装置またはホストに対して、その説明において参照したフローチャート（図６、図７、図８、図９）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、ＣＰＵ２００に読み出して実行することによって達成される。
【００８３】
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【産業上の利用可能性】
【００８４】
本発明は、例えば様々な業務を１台のホストで処理する汎用機に適用できる。
【００８５】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、
前記優先資源リストを前記各ホストに送信する通信部と
を備えた排他制御装置。
（付記２）
前記優先資源リスト追加部は、前記優先資源リスト作成部が作成した前記優先資源リストに登録される優先資源を排他待ちするタスクがある場合、当該タスクよりも先に当該優先資源を排他している第１のタスクが排他または排他待ちする資源を、前記優先資源に関連する資源として前記優先資源リストに追加する
付記１記載の排他制御装置。
（付記３）
前記優先資源リスト追加部は、前記第１のタスクが排他待ちをしている資源がある場合、当該資源を先に排他するタスクが排他待ちしている資源を、前記優先資源に関連する資源として前記優先資源リストに追加する
付記２記載の排他制御装置。
（付記４）
前記優先資源リスト追加部は、前記共有資源に対する排他状況に基づいて、前記優先資源リストに登録される優先資源の前または後に、前記優先資源リストに登録されない資源を排他するか否かを判断し、排他する場合、当該排他する資源と、前記優先資源リストに登録される優先資源との相関度が所定値を超える場合、当該排他する資源を前記優先資源に関連する資源として前記優先資源リストに追加する
付記１ないし付記３のいずれか１項記載の排他制御装置。
（付記５）
前記優先資源リスト追加部は、前記排他する資源が受ける排他要求の回数と当該資源が排他される平均時間の積と、前記優先資源リストに登録される優先資源が受ける排他要求の回数と当該優先資源が排他される平均時間の積を算出すると共に、当該２つの算出された値の商を、前記相関度として算出する
付記４記載の排他制御装置。
（付記６）
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを作成する優先資源リスト作成部と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する優先資源リスト追加部と、
前記優先資源リストを前記各ホストに送信する通信部と
を備えた第１の排他制御装置と、
前記各ホストから、前記優先資源リストに登録される資源に対する当該各ホストからの排他要求状況を含む排他情報を受信すると共に、当該排他情報に含まれるように排他制御を実施する排他制御部
を備えた第２の排他制御装置と
を備えた排他制御システム。
（付記７）
前記第１の排他制御装置から故障の通知を受けると、自ホストが実行するタスクが排他または排他待ちする資源のうち、前記第１の排他制御装置から受信している前記優先資源リストに登録される資源に関する排他情報を、前記第２の排他制御装置に送信する排他情報送信部と、
前記排他情報送信部が前記排他情報を送信した後、前記優先資源リストに登録される資源に対する排他要求を、前記第２の排他制御装置に送信する排他要求部と
を備えるホストをさらに備えた
付記６記載の排他制御システム。
（付記８）
前記排他情報送信部は、前記優先資源リストに登録される資源に関する排他情報を前記第２の排他制御装置に送信した後に、前記優先資源リストに登録されない資源に関する排他情報を前記第２の排他制御装置に送信する
付記６記載の排他制御システム。
（付記９）
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成し、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を優先資源リスト追加部により前記優先資源リストに追加し、
前記優先資源リストを前記各ホストに通信部により送信する
排他制御方法。
（付記１０）
第１の排他制御装置において、複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成し、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を優先資源リスト追加部により前記優先資源リストに追加し、
前記優先資源リストを通信部により前記各ホストに送信し、
第２の排他制御装置において、前記各ホストから、前記優先資源リストに登録される資源に対する当該各ホストからの排他要求状況を含む排他情報を受信すると共に、当該排他情報に含まれるように排他制御を排他制御部により実施する
排他制御方法。
（付記１１）
前記ホストにおいて、前記第１の排他制御装置から故障の通知を受けると、自ホストが実行するタスクが排他または排他待ちする資源のうち、前記第１の排他制御装置から受信している前記優先資源リストに登録される資源に関する排他情報を、前記第２の排他制御装置に排他情報送信部により送信し、
前記排他情報送信部が前記排他情報を送信した後、前記優先資源リストに登録される資源に対する排他要求を、前記第２の排他制御装置に排他要求部により送信する
付記１０記載の排他制御方法。
（付記１２）
前記排他情報送信部は、前記優先資源リストに登録される資源に関する排他情報を前記第２の排他制御装置に送信した後に、前記優先資源リストに登録されない資源に関する排他情報を前記第２の排他制御装置に送信する
付記１０記載の排他制御方法。
（付記１３）
複数のホストにより使用される共有資源に対する排他状況に基づいて当該各共有資源の優先度を算出すると共に、当該算出した優先度に従って所定数の共有資源を優先資源として登録した優先資源リストを優先資源リスト作成部により作成する処理と、
前記作成された優先資源リストに登録される優先資源に関連する資源を特定すると共に、当該関連する資源を前記優先資源リストに追加する処理と、
前記優先資源リストを前記各ホストに通信部により送信する処理とを
コンピュータに実行させる排他制御プログラム。
【符号の説明】
【００８６】
１００  排他制御システム
１０，２０  ホスト
３０  共有資源記憶部
４０，５０  排他制御装置
１１，２１  排他要求部
１２，２２  排他情報送信部
１３，２３，４１，５１  通信部
４２，５２  排他制御部
４３  優先リスト作成部
４４  優先リスト送信部
４５  優先リスト追加部
【図１】
2014164647.tif 000005
【図２】
2014164647.tif 000006
【図３Ａ】
2014164647.tif 000007
【図３Ｂ】
2014164647.tif 000008
【図４】
2014164647.tif 000009
【図５】
2014164647.tif 000010
【図６】
2014164647.tif 000011
【図７】
2014164647.tif 000012
【図８】
2014164647.tif 000013
【図９】
2014164647.tif 000014
【図１０】
2014164647.tif 000015