(57)【要約】【課題】シングルシステムイメージを用いた計算機システムにおいて、計算機システム内のネットワークの冗長な通信を低減し、ネットワークを効率よく使用するための技術を提供する。【解決手段】本発明の計算機ノードは、複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードであって、他の計算機ノードからソフトウエア資源を取得するソフトウエア資源移動制御手段と、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が他の計算機ノードから取得したソフトウエア資源を用いてプロセスを生成するプロセス生成手段を有する。【選択図】図２
2010287172.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードであって、
他の計算機ノードからソフトウエア資源を取得するソフトウエア資源移動制御手段と、
プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が他の計算機ノードから取得したソフトウエア資源を用いてプロセスを生成するプロセス生成手段と、
を有する計算機ノード。
【請求項２】
前記プロセス生成手段は、プロセスを生成しようとするとき、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が過去に取得し、使用可能なソフトウエア資源があるか否かを判別し、使用可能なソフトウエア資源があれば、該ソフトウエア資源を用いてプロセスを生成し、使用可能なソフトウエア資源がなければ、前記ソフトウエア資源移動制御手段に他の計算機ノードから新たにソフトウエア資源を取得するように依頼する、
請求項１に記載の計算機ノード。
【請求項３】
前記ソフトウエア資源移動制御手段は、前記プロセス生成手段からソフトウエア資源の取得を依頼されると、計算機システム内の複数の計算機ノードにソフトウエア資源を要求し、要求に応じた計算機ノードからソフトウエア資源を取得し、取得したソフトウエア資源の少なくとも一部を前記プロセス生成手段に提供する、
請求項１または２に記載の計算機ノード。
【請求項４】
前記ソフトウエア資源移動制御手段は、他の計算機ノードから取得したソフトウエア資源のうち、前記プロセス生成手段が使用しなかったソフトウエア資源を以後のプロセスの生成のために確保しておく、
請求項３に記載の計算機ノード。
【請求項５】
前記ソフトウエア資源移動制御手段が取得したソフトウエア資源の使用状況を定期的に監視し、所定時間使用されていないソフトウエア資源を提供元の計算機ノードに返却するように前記ソフトウエア資源移動制御手段に要求するソフトウエア資源監視手段をさらに有し、
前記ソフトウエア資源移動制御手段は、前記ソフトウエア資源監視手段からの要求に従って、所定時間使用されていないソフトウエア資源を提供元の計算機ノードに返却する、
請求項１から４のいずれか１項に記載の計算機ノード。
【請求項６】
他の計算機ノードにプロセスの生成を要求するプロセス生成要求手段をさらに有し、
前記プロセス生成手段は、プロセスを生成するために必要なソフトウエア資源が取得できないと、前記プロセス生成要求手段に他の計算機ノードにプロセスの生成を要求するように依頼する、
請求項１から５のいずれか１項に記載の計算機ノード。
【請求項７】
前記プロセス生成要求手段は、計算機システム内の計算機ノードの負荷状況に応じてプロセスの生成を要求する計算機ノードを決定する、
請求項６に記載の計算機ノード。
【請求項８】
他の計算機ノードにプロセスの生成を要求するプロセス生成要求手段と、
前記プロセス生成手段からの依頼に応じて、生成すべきプロセスに関連するプロセスを決定し、該生成すべきプロセスと該生成すべきプロセスに関連するプロセスとの生成を同じ計算機ノードに要求するように前記プロセス生成要求手段に依頼する関連プロセス決定手段と、をさらに有し、
前記プロセス生成手段は、プロセスを生成するために必要なソフトウエア資源が取得できないと、前記プロセス再配置手段に他の計算機ノードにプロセスの生成を要求するように依頼する、
請求項１から５のいずれか１項に記載の計算機ノード。
【請求項９】
前記関連プロセス決定手段は、計算機システム内の計算機ノードの負荷状況に応じてプロセスの生成を要求する計算機ノードを決定する、
請求項８に記載の計算機ノード。
【請求項１０】
前記関連プロセス決定手段は、前記生成すべきプロセスに関連するプロセスとして、該生成すべきプロセスの親プロセスを選択する、
請求項８または９に記載の計算機ノード。
【請求項１１】
前記関連プロセス決定手段は、前記生成すべきプロセスに関連するプロセスとして、該生成すべきプロセスと接続するプロセスをさらに選択する、
請求項１０に記載の計算機ノード。
【請求項１２】
前記関連プロセス決定手段は、前記生成すべきプロセスに関連するプロセスとして、該生成すべきプロセスと同一のプロセスグループに属するプロセスを選択する、
請求項８または９に記載の計算機ノード。
【請求項１３】
前記関連プロセス決定手段は、前記生成すべきプロセスに関連するプロセスとして、該生成すべきプロセスと同一のログインセッションに属するプロセスを選択する、
請求項８または９に記載の計算機ノード。
【請求項１４】
複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードにおけるプロセス生成方法であって、
プロセス生成手段が、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、
ソフトウエア資源移動制御手段が、前記プロセス生成手段がプロセスを生成するとき自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、
前記プロセス生成手段が、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が他の計算機ノードから取得したソフトウエア資源を用いてプロセスを生成する、プロセス生成方法。
【請求項１５】
前記プロセス生成手段が、プロセスを生成するために必要なソフトウエア資源が取得できないと、プロセス再配置手段に他の計算機ノードにプロセスの生成を要求するように依頼し、
関連プロセス決定手段が、前記プロセス生成手段からの依頼に応じて、生成すべきプロセスに関連するプロセスを決定し、前記生成すべきプロセスと該生成すべきプロセスに関連するプロセスとの生成を同じ計算機ノードに要求するようにプロセス生成要求手段に依頼し、
プロセス生成要求手段が、前記プロセス再配置手段からの依頼に応じて、他の計算機ノードにプロセスの生成を要求する、
請求項１４に記載のプロセス生成方法。
【請求項１６】
複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードで用いられるプログラムであって、
プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、該ソフトウエア資源を用いてプロセスを生成する処理をコンピュータに実行させるためのプログラム。
【請求項１７】
プロセスを生成するために必要なソフトウエア資源が取得できないと、生成すべきプロセスに関連するプロセスを決定し、前記生成すべきプロセスと該生成すべきプロセスに関連するプロセスとの生成を同じ計算機ノードに要求する処理をさらに実行させるための請求項１６に記載のプログラム。
【請求項１８】
複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムであって、
プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、該ソフトウエア資源を用いてプロセスを生成する複数の計算機ノードを有する計算機システム。
【請求項１９】
前記計算機ノードが、プロセスを生成するために必要なソフトウエア資源が取得できないと、生成すべきプロセスに関連するプロセスを決定し、前記生成すべきプロセスと該生成すべきプロセスに関連するプロセスとの生成を同じ計算機ノードに要求する、
請求項１８に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機ノードを有する計算機システムにおいて各計算機ノードでのプロセスの生成方法に関する。
【背景技術】
【０００２】
計算機システムを利用する利用者数および計算機システムが取り扱うデータ量は、日々増加し続けている。複数の計算機ノードで処理を実行する計算機システムにおいては、各計算機ノードの処理を効率良く負荷分散するための技術が重要になっている。
【０００３】
例えば、特許文献１には、計算機システムにおいて、各計算機ノードの処理を負荷分散する技術が提案されている。特許文献１では、各計算機ノードが、各計算機ノードで実行されるサービスの負荷を計測するサービス負荷モニタおよび各計算機ノード自身の負荷を計測するノード負荷モニタを有する。そして、計算機システム内の負荷を平準化するために、各計算機ノードは、サービス負荷モニタおよびノード負荷モニタの計測結果をもとにサービス実行に最適な計算機ノードを決定し、決定した計算機ノードにサービスを再配置する。
【０００４】
このような計算機システムでは、サービスを再配置するためにプロセスマイグレーションという技術が用いられる。プロセスマイグレーションとは、ある計算機ノードで実行されているプロセスの実行状態を示す実行コンテキストを他の計算機ノードに転送し、転送された計算機ノード上で、転送された実行コンテキストを用いてプロセスの実行を継続する技術である。尚、プロセスの実行コンテキストには、そのプロセスが使用しているメモリ空間上のデータ（プログラムのコードを含む）、ＣＰＵ（Central Processing Unit；中央処理装置）の状態を示すレジスタの値、そのプロセスがオープンしているファイルの情報等が含まれる。
【０００５】
プロセスマイグレーション技術を用いれば、複数の計算機ノードを有する計算機システムにおいて、特定の計算機ノードに負荷が集中している場合に、その計算機ノード上で実行されているプロセスを他の計算機ノードに移動させることができる。これにより、計算機ノードの負荷が平準化される。
【０００６】
例えば、特許文献２に、プロセスマイグレーションを用いた技術が提案されている。特許文献２では、転送元の計算機ノードは、あるプロセスのコピーを転送先の計算機ノードに転送するとき、転送を開始しても、そのプロセスの実行を継続しておく。そして、転送元の計算機ノードは、プロセスのコピーの転送を完了したときに、自身が転送中に実行したプロセスの実行記録を転送する。転送先の計算機ノードは、転送されてきたプロセスのコピーを格納し、転送が完了した後に、実行記録によってコピーを更新することにより、転送元の計算機ノードとの間でプロセスの同期をとる。これにより、計算機ノード間でプロセスを移動させる際にプロセスの実行を停止する時間を短縮することができる。
【０００７】
このようなプロセスマイグレーションにおいては、計算機ノード間でソフトウエア資源の競合が課題となる。ソフトウエア資源とは、プロセスＩＤ（Identification）やポート番号等のプロセスが有する識別子の集合のような論理的な資源のことである。プロセスＩＤとは、計算機ノードにより実行されるプロセスを一意に特定するための識別情報である。ポート番号とは、計算機ノードが、計算機ノード間の通信に用いるポートを特定するための識別番号である。
【０００８】
これらソフトウエア資源は各計算機ノードのＯＳにより管理される。ＯＳは、プロセスを制御するときプロセスＩＤによってプロセスを特定する。また、ＯＳは、計算機ノード間の通信を行うとき、通信に用いるポートをポート番号によって特定する。
【０００９】
しかし、複数の計算機ノードによってプロセスを実行する計算機システムでは、ソフトウエア資源である識別情報が計算機ノード間で重複していると、プロセスマイグレーションが困難となる。例えば、ある計算機ノードがあるプロセスに使っているプロセスＩＤが、他の計算機ノードでは他のプロセスに使われていれば、計算機ノード間でプロセスを移動させるときプロセスＩＤの重複が起こるおそれがある。また、例えば、ある計算機ノードがあるプロセスの通信に使っているポート番号が、他の計算機ノードでは他のプロセスの通信に使われていれば、計算機ノード間でプロセスを移動させるときポート番号の重複が起こるおそれがある。
【００１０】
この課題を解決する方法として、複数の計算機ノードを有する計算機システムにおいて、利用者に計算機ノードが複数あることを隠蔽するシングルシステムイメージという技術が非特許文献１に示される。シングルシステムイメージを用いた計算機システムでは、各計算機ノードに対して、その計算機ノードがプロセスに付与することができるソフトウエア資源を割り当てておくことにより、ソフトウエア資源が計算機システム内で重複することを防止している。
【００１１】
シングルシステムイメージを用いた計算機システムでは、計算機システム全体として、すべての計算機ノードにおけるソフトウエア資源が一意に管理される。あるプロセスＩＤやあるポート番号は、計算機システム内に１つずつしか存在しないため、各計算機ノードが管理するプロセスＩＤやポート番号が、計算機システム内で重複することはない。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−１００３８１公報
【特許文献２】特開２００４−７８４６５公報
【非特許文献】
【００１３】
【非特許文献１】Rajkumar Buyya, Single System Image(SSI), The Internal Journal of High Performance Computing Applications, Volume 15, No.2, Summer 2001, pp.124-135, 2001
【発明の概要】
【発明が解決しようとする課題】
【００１４】
シングルシステムイメージを用いた計算機システムでは、計算機ノードは、あるプロセスを生成するときに、そのプロセスの生成に必要なソフトウエア資源がなければ、それ以上プロセスを生成することができないので、そのプロセスの生成を他の計算機ノードに要求する。このため、そのプロセスは、他の計算機ノード上で生成されることになる。
【００１５】
例えば、ある計算機ノードが、実行中のプロセスの子プロセスを生成するときに、そのプロセスの生成に必要なソフトウエア資源がなければ、その子プロセスは、その計算機ノード以外の計算機ノードで生成されることになる。子プロセスは、親プロセスからの属性を引き継ぐために、親プロセスの実行コンテキストをコピーして生成される。このため、親プロセスが生成された計算機ノード以外の計算機ノードで子プロセスが生成される場合、親プロセスの実行コンテキストのコピーがネットワーク上で送受信され、ネットワークの通信帯域を圧迫する。また、子プロセスが生成された後、親プロセスと子プロセスの間の通信は、全てネットワークを介して行われることになり、さらに通信帯域を圧迫することになる。
【００１６】
本発明の目的は、シングルシステムイメージを用いた計算機システムにおいて、計算機システム内のネットワークの冗長な通信を低減し、ネットワークを効率よく使用するための技術を提供することである。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明の計算機ノードは、複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードであって、他の計算機ノードからソフトウエア資源を取得するソフトウエア資源移動制御手段と、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が他の計算機ノードから取得したソフトウエア資源を用いてプロセスを生成するプロセス生成手段を有する。
【００１８】
また、上記目的を達成するために、本発明のプロセス生成方法は、複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードにおけるプロセス生成方法であって、プロセス生成手段が、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、ソフトウエア資源移動制御手段が、前記プロセス生成手段がプロセスを生成するとき自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、前記プロセス生成手段が、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、前記ソフトウエア資源移動制御手段が他の計算機ノードから取得したソフトウエア資源を用いてプロセスを生成する。
【００１９】
また、上記目的を達成するために、本発明のプログラムは、複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムで用いられる計算機ノードで用いられるプログラムであって、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、該ソフトウエア資源を用いてプロセスを生成する処理をコンピュータに実行させる。
【００２０】
また、上記目的を達成するために、本発明の計算機システムは、複数の計算機ノードを有し、各計算機ノードが管理するソフトウエア資源をシステム内で一意に管理する計算機システムであって、プロセスを生成するとき、自ノードに該プロセスの生成に必要なソフトウエア資源があるときは、該ソフトウエア資源を用いてプロセスを生成し、自ノードに該プロセスの生成に必要なソフトウエア資源がないときは、他の計算機ノードからソフトウエア資源を取得し、該ソフトウエア資源を用いてプロセスを生成する複数の計算機ノードを有する。
【発明の効果】
【００２１】
本発明によれば、シングルシステムイメージを用いた計算機システムにおいて、計算機ノードは、計算機システム内のネットワークの冗長な通信を低減し、ネットワークを効率よく使用することができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施の形態の計算機システムの構成を示すブロック図である。
【図２】第１の実施の形態の計算機ノードの構成を示すブロック図である。
【図３】各計算機ノードで管理されるソフトウエア資源テーブルの例を示す図である。
【図４】ソフトウエア資源拡張テーブルの例を示す図である。
【図５】図２に示したプロセス生成部が子プロセスを生成するときの処理を示すフローチャートである。
【図６】図２に示したソフトウエア資源制御部が資源要求先計算機ノードにソフトウエア資源を要求するときの処理を示すフローチャートである。
【図７】負荷監視部１４を備えた計算機ノードの構成を示すブロック図である。
【図８】第２の実施の形態の計算機ノードの構成を示すブロック図である。
【図９】ソフトウエア資源使用履歴テーブルの例を示す図である。
【図１０】図８に示したソフトウエア資源監視部３１がソフトウエア資源の返却を決定するときの処理を示すフローチャートである。
【図１１】第３の実施の形態の計算機ノードの構成を示すブロック図である。
【図１２】プロセス詳細情報の例を示す図である。
【図１３】図１１に示したプロセス生成部１１が自装置以外の計算機ノードにプロセスの生成を要求するときの処理を示すフローチャートである。
【図１４】図１１に示した関連プロセス決定部４１が自装置以外の計算機ノードでの被生成プロセスの生成を依頼されたときの処理を示すフローチャートである。
【発明を実施するための形態】
【００２３】
次に本発明について図面を参照して詳細に説明する。
【００２４】
（第１の実施の形態）
本実施の形態の計算機ノードは、実行中のプロセスの子プロセスを生成するときに、子プロセスを生成するために必要なソフトウエア資源がない場合、他の計算機ノードからソフトウエア資源を取得する。計算機ノードは、他の計算機ノードから取得したソフトウエア資源を用いて子プロセスを生成することにより、親プロセスと子プロセスが異なる計算機ノードに生成されることを抑止する。
【００２５】
図１は第１の実施の形態の計算機システムの構成を示すブロック図である。
【００２６】
図１に示すように、第１の実施の形態の計算機システムは、複数の計算機ノード１〜４を有する。
【００２７】
計算機ノード１〜４は、それぞれ利用者に所定のサービスを提供する装置であり、ネットワークを介して相互に接続する。
【００２８】
シングルシステムイメージを用いた計算機システムでは、各計算機ノードがソフトウエア資源を管理する。各計算機ノードが管理するソフトウエア資源は、各計算機ノードにソフトウエア資源テーブルとして記憶される。各計算機ノードで管理されるソフトウエア資源テーブルの例を図３に示す。図３に示すように、各計算機ノードには、それぞれ異なるソフトウエア資源が割り当てられる。図３に示す例では、計算機ノード１には、プロセスＩＤとして０〜２９９９９が割り当てられ、ポート番号として０〜２９９９９が割り当てられている。また、計算機ノード２には、プロセスＩＤとして３００００〜５９９９９が割り当てられ、ポート番号として３００００〜５９９９９が割り当てられている。
【００２９】
尚、例えば、Ｗｅｌｌ−ｋｎｏｗｎポートのようにシステム内で特定のアプリケーションのために使用することが予約されているソフトウエア資源がある場合は、予約されているソフトウエア資源以外のソフトウエア資源が各計算機ノードに割り当てられる。
【００３０】
また、各計算機ノードは、ソフトウエア資源テーブルを用いて、ソフトウエア資源毎にその使用状況を管理する。各計算機ノードは、ソフトウエア資源を使用しているとき、そのソフトウエア資源の使用状況を使用中とし、ソフトウエア資源を使用していないとき、そのソフトウエア資源の使用状況を未使用とする。
【００３１】
各計算機ノードは、他の計算機ノードから提供されたソフトウエア資源を管理する。他の計算機ノードから提供されたソフトウエア資源は、各計算機ノードにソフトウエア資源拡張テーブルとして記憶される。ソフトウエア資源拡張テーブルの例を図４に示す。図４に示すように、ソフトウエア資源拡張テーブルには、プロセスＩＤやポート番号のようなソフトウエア資源およびその使用状況に加えて、そのソフトウエア資源を提供した計算機ノードを示す計算機ノード番号が管理される。
【００３２】
図２は第１の実施の形態の計算機ノードの構成を示すブロック図である。
【００３３】
図２に示すように、第１の実施の形態の計算機ノードは、プロセス生成部１１と、ソフトウエア資源制御部１２と、プロセス生成要求部１３と、記憶装置２１とを有する。
【００３４】
プロセス生成部１１は、計算機ノード１上に生成されているプロセスの子プロセスを生成する機能を有する。
【００３５】
プロセス生成部１１は、まず、子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにあるか否かを判別する。
【００３６】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにある場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源テーブルから取得し、ソフトウエア資源テーブルのうち、取得したソフトウエア資源の使用状況を使用中に更新する。次に、プロセス生成部１１は、図示しない主記憶装置上に新たに生成する子プロセスを展開するためのアドレス空間を確保し、そのアドレス空間に親プロセスの実行コンテキストをコピーする。そして、プロセス生成部１１は、コピーした親プロセスの実行コンテキストのうち、必要な箇所を子プロセスの実行コンテキストに書き換える。最後に、プロセス生成部１１は、コピーした親プロセスの実行コンテキストのうち、ソフトウエア資源をソフトウエア資源テーブルから取得した新たなソフトウエア資源に書き換える。これにより、プロセス生成部１１は、計算機ノード１上に子プロセスを生成することができる。
【００３７】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにない場合、プロセス生成部１１は、子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源拡張テーブルにあるか否かを判別する。
【００３８】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源拡張テーブルにある場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源拡張テーブルから取得し、ソフトウエア資源拡張テーブルのうち、取得したソフトウエア資源の使用状況を使用中に更新する。そして、プロセス生成部１１は、ソフトウエア資源テーブルからソフトウエア資源を取得したときと同様に、子プロセスを生成する。
【００３９】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルあるいはソフトウエア資源拡張テーブルのいずれにもない場合、プロセス生成部１１は、ソフトウエア資源制御部１２に他の計算機ノードからソフトウエア資源を取得するように依頼する。
【００４０】
他の計算機ノードから取得したソフトウエア資源は、ソフトウエア資源拡張テーブルによって管理される。このため、ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得した場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源拡張テーブルから取得し、ソフトウエア資源拡張テーブルのうち、使用するソフトウエア資源の使用状況を使用中に更新する。そして、プロセス生成部１１は、ソフトウエア資源テーブルからソフトウエア資源を取得したときと同様に、子プロセスを生成する。
【００４１】
尚、生成したプロセスが終了すると、プロセス生成部１１は、ソフトウエア資源テーブルあるいはソフトウエア資源拡張テーブルのうち、そのプロセスが使用していたソフトウエア資源の使用状況を未使用に更新する。
【００４２】
一方、ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得できなかった場合、プロセス生成部１１は、他の計算機ノードでのプロセスの生成をプロセス生成要求部１３に依頼する。
【００４３】
プロセス生成要求部１３は、プロセス生成部１１から他の計算機ノードでのプロセスの生成を依頼されると、プロセスの生成を要求する計算機ノード（以降、生成要求先計算機ノードと称する）を決定する。尚、各計算機ノードには生成要求先計算機ノードが予め設定されており、プロセス生成要求部１３は、設定された生成要求先計算機ノード対してプロセスの生成を要求する。
【００４４】
生成要求先計算機ノードでは、要求されたプロセスを生成するために、そのプロセスの親プロセスの実行コンテキストのコピーが必要となる。このため、プロセス生成要求部１３は、生成すべきプロセスの親プロセスの実行コンテキストのコピーを生成要求先計算機ノードに送信する。生成すべきプロセスの親プロセスの実行コンテキストのコピーを要求先計算機ノードに送信すると、プロセス生成要求部１３は、生成要求先計算機ノードにプロセスの生成を要求する。
【００４５】
ソフトウエア資源制御部１２は、プロセス生成部１１から他の計算機ノードからのソフトウエア資源の取得を依頼されると、ソフトウエア資源の取得を要求する計算機ノード（以降、資源要求先計算機ノードと称する）を決定する。尚、各計算機ノードには資源要求先計算機ノードが予め設定されており、ソフトウエア資源制御部１２は、設定された資源要求先計算機ノードに対してソフトウエア資源の取得を要求する。
【００４６】
また、資源要求先計算機ノードとして複数の計算機ノードを設定しておき、ソフトウエア資源制御部１２は、複数の計算機ノードに対してソフトウエア資源の取得を要求してもよい。また、資源要求先計算機ノードとして計算機システム内の全ての計算機ノードを設定しておき、ソフトウエア資源制御部１２は、計算機システム内の全ての計算機ノードに対してソフトウエア資源の取得を要求してもよい。
【００４７】
ソフトウエア資源制御部１２は、資源要求先計算機ノードにソフトウエア資源を要求し、資源要求先計算機ノードが管理するソフトウエア資源を取得する。
【００４８】
ソフトウエア資源制御部１２は、資源要求先計算機ノードにソフトウエア資源を要求するとき、ソフトウエア資源要求メッセージを送信する。尚、ソフトウエア資源要求メッセージには、取得を要求するソフトウエア資源の種類およびその数が含まれる。
【００４９】
資源要求先計算機ノードのソフトウエア資源制御部１２は、ソフトウエア資源要求メッセージを受信すると、自ノードのソフトウエア資源テーブルに基づいて、要求されたソフトウエア資源が提供可能か否かを判別する。資源要求先計算機ノードのソフトウエア資源制御部１２は、要求されたソフトウエア資源が提供可能な場合、その装置のソフトウエア資源テーブルのうち、提供するソフトウエア資源の使用状況を未使用から使用中に書き換える。そして、資源要求先計算機ノードのソフトウエア資源制御部１２は、ソフトウエア資源要求メッセージの応答として、ソフトウエア資源応答メッセージを要求元の計算機ノードのソフトウエア資源制御部１２に送信する。
【００５０】
尚、ソフトウエア資源応答メッセージには、提供するソフトウエア資源が記載される。例えば、要求元の計算機ノードがプロセスＩＤを１０個要求した場合、ソフトウエア資源応答メッセージには、１０個のプロセスＩＤが記載される。
【００５１】
要求元の計算機ノードのソフトウエア資源制御部１２は、資源要求先計算機ノードからソフトウエア資源応答メッセージを受信すると、受信したソフトウエア資源応答メッセージからソフトウエア資源を抽出し、ソフトウエア資源拡張テーブルに格納する。尚、ソフトウエア資源制御部１２は、ソフトウエア資源を受信した直後は、ソフトウエア資源拡張テーブルのそのソフトウエア資源の使用状況を未使用としておく。
【００５２】
複数の計算機ノードに対してソフトウエア資源の取得を要求していた場合、ソフトウエア資源制御部１２は、各計算機ノードから取得したソフトウエア資源をソフトウエア資源拡張テーブルに格納しておく。ソフトウエア資源を要求する計算機ノードは、自ノードが管理するソフトウエア資源が不足しているため、以後の子プロセスの生成のときにも他の計算機ノードからソフトウエア資源を取得しなければならない可能性が高い。複数の計算機ノードから取得したソフトウエア資源のうち、使用しなかったソフトウエア資源を確保しておくことにより、計算機ノードは、以後の子プロセスの生成のときに他の計算機ノードからソフトウエア資源を取得する処理を省略できる。
【００５３】
尚、資源要求先計算機ノードでは、その計算機ノードに十分なソフトウエア資源が残っていないような場合や、自ノードが大量にソフトウエア資源を使用する予定があるため確保しておく必要があるような場合には、ソフトウエア資源の提供を拒否する。
【００５４】
また、各計算機ノードは、設定により、悪意のある利用者あるいはソフトウエアによって自ノードが管理するソフトウエア資源が枯渇されることを防止するために、ソフトウエア資源の提供を常に拒否することもできる。
【００５５】
記憶装置２１は、ソフトウエア資源テーブルおよびソフトウエア資源拡張テーブルを記憶する記憶装置である。
【００５６】
次に図２に示したプロセス生成部が子プロセスを生成するときの処理について説明する。
【００５７】
図５は図２に示したプロセス生成部が子プロセスを生成するときの処理を示すフローチャートである。
【００５８】
プロセス生成部１１は、まず、子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにあるか否かを判別する（ステップＳ１）。
【００５９】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにある場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源テーブルから取得し(ステップＳ２)、ソフトウエア資源テーブルのうち、取得したソフトウエア資源の使用状況を使用中に更新する。
【００６０】
次に、プロセス生成部１１は、計算機ノードの主記憶装置上に新たに生成する子プロセスを展開するためのアドレス空間を確保し、まず、そこに親プロセスの実行コンテキストをコピーする（ステップＳ３）。そして、プロセス生成部１１は、コピーした親プロセスの実行コンテキストのうち、必要な箇所を子プロセスの実行コンテキストに書き換える（ステップＳ４）。最後に、プロセス生成部１１は、コピーした親プロセスの実行コンテキストのうち、ソフトウエア資源をソフトウエア資源テーブルから取得した新たなソフトウエア資源に書き換える（ステップＳ５）。これにより、プロセス生成部１１は、計算機ノード１上に子プロセスを生成することができる。
【００６１】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルにない場合、プロセス生成部１１は、子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源拡張テーブルにあるか否かを判別する（ステップＳ６）。
【００６２】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源拡張テーブルにある場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源拡張テーブルから取得し（ステップＳ７）、ソフトウエア資源拡張テーブルのうち、取得したソフトウエア資源の使用状況を使用中に更新する。そして、プロセス生成部１１は、ソフトウエア資源テーブルからソフトウエア資源を取得したときと同様に、ステップＳ３、Ｓ４、Ｓ５を実行し、プロセスを生成する。
【００６３】
子プロセスを生成するために必要なソフトウエア資源がソフトウエア資源テーブルあるいはソフトウエア資源拡張テーブルのいずれにもない場合、プロセス生成部１１は、ソフトウエア資源制御部１２に他の計算機ノードからソフトウエア資源を取得するように依頼する（ステップＳ８）。
【００６４】
プロセス生成部１１は、ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得したか否かを判別する（ステップＳ９）。ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得した場合、プロセス生成部１１は、ソフトウエア資源をソフトウエア資源拡張テーブルから取得し（ステップＳ１０）、ソフトウエア資源拡張テーブルのうち、使用するソフトウエア資源の使用状況を使用中に更新する。そして、プロセス生成部１１は、ソフトウエア資源テーブルからソフトウエア資源を取得したときと同様に、ステップＳ３、Ｓ４、Ｓ５を実行し、プロセスを生成する。
【００６５】
一方、ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得できなかった場合、プロセス生成部１１は、他の計算機ノードでのプロセスの生成をプロセス生成要求部１３に依頼する（ステップＳ１１）。
【００６６】
尚、プロセス生成部１１から他の計算機ノードでのプロセスの生成を依頼されると、プロセス生成要求部１３は、生成要求先計算機ノードを決定する。そして、プロセス生成要求部１３は、生成要求先計算機ノードに、生成すべきプロセスの親プロセスの実行コンテキストのコピーを送信し、プロセスの生成を要求する。
【００６７】
次に図２に示したソフトウエア資源制御部が資源要求先計算機ノードにソフトウエア資源を要求するときの処理について説明する。
【００６８】
図６は図２に示したソフトウエア資源制御部が資源要求先計算機ノードにソフトウエア資源を要求するときの処理を示すフローチャートである。
【００６９】
図５のステップＳ８において、プロセス生成部１１から他の計算機ノードからのソフトウエア資源の取得の依頼を受けると、ソフトウエア資源制御部１２は、ソフトウエア資源の取得を要求する資源要求先計算機ノードを決定する。そして、ソフトウエア資源制御部１２は、資源要求先計算機ノードにソフトウエア資源要求メッセージを送信し、ソフトウエア資源を要求する（ステップＳ２１）。
【００７０】
ソフトウエア資源要求メッセージを送信すると、ソフトウエア資源制御部１２は、資源要求先計算機ノードから応答を受信するまで所定時間待機する（ステップＳ２２）。
【００７１】
所定時間が経過すると、ソフトウエア資源制御部１２は、資源要求先計算機ノードからソフトウエア資源を取得できたか否かを判別する（ステップＳ２３）。
【００７２】
資源要求先計算機ノードからソフトウエア資源を取得した場合、ソフトウエア資源制御部１２は、取得したソフトウエア資源をソフトウエア資源拡張テーブルに格納する（ステップＳ２４）。尚、ソフトウエア資源制御部１２は、ソフトウエア資源を受信した直後は、ソフトウエア資源拡張テーブルのそのソフトウエア資源の使用状況を未使用としておく。
【００７３】
最後に、ソフトウエア資源制御部１２は、プロセス生成部１１にソフトウエア資源を取得できたか否かの結果を通知する（ステップＳ２５）。
【００７４】
尚、本実施形態では、プロセス生成部１１が、プロセスを生成する前にそのプロセスを生成するために必要なソフトウエア資源が自ノードにあるか否かを判別する例を示した。しかしながら、本発明は、これに限定されるものではない。例えば、プロセスを生成する過程において必要なソフトウエア資源がないことが判明すると、そのときに、プロセス生成部１１は、ソフトウエア資源制御部１２に他の計算機ノードからソフトウエア資源を取得するように依頼してもよい。
【００７５】
以上説明したように、本実施形態によれば、計算機ノードは、実行中のプロセスの子プロセスを生成するときに、自ノードにその子プロセスの生成に必要なソフトウエア資源がなければ、他の計算機ノードからソフトウエア資源を取得し、そのソフトウエア資源を用いて子プロセスを生成する。これにより、計算機システムのネットワーク上で、親プロセスの実行コンテキストのコピーや、新たに生成される子プロセスと既存のプロセスとの間の通信データが送受信されることはない。したがって、計算機システムは、ネットワークを効率よく使用できる。
【００７６】
また、本実施形態によれば、計算機ノードは、実行中のプロセスの子プロセスを生成するときに、自ノードにその子プロセスの生成に必要なソフトウエア資源がない場合、過去に他の計算機ノードから取得し、現在使用されていないソフトウエア資源があれば、そのソフトウエア資源を用いて子プロセスを生成する。これにより、ソフトウエア資源の取得処理の効率化を図ることができる。
【００７７】
また、本実施形態によれば、計算機ノードは、実行中のプロセスの子プロセスを生成するときに、自ノードにその子プロセスの生成に必要なソフトウエア資源がない場合、複数の計算機ノードに対してソフトウエア資源を要求する。これにより、ソフトウエア資源を要求する計算機ノードは、ソフトウエア資源の提供を拒否する計算機ノードがあっても、別の計算機ノードにソフトウエア資源を要求しなおす必要がなく、短時間で子プロセスを生成できる可能性が高くなる。
【００７８】
また、計算機ノードは、複数の計算機ノードから取得したソフトウエア資源のうち、使用しなかったソフトウエア資源を確保しておくことにより、計算機ノードは、以後の子プロセスの生成のときに他の計算機ノードからソフトウエア資源を取得する処理を省略できる。
【００７９】
また、本実施形態によれば、計算機ノードは、プロセスを生成するために必要なソフトウエア資源が得られなかった場合、他の計算機ノードに、そのプロセスを生成するように要求する。これにより、計算機システムは、ソフトウエア資源の受け渡しができないような場合であっても、継続してサービスを提供することができる。
【００８０】
尚、本実施形態では、プロセス生成部１１が、プロセスを生成するときに、自ノードにその子プロセスの生成に必要なソフトウエア資源がない場合、プロセス生成要求部１３が、予め設定された計算機ノードにプロセスの生成を要求する例を示した。しかしながら、本発明は、これに限定されるものではない。
【００８１】
例えば、図７に示すように、計算機ノード１が、さらに負荷監視部１４を備え、負荷監視部１４が、プロセス生成要求部１３に生成要求先計算機ノードを指示するようにしてもよい。
【００８２】
負荷監視部１４は、ＣＰＵ使用率、メモリ使用率あるいはネットワーク使用率等のような計算機ノード１の負荷を監視し、負荷の量を示す負荷情報を取得する。負荷監視部１４は、取得した自ノードの負荷情報を計算機システム内の全ての計算機ノードに送信する。また、負荷監視部１４は、計算機システム内の全ての計算機ノードから各計算機ノードの負荷情報を取得する。そして、負荷監視部１４は、計算機システム内で最も負荷の少ない計算機ノードをプロセス生成要求部１３に通知する。
【００８３】
プロセス生成要求部１３が、通知された計算機ノードを生成要求先計算機ノードとすることにより、計算機システム内の各計算機ノードの負荷を適切に分散することができる。
【００８４】
尚、本実施形態の計算機ノードは、シングルシステムイメージを用いたウエブサーバあるいはプロキシサーバ等に利用できる。本実施形態の技術を用いることにより、特定のサーバに利用者から大量の要求があり、そのサーバのソフトウエア資源が枯渇するような場合でも、そのサーバに子プロセスを生成することができる。これにより、親プロセスと子プロセスの間で通信されるユーザプロファイル情報等がネットワーク上で送受信されることを防止できる。
【００８５】
（第２の実施の形態）
第１の実施の形態では、計算機ノードが、プロセスを生成するとき、そのプロセスの生成に必要なソフトウエア資源が自ノードにない場合、他の計算機ノードからソフトウエア資源を取得する例を示した。第２の実施の形態では、他の計算機ノードからソフトウエア資源を取得した計算機ノードが、そのソフトウエア資源が不要となった場合に返却する例を説明する。
【００８６】
図８は第２の実施の形態の計算機ノードの構成を示すブロック図である。
【００８７】
図８に示すように、第２の実施の形態の計算機ノードは、第１の実施の形態の計算機ノードの構成に加えて、ソフトウエア資源監視部３１を有する。
【００８８】
第２の実施の形態の計算機ノードは、他の計算機ノードから提供されたソフトウエア資源が最後に使用された最終使用時刻を管理する。他の計算機ノードから提供されたソフトウエア資源の最終使用時刻は、ソフトウエア資源最終使用時刻テーブルで管理される。ソフトウエア資源使用履歴テーブルの例を図９に示す。図９に示すように、ソフトウエア資源最終使用時刻テーブルには、プロセスＩＤやポート番号のようなソフトウエア資源およびそのソフトウエア資源を提供した計算機ノードの計算機ノード番号に加えて、そのソフトウエア資源が最後に使用された時刻を示す最終使用時刻が管理される。
【００８９】
プロセス生成部１１は、ソフトウエア資源をソフトウエア資源テーブルから取得すると、ソフトウエア資源最終使用時刻テーブルのうち、取得したソフトウエア資源の最終使用時刻にそのソフトウエア資源を取得した時刻を書き込む。
【００９０】
また、生成したプロセスが終了すると、プロセス生成部１１は、ソフトウエア資源最終使用時刻テーブルのうち、そのプロセスが使用していたソフトウエア資源の最終使用時刻にそのプロセスが終了した時刻を書き込む。
【００９１】
ソフトウエア資源監視部３１は、タイマーにより定期的に起動される。ソフトウエア資源監視部３１は、起動すると、ソフトウエア資源拡張テーブルから未使用のソフトウエア資源を抽出する。そして、ソフトウエア資源監視部３１は、未使用のソフトウエア資源について、ソフトウエア資源最終使用時刻テーブルから、そのソフトウエア資源の最終使用時刻を読み出す。ソフトウエア資源監視部３１は、未使用であり、かつ、最終使用時刻から所定時間経過したソフトウエア資源、ならびに、そのソフトウエア資源を提供した計算機ノードの計算機ノード番号を記載したソフトウエア資源返却リストを作成する。
【００９２】
ソフトウエア資源監視部３１は、ソフトウエア資源返却リストに記載されたソフトウエア資源について、そのソフトウエア資源を返却する要求を示す、ソフトウエア資源返却要求をソフトウエア資源制御部１２に送信する。尚、ソフトウエア資源制御部１２に送信するソフトウエア資源返却要求には、ソフトウエア資源返却リストが含まれる。
【００９３】
ソフトウエア資源制御部１２は、ソフトウエア資源監視部３１からソフトウエア資源返却要求を受信すると、受信したソフトウエア資源返却要求に含まれるソフトウエア資源返却リストから返却すべきソフトウエア資源およびそのソフトウエア資源を提供した計算機ノードの計算機ノード番号を抽出する。そして、ソフトウエア資源制御部１２は、ソフトウエア資源を返却する旨を示すソフトウエア資源返却メッセージをそのソフトウエア資源を提供した計算機ノードに送信する。尚、ソフトウエア資源返却メッセージには、ソフトウエア資源を返却する旨および返却するソフトウエア資源のリストが含まれる。
【００９４】
ソフトウエア資源制御部１２は、ソフトウエア資源返却メッセージをそのソフトウエア資源を提供した計算機ノードに送信すると、ソフトウエア資源拡張テーブルおよびソフトウエア資源最終使用時刻テーブルから返却したソフトウエア資源を削除する。
【００９５】
ソフトウエア資源返却メッセージを受信した計算機ノード側のソフトウエア資源制御部１２は、受信したソフトウエア資源返却メッセージから返却されたソフトウエア資源を抽出する。そして、ソフトウエア資源制御部１２は、返却されたソフトウエア資源について、自ノードのソフトウエア資源テーブルの使用状況を使用中から未使用に書き換える。
【００９６】
記憶装置２１は、ソフトウエア資源テーブルおよびソフトウエア資源拡張テーブルに加えて、ソフトウエア資源最終使用時刻テーブルを記憶する。
【００９７】
次に図８に示したソフトウエア資源監視部３１がソフトウエア資源の返却を決定するときの処理について説明する。
【００９８】
図１０は図８に示したソフトウエア資源監視部３１がソフトウエア資源の返却を決定するときの処理を示すフローチャートである。
【００９９】
ソフトウエア資源監視部３１は、タイマーにより起動されると、まず、ソフトウエア資源返却リストを初期化する（ステップＳ４１）。次に、ソフトウエア資源監視部３１は、ソフトウエア資源拡張テーブルから未使用のソフトウエア資源を抽出する。そして、ソフトウエア資源監視部３１は、未使用のソフトウエア資源について、ソフトウエア資源使用履歴テーブルから、そのソフトウエア資源の最終使用時刻を読み出す。ソフトウエア資源監視部３１は、未使用であり、かつ、最終使用時刻から所定時間経過したソフトウエア資源、ならびに、そのソフトウエア資源を提供した計算機ノードの計算機ノード番号をソフトウエア資源返却リストに記載する（ステップＳ４２）。
【０１００】
ソフトウエア資源拡張テーブルに記載されている全てのソフトウエア資源について、ソフトウエア資源返却リストに記載すべきか否かを判別すると、ソフトウエア資源監視部３１は、作成したソフトウエア資源返却リストに基づいて、返却すべきソフトウエア資源があるか否かを判別する（ステップＳ４３）。
【０１０１】
返却すべきソフトウエア資源がない場合、ソフトウエア資源監視部３１は、処理を終了する。一方、返却すべきソフトウエア資源がある場合、ソフトウエア資源監視部３１は、ソフトウエア資源制御部１２にソフトウエア資源返却要求を送信し、ソフトウエア資源の返却を要求する（ステップＳ４４）。
【０１０２】
以上説明したように、本実施形態によれば、計算機ノードは、他の計算機ノードから提供されたソフトウエア資源について、所定時間使用されていなければ返却する。これにより、ソフトウエア資源を提供した計算機ノードにおいてソフトウエア資源が枯渇することを抑止することができる。
【０１０３】
（第３の実施の形態）
第１の実施の形態および第２の実施の形態では、計算機ノードが新たにプロセスを生成するときに、そのプロセスの生成に必要なソフトウエア資源を取得できない場合、新たに生成すべきプロセスの生成を他の計算機ノードに要求する例を示した。第３の実施の形態では、計算機ノードは、新たにプロセスを生成するときに、そのプロセスの生成に必要なソフトウエア資源を取得できない場合、新たに生成すべきプロセスとそのプロセスに関連するプロセスの生成を同一の計算機ノードに要求し、関連するプロセスが異なる計算機ノードに生成されることを抑止する。
【０１０４】
図１１は第３の実施の形態の計算機ノードの構成を示すブロック図である。
【０１０５】
図１１に示すように、第３の実施の形態の計算機ノードは、第２の実施の形態の計算機ノードの構成に加えて、関連プロセス決定部４１を有する。
【０１０６】
第３の実施の形態の計算機ノードは、自ノードで現在実行されているプロセスの詳細情報をプロセス詳細情報として管理する。プロセス詳細情報の例を図１２に示す。図１２に示すように、プロセス詳細情報には、そのプロセスが使用するプロセスＩＤ、そのプロセスのプログラム名、そのプロセスが使用するメモリ量、そのプロセスの子プロセス、そのプロセスが使用するポート番号およびそのプロセスが接続する接続プロセスの情報が含まれ、これらの情報がプロセス毎に管理される。
【０１０７】
第１の実施の形態と同様に、プロセス生成部１１は、生成すべき所定のプロセス（以降、被生成プロセスと称する）のために必要なソフトウエア資源を、ソフトウエア資源テーブル、ソフトウエア資源拡張テーブル、あるいは、他の計算機ノードのいずれかから取得できるか否かを判別する。
【０１０８】
被生成プロセスを生成するために必要なソフトウエア資源を、ソフトウエア資源テーブル、ソフトウエア資源拡張テーブル、あるいは、他の計算機ノードのいずれからも取得できない場合、プロセス生成部１１は、他の計算機ノードでの被生成プロセスの生成を関連プロセス決定部４１に依頼する。
【０１０９】
第３の実施の形態の計算機システムでは、計算機システム内のネットワークの通信量を軽減するために、同一の計算機ノードに被生成プロセスとその被生成プロセスに関連するプロセスを生成するようにする。被生成プロセスに関連するプロセスとしては、被生成プロセスの親プロセスや被生成プロセスと接続する接続プロセス等があげられる。
【０１１０】
関連プロセス決定部４１は、プロセス生成部１１から他の計算機ノードでの被生成プロセスの生成を依頼されると、被生成プロセスの生成を要求する計算機ノードである生成要求先計算機ノードを決定する。尚、生成要求先計算機ノードは、計算機ノードに予め設定されるようにしてもよいし、負荷監視部１４から計算機システム内で最も負荷の少ない計算機ノードを取得し、その計算機ノードを生成要求先計算機ノードとしてもよい。
【０１１１】
関連プロセス決定部４１は、被生成プロセスと同じ計算機ノードで生成すべき、被生成プロセスと関連する関連プロセスを被生成プロセスのプロセス詳細情報に基づいて決定する。そして、関連プロセス決定部４１は、関連プロセスのプロセス詳細情報を取得する。
【０１１２】
関連プロセス決定部４１は、まず、関連プロセスの生成要求先計算機ノードでの生成をプロセス生成要求部１３に依頼する。次に、関連プロセス決定部４１は、被生成プロセスの生成要求先計算機ノードでの生成をプロセス生成要求部１３に依頼する。
【０１１３】
プロセス生成要求部１３は、関連プロセス決定部４１から生成要求先計算機ノードでのプロセスの生成を依頼されると、依頼されたプロセスの親プロセスの実行コンテキストのコピーを生成要求先計算機ノードに送信する。そして、プロセス生成要求部１３は、生成要求先計算機ノードに依頼されたプロセスの生成を要求する。
【０１１４】
次に図１１に示したプロセス生成部１１が他の計算機ノードにプロセスの生成を要求するときの処理について説明する。
【０１１５】
図１３は図１１に示したプロセス生成部１１が他の計算機ノードにプロセスの生成を要求するときの処理を示すフローチャートである。
【０１１６】
ステップＳ６１〜Ｓ７０の処理は、図５に示したフローチャートのステップＳ１〜Ｓ１０の処理と同様であるため、説明を省略する。
【０１１７】
ステップＳ６９で、ソフトウエア資源制御部１２が他の計算機ノードからソフトウエア資源を取得できなかった場合、プロセス生成部１１は、他の計算機ノードでの被生成プロセスの生成を関連プロセス決定部４１に依頼する（ステップＳ７１）。
【０１１８】
次に図１１に示した関連プロセス決定部４１が他の計算機ノードでの被生成プロセスの生成を依頼されたときの処理について説明する。
【０１１９】
図１４は図１１に示した関連プロセス決定部４１が他の計算機ノードでの被生成プロセスの生成を依頼されたときの処理を示すフローチャートである。
【０１２０】
プロセス生成部１１から他の計算機ノードでの被生成プロセスの生成を依頼されると、関連プロセス決定部４１は、まず、被生成プロセスの生成を要求する計算機ノードである生成要求先計算機ノードを決定する（ステップＳ８１）。
【０１２１】
生成要求先計算機ノードを決定すると、関連プロセス決定部４１は、被生成プロセスと同じ計算機ノードで生成すべき、被生成プロセスと関連する関連プロセスを被生成プロセスのプロセス詳細情報に基づいて決定する（ステップＳ８２）。
【０１２２】
関連プロセスを決定すると、関連プロセス決定部４１は、関連プロセスのプロセス詳細情報を取得する（ステップＳ８３）。
【０１２３】
関連プロセスのプロセス詳細情報を取得すると、関連プロセス決定部４１は、関連プロセスの生成要求先計算機ノードでの生成をプロセス生成要求部１３に依頼する（ステップＳ８４）。
【０１２４】
関連プロセスの生成要求先計算機ノードでの生成をプロセス生成要求部１３に依頼すると、関連プロセス決定部４１は、被生成プロセスの生成要求先計算機ノードでの生成をプロセス生成要求部１３に依頼する（ステップＳ８５）。
【０１２５】
以上説明したように、本実施形態によれば、計算機ノードは、新たにプロセスを生成するときに、そのプロセスの生成に必要なソフトウエア資源を取得できない場合、新たに生成すべきプロセスとあわせて、そのプロセスに関連するプロセスの生成を、同一の計算機ノードに要求する。これにより、関連するプロセスが異なる計算機ノードに生成されることを抑止することができ、関連するプロセス間の通信により計算機システムのネットワークの通信帯域が圧迫されることを低減することができる。
【０１２６】
また、新たに生成すべきプロセスに関連するプロセスとして、そのプロセスの親プロセスやそのプロセスが接続するプロセスを選択することにより、プロセス間の通信量が多いプロセスを同一の計算機ノードで生成することができる。
【０１２７】
尚、本実施形態では、新たに生成すべきプロセスに関連するプロセスとして、そのプロセスの親プロセスやそのプロセスが接続するプロセスを選択する例を示したが、本発明は、これに限定されるものではない。
【０１２８】
例えば、関連プロセス決定部４１は、ＵＮＩＸ（登録商標）で用いられるプロセスグループに基づいて、関連プロセスを決定してもよい。新たに生成すべきプロセスと同一のプロセスグループに属するプロセスを関連プロセスとすることにより、同じジョブを実行する全てのプロセスを同一の計算機ノードに生成することができる。
【０１２９】
また、関連プロセス決定部４１は、ＵＮＩＸで用いられるログインセッションに基づいて、関連プロセスを決定してもよい。新たに生成すべきプロセスと同一のログインセッションに属するプロセスを関連プロセスとすることにより、ある計算機ノードでセッションを開始したプロセスの全ての子孫プロセスを同一の計算機ノードに生成することができる。
【符号の説明】
【０１３０】
１〜４  計算機ノード
１１  プロセス生成部
１２  ソフトウエア資源制御部
１３  プロセス生成要求部
１４  負荷監視部
２１  記憶装置
３１  ソフトウエア資源監視部
４１  関連プロセス決定部
【図１】
2010287172.tif 000003
【図２】
2010287172.tif 000004
【図３】
2010287172.tif 000005
【図４】
2010287172.tif 000006
【図５】
2010287172.tif 000007
【図６】
2010287172.tif 000008
【図７】
2010287172.tif 000009
【図８】
2010287172.tif 000010
【図９】
2010287172.tif 000011
【図１０】
2010287172.tif 000012
【図１１】
2010287172.tif 000013
【図１２】
2010287172.tif 000014
【図１３】
2010287172.tif 000015
【図１４】
2010287172.tif 000016