(57)【特許請求の範囲】
【請求項１】
他のホスト計算機で起動されたプロセスを受け入れるプロセス受入部と、
前記プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、前記プロセスを起動させたホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行う仮想記憶制御部と、
前記セグメント情報に含まれる前記識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、前記セグメント情報に含まれる前記識別情報によって識別されるホスト計算機にＩ／Ｏの代行要求を行うＩ／Ｏ代行要求部と、
を備えるホスト計算機。
【請求項２】
請求項１に記載のホスト計算機であって、
前記セグメント情報に含まれる前記識別情報は、前記仮想記憶空間内の未使用領域に格納される、ホスト計算機。
【請求項３】
第一及び第二のホスト計算機を備える分散処理システムであって、
前記第二のホスト計算機は、
前記第一のホスト計算機で起動されたプロセスを受け入れるプロセス受入部と、
前記プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、前記プロセスを起動させた第一のホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行う仮想記憶制御部と、
前記セグメント情報に含まれる前記識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、前記セグメント情報に含まれる前記識別情報によって識別される前記第一のホスト計算機にＩ／Ｏの代行要求を行うＩ／Ｏ代行要求部と、
を備える分散処理システム。
【請求項４】
他のホスト計算機で起動されたプロセスを受け入れ、
前記プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、前記プロセスを起動させたホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行い、
前記セグメント情報に含まれる前記識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、前記セグメント情報に含まれる前記識別情報によって識別されるホスト計算機にＩ／Ｏの代行要求を行う、Ｉ／Ｏ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホスト計算機間でプロセスを移動して記憶資源へのＩ／Ｏ処理を行うためのホスト計算機、分散処理システム、及びＩ／Ｏ制御方法に関する。
【背景技術】
【０００２】
複数のホスト計算機を備える分散処理システムの機能として、例えば、あるホスト計算機が起動したプロセスを他のホスト計算機に移動してＩ／Ｏ処理を行うものが知られている。このような機能を有する分散処理システムにおいて、プロセスの移動先のホスト計算機からプロセスの移動元のホスト計算機に固有の記憶資源にデータを入出力するための方式として、例えば、二つの方式が知られている。第一の方式は、入出力先の記憶資源がどのホスト計算機に固有の資源であるのかを示す情報と、Ｉ／Ｏ発行の要求先を決定するロジックとをユーザプログラム自体が備える方式である。第二の方式は、ユーザプログラムから呼ばれるインタフェース部と実行制御部とが、アクセス先の資源がどのホスト計算機の資源であるのかを判別してリモート環境を呼び出し、リモート環境が他のホスト計算機に固有の資源へアクセスする環境を提供する方式である（特開平１１−２１２９１５号公報）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２１２９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、第一の方式では、Ｉ／Ｏ発行の要求先を決定するロジックをユーザプログラムに組み込む必要があるため、ユーザプログラムのロジックが複雑化する。また、第二の方式では、インタフェース部、実行制御部、及びリモート環境といった特別な機能を作成する必要がある上に、各ホスト計算機がどのような資源を有しているかをリモート環境が認識しなければならないので、複雑化する。
【０００５】
そこで、本発明は、プロセスの移動先のホスト計算機からプロセスの移動元のホスト計算機へのＩ／Ｏの代行要求を簡素な構成で実現することを課題とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明に係わるホスト計算機は、他のホスト計算機で起動されたプロセスを受け入れるプロセス受入部と、プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、プロセスを起動させたホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行う仮想記憶制御部と、セグメント情報に含まれる識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、セグメント情報に含まれる識別情報によって識別されるホスト計算機にＩ／Ｏの代行要求を行うＩ／Ｏ代行要求部を備える。
【発明の効果】
【０００７】
本発明によれば、プロセスの移動先のホスト計算機からプロセスの移動元のホスト計算機へのＩ／Ｏの代行要求を簡素な構成で実現できる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係わる分散処理システムの機能ブロック図である。
【図２】本実施形態に係わるセグメント情報の説明図である。
【図３】本実施形態に係わるＩ／Ｏ発行情報のセグメント生成とセグメント情報の更新の流れを示す説明図である。
【図４】本実施形態に係わるプロセスの移動処理の流れを示す説明図である。
【図５】本実施形態に係わるＩ／Ｏの代行要求を処理する流れを示す説明図である。
【発明を実施するための形態】
【０００９】
以下、各図を参照しながら本発明に係わる実施形態について説明する。
図１は本実施形態に係わる分散処理システム３０の機能ブロック図である。分散処理システム３０は、ネットワークを介して接続される複数のホスト計算機１０，２０を備える。各ホスト計算機１０，２０は、主記憶装置と補助記憶装置とを有しており、仮想記憶空間を使用して主記憶装置の記憶空間より大きなプログラムの実行を可能とする。仮想記憶空間が割り当てられたプログラムは、論理アドレスで管理されており、プロセスの起動時に仮想記憶空間内にプロセス空間を割り当ててプロセスを実行する。プロセス空間は、セグメントと呼ばれる一定の記憶空間を単位として管理されており、コードやデータ等は、セグメントを分けて管理されている。
【００１０】
ホスト計算機１０は、プロセス１００を実行するための手段として、仮想記憶制御部１１０、プロセス移動部１２０、通信部１３０、ファイル管理部１４０、Ｉ／Ｏ発行部１５０、Ｉ／Ｏ代行部１６０、ドライバ１７０、プロセス用制御情報１８０、及び記憶資源１９０を備える。プロセス１００は、プログラム１０１を含む。プロセス用制御情報１８０は、プロセス１００を実行する上で必要となる制御情報であり、ファイル管理情報１８１、Ｉ／Ｏ発行情報１８２、及びセグメント情報１８３を含む。ファイル管理情報１８１は、ホスト計算機１０に固有の記憶資源１９０に格納されているファイルにアクセスするために必要な情報（例えば、Ｉ／Ｏ発行経路やファイルの位置等）を含む。Ｉ／Ｏ発行情報１８２は、ホスト計算機１０に固有の記憶資源１９０にデータを入出力するために必要な情報（例えば、Ｉ／Ｏ命令やＩ／Ｏ発行経路等）を含む。図２に示すように、セグメント情報１８３は、セグメント単位で仮想記憶空間が割り当てられたファイル管理情報１８１及びＩ／Ｏ発行情報１８２のそれぞれについて、セグメント名と仮想空間内アドレスとを対応付けて管理している。仮想空間内アドレスは、プロセス１００を起動したホスト計算機１０の識別情報としてのホストＩＤと、記憶資源１９０から入出力するデータの実効アドレスとを含む。ホストＩＤは、仮想記憶空間内の未使用領域（空き領域）に格納するのが好ましい。なお、記憶資源１９０は、ホスト計算機１０が備える記憶資源（例えば、ディスク装置）でもよく、或いはネットワークを介してホスト計算機１０に接続する端末装置の記憶資源でもよい。
【００１１】
図１に示すように、ホスト計算機２０は、ホスト計算機１０からの要求により、ホスト計算機１０が起動したプロセス１００の実行を受け入れると、プロセス１００を実行するための準備として、移動プロセス２００及び移動プロセス用制御情報２８０を生成する。ホスト計算機１０からホスト計算機２０へのプロセス１００の移動は、例えば、ホスト計算機１０の処理負荷が所定の閾値を超えた場合等に行われるが、これに限定されるものではない。ホスト計算機２０は、移動プロセス２００を生成又は実行するための手段として、仮想記憶制御部２１０、プロセス受入部２２０、通信部２３０、Ｉ／Ｏ発行部２４０、例外検出部２５０、Ｉ／Ｏ代行要求部２６０、及びドライバ２７０を備える。移動プロセス２００は、プログラム２０１を含む。移動プロセス用制御情報２８０は、移動プロセス２００を実行する上で必要となる制御情報であり、ファイル管理情報２８１、Ｉ／Ｏ発行情報２８２、及びセグメント情報２８３を含む。図２に示すように、セグメント情報２８３は、セグメント単位で仮想記憶空間が割り当てられたファイル管理情報２８１及びＩ／Ｏ発行情報２８２のそれぞれについて、セグメント名と仮想空間内アドレスとを対応付けて管理している。仮想空間内アドレスは、プロセス１００を起動したホスト計算機１０の識別情報としてのホストＩＤと、記憶資源１９０から入出力するデータの実効アドレスとを含む。
【００１２】
なお、図１において、実施矢印は処理の流れを示し、点線矢印は情報の参照／更新を示し、折れ線矢印は処理の呼び出しではなくイベント通知を示す。
【００１３】
次に、ホスト計算機１０，２０の各部の動作の概略を説明する。
ファイル管理部１４０は、プログラム１０１から呼び出されると、ファイル管理情報１８１を生成する。仮想記憶制御部１１０は、プロセス１００やファイル管理部１４０等のＯＳ機能が動作するために必要なセグメントを仮想記憶空間内に割り当て、ファイル管理情報１８１及びＩ／Ｏ発行情報１８２のそれぞれについてセグメント名と仮想空間内アドレスとを対応付けて管理する。Ｉ／Ｏ発行部１５０は、ファイル管理情報１８１を参照し、プログラム１０１からのアクセス要求に従ってＩ／Ｏ発行情報１８２を生成する。プロセス移動部１２０は、プロセス１００とそのファイル管理情報１８１を通信部１３０経由でホスト計算機１０からホスト計算機２０へ移動させる。通信部１３０は、ホスト計算機１０，２０の間でプロセス移動やＩ／Ｏ代行要求等の処理に関する情報を送受信するためのものであり、例えば、プロセス移動部１２０から受け取ったプロセス１００とそのファイル管理情報１８１をホスト計算機２０のプロセス受入部２２０に渡す一方、ホスト計算機２０のＩ／Ｏ代行要求部２６０からのＩ／Ｏ代行要求をＩ／Ｏ代行部１６０へ渡す。Ｉ／Ｏ代行部１６０は、ホスト計算機２０のＩ／Ｏ代行要求部２６０から通信部１３０経由でＩ／Ｏの代行要求を受け取ると、その内容をＩ／Ｏ発行情報１８２に設定し、ドライバ１７０にＩ／Ｏ発行要求を行う。また、Ｉ／Ｏ代行部１６０は、ドライバ１７０からＩ／Ｏ処理の結果を受け取り、通信部１３０経由でホスト計算機２０にＩ／Ｏ代行の結果を通知する。ドライバ１７０は、Ｉ／Ｏ発行部１５０又はＩ／Ｏ代行部１６０からＩ／Ｏ発行要求を受け取ると、Ｉ／Ｏ発行情報１８２を参照してＩ／Ｏ処理を行う。
【００１４】
プロセス受入部２２０は、通信部２３０経由でホスト計算機１０から受け取ったプロセス１００を仮想記憶制御部２１０に渡す。仮想記憶制御部２１０は、プロセス１００を実行するための準備として、ホスト計算機２０で生成された移動プロセス２００及び移動プロセス用制御情報２８０に仮想記憶空間を割り当てる。通信部２３０は、ホスト計算機１０，２０の間でプロセス移動やＩ／Ｏ代行要求等の処理に関する情報を送受信するためのものであり、例えば、ホスト計算機１０のプロセス移動部１２０から受け取ったプロセス１００をプロセス受入部２２０に渡す一方、Ｉ／Ｏ代行要求部２６０からのＩ／Ｏ代行要求をホスト計算機１０へ渡す。Ｉ／Ｏ発行部２４０は、ファイル管理情報２８１を参照してＩ／Ｏ発行情報２８２を生成する。ドライバ２７０は、Ｉ／Ｏ発行部２４０からＩ／Ｏ発行要求を受け取ると、Ｉ／Ｏ処理の準備のためにＩ／Ｏ発行情報２８２を参照する。ここで、ドライバ２７０がＩ／Ｏ発行情報２８２を参照する前に、ホスト計算機２０内のファームウェアは、セグメント情報２８３の仮想空間内アドレスのホストＩＤをチェックする。そのチェックの結果、セグメント情報２８３の仮想空間内アドレスのホストＩＤがホスト計算機２０のホストＩＤに一致しない場合、不正アドレス例外の発生が例外検出部２５０に通知される。この点は、実効アドレスに基づいて不正アドレス例外を検出する従来のＯＳ機能と異なる点である。不正アドレスが発生すると、例外検出部２５０は、無条件にＩ／Ｏ代行要求部２６０を呼び出す。Ｉ／Ｏ代行要求部２６０は、例外検出部２５０から呼び出されると、セグメント情報２８３の仮想空間内アドレスのホストＩＤによって識別されるホスト計算機１０にＩ／Ｏの代行要求を行う。
【００１５】
図３はＩ／Ｏ発行情報１８２のセグメント生成とセグメント情報１８３の更新の流れを示す説明図である。同図に示すように、まず、Ｉ／Ｏ発行部１５０は、仮想記憶制御部１１０にＩ／Ｏ発行情報１８２のセグメント生成を要求する（ステップ１５１）。セグメント生成要求を受けた仮想記憶制御部１１０は、仮想記憶空間の中からＩ／Ｏ発行情報１８２用のセグメントの割り当てを行い（ステップ１１１）、Ｉ／Ｏ発行情報１８２のセグメント名をセグメント情報１８３に登録し（ステップ１１２）、ホストＩＤと実効アドレスとを含む仮想記憶空間内アドレスをセグメント情報１８３に登録する（ステップ１１３）。Ｉ／Ｏ発行部１５０は、ファイル管理情報１８１を参照して（ステップ１５２）、Ｉ／Ｏ発行先の情報を取得する。Ｉ／Ｏ発行部１５０は、Ｉ／Ｏ発行先の情報に基づいてＩ／Ｏ発行情報１８２を生成し（ステップ１５３）、Ｉ／Ｏ発行情報を指定した上でＩ／Ｏ発行要求を出す（ステップ１５４）。
【００１６】
図４はプロセス１００の移動処理の流れを示す説明図である。同図に示すように、まず、プロセス移動部１２０は、所定の基準（例えば処理負荷等）に基づいて、移動対象となるプロセス１００を決定し（ステップ１２１）、そのファイル管理情報１８１とともにプロセス１００を通信部１３０に渡す（ステップ１２２）。プロセス１００とそのファイル管理情報１８１はホスト計算機１０の通信部１３０からホスト計算機２０の通信部２３０を経由して、プロセス受入部２２０に渡される。プロセス受入部２２０は、移動プロセス２００及び移動プロセス用制御情報２８０への仮想記憶空間の割り当てを仮想記憶制御部２１０に要求する。仮想記憶制御部２１０は、移動プロセス２００への仮想記憶空間の割り当てを行い（ステップ２１１）、更に、移動プロセス用制御情報２８０への仮想記憶空間の割り当てを行う（ステップ２１２）。
【００１７】
図５はＩ／Ｏの代行要求を処理する流れを示す説明図である。同図に示すように、まず、ホスト計算機２０のプログラム２０１から呼び出されたＩ／Ｏ発行部２４０は、ファイル管理情報２８１を参照し（ステップ２４１）、ファイル管理情報２８１に基づいてＩ／Ｏ発行情報２８２を生成し（ステップ２４２）、ドライバ２７０にＩ／Ｏ発行要求を出す（ステップ２４３）。ドライバ２７０がＩ／Ｏ発行情報２８２を参照する前に、ホスト計算機２０内のファームウェアは、セグメント情報２８３の仮想空間内アドレスのホストＩＤをチェックする（ステップ２４４）。移動プロセス２００は、ホスト計算機１０が起動したプロセス１００がホスト計算機２０に移動したことによりホスト計算機２０で生成されたものであるから、セグメント情報２８３の仮想空間内アドレスのホストＩＤは、ホスト計算機２０のホストＩＤに一致せず、それ故、不正アドレス例外が発生する（ステップ２４５）。不正アドレスが発生すると、例外検出部２５０は、例外処理へ分岐するため、Ｉ／Ｏ代行要求部２６０を呼び出す（ステップ２５１）。Ｉ／Ｏ代行要求部２６０は、例外検出部２５０から呼び出されると、セグメント情報２８３の仮想空間内アドレスのホストＩＤによって識別されるホスト計算機１０にＩ／Ｏの代行要求を行う（ステップ２６１）。通信部２３０は、Ｉ／Ｏ代行要求部２６０からＩ／Ｏ代行要求を受け取り、これを通信部１３０に送信する。通信部１３０は、Ｉ／Ｏ代行要求を受け取ると、Ｉ／Ｏ代行部１６０を呼び出す。呼び出されたＩ／Ｏ代行部１６０は、Ｉ／Ｏ発行情報１８２を更新し（ステップ１６１）、ドライバ１７０へＩ／Ｏ発行を要求する（ステップ１６２）。Ｉ／Ｏ発行要求を受けたドライバ１７０は、ホスト計算機１０の記憶資源１９０からデータを入出力する（ステップ１７１）。
【００１８】
なお、仮に移動プロセス２００がホスト計算機２０で起動されたものである場合、セグメント情報２８３の仮想空間内アドレスのホストＩＤは、ホスト計算機２０のホストＩＤに一致するため、ドライバ２７０は、ホスト計算機２０の記憶資源からデータを入出力する（ステップ２７１）。
【００１９】
分散処理システム３０は、セグメント情報２８３の仮想空間内アドレスに格納されたホストＩＤとホスト計算機２０のホストＩＤとの不一致により発生する不正アドレス例外を契機に、ホスト計算機２０からホスト計算機１０へＩ／Ｏの代行要求をするように構成されているため、ホスト計算機２０のユーザプログラムやオペレーティングシステムは、アクセス先の記憶資源がどのホスト計算機に固有のものであるのか（言い換えれば、ローカル資源であるのか或いはリモート資源であるのか）を認識する必要がなく、ユーザプログラムやオペレーティングシステムの構成をシンプルにすることができる。また、ホスト計算機２０は、分散処理システム３０を構成する全てのホスト計算機のホストＩＤを予め把握している必要はなく、プロセス１００を起動したホスト計算機１０のホストＩＤを把握していればよいので、構成を簡素化できる利点を有する。
【００２０】
なお、説明の便宜上、分散処理システム３０を構成するホスト計算機の台数を二台としたが、三台以上でもよい。
【００２１】
本実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）他のホスト計算機で起動されたプロセスを受け入れるプロセス受入部と、
プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、プロセスを起動させたホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行う仮想記憶制御部と、
セグメント情報に含まれる識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、セグメント情報に含まれる識別情報によって識別されるホスト計算機にＩ／Ｏの代行要求を行うＩ／Ｏ代行要求部と、
を備えるホスト計算機。
【００２２】
（付記２）付記１に記載のホスト計算機であって、
セグメント情報に含まれる識別情報は、仮想記憶空間内の未使用領域に格納される、ホスト計算機。
【００２３】
（付記３）第一及び第二のホスト計算機を備える分散処理システムであって、
第二のホスト計算機は、
第一のホスト計算機で起動されたプロセスを受け入れるプロセス受入部と、
プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、プロセスを起動させた第一のホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行う仮想記憶制御部と、
セグメント情報に含まれる識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、セグメント情報に含まれる識別情報によって識別される第一のホスト計算機にＩ／Ｏの代行要求を行うＩ／Ｏ代行要求部と、
を備える分散処理システム。
【００２４】
（付記４）他のホスト計算機で起動されたプロセスを受け入れ、
プロセスを実行するための準備として、記憶資源にデータを入出力するためのＩ／Ｏ発行情報と、プロセスを起動させたホスト計算機の識別情報とを含むセグメント情報の仮想記憶空間内への割り当てを行い、
セグメント情報に含まれる識別情報が自機の識別情報と異なる場合に発生する不正アドレス例外を契機に、セグメント情報に含まれる識別情報によって識別されるホスト計算機にＩ／Ｏの代行要求を行う、Ｉ／Ｏ制御方法。
【符号の説明】
【００２５】
１０，２０…ホスト計算機
３０…分散処理システム
１００…プロセス
１０１…プログラム
１１０…仮想記憶制御部
１２０…プロセス移動部
１３０…通信部
１４０…ファイル管理部
１５０…Ｉ／Ｏ発行部
１６０…Ｉ／Ｏ代行部
１７０…ドライバ
１８０…プロセス用制御情報
１８１…ファイル管理情報
１８２…Ｉ／Ｏ発行情報
１８３…セグメント情報
２００…移動プロセス
２０１…プログラム
２１０…仮想記憶制御部
２２０…プロセス受入部
２３０…通信部
２４０…Ｉ／Ｏ発行部
２５０…例外検出部
２６０…Ｉ／Ｏ代行要求部
２７０…ドライバ
２８０…移動プロセス用制御情報
２８１…ファイル管理情報
２８２…Ｉ／Ｏ発行情報
２８３…セグメント情報
【図１】
0005679190.tif 000002
【図２】
0005679190.tif 000003
【図３】
0005679190.tif 000004
【図４】
0005679190.tif 000005
【図５】
0005679190.tif 000006