(57)【要約】【課題】  複数の入出力処理を並行して行うコンピュータシステムにおいて、システムにかかる負荷を抑えつつ各処理の完了を待ち合わせることが可能な、完了待ち合わせ機構を実現する。【解決手段】  入出力要求受付機構１１は、ユーザプログラムからの入出力命令あるいは完了待ち合わせ命令を受け付け、キュー管理機構１２に供給する。キュー管理機構１２はサブプログラム毎に異なるキューを作成して入出力命令と完了待ち合わせ命令とを格納する。ドライバ検索機構１３は、ユーザプログラムにしたがって装置を検索し、入出力命令を供給する。入出力用要求に対する完了通知が、ドライバ検索機構１３を介して、装置からキュー管理機構１２に送信されると、対応する入出力命令および完了待ち合わせ命令とをキューから削除する。【選択図】  図１
2005293066.tif 000002
【特許請求の範囲】
【請求項１】
処理装置に接続され、
複数のプログラムから、前記処理装置に処理を行わせるための処理要求を受信する受信部と、
受信した処理要求を該処理要求の発信元のプログラム毎に対応する待ち行列に格納し、格納した順番に応じて処理要求を前記処理装置に供給し、該処理装置から処理が完了したことを示す完了通知を受け取って、該完了通知に対応する処理要求を削除する処理要求制御部と、
を備えることを特徴とする完了待ち合わせシステム。
【請求項２】
前記受信部は、さらに
複数のプログラムから、処理要求に対応する処理の完了を待ち合わせる命令である完了待ち命令を受信するものであって、
前記処理要求制御部は、
前記処理装置から完了通知を受け取ると、該完了通知に対応する処理要求と完了待ち命令とを削除する、
ことを特徴とする請求項１に記載の完了待ち合わせシステム。
【請求項３】
前記完了待ち命令はそれぞれの処理要求に対応する複数の処理の完了を待ち合わせることができるものであって、
前記処理要求制御部は、完了通知に対応する処理要求を削除する際、該処理要求の格納されていた待ち行列に前記完了待ち命令が格納されていれば、該完了待ち命令が待ち合わせをしているすべての処理が完了しているか否かを判別して、すべての処理が完了していると判別すれば、該完了待ち命令を待ち行列から削除する、
ことを特徴とする請求項２に記載の完了待ち合わせシステム。
【請求項４】
当該完了待ち合わせシステムは複数の処理装置に接続されており、
処理要求の処理内容に応じて前記複数の処理装置の中から該処理要求の供給先の処理装置を選択する装置選択部をさらに備える、
ことを特徴とする請求項１、２又は３に記載の完了待ち合わせシステム。
【請求項５】
前記処理要求制御部は、
前記受信部による処理要求の受信に応じて待ち行列を作成して固有の識別子を割り当て、
受信した処理要求に対応するプログラムと処理装置とに該識別子を通知して、処理要求の待ち行列への格納及び削除を制御する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の完了待ち合わせシステム。
【請求項６】
処理装置に接続されたコンピュータを、
複数のプログラムから、前記処理装置に処理を行わせるための処理要求を受信する手順、
受信した処理要求を該処理要求の発信元のプログラム毎に対応する待ち行列に格納し、格納した順番に応じて処理要求を前記処理装置に供給し、該処理装置から処理が完了したことを示す完了通知を受け取って、該完了通知に対応する処理要求を削除する手順、
を実行するコンピュータシステムとして機能させるための完了待ち合わせプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並行して実行される複数の入出力処理の完了を待ち合わせるためのシステム及びプログラムに関する。
【背景技術】
【０００２】
マルチプロセッサシステムで動作する並列プログラム等において、各サブプログラムは独立で動作可能であり、それぞれの処理を並列で行っている。しかし、複数のサブプログラムが定期的に同期を取りたい場合がある。例えば、各サブプログラムが行う入出力要求、すなわち定期的な各自のチェックポイントがその場合に該当する。この場合、各自のチェックポイントはサブプログラム毎に独立しているため、関連するサブプログラムの入出力の完了を待ち合わせる必要がある。そこで、特に、複数のサブプログラムから構成されるユーザプログラムにより複数の異なる装置への処理命令（入出力要求）が発行されるような場合において、ある時点での全ての入出力要求を待ち合わせるために、サブプログラム間での通信を行う、あるいは待ち合わせ機能を持つ交換機や装置側の待ち合わせ機能を用いる等の手法が考えられた（例えば、特許文献１）。
【特許文献１】特開平５−２７４２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したような、サブプログラム間での通信を用いる手法では、各々のサブプログラムは、受信完了通知を受け取る度に、その通知を他のサブプログラム乃至はマスターサブプログラム（すなわち、サブプログラムを束ねるプログラム）に送る必要がある。このため、大量の通信が発生する状態、あるいは通信が一極集中する状態が発生し、コンピュータシステムにかかる負荷が急激に増加する。
【０００４】
一方、待ち合わせ機能を持つ交換機や装置側の機能を用いて待ち合わせを行う手法は、既存のシステムに適用することが難しい。また、システム自体も高価なものになってしまう。
【０００５】
本発明は、上記実状に鑑みて為されたものであり、複数の入出力処理を並行して行うコンピュータシステムにおいて、システムにかかる負荷を抑えつつ各処理の完了を待ち合わせることが可能な、完了待ち合わせシステムを実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係る完了待ち合わせシステムは、
処理装置に接続され、
複数のプログラムから、前記処理装置に処理を行わせるための処理要求を受信する受信部と、
受信した処理要求を該処理要求の発信元のプログラム毎に対応する待ち行列に格納し、格納した順番に応じて処理要求を前記処理装置に供給し、該処理装置から処理が完了したことを示す完了通知を受け取って、該完了通知に対応する処理要求を削除する処理要求制御部と、
を備えることを特徴とする。
【０００７】
前記受信部は、さらに
複数のプログラムから、処理要求に対応する処理の完了を待ち合わせる命令である完了待ち命令を受信するものであって、
前記処理要求制御部は、
前記処理装置から完了通知を受け取ると、該完了通知に対応する処理要求と完了待ち命令とを削除することが好ましい。
【０００８】
前記完了待ち命令はそれぞれの処理要求に対応する複数の処理の完了を待ち合わせることができるものであってもよい。
この場合、前記処理要求制御部は、完了通知に対応する処理要求を削除する際、該処理要求の格納されていた待ち行列に前記完了待ち命令が格納されていれば、該完了待ち命令が待ち合わせをしているすべての処理が完了しているか否かを判別して、すべての処理が完了していると判別すれば、該完了待ち命令を待ち行列から削除する。
【０００９】
当該完了待ち合わせシステムは複数の処理装置に接続されており、
処理要求の処理内容に応じて前記複数の処理装置の中から該処理要求の供給先の処理装置を選択する装置選択部をさらに備えることが好ましい。
【００１０】
前記処理要求制御部は、
前記受信部による処理要求の受信に応じて待ち行列を作成して固有の識別子を割り当て、
受信した処理要求に対応するプログラムと処理装置とに該識別子を通知して、処理要求の待ち行列への格納及び削除を制御することが好ましい。
【００１１】
上記目的を達成するため、本発明の第２の観点に係る完了待ち合わせプログラムは、
処理装置に接続されたコンピュータを、
複数のプログラムから、前記処理装置に処理を行わせるための処理要求を受信する手順、
受信した処理要求を該処理要求の発信元のプログラム毎に対応する待ち行列に格納し、格納した順番に応じて処理要求を前記処理装置に供給し、該処理装置から処理が完了したことを示す完了通知を受け取って、該完了通知に対応する処理要求を削除する手順、
を実行するコンピュータシステムとして機能させる。
【発明の効果】
【００１２】
本発明によれば、複数の入出力処理を並行して行うコンピュータシステムにおいて、システムにかかる負荷を抑えつつ各処理の完了を待ち合わせることが可能な、完了待ち合わせシステムを実現できる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施の形態に係る完了待ち合わせ機構１は、異なる装置にまたがる複数の入出力処理を並行して行う際に処理の完了を待ち合わせるための機構であり、図１に示すように、入出力要求受付機構１１と、キュー管理機構１２と、ドライバ検索機構１３と、から構成される。キュー管理機構１２は、所定のユーザプログラムＵからの命令により、複数のキュー（１２１、１２２、１２３・・・）を作成／削除する。
【００１４】
完了待ち合わせ機構１は、図２に示すように、複数のサブプログラムＳＢ（ＳＢ１、ＳＢ２、ＳＢ３・・・）により構成されるユーザプログラムＵからの入出力処理の要求（入出力要求）を受け、処理の完了を待ち合わせつつ、入出力要求を複数の装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）に供給する。
【００１５】
図１に示す入出力要求受付機構１１は、全ての装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）への入出力要求を受け付ける機構である。また、入出力要求受付機構１１は、ユーザプログラムＵから入出力要求の待ち合わせが必要であることを示す命令である完了待ち合わせ命令を受け付ける。
【００１６】
キュー管理機構１２は、ユーザプログラムＵを構成するサブプログラムＳＢ（ＳＢ１、ＳＢ２、ＳＢ３・・・）からの要求を受け、キューの作成および削除を行う。キュー管理機構１２は、キューを作成する際、各キュー毎に固有の識別子を割り当てる。この識別子は、ユーザプログラムＵ（のサブプログラムＳＢ）が入出力要求や完了待ち合わせ命令を格納するキューを指定するために用いられ、また、キューの削除要求を行う際に削除対象となるキューを指定するためにも用いられる。
【００１７】
また、キュー管理機構１２は、入出力要求受付機構１１から供給された入出力要求あるいは完了待ち合わせ命令を適切なキューに格納し、ドライバ検索機構１３に入出力要求を供給する。さらに、キュー管理機構１２は、装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）からドライバ検索機構１３を介して受け取った、入出力処理の完了を知らせる通知（完了通知）をもとにキューを特定する。そして、そのキュー上に完了待ち合わせ命令があるか否かを検索し、検索結果に基づいて、入出力要求受付機構１１を介してユーザプログラムＵ（のサブプログラムＳＢ）に完了通知を供給する。
【００１８】
ドライバ検索機構１３は、キュー管理機構１２から供給された入出力要求をもとに適切なドライバを検索し、検索したドライバを介して入出力要求を装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）に供給する。また、装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）からの入出力処理の完了通知をドライバを介して受け取り、キュー管理機構１２に供給する。
【００１９】
ユーザプログラムＵを構成する全てのサブプログラムＳＢ（ＳＢ１、ＳＢ２、ＳＢ３・・・）は、各種装置への入出力要求を常に入出力要求受付機構１１を通して発行し、これらの入出力要求に対して完了待ち合わせが必要になったときには、その入出力要求に対応するサブプログラムＳＢが入出力要求受付機構１１に対して完了待ち合わせ命令を発行する。そして、完了待ち合わせ機構１は、発行された完了待ち合わせ命令の完了通知を各サブプログラムＳＢ（ＳＢ１、ＳＢ２、ＳＢ３・・・）毎に待ち合わせて、全ての入出力処理の完了を待ち合わせる。
【００２０】
次に、本実施の形態に係る完了待ち合わせ機構１が行う処理動作について、図面を参照して説明する。尚、ここでは、キュー管理機構１２はユーザプログラムＵからの要求に従って各サブプログラム毎にキューを作成済みであり、各キューにはキュー管理機構１２によってそれぞれ固有の識別子（例えば、図１に示す１２１、１２２、１２３・・・）が割り当てられているものとする。
【００２１】
まず、ユーザプログラムＵの各サブプログラムＳＢから入出力要求あるいは完了待ち合わせ命令が供給された際の完了待ち合わせ機構１の処理動作（「要求受け付け処理」）について、図３のフローチャートを参照して説明する。
【００２２】
入出力要求受付機構１１は、ユーザプログラムＵからの装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）への入出力要求あるいは完了待ち合わせ命令を受け付ける（ステップＳ１０１）。その際、入出力要求受付機構１１は、入出力要求あるいは完了待ち合わせ命令とともに、各キューに割り当てられた固有の識別子の指定を受け付ける。
【００２３】
入出力要求あるいは完了待ち合わせ命令を受け付けた入出力要求受付機構１１は、指定された識別子の情報をもとにキューを選択し（ステップＳ１０２）、入出力要求あるいは完了待ち合わせ命令をキュー管理機構１２に供給する。
【００２４】
キュー管理機構１２は、供給された要求が完了待ち合わせ命令であるか否かを判別する（ステップＳ１０３）。供給された要求が完了待ち合わせ命令であると判別すると（ステップＳ１０３：Ｙｅｓ）、キュー管理機構１２はその完了待ち合わせ命令を、前述のステップＳ１０２で選択したキューにセットして（ステップＳ１０４）、処理を終了する。
【００２５】
一方、供給された要求が完了待ち合わせ命令ではなく、入出力命令であると判別すると（ステップＳ１０３：Ｎｏ）、キュー管理機構１２は、ステップＳ１０１で受け付けた入出力要求を入出力命令として、ステップＳ１０２で選択されたキューにセットし（ステップＳ１０５）、ドライバ検索機構１３に供給する。ドライバ検索機構１３は、供給された入出力命令に対応する適切なドライバを検索して呼び出し（ステップＳ１０６）、呼び出したドライバを介して入出力命令を所定の装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）に供給して、処理を終了する。
【００２６】
次に、入出力要求完了時における完了待ち合わせ機構１の処理動作（「待ち合わせ命令除去処理」）について、図４のフローチャートを参照して説明する。
【００２７】
ドライバ検索機構１３は、装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）からの装置ドライバを介した完了通知を受け付ける（ステップＳ２０１）。完了通知を受け付けると、ドライバ検索機構１３は、その完了通知をキュー管理機構１２に供給する。
【００２８】
完了通知を受け付けたキュー管理機構１２は、各キューに割り振られた識別子に基づいて、完了を通知された処理命令（入出力処理）に対応するキューを選択する（ステップＳ２０２）。そして、キュー管理機構１２は、キュー上に対応する完了待ち合わせ命令があるか否かを判別する（ステップＳ２０３）。
【００２９】
キュー上に対応する完了待ち合わせ命令がないと判別すると（ステップＳ２０３：Ｎｏ）、キュー管理機構１２は、図５（ａ）に示すように、受け取った完了通知に対応する入出力命令を削除し（ステップ２０４）、完了通知を入出力要求受付機構１１を介してユーザプログラムＵ（サブプログラムＳＢ）に供給して、処理を終了する。
【００３０】
一方、キュー上に対応する完了待ち合わせ命令があると判別すると（ステップＳ２０３：Ｙｅｓ）、キュー管理機構１２は、その完了待ち合わせ命令に対応する入出力命令が一つであるか否か、すなわちその完了待ち合わせ命令が対応する最後の待ち合わせ命令か否かを判別する（ステップＳ２０５）。
【００３１】
対応する最後の待ち合わせ命令であると判別すると（ステップＳ２０５：Ｙｅｓ）、キュー管理機構１２は、図５（ｂ）に示すように、ステップＳ２０１で受け取った完了通知に対応する入出力命令と完了待ち合わせ命令とを削除し（ステップＳ２０６）、完了通知を入出力受付機構１１を介してユーザプログラムＵ（のサブプログラムＳＢ）に供給して、処理を終了する。
【００３２】
一方、対応する最後の待ち合わせ命令ではない、すなわち完了待ち合わせ命令に対応する未処理の入出力要求が存在すると判別すると（ステップＳ２０５：Ｎｏ）、キュー管理機構１２は、図５（ｃ）に示すように、受け取った完了通知に対応する入出力命令を削除し（ステップ２０４）、完了通知を入出力要求受付機構１１を介してユーザプログラムＵに供給して、この完了通知に対応する処理を終了する。
【００３３】
以上、説明したような構成及び処理動作により、本発明の実施の形態に係る完了待ち合わせ機構１が実現される。この完了待ち合わせ機構１によれば、ユーザプログラムＵからの完了待ち合わせ単位（サブプログラムＳＢ単位）でキューを作成でき、さらに各キューに対して発行した完了待ち合わせ命令のみを待ち合わせることができる。このため、特殊な交換機や各種装置が備える待ち合わせ機能を利用することなく、関連する全ての装置への入出力要求を待ち合わせることが可能となる。
【００３４】
また、ユーザプログラムＵ内のひとつのサブプログラムＳＢのみが処理の完了を待ち合わせればよいため、待ち合わせ処理によってシステム全体にかかる負荷を抑えることができる。
【００３５】
また、複数の処理要求を、処理要求の発行元であるサブプログラムＳＢ毎に異なるキューに格納するため、異なるサブプログラムＳＢに基づく処理を同時に並行して実行することができる。したがって、効率的な待ち合わせを行うことが可能となる。
【００３６】
尚、本発明は上記実施の形態で示したものに限定されず、様々な変形及び応用が可能である。例えば、上記実施の形態では、ユーザプログラムＵが入出力要求を発行し、その要求に基づいて装置Ｅ（Ｅ１、Ｅ２、Ｅ３・・・）が入出力処理を行うものとした。しかし、本発明は入出力処理に限定されるものではなく、例えば、マルチタスクオペレーティングシステムのキューイング処理等、様々な処理に対して適用することが可能である。
【００３７】
また、完了待ち合わせ機構１の構成は、上記実施の形態における図１で示したものに限定されるものではなく、サブプログラムＳＢ毎にキューを作成して完了を待ち合わせることが可能な構成であればよい。
【００３８】
なお、本発明の実施の形態にかかる完了待ち合わせ機構１を実現するための情報処理装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、汎用コンピュータに、上述のいずれかを実行するためのプログラムを格納した媒体（ＣＤ−ＲＯＭなど）から当該プログラムをインストールすることにより、上述の処理を実行する完了待ち合わせ機構１を構成することができる。
【００３９】
また、上述の機能を、ＯＳ（Operating System）とアプリケーションとの分担、またはＯＳとアプリケーションとの協動により実現する場合、などには、ＯＳ以外の部分のみを媒体に格納してもよい。
【００４０】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ、Bulletin Board System）に該プログラムを掲示し、ネットワークを介して該プログラムを配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成しても構わない。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係る完了待ち合わせ機構の構成図である。
【図２】図１の完了待ち合わせ機構とユーザプログラムと装置との関係を示す図である。
【図３】ユーザプログラムから入出力要求や完了待ち合わせ命令を受け付けた際の完了待ち合わせ機構の要求受け付け処理を説明するフローチャートである。
【図４】図２の装置において入出力処理が完了した時における完了待ち合わせ機構の待ち合わせ命令除去処理を説明するフローチャートである。
【図５】完了待ち合わせ機構が完了通知を受け取った際のキュー管理機構によるキューの管理の様子を模式的に示した図である。
【符号の説明】
【００４２】
１  完了待ち合わせ機構
１１  入出力要求受付機構
１２  キュー管理機構
１３  ドライバ検索機構
【図１】
2005293066.tif 000003
【図２】
2005293066.tif 000004
【図３】
2005293066.tif 000005
【図４】
2005293066.tif 000006
【図５】
2005293066.tif 000007