(57)【要約】【課題】  マルチホスト間で仮想デバイスを共有できるシステムを実現する。【解決手段】  資源管理表３２に仮想デバイス４１の複合ブロック識別子に対してホスト１，２の識別子を入力要求順に登録し、ホスト１から複合ブロック要求があったとき、当該複合ブロック識別子に対してホスト１の識別子が登録されているか否かを調べ、登録されていない場合は新規に登録してホスト１に複合ブロック確保を通知し、登録されている場合は、当該複合ブロック識別子に対して登録されている各ホストが要求順に仮想デバイス４１から複合ブロックを読み込み、その際、１つのホストが読み込みを終了すると、次に登録されたホストに複合ブロック確保を通知し、これに基づいてホストは複合ブロックを読み込むことにより、排他制御を行うことができる。【選択図】  図１
2005267550.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置における仮想デバイス内の１つ以上のデータを複数のコンピュータが要求する仮想デバイスの共有システムであって、
各データの識別子に対して各コンピュータの識別子を前記要求順に登録し、コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取ったとき、次に登録されたコンピュータに前記データ確保を通知するデータ・コンピュータ管理手段を備えた排他制御装置と、
前記データ確保通知を受け取ったとき前記仮想デバイスから当該データの入力処理を開始し、入力処理が終了したら前記排他制御装置に前記入力処理の終了を通知するデータ入力処理手段をそれぞれ備えた複数のコンピュータとから構成される仮想デバイスの共有システム。
【請求項２】
前記コンピュータは、前記データを要求する１つ以上のアプリケーションプログラムを備えると共に、前記データ識別子に対してアプリケーション識別子を要求順に登録し、前記入力処理手段は、前記データ確保通知を受け取ったとき前記仮想デバイスから当該データの入力処理を前記アプリケーションプログラムの要求順に実行し、１つのデータの入力処理が終了したら前記排他制御装置に前記入力処理終了を通知するデータ・アプリケーション管理手段を備えたことを特徴とする請求項１記載の仮想デバイスの共有システム。
【請求項３】
前記コンピュータが要求するデータはレコードであり、前記仮想デバイス内のデータは、１つ以上のレコードからなる１つ以上のブロックを有する１つ以上の複合ブロックからなり、前記入力処理手段は、前記仮想デバイスから前記複合ブロック単位にデータを入力し、入力した複合ブロックから要求したレコードを取り出すことを特徴とする請求項１又は２記載の仮想デバイスの共有システム。
【請求項４】
前記入力処理手段は、前記入力したデータを所定の記録形式に変換することを特徴とする請求項１，２又は３記載の仮想デバイスの共有システム。
【請求項５】
前記入力処理手段は、前記入力した複合ブロックから前記ブロックを取り出し、このブロックを前記要求したレコードで更新し、更新されたブロックで前記入力した複合ブロックを更新し、更新された複合ブロックを前記仮想デバイスの記録形式に変換することを特徴とする請求項３記載の仮想デバイスの共有システム。
【請求項６】
前記変換された仮想デバイスの記録形式の複合ブロックを前記仮想デバイスに送信する送信手段を備えたことを特徴とする請求項５記載の仮想デバイスの共有システム。
【請求項７】
記憶装置における仮想デバイス内の１つ以上のデータを複数のコンピュータが要求する仮想デバイスの共有システムの排他制御方法であって、
各データの識別子に対して各コンピュータの識別子を前記要求順に登録するようになし、
コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、
登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、
登録されている場合は、当該データ識別子に対して登録されている各コンピュータが前記要求順に前記仮想デバイスから当該データの入力処理を実行するようになし、その際、１つのコンピュータの入力処理終了後、次に登録されたコンピュータに前記データ確保を通知し、
前記コンピュータは前記データ確保の通知を受け取ったとき前記入力処理を開始することを特徴とする仮想デバイスの共有システムの排他制御方法。
【請求項８】
前記コンピュータは、前記データを要求する１つ以上のアプリケーションプログラムを備えると共に、前記データ識別子に対してアプリケーション識別子を要求順に登録するようになし、前記データ確保の通知を受け取ったとき前記仮想デバイスから当該データの入力処理を前記アプリケーションプログラムの要求順に実行し、１つのデータの入力処理が終了したら前記データ確保を通知することを特徴とする請求項７記載の仮想デバイスの共有システムの排他制御方法。
【請求項９】
前記コンピュータが要求するデータはレコードであり、前記仮想デバイス内のデータは、１つ以上のレコードからなる１つ以上のブロックを有する１つ以上の複合ブロックからなり、前記入力処理手段は、前記仮想デバイスから前記複合ブロック単位にデータを入力し、入力した複合ブロックから要求したレコードを取り出すことを特徴とする請求項７又は８記載の仮想デバイスの共有システムの排他制御方法。
【請求項１０】
前記コンピュータは、前記入力したデータを所定の記録形式に変換することを特徴とする請求項７，８又は９記載の仮想デバイスの共有システムの排他制御方法。
【請求項１１】
前記コンピュータは、前記入力した複合ブロックから前記ブロックを取り出し、このブロックを前記要求したレコードで更新し、更新されたブロックで前記入力した複合ブロックを更新し、更新された複合ブロックを前記仮想デバイスの記録形式に変換することを特徴とする請求項９記載の仮想デバイスの共有システムの排他制御方法。
【請求項１２】
前記変換された仮想デバイスの記録形式の複合ブロックを前記仮想デバイスに送信することを特徴とする請求項１１記載の仮想デバイスの共有システムの排他制御方法。
【請求項１３】
記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有システムで用いられる排他制御装置であって、
各データの識別子に対して各コンピュータの識別子を前記要求順に登録し、コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取ったとき、次に登録されたコンピュータに前記データ確保を通知するデータ・コンピュータ管理手段を備えたことを特徴とする排他制御装置。
【請求項１４】
記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有システムで用いられるコンピュータであって、
外部から前記要求したデータの確保通知を受け取ったとき前記仮想デバイスから当該データの入力処理を開始し、入力処理終了を外部に通知するデータ入力処理手段を備えことを特徴とするコンピュータ。
【請求項１５】
記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有システムにおける排他制御装置に用いられるプログラムであって、
各データの識別子に対して各コンピュータの識別子を前記要求順に登録する登録処理と、
前記コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べる判定処理と、
登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知する登録通知処理と、
登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取る受信処理と、
前記入力処理終了の通知に応じて次に登録されたコンピュータに前記データ確保を通知する通知処理とをコンピュータに実行させるプログラム。
【請求項１６】
記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有方法における前記コンピュータに用いられるプログラムであって、
外部から前記要求したデータの確保通知を受け取る受信処理と、
前記確保通知に応じて前記仮想デバイスから当該データの入力処理を行う入力処理と、
前記入力処理が終了したとき外部に通知する通知処理とをコンピュータに実行させるプログラム。
【請求項１７】
請求項１５記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実デバイス上に設けられた仮想デバイスを、マルチホスト間で共有可能にする仮想デバイスの共有システム、その排他制御方法、このシステム、方法で用いられる排他制御装置、コンピュータ、これらに用いられるプログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
仮想デバイスとは、ディスクやメモリなどの記憶装置の実デバイス上の領域に、実デバイスと異なるデータ記録形式のデバイスを仮想的に実現したものを指す。この仮想デバイスは、実デバイスの空き領域の一部に設けられるため、新たなデバイスの設置を不要にすることができる。また、高速な実デバイス上に仮想デバイスを設けることにより、デバイスの入出力性能を向上させることができる。
【０００３】
アプリケーションプログラムは、実デバイスのデータ記録形式を意識しており、実デバイスの変更時には、アプリケーションプログラムの修正が必要になる。そこで、移行後の実デバイス上に移行前の実デバイスを仮想的に実現する、すなわち仮想デバイスを実現することで、アプリケーションプログラムの修正を不要にすることができる。例えば、テープ装置とディスク装置とではデータ記録形式が異なるため、テープ装置の入出力を行っていたアプリケーションプログラムは、ディスク装置については修正なしで使用することができない。そこで、ディスク装置上の一部の領域に仮想的なテープ装置を設けることで、テープ装置で使用していたアプリケーションプログラムが磁気ディスク装置に移行しても使用可能となる。
【０００４】
ホストコンピュータ内でデータ記録形式を変換し、実デバイス上に仮想デバイスを実現する方法が従来から存在する。この従来方法では、仮想デバイスのデータの入出力は複合ブロック単位に行われる。複合ブロックは、実デバイスへの入出力単位であるブロックを連続して複数個まとめたものであり、ブロックは、アプリケーションプログラムの入出力単位であるレコードを連続して複数個まとめたものである。このように、複合ブロックにまとめて入出力を行い、入出力回数を減らすことで、仮想デバイスの入出力処理時間を削減している。
【０００５】
従来の仮想デバイスの一例として、ホストコンピュータ内部でデータ記録形式を変換することにより、実デバイス上に仮想デバイスを実現したものがある。この方法では、仮想デバイス上のデータの入出力を複合ブロック単位で行い、データ記録形式の変換も複合ブロックごとに行っている（例えば、特許文献１参照）。
【特許文献１】特許第３４３３９７８号公報（第１８頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した従来方法では、入出力を行っている複合ブロックの管理情報をホストコンピュータ内のメモリ上にもつことで複合ブロックの排他制御を行っているため、他のホストコンピュータからは入出力を行っている複合ブロックの管理情報を参照できない。従って、この従来方法には、複数のホスト間で複合ブロックの排他制御ができず、仮想デバイスを複数ホスト間で共有できないという問題点がある。
【０００７】
また、前記特許文献１の方法では、ホストコンピュータ内部のメモリに入出力を行っている複合ブロックの管理情報をもち、複合ブロックの排他制御を行っているため、マルチホスト間で仮想デバイスを共有しようとした場合、仮想デバイス上の複合ブロックの排他制御を行うことができないという問題点がある。その理由は、各ホストコンピュータは、内部のメモリ上に入出力を行っている複合ブロックの管理情報をもつため、他のホストコンピュータが入出力している複合ブロックの管理情報を参照できないためである。
従って、本発明は上記の問題を解決し、マルチホスト間で仮想デバイスを共有できるシステムを実現することを課題とする。
【課題を解決するための手段】
【０００８】
本発明による仮想デバイスの共有システムは、記憶装置における仮想デバイス内の１つ以上のデータを複数のコンピュータが要求する仮想デバイスの共有システムであって、  各データの識別子に対して各コンピュータの識別子を前記要求順に登録し、コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取ったとき、次に登録されたコンピュータに前記データ確保を通知するデータ・コンピュータ管理手段を備えた排他制御装置と、前記データ確保通知を受け取ったとき前記仮想デバイスから当該データの入力処理を開始し、入力処理が終了したら前記排他制御装置に前記入力処理の終了を通知するデータ入力処理手段をそれぞれ備えた複数のコンピュータとから構成されるものである。
【０００９】
本発明による仮想デバイスの共有システムの排他制御方法は、記憶装置における仮想デバイス内の１つ以上のデータを複数のコンピュータが要求する仮想デバイスの共有システムの排他制御方法であって、各データの識別子に対して各コンピュータの識別子を前記要求順に登録するようになし、コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、登録されている場合は、当該データ識別子に対して登録されている各コンピュータが前記要求順に前記仮想デバイスから当該データの入力処理を実行するようになし、その際、１つのコンピュータの入力処理終了後、次に登録されたコンピュータに前記データ確保を通知し、前記コンピュータは前記データ確保の通知を受け取ったとき前記入力処理を開始することを特徴とするものである。
【００１０】
本発明による排他制御装置は、記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有システムで用いられる排他制御装置であって、各データの識別子に対して各コンピュータの識別子を前記要求順に登録し、コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知し、登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取ったとき、次に登録されたコンピュータに前記データ確保を通知するデータ・コンピュータ管理手段を備えたことを特徴とするものである。
【００１１】
本発明によるコンピュータは、記憶装置における仮想デバイスのデータを複数のコンピュータが要求する仮想デバイスの共有システムで用いられるコンピュータであって、外部から前記要求したデータの確保通知を受け取ったとき前記仮想デバイスから当該データの入力処理を開始し、入力処理終了を外部に通知するデータ入力処理手段を備えことを特徴とするものである。
【００１２】
本発明によるプログラムは、前記排他制御装置に用いられるプログラムであって、各データの識別子に対して各コンピュータの識別子を前記要求順に登録する登録処理と、前記コンピュータからデータの要求があったとき、当該データ識別子に対して当該コンピュータ識別子が登録されているか否かを調べる判定処理と、登録されていない場合は新規に登録して当該コンピュータにデータ確保を通知する登録通知処理と、登録されている場合は、当該データ識別子に対して登録されている各コンピュータの１つから入力処理終了の通知を受け取る受信処理と、前記入力処理終了の通知に応じて次に登録されたコンピュータに前記データ確保を通知する通知処理とをコンピュータに実行させるものである。
【００１３】
本発明によるプログラムは、前記コンピュータに用いられるプログラムであって、外部から前記要求したデータの確保通知を受け取る受信処理と、前記確保通知に応じて前記仮想デバイスから当該データの入力処理を行う入力処理と、前記入力処理が終了したとき外部に通知する通知処理とをコンピュータに実行させるものである。
【００１４】
本発明による記録媒体は、前記排他制御装置に用いられるプログラムを記録したものである。
本発明による記録媒体は、前記コンピュータに用いられるプログラムを記録したものである。
【発明の効果】
【００１５】
本発明によれば、仮想デバイス上の複合ブロック等のデータを複数のコンピュータ間で共有できると共に、各コンピュータが仮想デバイスを排他的に利用できるシステムを実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面と共に説明する。
図１は本発明の実施の形態による仮想デバイスの共有システムを示すブロック図である。
本実施の形態による仮想デバイスの共有システムは、図１のように、ホストコンピュータ１とホストコンピュータ２のそれぞれに仮想デバイス制御機構１３，２３を持たせると共に、これらのホスコンピュータ１，２間に排他制御機構３を配置することにより、実デバイス４上の仮想デバイス４１を複数のホストコンピュータ間で共有可能としたものである。排他制御機構３上に、入出力対象の複合ブロックの管理情報を格納する資源管理表３２をもたせ、ホストコンピュータ１，２上の仮想デバイス制御機構１３，２３から排他制御機構３に対して、入出力対象の複合ブロックの確保や解放の要求を行うことで、入出力対象の複合ブロックの排他制御が実現される。
【００１７】
図１において、本システムは、ホストコンピュータ１と、ホストコンピュータ２と、排他制御機構３と、記憶装置としての実デバイス４とから構成される。
実デバイス４には仮想デバイス４１を設けている。仮想デバイス４１は、実デバイス４のデータ記録形式とは異なるデータ記録形式のデータ格納領域である。
ホストコンピュータ１には、仮想デバイス４１に対する入出力要求を行う複数のアプリケーションプログラム１１と、ファイルシステム１２と、仮想デバイス制御機構１３とがある。また、同様に、ホストコンピュータ２には、アプリケーションプログラム２１と、ファイルシステム２２と、仮想デバイス制御機構２３とがある。
排他制御機構３は、資源管理部３１と資源管理表３２とをもつ。
【００１８】
資源管理表３２は、図２のように、入出力を行っている複合ブロックの管理情報となる資源管理表エントリ３３，３４をもつ。資源管理表エントリ３３，３４は、仮想デバイス４１上の複合ブロックを一意に特定するデータ識別子としての複合ブロック識別子３５，３６と、各識別子３５，３６と関連するホストコンピュータ列３３１，３４１とからなる。ホストコンピュータ列３３１，３４１には、複合ブロックの確保を待ち合わせているホストコンピュータ識別子３３２，３３３、３４２，３４３が、複合ブロックの確保要求を行った順に登録されている。
【００１９】
資源管理表エントリ３３，３４は、当該複合ブロックに対する最初の確保要求時に作成され、最後の解放要求時に削除される。ホストコンピュータ識別子３３２，３３３、３４２，３４３は、当該複合ブロックの確保要求時に既に確保済だった場合にホストコンピュータ列３３１，３４１の末尾に登録され、当該複合ブロックの解放要求時にホストコンピュータ列３３１，３４１の先頭から削除される。
資源管理部３１は、資源管理表３２を利用して、同一の複合ブロックに対する複数の入出力の排他制御を行う。
【００２０】
仮想デバイス制御機構１３は、記録形式変換部１３１と、仮想デバイス入出力管理部１３２と、仮想デバイス入出力管理表１３３と、仮想デバイス入出力部１３４とをもつ。同様に、仮想デバイス制御機構２３は、記録形式変換部２３１と、仮想デバイス入出力管理部２３２と、仮想デバイス入出力管理表２３３と、仮想デバイス入出力部２３４とをもつ。
記録形式変換部１３１は、仮想デバイス４１上の複合ブロックのデータ記録形式と実デバイス４のデータ記録形式との間の変換を行う。記録形式変換部２３１についても同様である。仮想デバイス入出力部１３４は、仮想デバイス４１上の複合トラックに対する入出力を行う。仮想デバイス入出力部２３４についても同様である。
【００２１】
仮想デバイス入出力管理表１３３は、図３のように、複合ブロックの確保を待ち合わせている入出力要求の管理情報として仮想デバイス入出力管理表エントリ１３５，１３６をもつ。仮想デバイス入出力管理表エントリ１３５，１３６は、複合ブロック識別子３５，３６と各識別子３５，３６と関連するアプリケーションプログラム列１３７，１３８とからなる。アプリケーションプログラム列１３７，１３８には、入出力要求を発行したアプリケーションプログラムの識別子１３９，１４０、１４１，１４２が要求を行った順に登録されている。
【００２２】
仮想デバイス入出力管理表エントリ１３５，１３６は、当該複合ブロックに対する最初の入出力要求時に作成され、最後の入出力完了時に削除される。アプリケーションプログラム識別子１３９，１４０、１４１，１４２は、当該複合ブロックの入出力要求時に当該複合ブロックが既に確保済だった場合にアプリケーションプログラム列１３７，１３８の末尾に登録され、当該複合ブロックの入出力完了時にアプリケーションプログラム列の先頭から削除される。仮想デバイス入出力管理表２３３についても仮想デバイス入出力管理表１３３と同様である。
【００２３】
仮想デバイス入出力管理部１３２は、ファイルシステム１２からブロックの入出力要求を受け取ると、当該ブロックを含む複合ブロックの確保要求を資源管理部３１に発行し、入出力が終了すると、複合ブロックの解放要求を資源管理部３１に発行する。仮想デバイス入出力管理部２３２についても仮想デバイス入出力管理部１３２と同様である。
【００２４】
次に、図１及び図４、図５のフローチャートを参照して、本実施の形態の動作について説明する。
ホストコンピュータ１上のアプリケーションプログラム１１が仮想デバイス４１上のレコードを入力する場合について説明する。まず、ファイルシステム１２にレコードの入力要求を発行する（図４のステップＡ１）。ファイルシステム１２は、レコードの入力要求を受け取ると、そのレコードを含むブロックの入力要求を仮想デバイス入出力管理部１３２に発行する（ステップＡ２）。仮想デバイス入出力管理部１３２は、ブロックの入力要求を受け取ると、資源管理部３１にそのブロックを含む複合ブロックの確保要求を発行する（ステップＡ３）。資源管理部３１は、複合ブロックの確保要求を受け取ると、資源管理表３２を参照してその複合ブロックが確保されているかを確認する（ステップＡ４）。
資源管理表３２の中に、確保要求のあった複合ブロックの識別子をもつ資源管理表エントリ３３，３４がない場合は、複合ブロックは確保されていないので、新たに資源管理表エントリを作成することで複合ブロックを確保し、仮想デバイス入出力管理部１３２に複合ブロックの確保完了を通知する（ステップＡ６）。
【００２５】
資源管理表３２の中に、確保要求のあった複合ブロックの識別子をもつ資源管理表エントリ３３，３４がある場合は、複合ブロックは既に確保されているので、ホストコンピュータ列の末尾にホストコンピュータ１の識別子を、複合ブロック識別子と関連させて登録し、仮想デバイス入出力管理部１３２に待ち合わせ指示を通知する。仮想デバイス入出力管理部１３２は、仮想デバイス入出力管理表１３３の中から、待ち合わせを指示された複合ブロック識別子をもつ仮想デバイス入出力管理表エントリ１３５，１３６を検索し、アプリケーションプログラム１１の識別子をアプリケーションプログラム列の末尾に登録し、複合ブロックの確保完了通知を待つ（ステップＡ５）。そして、複合ブロック識別子に要求順に登録されて入力処理を待ち合わせているホストコンピュータ識別子について順次に入力処理が実行されていくが、その際、１つの入力処理が終了すると、資源管理部３１は次のホストコンピュータ識別子のホストコンピュータに複合ブロックの確保完了を通知する（ステップＡ６）。
【００２６】
仮想デバイス入出力管理部１３２は、複合ブロックの確保完了通知を受け取ると、アプリケーションプログラム列の先頭のアプリケーションプログラム識別子を削除する。仮想デバイス入出力部１３４によって仮想デバイス４１から複合ブロックを読み込み、記録形式変換部１３１によって複合ブロックの記録形式をファイルシステム１２が指定した記録形式に変換する（ステップＡ７）。仮想デバイス入出力管理部１３２は、複合ブロックの中からファイルシステム１２が指定したブロックを取り出し、ファイルシステム１２に渡す（ステップＡ８）。ファイルシステム１２は、ブロックの中からアプリケーションプログラム１１が指定した（入力要求した）レコードを取り出し、アプリケーションプログラム１１に渡す（ステップＡ９）。
【００２７】
仮想デバイス入出力管理部１３２は、複合ブロックの入力が終了したので、資源管理部３１に複合ブロックの解放要求を発行する（ステップＡ１０）。資源管理部３１は、複合ブロックの解放要求を受け取ると、ホストコンピュータ列に識別子があるか、すなわち、複合ブロックの確保完了通知の待ち合わせがあるかをチェックし（ステップＡ１１）、ある場合はホストコンピュータ列の先頭にあるホストコンピュータ識別子を削除して、該当するホストコンピュータの仮想デバイス入出力管理部１３２に複合ブロックの確保完了を通知する（ステップＡ１２）。
【００２８】
次に、ホストコンピュータ１のアプリケーションプログラム１１が仮想デバイス４１上のレコードを出力する場合について説明する。まず、ファイルシステム１２にレコードの出力要求を発行する（図５のステップＢ１）。ファイルシステム１２は、レコードの出力要求を受け取ると、レコードを含むブロックの事前入力要求を仮想デバイス入出力管理部１３２に発行する（ステップＢ２）。仮想デバイス入出力管理部１３２は、ブロックの事前入力要求を受け取ると、資源管理部３１にブロックを含む複合ブロックの確保要求を発行する（ステップＢ３）。資源管理部３１は、複合ブロックの確保要求を受け取ると、資源管理表３２を参照して複合ブロックが確保されているかを確認する（ステップＢ４）。
資源管理表３２の中に、確保要求のあった複合ブロック識別子をもつ資源管理表エントリがない場合は、複合ブロックは確保されていないので、新たに資源管理表エントリを作成することで複合ブロックを確保し、仮想デバイス入出力管理部１３２に複合ブロックの確保完了を通知する（ステップＢ６）。
【００２９】
資源管理表３２の中に、確保要求のあった複合ブロックの識別子をもつ資源管理表エントリがある場合は、複合ブロックは確保されているので、ホストコンピュータ列の末尾にホストコンピュータ１の識別子を登録し、仮想デバイス入出力管理部１３２に待ち合わせ指示を通知する。仮想デバイス入出力管理部１３２は、仮想デバイス入出力管理表１３３の中から、待ち合わせを指示された複合ブロック識別子をもつ仮想デバイス入出力管理表エントリを検出し、出力要求を発行したアプリケーションプログラム識別子をアプリケーションプログラム列の末尾に追加し、複合ブロックの確保完了通知を待つ（ステップＢ５）。仮想デバイス入出力管理部１３２は、資源管理部３１から複合ブロックの確保完了通知を受け取ると（ステップＢ６）、アプリケーションプログラム列の先頭の識別子を削除する。
【００３０】
仮想デバイス入出力管理部１３２は、資源管理部３１から複合ブロック確保完了通知を受け取ると、仮想デバイス入出力部１３４によって仮想デバイス４１から複合ブロックを読み込み、記録形式変換部１３１によって複合ブロックの記録形式をファイルシステム１２が指定した記録形式に変換する（ステップＢ７）。仮想デバイス入出力管理部１３２は、複合ブロックの中からファイルシステム１２が指定したブロックを取り出し、ファイルシステム１２に渡す（ステップＢ８）。ファイルシステム１２は、アプリケーションプログラム１１から受け渡されたレコードでブロックを更新し、仮想デバイス入出力管理部１３２に出力要求を発行する（ステップＢ９）。仮想デバイス入出力管理部１３２は、受け渡されたブロックで複合ブロックを更新し、記録形式変換部１３１によって複合ブロックを仮想デバイス４１の記録形式に変換する（ステップＢ１０）。
【００３１】
仮想デバイス入出力管理部１３２は、仮想デバイス入出力部１３４によって、複合ブロックを仮想デバイス４１に書き込み、資源管理部３１に複合ブロックの解放要求を発行する（ステップＢ１１）。資源管理部３１は、複合ブロックの解放要求を受け取ると、ホストコンピュータ列に識別子があるか、すなわち、複合ブロックの確保完了通知の待ち合わせがあるかをチェックし（ステップＢ１２）、ホストコンピュータ列の先頭にあるホストコンピュータ識別子を削除して、該当するホストコンピュータの仮想デバイス入出力管理１３２に複合ブロックの確保完了を通知する（ステップＢ１３）。
【００３２】
以上の図４、図５のフローチャートの動作を要約すると、資源管理表３２に複合ブロック識別子に対してホストコンピュータ識別子を入力要求順に登録するようになし、ホストコンピュータから複合ブロックの要求があったとき、当該複合ブロック識別子に対して当該ホストコンピュータ識別子が登録されているか否かを調べ、登録されていない場合は新規に登録して当該ホストコンピュータに複合ブロック確保を通知し、登録されている場合は、当該複合ブロック識別子に対して登録されている各ホストコンピュータが要求順に前記仮想デバイス４１から当該複合ブロックの入力処理を実行するようになし、その際、１つのコンピュータが入力処理を終了すると、次に登録されたホストコンピュータに複合ブロック確保を通知し、ホストコンピュータは複合ブロック確保の通知を受け取ったとき、入力処理を開始することにより、仮想デバイスの共有システムの排他制御を行うことができる。
【００３３】
本実施の形態によれば、マルチホスト間に排他制御機構を配置し、入出力を行っている複合ブロックの管理情報を、排他制御機構の資源管理表にもつことにより、仮想デバイス上の複合ブロックの排他制御が可能となり、マルチホスト間で仮想デバイスを共有できるシステムを実現することができる。
また、複合ブロック識別子に対してホストコンピュータ識別子及びアプリケーションプログラム識別子を要求順に登録することにより、各ホストコンピュータが排他的に仮想デバイスを利用することができる。
【００３４】
尚、図４、図５のフローチャートに示す動作による処理を、排他制御装置３及びホストコンピュータ１，２が実行するためのプロラムは本発明によるプロラムを構成する。また、このプロラムを記録するコンピュータ読み取り可能な記録媒体は、本発明による記録媒体を構成する。この記録媒体としては、半導体記憶装置や光学的又は磁気的な記憶装置等を用いることができる。このようなプロラム及び記録媒体を、前述した実施の形態とは異なる構成のシステム等で用い、そこのCPUで上記プロラムを実行させることにより、本発明と実質的に同じ効果を得ることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態による仮想デバイスの共有システムを示すブロック図である。
【図２】資源管理表の構成を示すブロック図である。
【図３】仮想デバイス入出力管理表の構成を示すブロック図である。
【図４】入力処理を示すフローチャートである。
【図５】出力処理を示すフローチャートである。
【符号の説明】
【００３６】
１，２    ホストコンピュータ
３    排他制御機構
３２    資源管理表
４    実デバイス
４１    仮想デバイス
１１，２１    アプリケーションプログラム
１３    仮想デバイス制御機構
１３３，２３３    仮想デバイス入出力管理表
３５，３６    複合ブロック識別子
３３２，３３３，３４２，３４３    ホストコンピュータ識別子
１３９，１４０，１４１，１４２    アプリケーションプログラム識別子
【図１】
2005267550.tif 000003
【図２】
2005267550.tif 000004
【図３】
2005267550.tif 000005
【図４】
2005267550.tif 000006
【図５】
2005267550.tif 000007