(57)【要約】【課題】クライアント端末がスワップ先補助記憶ノードを特定する必要がなく、プロセスに変更や負担を与えないとともに、容量と速度の点において性能の向上が図れるネットワーク仮想記憶システムを提供する。【解決手段】クライアント端末１０１と、伝送装置１０３と、記憶装置１５１を搭載した補助記憶ノード１０５とをネットワークに接続する。スワップ対象のページデータをネットワークに接続された補助記憶ノード１０５に配置し、このスワップ対象のページデータを伝送装置１０３で管理し、クライアント端末が端末上で可能な量以上のスワップ要求を行う。補助記憶装置の物理的形態やネットワーク上の配置を考慮することなく、クライアント端末上に確保可能なスワップ領域を超える量のスワップを効率的に行うことができる。【選択図】図１
2010128560.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶システムであって、
前記クライアント端末は、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定する仮想記憶管理手段と、前記補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、前記伝送装置にスワップ要求を送信するスワップドライバ手段とを有し、
前記伝送装置は、前記クライアント端末の送信した要求パケットをもとに、前記ネットワークに接続された前記補助記憶ノードを選択する補助ノード情報管理手段と、前記補助記憶ノードに読み書き要求を送信する経路選択手段とを有する
ことを特徴とする仮想記憶システム。
【請求項２】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶システムであって、
前記クライアント端末は、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、前記伝送装置にスワップ要求を送信する仮想記憶管理手段を有し、
前記伝送装置は、前記クライアント端末の送信した要求パケットをもとに、前記ネットワークに接続された前記補助記憶ノードを選択する補助記憶ノード情報管理手段と、前記補助記憶ノードに読み書き要求を送信する経路選択手段とを有する
ことを特徴とする仮想記憶システム。
【請求項３】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、前記伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続されたネットワークの仮想記憶システムであって、
前記クライアント端末は、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定する仮想記憶管理手段と、前記補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、前記伝送装置にスワップ要求を送信するスワップドライバ手段とを有し、
前記伝送装置は、何れの補助記憶ノードを選択すべきかを前記伝送装置コントローラに問い合わせを行うコントローラ連携手段を有し、
前記伝送装置コントローラは、前記伝送装置コントローラに問い合わせに対して、何れの補助記憶ノードを選択すべきかを決定する補助記憶ノード情報管理手段を有する
ことを特徴とする仮想記憶システム。
【請求項４】
前記伝送装置は、前記補助記憶ノードに対して、スワップインされると予想されるデータの先読み動作を指示することを特徴とする請求項１乃至３の何れかに記載の仮想記憶システム。
【請求項５】
前記伝送装置は、同時にスワップインされると予想されるデータの分散配置を行うことを特徴とする請求項１乃至３の何れかに記載の仮想記憶システム。
【請求項６】
前記伝送装置は、同時にスワップインされると予想されるデータの集中配置を行うことを特徴とする請求項１乃至３の何れかに記載の仮想記憶システム。
【請求項７】
前記補助記憶ノードは、スワップアウトされるデータを複製し、冗長性のある構成で複数の記憶ノードに保存することを特徴とする請求項１乃至３の何れかに記載の仮想記憶システム。
【請求項８】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワーク仮想記憶の管理方法であって、
前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで、補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、前記クライアント端末が前記伝送装置に要求パケットを送信し、
前記伝送装置が受信した前記要求パケットをもとに、前記伝送装置がネットワークに接続された前記補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置する
ことを特徴とする仮想記憶の管理方法。
【請求項９】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶の管理方法であって、
前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、前記クライアント端末が前記伝送装置に要求パケットを送信し、
前記伝送装置が受信した前記要求パケットをもとに、前記伝送装置がネットワークに接続された前記補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置する
ことを特徴とする仮想記憶の管理方法。
【請求項１０】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、前記伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続された仮想記憶の管理方法であって、
前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、前記クライアント端末が前記伝送装置に要求パケットを送信し、
前記伝送装置が、何れの補助記憶ノードを選択すべきかを前記伝送装置コントローラに問い合わせ、
前記伝送装置コントローラが、前記問い合わせに対して、何れの補助記憶ノードを選択すべきかを決定し、
前記伝送装置が、前記伝送装置コントローラが決定した補助記憶ノードに対して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置する
ことを特徴とする仮想記憶の管理方法。
【請求項１１】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶のためのプログラムであって、
前記クライアント端末が、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定するステップと、
前記補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、前記クライアント端末が、前記伝送装置にスワップ要求を送信するステップと、
前記伝送装置が、前記クライアント端末の送信した要求パケットをもとに、前記ネットワークに接続された前記補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置するステップと
を含むことを特徴とする仮想記憶のためのプログラム。
【請求項１２】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶のためのプログラムであって、
前記クライアント端末が、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、前記伝送装置にスワップ要求を送信するステップと、
前記伝送装置が、前記クライアント端末の送信した要求パケットをもとに、前記ネットワークに接続された前記補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置するステップと
を含むことを特徴とする仮想記憶のためのプログラム。
【請求項１３】
クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、前記伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続されたネットワークの仮想記憶のためのプログラムであって、
前記クライアント端末が、前記クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで補助記憶に対するスワップ要求が前記クライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定するステップと、
前記伝送装置が、前記伝送装置コントローラに問い合わせを行うステップと、
前記伝送装置コントローラが、何れの補助記憶ノードを選択すべきかを決定するステップと、
前記伝送装置が、前記伝送コントローラが決定した補助記憶ノードに対して読み書き要求を送信し、スワップ対象のページを前記補助記憶ノードに配置するステップと
を含むことを特徴とする仮想記憶のためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的に搭載された記憶容量以上の主記憶領域を使用可能とする仮想記憶システム、仮想記憶の管理方法、仮想記憶のためのプログラムに関し、より詳細には、ネットワークに接続されたクライアント端末のスワップ能力を向上させるものに関する。
【背景技術】
【０００２】
物理的に搭載された記憶容量以上の主記憶領域を確保できるように、仮想メモリあるいは仮想記憶と呼ばれる技術が一般的となっている。これは、物理メモリのアドレッシングとは異なる仮想メモリアドレス空間を用いてデータを管理し、プログラムが使用するデータを主記憶にロードし、主記憶に入りきらないデータを適宜補助記憶領域に書き出すことにより、見かけ上物理メモリ搭載量以上のメモリ空間を使用可能とする機構である。
【０００３】
主記憶と補助記憶の間のデータ読み書きをスワップ、ページング等と称し、補助領域上に確保された主記憶データ保持用の領域をスワップ領域、スワップファイル等と称する。主記憶はプロセッサが直接アドレスを指定して読み書きすることのできるデバイスで、典型的な例はランダムアクセスメモリである。補助記憶領域は主記憶より大容量かつ遅延の大きいデバイスであることが多く、典型的な例はハードディスクドライブ、ソリッドステートドライブである。
【０００４】
仮想記憶システムを補助する従来技術として、特許文献１には、ネットワークを介した別の計算機の主記憶使用状況を検索し、空きがあればその別計算機にスワップを依頼する技術が公開されている。
【０００５】
また、特許文献２には、ある計算機がネットワークを介して接続された別の計算機の仮想記憶空間を用いてスワップを行う技術が公開されている。
【特許文献１】特開平１１−１５７３２号公報
【特許文献２】特開２０００−３３０９４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１においては、スワップ依頼先の別の計算機で主記憶を占有する。このため、スワップ依頼先計算機で主記憶が不足した場合には、スワップ依頼先計算機の性能が犠牲になるか、またはスワップデータをスワップ依頼元計算機へと書き戻さねばならない。
【０００７】
特許文献２では、スワップ先の仮想記憶を消費するため、同様に依頼先計算機の性能に影響を与えることとなり、スワップ先計算機上で動作しているプログラムの実行時間見積もりを困難にする可能性がある。
【０００８】
つまり、特許文献１及び特許文献２では、スワップ先をネットワークを介した特定計算機に確保するが、双方の結びつきが強く、透過性や品質保証の点で問題を内包している。
【０００９】
さらに、スワップをネットワーク上の別領域に行う場合には、高速であること、及び低遅延であることの要件が存在する。
【００１０】
また、仮想記憶空間を用いてスワップを行う場合、プロセスに変更や負担を与えないようにすることが望まれる。
【００１１】
上述の課題を解決するために、本発明は、クライアント端末がスワップ先補助記憶ノードを特定する必要がなく、プロセスに変更や負担を与えないとともに、容量と速度の点において性能の向上が図れる仮想記憶システム、仮想記憶の管理方法、仮想記憶のためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するために、本発明に係る仮想記憶システムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶システムであって、クライアント端末は、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定する仮想記憶管理手段と、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、伝送装置にスワップ要求を送信するスワップドライバ手段とを有し、伝送装置は、クライアント端末の送信した要求パケットをもとに、ネットワークに接続された補助記憶ノードを選択する補助ノード情報管理手段と、補助記憶ノードに読み書き要求を送信する経路選択手段とを有することを特徴とする。
【００１３】
本発明に係る仮想記憶システムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶システムであって、クライアント端末は、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、伝送装置にスワップ要求を送信する仮想記憶管理手段を有し、伝送装置は、クライアント端末の送信した要求パケットをもとに、ネットワークに接続された補助記憶ノードを選択する補助記憶ノード情報管理手段と、補助記憶ノードに読み書き要求を送信する経路選択手段とを有することを特徴とする。
【００１４】
本発明に係る仮想記憶システムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続されたネットワークの仮想記憶システムであって、クライアント端末は、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定する仮想記憶管理手段と、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、伝送装置にスワップ要求を送信するスワップドライバ手段とを有し、伝送装置は、何れの補助記憶ノードを選択すべきかを伝送装置コントローラに問い合わせを行うコントローラ連携手段を有し、伝送装置コントローラは、伝送装置コントローラに問い合わせに対して、何れの補助記憶ノードを選択すべきかを決定する補助記憶ノード情報管理手段を有することを特徴とする。
【００１５】
本発明に係る仮想記憶の管理方法は、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワーク仮想記憶の管理方法であって、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、クライアント端末が伝送装置に要求パケットを送信し、伝送装置が受信した要求パケットをもとに、伝送装置がネットワークに接続された補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置することを特徴とする。
【００１６】
本発明に係る仮想記憶の管理方法は、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶の管理方法であって、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、クライアント端末が伝送装置に要求パケットを送信し、伝送装置が受信した要求パケットをもとに、伝送装置がネットワークに接続された補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置することを特徴とする。
【００１７】
本発明に係る仮想記憶の管理方法は、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続された仮想記憶の管理方法であって、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システムで、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、クライアント端末が伝送装置に要求パケットを送信し、伝送装置が、何れの補助記憶ノードを選択すべきかを伝送装置コントローラに問い合わせ、伝送装置コントローラが、問い合わせに対して、何れの補助記憶ノードを選択すべきかを決定し、伝送装置が、伝送装置コントローラが決定した補助記憶ノードに対して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置することを特徴とする。
【００１８】
本発明に係る仮想記憶のためのプログラムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶のためのプログラムであって、クライアント端末が、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定するステップと、補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生した場合に、クライアント端末が、伝送装置にスワップ要求を送信するステップと、伝送装置が、クライアント端末の送信した要求パケットをもとに、ネットワークに接続された補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置するステップとを含むことを特徴とする。
【００１９】
本発明に係る仮想記憶のためのプログラムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードとが接続されたネットワークの仮想記憶のためのプログラムであって、クライアント端末が、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶管理システム上で、主記憶の記憶容量以上の記憶領域要求が発生した場合に、伝送装置にスワップ要求を送信するステップと、伝送装置が、クライアント端末の送信した要求パケットをもとに、ネットワークに接続された補助記憶ノードを選択して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置するステップとを含むことを特徴とする。
【００２０】
本発明に係る仮想記憶のためのプログラムは、クライアント端末と、伝送装置と、記憶装置を搭載した補助記憶ノードと、伝送装置における補助ノード選択を補助する伝送装置コントローラとが接続されたネットワークの仮想記憶のためのプログラムであって、クライアント端末が、クライアント端末上のアプリケーション実行環境に付随して動作する仮想記憶システムで補助記憶に対するスワップ要求がクライアント端末に設定された補助記憶の記憶容量を超えて発生したかどうかを判定するステップと、伝送装置が、伝送装置コントローラに問い合わせを行うステップと、伝送装置コントローラが、何れの補助記憶ノードを選択すべきかを決定するステップと、伝送装置が、伝送コントローラが決定した補助記憶ノードに対して読み書き要求を送信し、スワップ対象のページを補助記憶ノードに配置するステップとを含むことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、スワップ対象のページデータをネットワークに接続された補助記憶ノードに配置し、このスワップ対象のページデータを伝送装置あるいは、伝送装置を制御する伝送装置コントローラ上の補助記憶ノード情報管理部が管理しているので、クライアント端末が端末上で可能な量以上のスワップ要求を行うことができる。
【００２２】
また、本発明によれば、使用する補助記憶ノードの選択を、伝送装置あるいは伝送装置を制御する伝送装置コントローラ上の補助記憶ノード情報管理部が行うため、クライアント端末が、補助記憶装置の位置や特性を考慮することなく、スワップ要求を行うことができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について図面を参照しながら説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態のネットワーク仮想記憶システムの構成を示すものである。図１に示すように、本発明の第１の実施形態のネットワーク仮想記憶システムは、クライアント端末１０１と、伝送装置１０３と、補助記憶ノード１０５とから構成される。
【００２４】
クライアント端末１０１は、ネットワークに接続された計算機（コンピュータ）である。クライアント端末１０１は、アプリケーション実行環境１１０と、仮想記憶管理システム１１３と、スワップドライバ１１５と、補助記憶１１８と、主記憶１１９と、を含む。
アプリケーション実行環境１１０は、プロセス１１１（アプリケーションプログラム）を１つ以上実行することができる。アプリケーション実行環境１１０の例としては、オペレーティングシステムや仮想マシン等である。
【００２５】
仮想記憶管理システム１１３は、アプリケーション実行環境１１０の使用する仮想記憶を管理する。仮想記憶管理システム１１３は、アプリケーション実行環境１１０と協調動作するか、あるいはアプリケーション実行環境１１０の内部に含まれる。
【００２６】
仮想記憶管理システム１１３は、ページ格納位置記憶部１１４を含む。ページ格納位置記憶部１１４は、スワップアウトされたページが、クライアント端末上の補助記憶１１８上と、ネットワーク上補助記憶ノードのどちらに保存されているかを記憶する。
【００２７】
伝送装置１０３は、パケットを伝送する装置である。伝送装置１０３の例としては、ブリッジ、スイッチ、ルータ等である。伝送装置１０３は、パケット判別部１３１と、経路選択部１３２と、補助記憶ノード選択部１３５と、補助記憶ノード情報管理部１３７と、を含む。
【００２８】
補助記憶ノード情報管理部１３７は、ネットワークに接続された補助記憶ノードの情報を格納する。パケット判別部１３１は、受信したパケットがスワップ要求のためのパケットであるか、それ以外のパケットであるかを判別し、スワップ要求のためのパケットであれば補助記憶ノード選択部１３５へ、それ以外のパケットであれば経路選択部１３２へ、処理を移す。
【００２９】
補助記憶ノード選択部１３５は、クライアント端末１０１から送信されたパケットの内容と、補助記憶ノード情報管理部を参照してパケットを伝送すべき補助記憶ノードを決定し、使用する補助記憶ノードに到達するために受信したパケットの書き換えが必要であれば行い、経路選択部１３２へ伝送する。
【００３０】
経路選択部１３２は、パケットの内容を参照し、宛先ノードに到達するにはどのポートからパケットを出力すべきか決定する。
【００３１】
補助記憶ノード１０５は、記憶装置１５１と、記憶装置コントローラ１５２と、を含む。記憶装置１５１は、ハードディスク、ソリッドステートドライブ、メモリアレイ等からなる。
【００３２】
次に、本発明の第１の実施形態における動作について、説明する。本発明の第１の実施形態では、クライアント端末１０１上のアプリケーション実行環境に付随して動作する仮想記憶管理システム１１３上で、補助記憶１１８に対するスワップアウト要求がクライアント端末１０１内の補助記憶１１８に設定された記憶容量を超えて発生すると、クライアント端末１０１はスワップアウトの要求パケットを伝送装置１０３に送信する。
【００３３】
伝送装置１０３は、スワップアウトの要求パケットを受信すると、ネットワークに接続された補助記憶ノード１０５を適切に選択して読み書き要求を送信し、スワップ対象のページを補助記憶ノード１０５に配置する。スワップアウトの要求パケットを受信した補助記憶ノード１０５では、受信したデータを内部の記憶装置１５１に書き込み、スワップアウト動作が完了する。
【００３４】
また、クライアント端末１０１上の仮想記憶管理システム１１３上で、スワップアウトしていたデータを主記憶１１９に戻したいときには、スワップイン要求が発生される。仮想記憶管理システム１１３は、スワップインするデータがクライアント端末１０１内の補助記憶１１８にあるときには、補助記憶１１８のスワップ対象ページを主記憶１１９へとスワップインして、処理が完了する。
【００３５】
スワップインするデータがクライアント端末１０１内の補助記憶１１８にないときには、スワップインの要求パケットを伝送装置１０３に送信する。
【００３６】
伝送装置１０３は、スワップインの要求パケットを受信すると、ネットワークに接続された補助記憶ノード１０５からスワップ対象のページの読み出しを行い、補助記憶ノード１０５は、スワップ対象のページのデータをクライアント端末１０１に送る。クライアント端末１０１は、受信したスワップ対象のページを主記憶１１９へとスワップインを行い、処理が完了する。
【００３７】
図２は、このように、クライアント端末１０１におけるスワップアウトの発生から完了までの動作を記述したフローチャートである。図３は、クライアント端末１０１におけるスワップインの発生から完了までの動作を記述したフローチャートである。また、図４は、伝送装置１０３がクライアント端末１０１からパケットを受信した際の動作を記述したフローチャートである。
【００３８】
なお、ここで、補助記憶ノード１０５を含む、ネットワークに接続されている補助記憶ノードの情報（位置、容量等）は、補助記憶ノード情報管理部１３７に格納されていることとする。また、ここで、クライアント端末１０１の送信したスワップイン及びスワップアウトの要求パケットは、伝送装置１０３に到達するように宛先が設定されていることとする。伝送装置１０３のアドレスを直接指定する他に、ＤＮＳ（動的名前解決）による設定、ＩＰｖ６エニキャストアドレスの使用、伝送装置１０３をネットワークのデフォルトゲートウェイとして設定すること等が、適用可能である。
【００３９】
先ず、仮想記憶管理システム１１３によりスワップアウトが要求された際の動作について、図２及び図４を参照しながら説明する。
【００４０】
図２において、クライアント端末１０１の仮想記憶管理システム１１３は、スワップアウト要求を捕捉すると（ステップＳ１０１）、ローカルの補助記憶１１８に空き容量があるかどうかを判定する（ステップＳ１０２）。補助記憶１１８に空き容量があれば（ステップＳ１０２のＹｅｓ）、ローカルの補助記憶１１８にスワップアウトを行い（ステップＳ１０３）、ページ格納位置記憶部１１４に、該当ページが補助記憶１１８に格納されたことを記録し（ステップＳ１０４）、処理が完了する。
【００４１】
補助記憶１１８に空き容量がなければ（ステップＳ１０２のＮｏ））、仮想記憶管理システム１１３は、ページ格納位置記憶部１１４に、該当ページが補助記憶１１８以外に格納されたことを記録し、スワップアウトしたいページをスワップドライバ１１５に渡す。スワップドライバ１１５は、ページを特定できる情報（アプリケーション実行環境識別子、仮想アドレス等）とスワップアウト対象のページを含んだ、伝送装置１０３の解釈できる形式のスワップアウトの要求パケットを伝送装置１０３に送信する（ステップＳ１０５）。この際、スワップアウト対象のページデータは、セキュリティを向上させるため暗号化が行われたり、伝送効率上昇のため圧縮されていても良い。
【００４２】
図４に示すように、伝送装置１０３のパケット判別部１３１は、パケットを受信すると（ステップＳ３０１）、受信したパケットがスワップアウト要求であるか、スワップイン要求であるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ３０２）。図２のステップＳ１０５で、クライアント端末１０１がスワップアウトの要求パケットを送信した場合には、ステップＳ３０２で、パケット判別部１３１は、受信したパケットがスワップアウト要求であると判断することになる。
【００４３】
ステップＳ３０２で、スワップアウトを示す要求パケットであると判断された場合には、続いて補助記憶ノード選択部１３５が、補助記憶ノード情報管理部１３７に格納された情報を参照し、ネットワーク上の補助記憶ノードの何れを使うべきか選択し（ステップＳ３０３）、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、要求パケットの書き換えを行う。この際、キャッシュを用いて、以前に判断を行った結果を流用して処理時間の短縮を図っても良い。ここで、補助記憶ノード１０５が使用されることに決定したとする。スワップアウトの要求パケットは、経路選択部１３２によって出力ポートが決定され、ネットワークへと送信される（ステップＳ３０５）。
【００４４】
スワップアウトの要求パケットを受信した補助記憶ノード１０５では、記憶装置コントローラ１５２が、受信したデータを内部の記憶装置１５１に書き込み、スワップアウト動作が完了する。
【００４５】
次に、仮想記憶管理システム１１３によりスワップインが要求された際の動作について、図３及び図４を参照しながら説明する。
【００４６】
図３において、クライアント端末１０１の仮想記憶管理システム１１３は、スワップイン要求を捕捉すると（ステップＳ２０１）、仮想記憶管理システム１１３は、スワップイン対象のページがクライアント端末１０１の内部のローカルの補助記憶１１８に格納されているかどうかを、ページ格納位置記憶部１１４を検索することにより判断する（ステップＳ２０２）。
【００４７】
スワップイン対象ページが補助記憶１１８上に存在する場合は（ステップＳ２０２のＹｅｓ）、補助記憶１１８から、クライアント端末１０１内の主記憶１１９へとスワップインを行い（ステップＳ２０３）、処理が完了する。
【００４８】
スワップイン対象ページが補助記憶１１８上に存在しない場合は（ステップＳ２０２のＮｏ）、仮想記憶管理システム１１３は、スワップインしたい仮想アドレスをスワップドライバ１１５に渡す。スワップドライバ１１５は、ページを特定できる情報（アプリケーション実行環境の識別子、アドレス等）を含んだ、伝送装置１０３の解釈できる形式のスワップインの要求パケットを生成し、伝送装置１０３に送信する（ステップＳ２０４）。
【００４９】
図４に示すように、伝送装置１０３のパケット判別部１３１は、パケットを受信すると（ステップＳ３０１）、受信したパケットがスワップアウトの要求パケットであるか、スワップインの要求パケットであるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ３０２）。図３のステップＳ２０４で、クライアント端末１０１がスワップインの要求パケットを送信した場合には、ステップＳ３０２で、パケット判別部１３１は、受信したパケットがスワップインの要求であると判断することになる。
【００５０】
ステップＳ３０２で、受信したパケットがスワップインの要求パケットであった場合は、続いて補助記憶ノード選択部１３５は、補助記憶ノード情報管理部１３７に格納された情報を検索し、ネットワーク上の補助記憶ノードの何れに格納されているのか判断し（ステップＳ３０４）、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、それを行う。この際キャッシュメモリを用いて、判断を行った結果を保存し、後に参照して処理時間の短縮を図っても良い。ここで、スワップイン要求されたページは補助記憶ノード１０５上に格納されていることが判明したとすると、要求パケットは、経路選択部１３２によって出力ポートが決定され、ネットワークへと送信される（ステップＳ３０５）。
【００５１】
要求パケットを受信した補助記憶ノード１０５では、記憶装置コントローラ１５２が、データを内部の記憶装置１５１から読み出し、クライアント端末１０１へと返答パケットを送信する。これにより、クライアント端末１０１は、返答パケットを受信することになる。
【００５２】
図３に示すように、クライアント端末１０１は返答パケットを受信すると（ステップＳ２０５）、返答パケットを受信したクライアント端末１０１上のスワップドライバ１１５は、返答パケットからデータを取り出して主記憶１１９上に書き戻して展開し（ステップＳ２０６）、スワップイン動作が完了する。
【００５３】
なお、ネットワーク仮想記憶システムの信頼性向上のために、スワップデータを配置する際に、スワップの特性と、接続される補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの分散配置を行うようにしても良い。
【００５４】
また、スワップの特性と、接続された補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの集中配置を行うようにしても良い。
【００５５】
また、スワップアウトされるデータを複製し、冗長性のある構成で複数の補助記憶ノードに保存する機構を持つようにしても良い。
【００５６】
例えば、ミラーリング、ＲＡＩＤ５（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ  ５）等のアルゴリズムに基づいて、複数の補助記憶ノード１０５を選択し、パケットの複製やエラー訂正コード計算等を行うことが可能である。
【００５７】
また、補助記憶ノード１０５内のデータを別の補助記憶ノードに移動し、それを補助記憶ノード情報管理部１３７に反映することで、クライアント端末１０１に認識されることなく、データの移動が可能である。これにより、クライアント端末１０１に影響を及ぼすことなく、補助記憶ノード１０５の停止、交換、データ配置最適化を行うことが可能となる。
【００５８】
次に、本発明の第１の実施形態でのスワップイン動作の高速化について説明する。
【００５９】
クライアント端末１０１上のプロセス１１１が正常動作をする限りは、仮想記憶管理システム１１３においてスワップアウトされたページは、いずれスワップインが行われることは明らかである。このスワップ特有の性質を用いて、補助記憶ノード情報管理部１３７は、補助記憶ノード１０５に対して、スワップインが予想される、つまり関連性の高いデータの先読みを指示し、記憶装置コントローラ１５２あるいは伝送装置上のバッファ上に展開しておくことにより、スワップインの高速化が可能である。
【００６０】
次にスワップインが予想されるデータの選定には、スワップイン要求が行われたページに近いアドレスのページを選択する、スワップイン要求が行われたページと同一の端末のページを選択する、等が例として挙げられる。
【００６１】
また、関連性の高いページが同時にスワップインされることを考慮し、スワップアウト発生時に、伝送シーケンスの効率化のため関連性の高いページを同一の補助記憶ノード１０５に格納することができる。あるいは補助記憶ノード１０５の特性次第では、スワップアウト発生時に、関連性の高いページを別の補助記憶ノードに格納し、並列に読み出すことにより性能を向上させることができる。
【００６２】
次に、本発明の第１の実施形態の効果について説明する。本発明の第１の実施形態を利用すると、クライアント端末１０１、伝送装置１０３、補助記憶ノード１０５が接続されたネットワークにおいて、クライアント端末１０１は、補助記憶装置の物理的形態やネットワーク上の配置を考慮することなく、スワップの要求パケットを送信し、クライアント端末１０１上に確保可能なスワップ領域を超える量のスワップを、効率的に行うことができる。これは、クライアント端末１０１の送信したパケットをもとに、伝送装置１０３がネットワークに接続された補助記憶ノード１０５を適切に選択して読み書き要求を送信し、スワップ対象のページデータを補助記憶ノード１０５に配置するためである。
【００６３】
＜第２の実施形態＞
図５は、本発明の第２の実施形態のネットワーク仮想システムの構成を示すものである。図５に示すように、本発明の第２の実施形態のネットワーク仮想記憶システムは、クライアント端末２０１と、伝送装置２０３と、補助記憶ノード２０５とから構成される。
【００６４】
クライアント端末２０１は、ネットワークに接続された計算機（コンピュータ）である。クライアント端末２０１は、アプリケーション実行環境２１０と、仮想記憶管理システム２１３と、スワップドライバ２１５と、主記憶２１９と、を含む。この実施形態では、クライアント端末２０１は、仮想記憶管理システム２１３は備えているが、クライアント端末２０１内に、補助記憶を備えていない。
【００６５】
アプリケーション実行環境２１０は、プロセス２１１（アプリケーションプログラム）を１つ以上実行することができる。アプリケーション実行環境２１０の例としては、オペレーティングシステムや仮想マシン等である。
【００６６】
仮想記憶管理システム２１３は、アプリケーション実行環境２１０の使用する仮想記憶を管理する。アプリケーション実行環境２１０と協調動作するか、あるいはアプリケーション実行環境２１０の内部に含まれる。
【００６７】
伝送装置２０３は、パケットを伝送する装置（ブリッジ、スイッチ、ルータ等）である。伝送装置２０３は、パケット判別部２３１と、経路選択部２３２と、補助記憶ノード選択部２３５と、補助記憶ノード情報管理部２３７と、を含む。
【００６８】
補助記憶ノード情報管理部２３７は、ネットワークに接続された補助記憶ノードの情報を格納する。パケット判別部２３１は、受信したパケットがスワップ要求のためのパケットであるか、それ以外のパケットであるかを判別し、スワップ要求のためのパケットであれば補助記憶ノード選択部２３５へ、それ以外のパケットであれば経路選択部２３２へ、処理を移す。
【００６９】
補助記憶ノード選択部２３５は、パケットの内容と、補助記憶ノード情報管理部を参照してパケットを伝送すべき補助記憶ノードを決定し、使用する補助記憶ノードに到達するために受信したパケットの書き換えが必要であれば行い、経路選択部２３２へ伝送する。
【００７０】
経路選択部２３２は、パケットの内容を参照し、宛先ノードに到達するにはどのポートからパケットを出力すべきか決定する。
【００７１】
補助記憶ノード２０５は、記憶装置２５１と、記憶装置コントローラ２５２と、を含む。記憶装置１５１は、ハードディスク、ソリッドステートドライブ、メモリアレイ等からなる。
【００７２】
次に、本発明の第２の実施形態における動作について、説明する。前述の第１の実施形態では、クライアント端末１０１内に補助記憶１１８があり、補助記憶１１８の記憶容量を越えるような場合に、伝送装置１０３にスワップの要求を行った。これに対して、この第２の実施形態は、クライアント端末２０１内には、補助記憶を備えていない。この第２の実施形態は、このように、補助記憶を備えていないので、主記憶２１９の記憶容量を超える場合に、スワップ処理が発生する。
【００７３】
図６は、クライアント端末２０１におけるスワップアウトの発生から完了までの動作を記述したフローチャートである。図７は、クライアント端末２０１におけるスワップインの発生から完了までの動作を記述したフローチャートである。また、図８は、伝送装置２０３がクライアント端末２０１からパケットを受信した際の動作を記述したフローチャートである。
【００７４】
なお、ここで、補助記憶ノード２０５を含む、ネットワークに接続されている補助記憶ノードの情報（位置、容量等）は、補助記憶ノード情報管理部２３７に格納されていることとする。クライアント端末２０１の送信した要求パケットは、伝送装置２０３に到達するように宛先が設定されていることとする。
【００７５】
先ず、仮想記憶管理システム２１３によりスワップアウトが要求された際の動作について、図６及び図８を参照しながら説明する。
【００７６】
図６において、クライアント端末２０１の仮想記憶管理システム２１３は、スワップアウト要求を捕捉すると（ステップＳ４０１）、スワップアウトしたいページをスワップドライバ２１５に渡し、スワップドライバ２１５は、ページを特定できる情報（アプリケーション実行環境の識別子、アドレス等）を含んだ、伝送装置２０３の解釈できる形式の要求パケットを送信する（ステップＳ４０２）。
【００７７】
図８に示すように、伝送装置２０３のパケット判別部２３１は、パケットを受信すると（ステップＳ６０１）、受信したパケットがスワップアウト要求であるか、スワップイン要求であるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ６０２）。図６のステップＳ４０２で、クライアント端末２０１がスワップアウトの要求パケットを送信した場合には、ステップＳ６０２で、パケット判別部２３１は、受信したパケットがスワップアウト要求であると判断することになる。
【００７８】
ステップＳ６０２で、スワップアウトを示す要求パケットであった場合は、続いて補助記憶ノード選択部２３５が、補助記憶ノード情報管理部２３７に格納された情報を参照し、ネットワーク上の補助記憶ノードの何れを使うべきか選択し（ステップＳ６０３）、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、要求パケットの書き換えを行う。ここで、補助記憶ノード２０５が使用されることに決定したとする。スワップアウトの要求パケットは、経路選択部２３２によって出力ポートが決定され、ネットワークへと送信される（ステップＳ６０５）。
【００７９】
スワップアウトの要求パケットを受信した補助記憶ノード２０５では、記憶装置コントローラ２５２が、受信したデータを内部の記憶装置２５１に書き込み、スワップアウト動作が完了する。
【００８０】
次に、仮想記憶管理システム２１３によりスワップインが要求された際の動作について、図７及び図８を参照しながら説明する。
【００８１】
図７において、クライアント端末２０１の仮想記憶管理システム２１３は、スワップイン要求を捕捉すると（ステップＳ５０１）、スワップインしたい仮想アドレスをスワップドライバ２１５に渡す。スワップドライバ２１５は、ページを特定できる情報（アプリケーション実行環境の識別子、アドレス等）を含んだ、伝送装置２０３の解釈できる形式のスワップインの要求パケットを生成し、伝送装置２０３に送信する（ステップＳ５０２）。
【００８２】
図８に示すように、伝送装置２０３のパケット判別部２３１は、パケットを受信すると（ステップＳ６０１）、受信したパケットがスワップアウトの要求パケットであるか、スワップインの要求パケットであるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ６０２）。図７のステップＳ５０２で、クライアント端末２０１がスワップインの要求パケットを送信した場合には、ステップＳ６０２で、パケット判別部２３１は、受信したパケットがスワップインの要求であると判断することになる。
【００８３】
ステップＳ６０２で、受信したパケットがスワップインの要求パケットであった場合は、続いて補助記憶ノード選択部２３５は、補助記憶ノード情報管理部２３７に格納された情報を検索し、ネットワーク上の補助記憶ノードの何れに格納されているのか判断し（ステップＳ６０４）、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、それを行う。ここで、スワップイン要求されたページは補助記憶ノード２０５上に格納されていることが判明したとすると、要求パケットは、経路選択部２３２によって出力ポートが決定され、ネットワークへと送信される（ステップＳ６０５）。
【００８４】
要求パケットを受信した補助記憶ノード２０５では、記憶装置コントローラ２５２が、データを内部の記憶装置２５１から読み出し、クライアント端末２０１へと返答パケットを送信する。これにより、クライアント端末２０１は、返答パケットを受信することになる。
【００８５】
図７に示すように、クライアント端末２０１は返答パケットを受信すると（ステップＳ５０３）、返答パケットを受信したクライアント端末２０１上のスワップドライバ２１５は、返答パケットからデータを取り出して主記憶２１９上に書き戻して展開し（ステップＳ５０４）、スワップイン動作が完了する。
【００８６】
なお、この第２の実施形態の場合も、第１の実施形態と同様に、ネットワーク仮想記憶システムの信頼性向上のために、スワップデータを配置する際に、スワップの特性と、接続される補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの分散配置を行うようにしても良い。また、スワップの特性と、接続された補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの集中配置を行うようにしても良い。また、スワップアウトされるデータを複製し、冗長性のある構成で複数の補助記憶ノードに保存する機構を持つようにしても良い。
【００８７】
また、この第２の実施形態の場合も、第１の実施形態と同様に、このスワップ特有の性質を用いて、スワップイン動作の高速化を図ることができる。
【００８８】
次に、本発明の第２の実施形態の効果について説明する。本発明の第２の実施形態では、補助記憶を持たないクライアント端末２０１、伝送装置２０３、補助記憶ノード２０５が接続されたネットワークにおいて、クライアント端末２０１は、補助記憶装置の物理的形態やネットワーク上の配置を考慮することなく、スワップ要求パケットを送信し、クライアント端末単体では実現できないスワップを、効率的に行うことができる。これは、クライアント端末２０１の送信したパケットをもとに、伝送装置２０３がネットワークに接続された補助記憶ノードを適切に選択して読み書き要求を送信し、スワップ対象のページデータを前記補助記憶ノードに配置するためである。
【００８９】
＜第３の実施形態＞
図９は、本発明の第３の実施形態のネットワーク仮想システムの構成を示すものである。図９に示すように、本発明の第３の実施形態のネットワーク仮想記憶システムは、クライアント端末３０１と、伝送装置３０３と、補助記憶ノード３０５と、伝送装置コントローラ３０７とから構成される。
【００９０】
クライアント端末３０１は、ネットワークに接続された計算機（コンピュータ）である。クライアント端末３０１は、アプリケーション実行環境３１０と、仮想記憶管理システム３１３と、スワップドライバ３１５と、補助記憶３１８と、主記憶３１９と、を含む。
【００９１】
アプリケーション実行環境３１０は、プロセス３１１（アプリケーションプログラム）を１つ以上実行することができる。アプリケーション実行環境３１０の例としては、オペレーティングシステムや仮想マシン等である。
【００９２】
仮想記憶管理システム３１３は、アプリケーション実行環境３１０の使用する仮想記憶を管理する。仮想記憶管理システム３１３は、アプリケーション実行環境３１０と協調動作するか、あるいはアプリケーション実行環境３１０の内部に含まれる。
【００９３】
仮想記憶管理システム３１３は、ページ格納位置記憶部３１４を含む。ページ格納位置記憶部３１４は、スワップアウトされたページが、クライアント端末上の補助記憶３１８上と、ネットワーク上補助記憶ノードのどちらに保存されているかを記憶する。
【００９４】
伝送装置３０３は、パケットを伝送する装置（ブリッジ、スイッチ、ルータ等）である。伝送装置３０３は、パケット判別部３３１と、経路選択部３３２と、コントローラ連携部３３９と、を含む。
【００９５】
パケット判別部３３１は、受信したパケットがスワップ要求のためのパケットであるか、それ以外のパケットであるかを判別し、スワップ要求のためのパケットであればコントローラ連携部３３９へ、それ以外のパケットであれば経路選択部３３２へ、処理を移す。
【００９６】
コントローラ連携部３３９は、要求パケットを伝送すべき補助記憶ノードを決定するために、伝送装置コントローラ３０７に問い合わせ、伝送装置コントローラ３０７の決定した要求対象補助記憶ノード３０５に到達するために、パケットの書き換えが必要であれば行い、経路選択部３３２へ処理を移す。
【００９７】
経路選択部３３２は、パケットの内容を参照し、宛先ノードに到達するにはどのポートからパケットを出力すべきか決定する。
【００９８】
伝送装置コントローラ３０７は、補助記憶ノード選択部３７５と、補助記憶ノード情報管理部３７７と、を含む。
【００９９】
補助記憶ノード情報管理部３７７は、ネットワークに接続された補助記憶ノードの情報を格納する。
【０１００】
補助記憶ノード選択部３７５は、伝送装置３０３から送られた情報と、補助記憶ノード情報管理部３７７を参照し、伝送装置３０３が要求パケットを伝送すべき補助記憶ノード３０５を決定し、選択結果を伝送装置３０３へ伝える。
【０１０１】
補助記憶ノード３０５は、記憶装置３５１と、記憶装置コントローラ３５２と、を含む。記憶装置１５１は、ハードディスク、ソリッドステートドライブ、メモリアレイ等からなる。
【０１０２】
先ず、仮想記憶管理システム３１３によりスワップアウトが要求された際の動作について、図１０及び図１２を参照しながら説明する。
【０１０３】
図１０において、クライアント端末３０１の仮想記憶管理システム３１３は、スワップアウト要求を捕捉すると（ステップＳ７０１）、クライアント端末３０１内のローカルの補助記憶３１８に空き容量があるかどうかを判定する（ステップＳ７０２）。補助記憶３１８に空き容量があれば（ステップＳ７０２のＹｅｓ）、クライアント端末３０１内のローカルの補助記憶３１８にスワップアウトを行い（ステップＳ７０３）、ページ格納位置記憶部３１４に、該当ページが補助記憶３１８に格納されたことを記録し（ステップＳ７０４）、処理が完了する。
【０１０４】
補助記憶３１８に空き容量がなければ（ステップＳ７０２のＮｏ）、仮想記憶管理システム３１３は、ページ格納位置記憶部３１４に、該当ページが補助記憶３１８以外に格納されたことを記録し、スワップアウトしたいページをスワップドライバ３１５に渡す。スワップドライバ３１５は、ページを特定できる情報（アプリケーション実行環境識別子、仮想アドレス等）とスワップアウト対象のページを含んだ、伝送装置３０３の解釈できる形式のスワップアウトの要求パケットを伝送装置３０３に送信する（ステップＳ７０５）。
【０１０５】
図１２に示すように、伝送装置３０３のパケット判別部３３１は、パケットを受信すると（ステップＳ９０１）、受信したパケットがスワップ要求パケットであるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ９０２）。図１０のステップＳ７０５で、クライアント端末３０１がスワップアウトの要求パケットを送信した場合には、ステップＳ９０２で、パケット判別部３３１は、受信したパケットがスワップ要求であると判断することになる。
【０１０６】
スワップ要求のパケットであった場合は（ステップＳ９０２のＹｅｓ）、コントローラ連携部３３９が、ネットワークを経由して要求パケットの全体または一部を伝送装置コントローラ３０７へ送信して、問い合わせを行う（ステップＳ９０３）。
【０１０７】
伝送装置コントローラ３０７では、補助記憶ノード選択部３７５において、伝送装置３０３から送られたパケットと、補助記憶ノード情報管理部３７７を参照し、伝送装置３０３が要求パケットを伝送すべき補助記憶ノードを決定し、選択結果を伝送装置３０３に送信する。伝送装置３０３は伝送装置コントローラ３０７からの選択結果を受信し、選択結果を受信した伝送装置３０３は、それを用いて要求パケットの伝送を行う。この際、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、要求パケットの書き換えを行う。また、この際、キャッシュを用いて、以前の問い合わせ結果を流用して処理時間の短縮を図っても良い。
【０１０８】
ここで、補助記憶選択アルゴリズムによって補助記憶ノード３０５が使用されることに決定したとする。この場合、要求パケットは、経路選択部３３２によって出力ポートを決定され、ネットワークへと送信される（ステップＳ９０４）。
【０１０９】
要求パケットを受信した補助記憶ノード３０５では、記憶装置コントローラ３５２が、受信したデータを内部の記憶装置３５１に書き込み、スワップアウト動作が完了する。
【０１１０】
次に、仮想記憶管理システム３１３によりスワップインが要求された際の動作について、図１１及び図１２を参照しながら説明する。
【０１１１】
図１１において、クライアント端末３０１の仮想記憶管理システム３１３は、スワップイン要求を捕捉すると（ステップＳ８０１）、スワップイン対象のページが補助記憶３１８に格納されているかどうかを、ページ格納位置記憶部３１４を検索することにより判断する（ステップＳ８０２）。
【０１１２】
スワップイン対象ページが補助記憶３１８上に存在する場合は（ステップＳ８０２のＹｅｓ）、補助記憶３１８からクライアント端末３０１内のローカルの主記憶３１９へとスワップインを行い（ステップＳ８０３）、処理が完了する。
【０１１３】
スワップイン対象ページが補助記憶３１８上に存在しない場合は（ステップＳ８０２のＮｏ）、仮想記憶管理システム３１３は、スワップインしたい仮想アドレスをスワップドライバ３１５に渡す。スワップドライバ３１５は、ページを特定できる情報（アプリケーション実行環境の識別子、アドレス等）を含んだ、伝送装置３０３の解釈できる形式のスワップインの要求パケットを生成し、伝送装置３０３に送信する（ステップＳ８０４）。
【０１１４】
図１２に示すように、伝送装置３０３のパケット判別部３３１は、パケットを受信すると（ステップＳ９０１）、受信したパケットがスワップの要求パケットであるか、それ以外の通常伝送を行うパケットであるかを、判断する（ステップＳ９０２）。図１１のステップＳ８０４で、クライアント端末３０１がスワップインの要求パケットを送信した場合には、ステップＳ９０２で、パケット判別部３３１は、受信したパケットがスワップの要求であると判断することになる。
【０１１５】
受信したパケットがスワップインの要求パケットであった場合は（ステップＳ９０２のＹｅｓ）、コントローラ連携部３３９が、ネットワークを経由して要求パケットの全体または一部を伝送装置コントローラ３０７へ送信し、問い合わせを行う（ステップＳ９０３）。
【０１１６】
伝送装置コントローラ３０７では、補助記憶ノード選択部３７５において、伝送装置３０３から送られたパケットと、補助記憶ノード情報管理部３７７を参照し、伝送装置３０３が要求パケットを伝送すべき補助記憶ノード３０５を決定し、選択結果を伝送装置３０３へ伝える。選択結果を受信した伝送装置３０３では、それを用いて要求パケットの伝送を行う。この際、その補助記憶ノードに要求パケットを到達させるために要求パケットの書き換えが必要であれば、それを行う。また、この際、キャッシュを用いて、以前の問い合わせ結果を流用して処理時間の短縮を図っても良い。
【０１１７】
ここで、補助記憶選択アルゴリズムによって補助記憶ノード３０５が使用されることに決定したとする。この場合、要求パケットは、経路選択部３３２によって出力ポートを決定され、ネットワークへと送信される（ステップＳ９０４）。
【０１１８】
要求パケットを受信した補助記憶ノード３０５では、記憶装置コントローラ３５２が、データを内部の記憶装置３５１から読み出し、クライアント端末３０１へと返答パケットを送信する。
【０１１９】
図１１に示すように、クライアント端末３０１は返答パケットを受信すると（ステップＳ８０５）、返答パケットを受信したクライアント端末３０１上のスワップドライバ３１５は、返答パケットからデータを取り出して主記憶３１９上に書き戻して展開し（ステップＳ８０６）、スワップイン動作が完了する。
【０１２０】
なお、この第３の実施形態の場合も、第１及び第２の実施形態と同様に、ネットワーク仮想記憶システムの信頼性向上のために、スワップデータを配置する際に、スワップの特性と、接続される補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの分散配置を行うようにしても良い。また、スワップの特性と、接続された補助記憶ノードの特性を考慮し、同時にスワップインされると予想されるデータの集中配置を行うようにしても良い。また、スワップアウトされるデータを複製し、冗長性のある構成で複数の補助記憶ノードに保存する機構を持つようにしても良い。
【０１２１】
また、この第３の実施形態の場合も、第１及び第２の実施形態と同様に、このスワップ特有の性質を用いて、スワップイン動作の高速化を図ることができる。
【０１２２】
次に、本発明の第３の実施形態の効果について説明する。本実施の第３の実施形態では、クライアント端末３０１、伝送装置３０３、伝送装置コントローラ３０７、補助記憶ノード３０５が接続されたネットワークにおいて、クライアント端末３０１は、補助記憶装置の物理的形態やネットワーク上の配置を考慮することなく、スワップ要求パケットを送信し、クライアント端末３０１上に確保可能なスワップ領域を超える量のスワップを、効率的に行うことができる。これは、クライアント端末３０１の送信したパケットをもとに、伝送装置コントローラ３０７がネットワークに接続された補助記憶ノード３０５を適切に選択し、伝送装置３０１がその補助記憶ノードへと読み書き要求を伝送し、スワップ対象のページデータを前記補助記憶ノードに配置するためである。
【０１２３】
＜変形例、応用例＞
上述した実施形態では、補助記憶ノード１０５、２０５、３０５はネットワーク上に存在する独立したノードであるが、クライアント端末１０１、２０１、３０１、伝送装置１０３、２０３、３０３、伝送装置コントローラ３０７の何れかに内蔵されていても良い。
【０１２４】
以上好ましい実施形態をあげて本発明を説明したが、本発明は必ずしも上記実施形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。当然ながら、以上に述べた実施形態を、相互に組み合わせて実施することもできる。例えば、第２の実施形態において説明した補助記憶を持たないクライアント端末を、第３の実施形態において適用しても良い。
【０１２５】
上述の各装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【０１２６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明の第１の実施形態においてスワップアウトが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図３】本発明の第１の実施形態においてスワップインが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図４】本発明の第１の実施形態において伝送装置がクライアント端末からパケットを受信した際の動作を示すフローチャートである。
【図５】本発明の第２の実施形態の構成を示すブロック図である。
【図６】本発明の第２の実施形態においてスワップアウトが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図７】本発明の第２の実施形態においてスワップインが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図８】本発明の第２の実施形態において伝送装置がクライアント端末からパケットを受信した際の動作を示すフローチャートである。
【図９】本発明の第３の実施形態の構成を示すブロック図である。
【図１０】本発明の第３の実施形態においてスワップアウトが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図１１】本発明の第３の実施形態においてスワップインが発生した場合のクライアント端末上での動作を示すフローチャートである。
【図１２】本発明の第３の実施形態において伝送装置がクライアント端末からパケットを受信した際の動作を示すフローチャートである。
【符号の説明】
【０１２８】
１０１，２０１，３０１：クライアント端末
１０３，２０３，３０３：伝送装置
１０５，２０５，３０５：補助記憶ノード
１１０，２１０，３１０：アプリケーション実行環境
１１３，２１３，３１３：仮想記憶管理システム
１１５，２１５，３１５：スワップドライバ
１１８，３１８：補助記憶
１１９，２１９, ３１９：記憶
１３１，２３１，３３１：パケット判別部
１３２，２３２，３３２：経路選択部
１３５，２３５，３７５：補助記憶ノード選択部
１３７，２３７，３７７：補助記憶ノード情報管理部
１５１，２５１，３５１：記憶装置
１５２，２５２，３５２：記憶装置コントローラ
３０７：伝送装置コントローラ
【図１】
2010128560.tif 000003
【図２】
2010128560.tif 000004
【図３】
2010128560.tif 000005
【図４】
2010128560.tif 000006
【図５】
2010128560.tif 000007
【図６】
2010128560.tif 000008
【図７】
2010128560.tif 000009
【図８】
2010128560.tif 000010
【図９】
2010128560.tif 000011
【図１０】
2010128560.tif 000012
【図１１】
2010128560.tif 000013
【図１２】
2010128560.tif 000014