(57)【要約】【課題】コンピュータシステム全体で考えた場合における周辺処理装置に対する負荷の平準化を実現する。【解決手段】各周辺処理装置２０は、周辺装置３０に対する入出力処理の実行の開始／終了に起因する自己の負荷状態の変化を、自己が接続している全てのホストコンピュータ１０に通知する。各ホストコンピュータ１０は、自己が接続している全ての周辺処理装置２０の各々の負荷情報を管理し、当該各周辺処理装置２０からの「負荷状態の変化を示す通知」に基づいて当該負荷情報を更新し、当該負荷情報に基づいて使用周辺処理装置を決定することにより、コンピュータシステム全体で考えた場合において特定の周辺処理装置２０に負荷が集中しないように入出力処理の負荷分散制御を行う。【選択図】　　　　図１
2004013555.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、
周辺装置に対する入出力処理の実行の開始／終了に起因する自己の負荷状態の変化を自己が接続している全てのホストコンピュータに通知する各周辺処理装置と、
自己が接続している全ての周辺処理装置の各々の負荷情報を管理し、当該各周辺処理装置からの「負荷状態の変化を示す通知」に基づいて当該負荷情報を更新し、当該負荷情報に基づいて使用周辺処理装置を決定することにより、当該コンピュータシステム全体で考えた場合において特定の周辺処理装置に負荷が集中しないように入出力処理の負荷分散制御を行う各ホストコンピュータと
を有することを特徴とする周辺処理装置負荷分散方式。
【請求項２】
自己が存在するホストコンピュータに接続されている全ての周辺処理装置の負荷状態を管理するための情報を有している周辺処理装置負荷状態管理表と、
自己が存在するホストコンピュータが周辺装置に対して入出力要求を行う場合に、前記周辺処理装置負荷状態管理表の内容を基に、当該ホストコンピュータに接続されている全ての周辺処理装置の中で最も負荷の軽い周辺処理装置を使用周辺処理装置として決定し、入出力要求であるＩ／Ｏコマンドから予測される負荷の変化を前記周辺処理装置負荷状態管理表に反映させた上で、当該使用周辺処理装置を使用して周辺装置へのＩ／Ｏコマンドの発行を行うＩ／Ｏ発行機能と、
周辺装置に対する入出力処理の実行結果の通知を周辺処理装置から受信し、その実行結果を入出力要求者に報告するとともに、その実行結果を反映させて前記周辺処理装置負荷状態管理表の内容を更新するＩ／Ｏ終了処理機能と、
周辺処理装置からの「負荷状態更新イベントを通知内容とするアテンション通知」を受信した場合に、そのアテンション通知内容を反映させて前記周辺処理装置負荷状態管理表の内容を更新するアテンション処理機能と、
前記周辺処理装置負荷状態管理表の内容を参照・更新するために、前記Ｉ／Ｏ発行機能，前記Ｉ／Ｏ終了処理機能，および前記アテンション処理機能によって使用される周辺処理装置負荷情報参照更新機能と
を含んで構成されているホストコンピュータを有することを特徴とする請求項１記載の周辺処理装置負荷分散方式。
【請求項３】
自己が存在する周辺処理装置が現在実行中の入出力処理による負荷状態を管理する負荷情報管理表と、
ホストコンピュータからの入出力要求であるＩ／Ｏコマンドを解析するＩ／Ｏコマンド解析機能と、
前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、周辺装置に対する当該Ｉ／Ｏコマンドの実行を行うＩ／Ｏコマンド実行機能と、
自己が存在する周辺処理装置による周辺装置に対する入出力処理が完了すると、その入出力結果を示すイベント通知であるＩ／Ｏ終了通知を当該入出力要求の要求元のホストコンピュータに発行するＩ／Ｏ実行結果通知機能と、
前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、当該Ｉ／Ｏコマンドに対する入出力処理を実行することで増加する負荷を算出するＩ／Ｏ負荷算出機能と、
前記Ｉ／Ｏコマンド実行機能によるＩ／Ｏコマンドの実行時に前記Ｉ／Ｏ負荷算出機能によって算出された負荷の増加を反映させて前記負荷情報管理表を更新し、前記Ｉ／Ｏ実行結果通知機能によるＩ／Ｏ終了通知の発行時に周辺装置に対する入出力処理の完了による当該負荷の減少を反映させて前記負荷情報管理表を更新する負荷情報更新機能と、
前記負荷情報更新機能による前記負荷情報管理表の更新を契機として、負荷状態更新イベントを通知内容とするアテンション通知を、自己が存在する周辺処理装置が接続されている全てのホストコンピュータのうちの今回の入出力要求の要求元のホストコンピュータ以外の全てのホストコンピュータに報告するアテンション通知機能と
を含んで構成されている周辺処理装置を有することを特徴とする請求項１記載の周辺処理装置負荷分散方式。
【請求項４】
請求項２に記載した構成を持つホストコンピュータと、請求項３に記載した構成を持つ周辺処理装置とを有することを特徴とする請求項１記載の周辺処理装置負荷分散方式。
【請求項５】
ホストコンピュータ内の周辺処理装置負荷状態管理表が「当該ホストコンピュータに接続されている各周辺処理装置に対して、当該周辺処理装置の識別情報を示す周辺処理装置ＩＤと、当該周辺処理装置に接続されている周辺装置を示す接続周辺装置情報と、現時点での当該周辺処理装置の負荷状態を示す負荷情報とを有する各エントリが設けられている管理表」であることを特徴とする請求項２または請求項４記載の周辺処理装置負荷分散方式。
【請求項６】
複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、
各周辺処理装置を、周辺装置に対する入出力処理の実行の開始／終了に起因する自己の負荷状態の変化を自己が接続している全てのホストコンピュータに通知するように機能させるための周辺処理装置用プログラムと、
各ホストコンピュータを、自己が接続している全ての周辺処理装置の各々の負荷情報を管理し、当該各周辺処理装置からの「負荷状態の変化を示す通知」に基づいて当該負荷情報を更新し、当該負荷情報に基づいて使用周辺処理装置を決定することにより、当該コンピュータシステム全体で考えた場合において特定の周辺処理装置に負荷が集中しないように入出力処理の負荷分散制御を行うように機能させるためのホストコンピュータ用プログラムと
を有することを特徴とする周辺処理装置負荷分散方式。
【請求項７】
複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、
各周辺処理装置を、自己が存在する周辺処理装置が現在実行中の入出力処理による負荷状態を管理する負荷情報管理表，ホストコンピュータからの入出力要求であるＩ／Ｏコマンドを解析するＩ／Ｏコマンド解析機能，前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、周辺装置に対する当該Ｉ／Ｏコマンドの実行を行うＩ／Ｏコマンド実行機能，自己が存在する周辺処理装置による周辺装置に対する入出力処理が完了すると、その入出力結果を示すイベント通知であるＩ／Ｏ終了通知を当該入出力要求の要求元のホストコンピュータに発行するＩ／Ｏ実行結果通知機能，前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、当該Ｉ／Ｏコマンドに対する入出力処理を実行することで増加する負荷を算出するＩ／Ｏ負荷算出機能，前記Ｉ／Ｏコマンド実行機能によるＩ／Ｏコマンドの実行時に前記Ｉ／Ｏ負荷算出機能によって算出された負荷の増加を反映させて前記負荷情報管理表を更新し、前記Ｉ／Ｏ実行結果通知機能によるＩ／Ｏ終了通知の発行時に周辺装置に対する入出力処理の完了による当該負荷の減少を反映させて前記負荷情報管理表を更新する負荷情報更新機能，および前記負荷情報更新機能による前記負荷情報管理表の更新を契機として、負荷状態更新イベントを通知内容とするアテンション通知を、自己が存在する周辺処理装置が接続されている全てのホストコンピュータのうちの今回の入出力要求の要求元のホストコンピュータ以外の全てのホストコンピュータに報告するアテンション通知機能として動作させるための周辺処理装置用プログラムと、
各ホストコンピュータを、自己が存在するホストコンピュータに接続されている全ての周辺処理装置の負荷状態を管理するための情報を有している周辺処理装置負荷状態管理表，自己が存在するホストコンピュータが周辺装置に対して入出力要求を行う場合に、前記周辺処理装置負荷状態管理表の内容を基に、当該ホストコンピュータに接続されている全ての周辺処理装置の中で最も負荷の軽い周辺処理装置を使用周辺処理装置として決定し、入出力要求であるＩ／Ｏコマンドから予測される負荷の変化を前記周辺処理装置負荷状態管理表に反映させた上で、当該使用周辺処理装置を使用して周辺装置へのＩ／Ｏコマンドの発行を行うＩ／Ｏ発行機能，周辺装置に対する入出力処理の実行結果の通知を周辺処理装置から受信し、その実行結果を入出力要求者に報告するとともに、その実行結果を反映させて前記周辺処理装置負荷状態管理表の内容を更新するＩ／Ｏ終了処理機能，周辺処理装置からの「負荷状態更新イベントを通知内容とするアテンション通知」を受信した場合に、そのアテンション通知内容を反映させて前記周辺処理装置負荷状態管理表の内容を更新するアテンション処理機能，ならびに前記周辺処理装置負荷状態管理表の内容を参照・更新するために、前記Ｉ／Ｏ発行機能，前記Ｉ／Ｏ終了処理機能，および前記アテンション処理機能によって使用される周辺処理装置負荷情報参照更新機能として動作させるためのホストコンピュータ用プログラムと
を有することを特徴とする周辺処理装置負荷分散方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、特定の周辺処理装置に負荷が集中しないように負荷分散制御を行う周辺処理装置負荷分散方式に関する。
【０００２】
【従来の技術】
「コンピュータシステムにおける周辺処理装置の負荷分散処理」に関する従来の技術では、例えば特開２０００−１９４６５０号公報に記載されているように、各周辺処理装置を使用して周辺装置に発行されているＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）数やＩ／Ｏコマンドの内容の解析結果で予想される処理時間を負荷とみなし、このような負荷を各ホストコンピュータ側で個別に管理することにより、最も負荷の軽い周辺処理装置が当該各ホストコンピュータによって選択されることで、負荷の平準化が行われている。
【０００３】
【発明が解決しようとする課題】
上述した従来の技術では、周辺処理装置が複数のホストコンピュータに接続されている構成においては、個々のホストコンピュータについては各周辺処理装置に負荷を分散させるように動作させることができても、当該コンピュータシステム全体で考えた場合には特定の周辺処理装置に負荷が集中してしまうおそれがあるという問題点があった。
【０００４】
このような問題点が存在する理由は、各ホストコンピュータにおいて、自己（当該各ホストコンピュータ）から各周辺処理装置に発行されたＩ／Ｏコマンド（入出力要求）についてしか負荷を計上することができず、他のホストコンピュータから各周辺処理装置にどのような負荷がかけられているかを認識することができなかったためである。
【０００５】
本発明の目的は、上述の点に鑑み、周辺処理装置が複数のホストコンピュータに接続されているコンピュータシステムにおいても、当該コンピュータシステム全体で考えた場合に、特定の周辺処理装置に負荷が集中しないように負荷分散制御を行うことができる周辺処理装置負荷分散方式を提供することにある。
【０００６】
なお、本発明の周辺処理装置負荷分散方式に対する従来技術に関する特許公報としては、上記の公報の他に、周辺処理装置（「入出力制御装置」とも表現される）に関する負荷の分散を考察している点で本発明と類似している「特開平０７−３３４４４９号公報」および「特開平０８−２３５１２７号公報」が存在する。
【０００７】
上記の特開平０７−３３４４４９号公報に記載された技術（「入出力負荷分散方式」）は、周辺装置に対する入出力制御装置を複数接続できるコンピュータシステムにおいて、周辺装置に対する入出力処理を行う場合に、複数の入出力経路から「入出力要求を行う入出力経路」を選択する際に負荷の小さい入出力経路を動的に選択・変更することによって、周辺装置が接続された入出力制御装置に対する負荷が集中しても、入出力経路の変更によって負荷分散を実現し、コンピュータシステム全体のスループットの低下の回避を図る技術である。
【０００８】
また、上記の特開平０８−２３５１２７号公報に記載された技術（「自動負荷分散方法および装置」）は、複数のコンピュータが互いにネットワークを通じて通信可能なように接続された環境で、ネットワークで繋がれた各コンピュータの負荷情報や資源利用状況等を互いに交換することによって各コンピュータの負荷状態を相互に把握できるようにし、自コンピュータの負荷が高い場合には各アプリケーション・プログラムで行われる処理を負荷状態の低いマシンに依頼し実行することによって、負荷の分散を実現する技術である。
【０００９】
しかしながら、これらの技術は、本発明の特徴である「各周辺処理装置の負荷状態をホストコンピュータ内の周辺処理装置負荷状態管理表等によって管理し、自己の負荷状態の変化（更新状況）を示す通知を周辺処理装置がホストコンピュータに行うこと等によって、コンピュータシステム全体における適切な負荷分散を実現すること」については何ら考察しておらず、本発明とは本質的に相違するものである。
【００１０】
【課題を解決するための手段】
本発明の周辺処理装置負荷分散方式は、複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、それぞれ下記のａおよびｂに示すような機能群を備えるホストコンピュータおよび周辺処理装置を有する。
【００１１】
ａ．各ホストコンピュータは、自己が存在するホストコンピュータに接続されている全ての周辺処理装置の負荷状態を管理するための情報を有している周辺処理装置負荷状態管理表と、自己が存在するホストコンピュータが周辺装置に対して入出力要求を行う場合に、前記周辺処理装置負荷状態管理表の内容を基に、当該ホストコンピュータに接続されている全ての周辺処理装置の中で最も負荷の軽い周辺処理装置を使用周辺処理装置（今回の入出力処理で使用する周辺処理装置）として決定（選択）し、入出力要求であるＩ／Ｏコマンドから予測される負荷の変化を前記周辺処理装置負荷状態管理表に反映させた上で、当該使用周辺処理装置を使用して周辺装置へのＩ／Ｏコマンドの発行（入出力要求）を行うＩ／Ｏ発行機能と、周辺装置に対する入出力処理（入出力要求に対する処理）の実行結果（Ｉ／Ｏ実行結果）の通知を周辺処理装置から受信し、その実行結果を入出力要求者に報告するとともに、その実行結果を反映させて前記周辺処理装置負荷状態管理表の内容を更新するＩ／Ｏ終了処理機能と、周辺処理装置からの「負荷状態更新イベントを通知内容とするアテンション通知」を受信した場合に、そのアテンション通知内容を反映させて前記周辺処理装置負荷状態管理表の内容を更新するアテンション処理機能と、前記周辺処理装置負荷状態管理表の内容（各周辺処理装置に対する負荷情報）を参照・更新するために、前記Ｉ／Ｏ発行機能，前記Ｉ／Ｏ終了処理機能，および前記アテンション処理機能によって使用される周辺処理装置負荷情報参照更新機能とを備える。
【００１２】
ｂ．各周辺処理装置は、自己が存在する周辺処理装置が現在実行中の入出力処理による負荷状態を管理する負荷情報管理表と、ホストコンピュータからの入出力要求であるＩ／Ｏコマンド（ホストコンピュータから発行されたＩ／Ｏコマンド）を解析するＩ／Ｏコマンド解析機能と、前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、周辺装置に対する当該Ｉ／Ｏコマンドの実行を行うＩ／Ｏコマンド実行機能と、自己が存在する周辺処理装置による周辺装置に対する入出力処理が完了すると、その入出力結果を示すイベント通知であるＩ／Ｏ終了通知を当該入出力要求の要求元のホストコンピュータに発行するＩ／Ｏ実行結果通知機能と、前記Ｉ／Ｏコマンド解析機能によるＩ／Ｏコマンドの解析結果を基に、当該Ｉ／Ｏコマンド（入出力要求）に対する入出力処理を実行することで増加する負荷を算出するＩ／Ｏ負荷算出機能と、前記Ｉ／Ｏコマンド実行機能によるＩ／Ｏコマンドの実行時に前記Ｉ／Ｏ負荷算出機能によって算出された負荷の増加を反映させて前記負荷情報管理表を更新し、前記Ｉ／Ｏ実行結果通知機能によるＩ／Ｏ終了通知の発行時に周辺装置に対する入出力処理の完了による当該負荷の減少を反映させて前記負荷情報管理表を更新する負荷情報更新機能と、前記負荷情報更新機能による前記負荷情報管理表の更新を契機として、負荷状態更新イベントを通知内容とするアテンション通知を、自己が存在する周辺処理装置が接続されている全てのホストコンピュータのうちの今回の入出力要求の要求元のホストコンピュータ以外の全てのホストコンピュータに報告するアテンション通知機能とを備える。
【００１３】
なお、本発明の周辺処理装置負荷分散方式は、より一般的には、複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、周辺装置に対する入出力処理の実行の開始／終了に起因する自己の負荷状態の変化を自己が接続している全てのホストコンピュータに通知する各周辺処理装置と、自己が接続している全ての周辺処理装置の各々の負荷情報を管理し、当該各周辺処理装置からの「負荷状態の変化（更新状況）を示す通知」に基づいて当該負荷情報を更新し、当該負荷情報に基づいて使用周辺処理装置を決定することにより、当該コンピュータシステム全体で考えた場合において特定の周辺処理装置に負荷が集中しないように入出力処理の負荷分散制御を行う各ホストコンピュータとを有すると表現することができる。
【００１４】
また、本発明は、複数のホストコンピュータおよび複数の周辺処理装置が存在し周辺処理装置が複数のホストコンピュータに接続されうるコンピュータシステムにおいて、各周辺処理装置を、周辺装置に対する入出力処理の実行の開始／終了に起因する自己の負荷状態の変化を自己が接続している全てのホストコンピュータに通知するように機能させるための周辺処理装置用プログラムと、各ホストコンピュータを、自己が接続している全ての周辺処理装置の各々の負荷情報を管理し、当該各周辺処理装置からの「負荷状態の変化を示す通知」に基づいて当該負荷情報を更新し、当該負荷情報に基づいて使用周辺処理装置を決定することにより、当該コンピュータシステム全体で考えた場合において特定の周辺処理装置に負荷が集中しないように入出力処理の負荷分散制御を行うように機能させるためのホストコンピュータ用プログラムとを有する周辺処理装置負荷分散方式として実現することも可能である。
【００１５】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００１６】
（１）　第１の実施の形態
【００１７】
図１は、本発明の第１の実施の形態に係る周辺処理装置負荷分散方式の構成を示すブロック図である。
【００１８】
図１を参照すると、本実施の形態に係る周辺処理装置負荷分散方式は、複数のホストコンピュータ１０と、複数の周辺処理装置２０と、周辺装置３０とを含んで構成されるコンピュータシステムに適用される。なお、図１におけるホストコンピュータ１０，周辺処理装置２０，および周辺装置３０の数はあくまでも例示である。また、図１中の２つのホストコンピュータ１０について、両者を区別する必要がある場合には、一方を「１０−１」で示し、他方を「１０−２」で示す（周辺処理装置２０についても、同様に、必要な際には、「２０−１」と「２０−２」とで区別する）。
【００１９】
ホストコンピュータ１０は、周辺処理装置負荷状態管理表１１と、周辺処理装置負荷情報参照更新機能１２と、Ｉ／Ｏ発行機能１３と、Ｉ／Ｏ終了処理機能１４と、アテンション処理機能１５とを含んで構成されている。
【００２０】
周辺処理装置負荷状態管理表１１は、自己が存在するホストコンピュータ１０に接続されている全ての周辺処理装置２０の負荷状態を管理するための情報を有している。
【００２１】
周辺処理装置負荷情報参照更新機能１２は、周辺処理装置負荷状態管理表１１の内容（各周辺処理装置２０に対する負荷情報）を参照・更新するために、Ｉ／Ｏ発行機能１３，Ｉ／Ｏ終了処理機能１４，およびアテンション処理機能１５によって使用される。
【００２２】
Ｉ／Ｏ発行機能１３は、自己が存在するホストコンピュータ１０が周辺装置３０に対して入出力要求を行う場合に、周辺処理装置負荷状態管理表１１の内容を基に、当該ホストコンピュータ１０に接続されている全ての周辺処理装置２０の中で最も負荷の軽い周辺処理装置２０を使用周辺処理装置（今回の入出力処理で使用する周辺処理装置２０）として決定（選択）し、入出力要求であるＩ／Ｏコマンドから予測される負荷の変化を周辺処理装置負荷状態管理表１１に反映させた上で、当該使用周辺処理装置を使用して周辺装置３０に入出力要求（Ｉ／Ｏコマンドの発行）を行う。
【００２３】
Ｉ／Ｏ終了処理機能１４は、周辺装置３０に対する入出力処理（入出力要求に対する処理）の実行結果（Ｉ／Ｏ実行結果）の通知を周辺処理装置２０から受信し、その実行結果を入出力要求者に報告するとともに、その実行結果を反映させて周辺処理装置負荷状態管理表１１の内容を更新する。
【００２４】
アテンション処理機能１５は、周辺処理装置２０からのアテンション通知を受信し、その通知内容に対応した処理を行う。ここで、そのアテンション通知が負荷状態更新イベントを通知内容とするアテンション通知である場合には、そのアテンション通知内容を反映させて周辺処理装置負荷状態管理表１１の内容を更新する。
【００２５】
周辺処理装置２０は、１台以上のホストコンピュータ１０に接続されており、Ｉ／Ｏコマンド解析機能２１と、Ｉ／Ｏコマンド実行機能２２と、Ｉ／Ｏ実行結果通知機能２３と、Ｉ／Ｏ負荷算出機能２４と、負荷情報管理表２５と、負荷情報更新機能２６と、アテンション通知機能２７とを含んで構成されている。
【００２６】
Ｉ／Ｏコマンド解析機能２１は、ホストコンピュータ１０からの入出力要求であるＩ／Ｏコマンド（ホストコンピュータ１０から発行されたＩ／Ｏコマンド）を解析する。
【００２７】
Ｉ／Ｏコマンド実行機能２２は、Ｉ／Ｏコマンド解析機能２１により解析された結果（Ｉ／Ｏコマンドの解析結果）を基に、周辺装置３０に対する入出力処理（当該Ｉ／Ｏコマンドの実行）を行う。
【００２８】
Ｉ／Ｏ実行結果通知機能２３は、自己が存在する周辺処理装置２０による周辺装置３０に対する入出力処理が完了すると、その結果（入出力結果）を示すイベント通知（Ｉ／Ｏ終了通知）を当該入出力要求の要求元のホストコンピュータ１０に発行する。
【００２９】
Ｉ／Ｏ負荷算出機能２４は、Ｉ／Ｏコマンド解析機能２１により解析された結果（Ｉ／Ｏコマンドの解析結果）を基に、当該Ｉ／Ｏコマンド（入出力要求）に対する入出力処理を実行することで増加する負荷を算出する。
【００３０】
負荷情報管理表２５は、自己が存在する周辺処理装置２０が現在実行中の入出力処理による負荷状態を管理する。
【００３１】
負荷情報更新機能２６は、Ｉ／Ｏコマンド実行機能２２によるＩ／Ｏコマンドの実行時にＩ／Ｏ負荷算出機能２４によって算出された負荷の増加を反映させて負荷情報管理表２５を更新する。また、Ｉ／Ｏ実行結果通知機能２３によるＩ／Ｏ終了通知の発行時に周辺装置３０に対する入出力処理の完了（当該負荷の減少）を反映させて負荷情報管理表２５を更新する。
【００３２】
アテンション通知機能２７は、負荷情報更新機能２６からの指示（負荷情報管理表２５が更新された旨の通知）を契機として、負荷状態が変わったことを示すイベント通知（負荷状態更新イベントを通知内容とするアテンション通知）を、自己が存在する周辺処理装置２０が接続されている全てのホストコンピュータ１０（当該入出力要求の要求元のホストコンピュータ１０を除く）に発行（報告）する。すなわち、自己が存在する周辺処理装置２０と周辺装置３０との間の入出力処理の開始時および完了時に、負荷情報更新機能２６からの指示により、自己が存在する周辺処理装置２０が接続されている全てのホストコンピュータ１０のうちの入出力要求の要求元のホストコンピュータ１０以外の全てのホストコンピュータ１０に、当該周辺処理装置２０の負荷状態が変わったことを、アテンション通知として報告する。
【００３３】
複数の周辺処理装置２０に接続されている周辺装置３０は、周辺処理装置２０からの入出力要求（Ｉ／Ｏコマンド）に従って入出力処理を行い、その処理結果を要求元の周辺処理装置２０に返却する。
【００３４】
図２は、本実施の形態に係る周辺処理装置負荷分散方式におけるＩ／Ｏ発行処理を示す流れ図（フローチャート）である。この処理は、周辺処理装置負荷情報取得ステップ２０１と、使用周辺処理装置決定ステップ２０２と、周辺処理装置負荷情報更新ステップ２０３と、Ｉ／Ｏコマンド発行ステップ２０４とからなる。
【００３５】
図３は、本実施の形態に係る周辺処理装置負荷分散方式におけるＩ／Ｏコマンド実行処理を示す流れ図である。この処理は、Ｉ／Ｏコマンド解析ステップ３０１と、Ｉ／Ｏ負荷算出ステップ３０２と、負荷情報更新処理ステップ３０３と、Ｉ／Ｏコマンド実行ステップ３０４と、Ｉ／Ｏ実行結果イベント作成ステップ３０５と、負荷情報更新処理ステップ３０６と、Ｉ／Ｏ実行結果通知ステップ３０７とからなる。
【００３６】
図４は、図３中の負荷情報更新処理ステップ３０３／３０６の詳細な処理を示す流れ図である。この処理は、負荷情報管理表更新ステップ４０１と、複数ホストコンピュータ接続判定ステップ４０２と、負荷状態更新イベント作成ステップ４０３と、アテンション通知ステップ４０４と、全ホストコンピュータ通知済判定ステップ４０５とからなる。
【００３７】
図５は、本実施の形態に係る周辺処理装置負荷分散方式におけるアテンション処理（周辺処理装置２０からアテンション通知を受け取った時のホストコンピュータ１０の処理）を示す流れ図である。この処理は、アテンション通知内容判定ステップ５０１と、周辺処理装置負荷情報更新ステップ５０２と、アテンション通知報告ステップ５０３とからなる。
【００３８】
図６は、本実施の形態に係る周辺処理装置負荷分散方式におけるＩ／Ｏ終了処理（周辺処理装置２０からＩ／Ｏ実行結果通知を受け取った時のホストコンピュータ１０の処理）を示す流れ図である。この処理は、周辺処理装置負荷情報更新ステップ６０１と、Ｉ／Ｏ終了通知報告ステップ６０２とからなる。
【００３９】
図７は、ホストコンピュータ１０内の周辺処理装置負荷状態管理表１１の情報内容の一例を示す図である。あるホストコンピュータ１０内の周辺処理装置負荷状態管理表１１には、例えば、当該ホストコンピュータ１０に接続されている各周辺処理装置２０に対して、当該周辺処理装置２０の識別情報を示す周辺処理装置ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と、当該周辺処理装置２０に接続されている周辺装置３０を示す接続周辺装置情報と、現時点での当該周辺処理装置２０の負荷状態を示す負荷情報とを有する各エントリが設けられている。
【００４０】
次に、図１〜図７を参照して、上記のように構成された本実施の形態に係る周辺処理装置負荷分散方式の全体の動作について詳細に説明する。
【００４１】
ここでは、ホストコンピュータ１０−１に、入出力要求者からの「周辺装置３０に対する入出力要求（Ｉ／Ｏ実行要求）」が行われた場合の動作について説明する。
【００４２】
ホストコンピュータ１０−１内のＩ／Ｏ発行機能１３は、周辺装置３０に対する入出力要求を受け付けると、図２の流れ図に示す態様で、以下のようなＩ／Ｏ発行処理を行う。
【００４３】
まず、周辺処理装置負荷情報参照更新機能１２を使用して、ホストコンピュータ１０−１内の周辺処理装置負荷状態管理表１１（図７参照）から、ホストコンピュータ１０−１に接続されており、かつ、周辺装置３０に接続されている全ての周辺処理装置２０の負荷情報を取得する（ステップ２０１）。
【００４４】
そして、ステップ２０１で負荷情報を取得した全ての周辺処理装置２０の中で現時点で最も負荷の軽い周辺処理装置２０（ここでは、周辺処理装置２０−１であるものとする）を、本入出力処理（今回の入出力要求に基づく入出力処理）で使用する周辺処理装置２０（使用周辺処理装置）として決定する（ステップ２０２）。
【００４５】
続いて、入出力要求であるＩ／Ｏコマンドの内容から本入出力処理を行うことで増加する負荷を認識し、周辺処理装置負荷情報参照更新機能１２を使用して、当該「負荷の増加」を反映させて周辺処理装置負荷状態管理表１１の内容（使用周辺処理装置の負荷情報）を更新する（ステップ２０３）。
【００４６】
最後に、ステップ２０２で決定した使用周辺処理装置（周辺処理装置２０−１）に対して、Ｉ／Ｏコマンドを発行する（ステップ２０４）。これによって、このＩ／Ｏ発行処理が終了する。
【００４７】
ホストコンピュータ１０（ここでは、ホストコンピュータ１０−１）から発行されたＩ／Ｏコマンドを受け付けた周辺処理装置２０（ここでは、周辺処理装置２０−１）は、図３の流れ図に示す態様で、以下のようなＩ／Ｏコマンド実行処理を行い、その処理結果（Ｉ／Ｏ実行結果）を当該ホストコンピュータ１０に返却する。
【００４８】
まず、周辺処理装置２０−１内のＩ／Ｏコマンド解析機能２１は、ホストコンピュータ１０からの入出力要求（Ｉ／Ｏコマンド）の解析を行う（ステップ３０１）。
【００４９】
Ｉ／Ｏ負荷算出機能２４は、Ｉ／Ｏコマンド解析機能２１の指示により、ステップ３０１におけるＩ／Ｏコマンド解析機能２１による解析結果を基に、本入出力処理によるＩ／Ｏ負荷を算出する（ステップ３０２）。
【００５０】
Ｉ／Ｏコマンド解析機能２１は、ステップ３０１における解析結果とステップ３０２で算出されたＩ／Ｏ負荷とを、Ｉ／Ｏコマンド実行機能２２に渡す。
【００５１】
Ｉ／Ｏコマンド実行機能２２は、Ｉ／Ｏコマンド解析機能２１から受け取った情報に基づき、負荷情報更新機能２６を使用して負荷情報更新処理を行い（ステップ３０３）、当該Ｉ／Ｏコマンドに従って周辺装置３０に対する入出力処理（当該Ｉ／Ｏコマンドの実行）を行う（ステップ３０４）。なお、ステップ３０３の負荷情報更新処理の詳細は後述する。
【００５２】
ステップ３０４の入出力処理が終わると、周辺処理装置２０−１内のＩ／Ｏ実行結果通知機能２３に、その処理結果が渡される。
【００５３】
Ｉ／Ｏ実行結果通知機能２３は、入出力処理の要求元のホストコンピュータ１０（ここでは、ホストコンピュータ１０−１）に通知するＩ／Ｏ実行結果イベント（当該入出力処理の実行結果を示すイベント）を作成し（ステップ３０５）、負荷情報更新機能２６を使用して入出力処理終了に伴う負荷情報更新処理を行う（ステップ３０６）。なお、ステップ３０６の負荷情報更新処理の詳細は後述する。
【００５４】
最後に、Ｉ／Ｏ実行結果通知機能２３は、ホストコンピュータ１０−１に、ステップ３０５で作成したＩ／Ｏ実行結果イベントの通知（Ｉ／Ｏ実行結果通知）を発行する（ステップ３０７）。なお、このＩ／Ｏ実行結果通知には、入出力処理が終了したことによる周辺処理装置２０−１の負荷状態の変化を示す情報が含まれている。
【００５５】
ここで、図３のステップ３０３またはステップ３０６における「負荷情報更新機能２６による負荷情報更新処理」の詳細について、図４の流れ図を参照して説明する。
【００５６】
負荷情報更新機能２６は、Ｉ／Ｏコマンド実行機能２２からの要求（ステップ３０３の場合）またはＩ／Ｏ実行結果通知機能２３からの要求（ステップ３０６の場合）に応じて、以下のような負荷情報更新処理を行う。
【００５７】
まず、Ｉ／Ｏコマンド実行機能２２からの要求であれば負荷を加算する方向に、Ｉ／Ｏ実行結果通知機能２３からの要求であれば負荷を減算する方向に、負荷情報管理表２５の内容（自己が存在する周辺処理装置２０（ここでは、周辺処理装置２０−１）の現時点での負荷状態を示す情報）を更新する（ステップ４０１）。
【００５８】
続いて、自己が存在する周辺処理装置２０が何台のホストコンピュータ１０に接続されているかをチェックし、複数台のホストコンピュータ１０に接続されているか否かを判定する（ステップ４０２）。
【００５９】
ステップ４０２で「複数台のホストコンピュータ１０には接続されていない（１台のホストコンピュータ１０のみに接続されている）」と判定した場合には、今回の負荷情報更新処理を終了する。
【００６０】
一方、ステップ４０２で「複数台のホストコンピュータ１０に接続されている」と判定した場合（周辺処理装置２０−１に関してはこの場合に該当する）には、負荷状態の更新状況を通知するためのイベント（負荷状態更新イベント）を作成する（ステップ４０３）。
【００６１】
さらに、自己が存在する周辺処理装置２０に接続されている全てのホストコンピュータ１０（今回の入出力要求の要求元のホストコンピュータ１０を除く）の各々について繰り返し（ステップ４０５で「当該周辺処理装置２０に接続されている全てのホストコンピュータ１０（当該入出力要求の要求元のホストコンピュータ１０を除く）に対して通知済である」と判定するまで）、アテンション通知機能２７を使用して、負荷状態更新イベントの通知であるアテンション通知を行う（ステップ４０４）。そして、ステップ４０５で「全てのコンピュータ１０に対して通知済である」と判定した場合には、今回の負荷情報更新処理を終了する。なお、ここでは、ホストコンピュータ１０−２に対して、当該アテンション通知が行われる。
【００６２】
周辺処理装置２０（ここでは、周辺処理装置２０−１）からアテンション通知（負荷状態更新イベントを通知内容とするアテンション通知である場合もあり、その他のイベントを通知内容とするアテンション通知である場合もある）を受け取った各ホストコンピュータ１０内のアテンション処理機能１５は、図５の流れ図に示す態様で、以下のようなアテンション処理を行う。
【００６３】
まず、受け取ったアテンション通知によって示されるイベント内容が負荷状態更新イベントであるか否かをチェックする（ステップ５０１）。
【００６４】
ステップ５０１で「当該アテンション通知によって示されるイベント内容が負荷状態更新イベントである」と判定した場合には、周辺処理装置負荷情報参照更新機能１２を使用して、当該負荷状態更新イベントの内容に合わせて周辺処理装置負荷状態管理表１１の内容（アテンション通知の通知元の周辺処理装置２０の負荷情報）の更新を行う（ステップ５０２）。
【００６５】
一方、ステップ５０１で「当該アテンション通知によって示されるイベント内容が負荷状態更新イベントではない」と判定した場合には、当該アテンション通知の内容に応じて、自己が存在するホストコンピュータ１０内の該当するコンポーネントに当該アテンション通知を転送（報告）する（ステップ５０３）。
【００６６】
周辺処理装置２０（ここでは、周辺処理装置２０−１）からＩ／Ｏ実行結果通知を受け取ったホストコンピュータ１０（ここでは、ホストコンピュータ１０−１）内のＩ／Ｏ終了処理機能１４は、図６の流れ図に示す態様で、以下のようなＩ／Ｏ終了処理を行う。
【００６７】
まず、周辺処理装置負荷情報参照更新機能１２を使用して、受信したＩ／Ｏ実行結果通知におけるＩ／Ｏ実行結果イベントの内容に基づき、入出力処理が終了したことで減じられた負荷を反映させて、周辺処理装置負荷状態管理表１１内の周辺処理装置負荷情報（Ｉ／Ｏ実行結果通知の通知元の周辺処理装置２０の負荷情報）を更新する（ステップ６０１）。
【００６８】
その上で、当該Ｉ／Ｏ実行結果を示すＩ／Ｏ終了通知を入出力要求者に報告する（ステップ６０２）。
【００６９】
以上のようにして、複数のホストコンピュータ１０に接続されている周辺処理装置２０の負荷状態の変化（更新状況）が、アテンション通知やＩ／Ｏ実行結果通知によって、各ホストコンピュータ１０に伝えられることとなる。これによって、コンピュータシステムを構成する全てのホストコンピュータ１０が、同じように、周辺処理装置２０の負荷状態を認識できるようになる。この結果、当該コンピュータシステム全体で考えた場合に、特定の周辺処理装置２０に負荷が集中しないように負荷分散制御を行うことが可能になる。
【００７０】
（２）　第２の実施の形態
【００７１】
図８は、本発明の第２の実施の形態に係る周辺処理装置負荷分散方式の構成を示すブロック図である。
【００７２】
図８を参照すると、本発明の第２の実施の形態に係る周辺処理装置負荷分散方式は、図１に示した第１の実施の形態に係る周辺処理装置負荷分散方式に対して、ホストコンピュータ用プログラム８１０および周辺処理装置用プログラム８２０を備える点が異なっている。
【００７３】
ホストコンピュータ用プログラム８１０は、各ホストコンピュータ１０に読み込まれ、当該各ホストコンピュータ１０の動作を周辺処理装置負荷状態管理表１１，周辺処理装置負荷情報参照更新機能１２，Ｉ／Ｏ発行機能１３，Ｉ／Ｏ終了処理機能１４，およびアテンション処理機能１５として制御する。ホストコンピュータ用プログラム８１０の制御による各ホストコンピュータ１０の動作は、第１の実施の形態における各ホストコンピュータ１０内の周辺処理装置負荷状態管理表１１，周辺処理装置負荷情報参照更新機能１２，Ｉ／Ｏ発行機能１３，Ｉ／Ｏ終了処理機能１４，およびアテンション処理機能１５の動作と全く同様になるので、その詳しい説明を割愛する。
【００７４】
また、周辺処理装置用プログラム８２０は、各周辺処理装置２０に読み込まれ、当該各周辺処理装置２０の動作をＩ／Ｏコマンド解析機能２１，Ｉ／Ｏコマンド実行機能２２，Ｉ／Ｏ実行結果通知機能２３，Ｉ／Ｏ負荷算出機能２４，負荷情報管理表２５，負荷情報更新機能２６，およびアテンション通知機能２７として制御する。周辺処理装置用プログラム８２０の制御による各周辺処理装置２０の動作は、第１の実施の形態における各周辺処理装置２０内のＩ／Ｏコマンド解析機能２１，Ｉ／Ｏコマンド実行機能２２，Ｉ／Ｏ実行結果通知機能２３，Ｉ／Ｏ負荷算出機能２４，負荷情報管理表２５，負荷情報更新機能２６，およびアテンション通知機能２７の動作と全く同様になるので、その詳しい説明を割愛する。
【００７５】
【発明の効果】
以上説明したように、本発明によると、周辺処理装置が複数のホストコンピュータに接続されているコンピュータシステムにおいても、当該複数のホストコンピュータに接続される周辺処理装置の負荷状態の変化（更新状況）を各ホストコンピュータに通知する機能を各周辺処理装置内に設けること等により、当該コンピュータシステム全体で考えた場合における周辺処理装置に対する負荷の平準化を実現することができるという効果が生じる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る周辺処理装置負荷分散方式の構成を示すブロック図である。
【図２】図１に示す周辺処理装置負荷分散方式におけるＩ／Ｏ発行処理を示す流れ図である。
【図３】図１に示す周辺処理装置負荷分散方式におけるＩ／Ｏコマンド実行処理を示す流れ図である。
【図４】図３中の負荷情報更新処理ステップの詳細な処理を示す流れ図である。
【図５】図１に示す周辺処理装置負荷分散方式におけるアテンション処理を示す流れ図である。
【図６】図１に示す周辺処理装置負荷分散方式におけるＩ／Ｏ終了処理を示す流れ図である。
【図７】図１中の周辺処理装置負荷状態管理表の情報内容の一例を示す図である。
【図８】本発明の第２の実施の形態に係る周辺処理装置負荷分散方式の構成を示すブロック図である。
【符号の説明】
１０　ホストコンピュータ
１１　周辺処理装置負荷状態管理表
１２　周辺処理装置負荷情報参照更新機能
１３　Ｉ／Ｏ発行機能
１４　Ｉ／Ｏ終了処理機能
１５　アテンション処理機能
２０　周辺処理装置
２１　Ｉ／Ｏコマンド解析機能
２２　Ｉ／Ｏコマンド実行機能
２３　Ｉ／Ｏ実行結果通知機能
２４　Ｉ／Ｏ負荷算出機能
２５　負荷情報管理表
２６　負荷情報更新機能
２７　アテンション通知機能
３０　周辺装置
８１０　ホストコンピュータ用プログラム
８２０　周辺処理装置用プログラム
【図１】
2004013555.tif 000003
【図２】
2004013555.tif 000004
【図３】
2004013555.tif 000005
【図４】
2004013555.tif 000006
【図５】
2004013555.tif 000007
【図６】
2004013555.tif 000008
【図７】
2004013555.tif 000009
【図８】
2004013555.tif 000010