(57)【要約】【課題】  プロセス分散先コンピュータをいち早く決定し、ＩＯ処理を含むアプリケーションプロセスをネットワークで接続されている他のコンピュータへ分散させるシステムを提供する。【解決手段】  プロセス起動元コンピュータは、リソース情報を更新する手段と、最大使用メモリ量を更新する手段と、プロセスを分散させるべきコンピュータを選択する手段と、プロセス起動依頼情報を選択されたコンピュータに送信する手段と、ＩＯを実行する手段とを有し、プロセス分散先コンピュータは、リソース情報を一定時間毎に送付する手段と、プロセス起動依頼情報に基づいてプロセスを起動する手段と、最大使用メモリ量を送付する手段と、プロセスからのＩＯ要求を受け付ける手段と、ＩＯ要求を出したプロセスが分散依頼されたか否かを判断する手段と、ＩＯ要求情報を送付する手段とから構成される。【選択図】  図１
2005107958.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス起動元コンピュータを、
前記プロセス分散先コンピュータから送信されたリソース情報を受信して、受信したリソース情報を更新するリソース情報更新手段、
前記リソース情報からプロセスを分散させるべきコンピュータを選択する選択手段、
プロセス起動依頼情報を選択されたプロセス分散先コンピュータに送信する手段、
前記プロセス分散先コンピュータを、
リソース情報を一定時間毎に前記プロセス起動元コンピュータに送付する手段、
前記プロセス起動元コンピュータから送信されたプロセス起動依頼情報を受信して、受信したプロセス起動依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
【請求項２】
前記プロセス起動元コンピュータを、前記プロセス分散先コンピュータから送信された最大使用メモリ量を受信して、受信した最大使用メモリ量を更新する最大使用メモリ量更新手段として更に機能させ、
前記プロセス分散先コンピュータを、前記プロセス起動元コンピュータから分散されたプロセスの最大使用メモリ量を前記プロセス起動元コンピュータに送付する最大使用メモリ量送付手段として更に機能させ、
前記選択手段を、前記リソース情報と前記最大使用メモリ量からプロセスを分散させるべきコンピュータを選択する手段として機能させることを特徴とする請求項１記載のプロセス分散システムのためのプログラム。
【請求項３】
前記選択手段を、プロセス分散先コンピュータの空きメモリ容量が最大使用メモリ量以上である場合に、前記リソース情報に基いて最も処理能力のあるコンピュータを、プロセスを分散させるべきコンピュータとして選択する手段として機能させることを特徴とする請求項２記載のプロセス分散システムのためのプログラム。
【請求項４】
ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス分散先コンピュータを、
自己のコンピュータで動作しているアプリケーションのプロセスからのＩＯ要求を受け付ける手段、
ＩＯを要求したプロセスのプロセスＩＤと一致するプロセスＩＤ１を持つプロセスＩＤ情報を探して、ＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたか否かを判断する手段、
ＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたプロセスである場合には、ＩＯ要求情報をプロセス起動元コンピュ−タに送付するＩＯ要求送付手段、
前記プロセス起動元コンピュータを、
送付されたＩＯ要求情報を受信し、受信したＩＯ要求情報に基づきＩＯを実行する手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
【請求項５】
前記プロセス起動元コンピュータを、ＩＯの実行結果を含むＩＯ処理結果情報を前記プロセス分散先コンピュータに送付する手段として更に機能させ、
前記プロセス分散先コンピュータを、プロセス起動元コンピュータから送付されたＩＯ処理結果情報を受信するＩＯ結果受信手段として更に機能させ、
前記ＩＯ要求送付手段を、一つ前のＩＯ要求情報に対するＩＯ処理結果情報を前記ＩＯ結果受信手段が受信する前に、新たなＩＯ要求がプロセスから出された場合には、該新たなＩＯ要求を保留する手段として機能させることを特徴とする請求項４記載のプロセス分散システムのためのプログラム。
【請求項６】
ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとプロセス移管先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス起動元コンピュータを、
プロセス分散先コンピュータに、該プロセス分散先コンピュータで実行されているプロセスを他のコンピュータに移管させる依頼を行う手段、
前記プロセス分散先コンピュータを、
リソース情報と最大使用メモリ量からプロセスを移管させるコンピュータを選択する選択手段、
プロセス移管依頼情報を選択したプロセス移管先コンピュータに送付する手段、
前記プロセス移管先コンピュータを、
送付されたプロセス移管依頼情報を受信して、受信したプロセス移管依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
【請求項７】
ネットワークに接続されたプロセス移管元コンピュータとプロセス移管先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス移管元コンピュータを、
自己のコンピュータのシャットダウン時に、リソース情報と最大使用メモリ量からプロセスを移管させるコンピュータを選択する選択手段、
プロセス移管依頼情報を選択したプロセス移管先コンピュータに送付する手段、
前記プロセス移管先コンピュータを、
送付されたプロセス移管依頼情報を受信して、受信したプロセス移管依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
オペレーティングシステムによるアプリケーションのプロセス分散技術に関する。
【背景技術】
【０００２】
あるネットワーク環境において接続されているコンピュータの性能は通常まちまちであり、あるコンピュータは処理能力が高いが、他のコンピュータは処理能力が低いことがある。そこで、処理能力の余っている他のコンピュータに、自分のプロセスを実行させるというアプローチが考えられ、具体的にはグリッドコンピューティングと呼ばれる技術がある。グリッドコンピューティングでは、ある種の結果を得るために、その処理を複数の副処理に分割し、それらの副処理をネットワークで接続された複数のコンピュータに分散させる。その結果、１台のコンピュータで処理を行う場合と比較して、より早く処理が完了するという効果がある。しかし、グリッドコンピューティングでは、それに適した複数のある程度複雑な副処理に分割可能であって、専用に作成されたアプリケーションである必要がある。
【０００３】
一方、ＵＮＩＸ（登録商標）のＸ−Ｗｉｎｄｏｗやｔｅｌｎｅｔなどを使用することで、ユーザによるプロセスの手動分散を行うことができる。しかし、どのコンピュータに分散させるべきかの判断が難しく、リモートコンピュータへのログオン処理などを行う必要があり、ユーザに操作を強いる。また、ファイル操作などのＩＯ処理を伴うプロセスは分散できない。
【０００４】
特開平０５−１０１０１９号公報、特開平０７−１５２６９９号公報、特開２００１−１４７９０７号公報は、プロセスの自動分散に関する技術であるが、次のような問題がある。
イ）ＩＯ処理、ＧＵＩ画面を伴うプロセスの分散は行えない。
ロ）プロセス起動時にプロセスを分散させるための情報の収集を行う必要があり、特に分散先のコンピュータの数が多い場合やネットワークに障害がある場合などに情報収集に時間がかかり、プロセスが起動されるまでに多くの時間を要する。
ハ）分散先のコンピュータを限定することができない。
ニ）対象外のコンピュータからのプロセス起動依頼を拒否できない。
ホ）プロセスを実行しているコンピュータをシャットダウンした場合、処理の継続ができない。または、プロセスは別のコンピュータで再起動されるが、処理は最初からやり直しになってしまう。
【特許文献１】特開平０５−１０１０１９号公報
【特許文献２】特開平０７−１５２６９９号公報
【特許文献３】特開２００１−１４７９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上の点に鑑み本発明は、プロセス分散先をいち早く決定し、ＩＯ処理やＧＵＩ画面を伴ってもプロセスを分散させることができ、プロセス分散先コンピュータがシャットダウンしても他のコンピュータにその処理を継続させるシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明におけるネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとから成るプロセス分散システムのためのプログラムは、前記プロセス起動元コンピュータを、前記プロセス分散先コンピュータから送信されたリソース情報を受信して受信したリソース情報を更新するリソース情報更新手段、前記プロセス分散先コンピュータから送信された最大使用メモリ量を受信して受信した最大使用メモリ量を更新する最大使用メモリ量更新手段、前記リソース情報と前記最大使用メモリ量からプロセスを分散させるべきコンピュータを選択する選択手段、プロセス起動依頼情報を選択されたプロセス分散先コンピュータに送信する手段、送付されたＩＯ要求情報を受信し受信したＩＯ要求情報に基づきＩＯを実行する手段として機能させ、前記プロセス分散先コンピュータを、リソース情報を一定時間毎に前記プロセス起動元コンピュータに送付する手段、前記プロセス起動元コンピュータから送信されたプロセス起動依頼情報を受信して受信したプロセス起動依頼情報に基づいてプロセスを起動する起動手段、前記プロセス起動元コンピュータから分散されたプロセスの最大使用メモリ量を前記プロセス起動元コンピュータに送付する最大使用メモリ量送付手段、自己のコンピュータで動作しているアプリケーションのプロセスからのＩＯ要求を受け付ける手段、ＩＯを要求したプロセスのプロセスＩＤと一致するプロセスＩＤ１を持つプロセスＩＤ情報を探してＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたか否かを判断する手段、ＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたプロセスである場合にはＩＯ要求情報をプロセス起動元コンピュ−タに送付するＩＯ要求送付手段を有する。
【発明の効果】
【０００７】
本発明を実施すると以下のような効果がある。
ａ）プロセス起動時にプロセスを分散させるための情報を収集する必要がないため、プロセスを分散させるコンピュータをすばやく選択でき、分散処理をスムーズに進めることができる。
ｂ）プロセスの分散先のコンピュータは、その時点で最も処理能力に余裕のあるコンピュータが選択されるため、システム全体の処理能力が均一かつ効率的に利用できる。
ｃ）分散システム名によって分散先コンピュータの限定が行えるので、分散システムをユーザが意識的にグループ化して処理負荷の分散の範囲を決めることができ、自己と同じ分散システム名を持たないコンピュータからのプロセス起動依頼の拒否が行える。
ｄ）あるコンピュータＡのアプリケーションは、最も処理能力のあるコンピュータで実行され、そのプロセスは、コンピュータＡ上で動作しているプロセスと同様にＩＯ処理（画面描画、ディスク操作、キーボード操作、マウス操作等）が行えるため、コンピュータＡのユーザは、あたかもそのコンピュータだけを操作している感覚でネットワーク上にある複数のコンピュータの処理能力を使うことができる。
ｅ）分散されるプロセスのアプリケーションには、特別な改造などは必要なく、また制限もなく、従来のものが使用できる。
ｆ）分散先コンピュータへのログオン操作は必要ないため、ユーザは他のコンピュータを意識する必要はない。
ｇ）プロセス起動元コンピュータから、プロセス分散先コンピュータで分散させているプロセスを自由に（例えば、該プロセス分散先コンピュータの負荷を低くさせたいため）他のコンピュータに移管させることができる。
ｈ）分散先コンピュータがシャットダウンした場合でも、そのコンピュータで動作している分散されたプロセスが他のコンピュータへ移管され、該プロセスが再起動されることなくそのまま処理が継続される。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明の実施例である。プロセス起動元コンピュータ１では、自己のコンピュータのプロセス２が動作し、プロセス分散先コンピュータ２１では、プロセス起動元コンピュータ１から分散された分散プロセス２２が動作する。
【０００９】
プロセス起動元コンピュータ１は、自己のコンピュータのプロセス２、ＩＯマネージャ３、プロセス分散マネージャ４、リソース情報５の記憶部、プロセスＩＤ情報６の記憶部、アプリケーション情報７の記憶部、ＩＯを実際に実行するＩＯ実行部８（オペレーティングシステムが持つ機能そのもの）から構成されている。さらにプロセス起動元コンピュータ１には、マウス１１、キーボード１２、ディスプレイ１３、ディスク１４等のＩＯ装置が接続されている。また、これらＩＯマネージャ３、プロセス分散マネージャ４、リソース情報５、プロセスＩＤ情報６、アプリケーション情報７、ＩＯ実行部８は、オペレーティングシステム（ＯＳ）の一部として実装される。
【００１０】
分散プロセスを実行するプロセス分散先コンピュータ２１は、プロセス起動元コンピュータ１と同様な構造であり、分散プロセス２２、ＩＯマネージャ２３、プロセス分散マネージャ２４、プロセスＩＤ情報２６、アプリケーション情報２７、ＩＯ実行部２８、図示しないがマウス、キーボード、ディスプレイ、ディスク等のＩＯ装置とから構成される。そして、これらプロセス起動元コンピュータ１とプロセス分散先コンピュータ２１とは、ネットワーク１５を経由して結ばれている。なお、各コンピュータは、プロセス起動元コンピュータ１とプロセス分散先コンピュータ２１の両方の役割を持っている。
【００１１】
ＩＯマネージャ３は、プロセスへのＩＯインタフェースの提供や、ＩＯ実行部８へのアクセスや、プロセス起動元コンピュータ１とプロセス分散先コンピュータ２１との間で送受信するＩＯに関する情報の管理を行う。ＩＯマネージャ３がプロセスに提供するインタフェースは、従来のＯＳのＩＯレイヤと同等になるように実装され、また、ＩＯマネージャ３が適切なコンピュータでＩＯ処理が行われるように制御されるため、プロセスは発行したＩＯ要求がどのコンピュータで実行されるのか意識する必要はない（最終的にはＩＯ処理はプロセス起動元コンピュータ１で実行される）。このため、プロセスを分散させるにあたり、アプリケーションの改造は必要なく、従来のものがそのまま使用できる。
【００１２】
プロセス分散マネージャ４は、プロセス起動元コンピュータ１とプロセス分散先コンピュータ２１に跨ったプロセスの分散に関する処理を行い、リソース情報５とプロセスＩＤ情報６とアプリケーション情報７とプロセス分散システムを一意に決定する分散システム名とＣＰＵアーキテクチャ係数とリモート係数を管理している。そして、分散システム名が同一である複数のコンピュータが一つのグループを形成し、このグループの範囲内でプロセスを分散させる。
【００１３】
図２は、本実施例におけるプロセス起動元コンピュータ１とプロセス分散先コンピュータ２１の属性、プロセス起動元コンピュータ１で動作するアプリケーションのプロセス２とプロセス分散先コンピュータ２１で動作する該アプリケーションの分散プロセス２２の属性をまとめた一覧表であり、以下、コンピュータやプロセスがこの属性を持つものとして説明する。
【００１４】
リソース情報５（図３）は、本発明に関係するコンピュータの資源に関する情報であり、分散システム名（ここでは‘ＤＩＳ０１’）、その分散システム内にあるコンピュータを識別するコンピュータ識別子（‘ＦＪ２２’）、そのコンピュータの処理能力（‘２Ｇ’）、ＣＰＵ使用率（‘２２’％）、空きメモリ容量（‘２２０Ｍ’バイト）から構成される。このコンピュータの処理能力は次式から求める。
コンピュータ処理能力＝ＣＰＵの動作クロック周波数（Ｈｚ）×ＣＰＵアーキテクチャ係数
ここでＣＰＵアーキテクチャ係数の例として、Ｐｅｎｔｉｕｍ（登録商標）３：１．０、Ｐｅｎｔｉｕｍ（登録商標）３（ｄｕａｌ  ＣＰＵ）：１．５、Ｐｅｎｔｉｕｍ（登録商標）４：０．８、ＡＭＤ  Ａｔｈｌｏｎ（登録商標）ＸＰ：１．３、などが挙げられる。また、リソース情報５は、各コンピュータのプロセス分散マネージャ７によってプロセスを分散させることができる可能性のあるコンピュータの数だけ管理されている。
【００１５】
プロセスＩＤ情報６（図４）は、分散されたプロセスに関して、プロセス起動元コンピュータ１におけるプロセスＩＤとプロセス分散先コンピュータ２１におけるプロセスＩＤとの対応を表す情報であり、プロセス起動元コンピュータ１では他のコンピュータへ分散させたプロセスの数、プロセス分散先コンピュータ２１では他のコンピュータから自己のコンピュータへ分散されたプロセスの数だけ存在する。このプロセスＩＤ情報６は、この情報が他のコンピュータへ分散させたプロセスの情報なのか他のコンピュータから自己のコンピュータへ分散されたプロセスの情報なのかを表すプロセス種別、自己のコンピュータにおけるプロセスＩＤ１（ここでは‘２２’）、リモートコンピュータのコンピュータ識別子（‘ＦＪ３３’）、リモートコンピュータにおけるプロセスＩＤ２（‘３３’）から構成される。即ち、プロセス起動元コンピュータ１では、プロセスＩＤ１（‘２２’）はプロセス起動元コンピュータ１におけるプロセスＩＤで、プロセスＩＤ２（‘３３’）はプロセス分散先コンピュータ２１におけるプロセスＩＤである。プロセス分散先コンピュータ２１では、プロセスＩＤ１（‘３３’）はプロセス分散先コンピュータ２１におけるプロセスＩＤで、プロセスＩＤ２（‘２２’）はプロセス起動元コンピュータ１におけるプロセスＩＤである。そして、各コンピュータのプロセス分散マネージャは、お互いに関連のあるプロセスのプロセスＩＤ情報６を有し管理している。
【００１６】
アプリケーション情報７（図５）は、アプリケーションの最大使用メモリ量（ここでは‘２Ｍ’）と、アプリケーションの実行に必要なパラメタ（‘ＰＲＭ１，ＰＲＭ２’）から構成され、プロセス起動元コンピュータ１ではアプリケーションの種別毎（実行ファイル単位）に、プロセス分散先コンピュータ２１ではプロセス毎に管理されている。最大使用メモリ量とは、過去にアプリケーションのプロセスが使用した最大のメモリ量であり、プロセスの分散先やプロセスの移管先のコンピュータを決定する際に用いられる（詳細は後述）。そして、そのアプリケーションのプロセスが実行されて最大使用メモリ量が更新されたら、プロセス分散マネージャ４により最大使用メモリ量が更新される。なお、そのアプリケーションが一度も実行されていない場合は、暫定的に「実行ファイルのファイルサイズ×ｎ（例えばｎ＝２）」が最大使用メモリ量として格納される。
【００１７】
プロセス起動依頼情報５１（図６）は、プロセス起動元コンピュータ１からプロセス分散先コンピュータ２１にプロセスを分散させる際の依頼に関する情報であり、分散システム名（ここでは‘ＤＩＳ０１’）、プロセス起動元コンピュータのコンピュータ識別子（‘ＦＪ２２’）、プロセス起動元コンピュータにおけるアプリケーションのプロセスＩＤ（‘２２’）、起動プロセスイメージ（アプリケーションプログラムのバイナリやアプリケーションの実行ファイルの内容）、分散させるアプリケーションのアプリケーション情報（‘２Ｍ，ＰＲＭ１，ＰＲＭ２’）から構成される。
【００１８】
ＩＯ要求情報５２（図７）は、プロセス分散先コンピュータ２１のＩＯマネージャ２３から発行されるＩＯ要求に関する情報であり、プロセス分散先コンピュータにおけるプロセスＩＤ（例えば‘３３’）、プロセス起動元コンピュータにおけるプロセスＩＤ（‘２２’）、ＷＲＩＴＥ／ＲＥＡＤ等のＩＯ要求の種別を表す要求種別（‘ＲＥＡＤ’）、複数のＩＯ要求を区別する要求ＩＤ（‘７７’）、ＩＯ要求に伴う引数（‘／ｕｓｒ／ｌｏｃａｌ／ｈｏｍｅ／ＦＪ／ｍｅｉｓａｉ．ｄｏｃ’）から構成される。
【００１９】
ＩＯ処理結果情報５３（図８）は、プロセス起動元コンピュータ１で実行されたＩＯの処理結果であり、プロセス分散先コンピュータにおけるプロセスＩＤ（ここでは‘３３’）、プロセス起動元コンピュータにおけるプロセスＩＤ（‘２２’）、要求ＩＤ（‘７７’）、ＩＯの処理結果（ＲＥＡＤしたバイト数である‘６１００’）から構成される。
【００２０】
ＩＯ要求情報５４（図９）は、複数のＩＯ要求がまとめられた場合のＩＯ要求に関する情報であり、要求種別・要求ＩＤ・ＩＯ引数の組がＩＯ要求の回数分ある。図９では２回のＩＯ要求がまとめられた状態を示している。
【００２１】
プロセス移管依頼情報５５（図１０）は、プロセス移管元コンピュータＢからプロセス移管先コンピュータＣにプロセスを移管させる際（詳細は後述）の情報であり、分散システム名（ここでは‘ＤＩＳ０１’）、プロセス起動元コンピュータＡのコンピュータ識別子（‘ＦＪ２２’）、プロセス移管元コンピュータＢのコンピュータ識別子（‘ＦＪ３３’）、プロセス起動元コンピュータＡにおけるプロセスＩＤ（‘２２’）、実行中のプロセスメモリイメージ（アプリケーションプログラムのバイナリやアプリケーションの実行ファイルの内容）、ＣＰＵレジスタの値等の実行環境情報、アプリケーション情報（‘３Ｍ，ＰＲＭ１，ＰＲＭ２’）から構成される。
【００２２】
プロセス強制移管依頼情報５６（図１１）は、プロセス移管元コンピュータＢからプロセス移管先コンピュータＣへのプロセスの移管に失敗し、プロセス起動元コンピュータＡへプロセスを強制移管する際（詳細は後述）の情報であり、プロセス起動元コンピュータＡにおけるプロセスＩＤ（‘２２’）、実行中のプロセスメモリイメージ（アプリケーションプログラムのバイナリやアプリケーションの実行ファイルの内容）、ＣＰＵレジスタの値等の実行環境情報、アプリケーション情報（‘３Ｍ，ＰＲＭ１，ＰＲＭ２’）から構成される。
【００２３】
まず、リソース情報５の更新について説明する（図１２）。リソース情報を広報するコンピュータ（便宜上、ここではプロセス分散先コンピュータ２１‘ＦＪ３３’とする）のプロセス分散マネージャ２４は、分散システム名‘ＤＩＳ０１’、コンピュータ識別子‘ＦＪ３３’、コンピュータの処理能力‘３Ｇ’、ＣＰＵ使用率‘１３’％から成るリソース情報５を作成し、作成したリソース情報５を定期的に（例えば５秒毎に）他のコンピュータに広報する（Ｓ１）。リソース情報を受信するコンピュータ（便宜上、ここではプロセス起動元コンピュータ１‘ＦＪ２２’とする）のプロセス分散マネージャ４は、広報されたリソース情報５を受信し（Ｓ２）、リソース情報に含まれる分散システム名（‘ＤＩＳ０１’）が、プロセス分散マネージャ４が管理する分散システム名（‘ＤＩＳ０１’）と一致するか判断する（Ｓ３）。ここの例の様に分散システム名が一致する場合、受信したリソース情報を保管または更新する（Ｓ４）。分散システム名が一致しない場合、受信したリソース情報は破棄される（Ｓ５）。なお、一定時間、更新されないリソース情報は破棄される。
【００２４】
次に、最大使用メモリ量の更新について説明する（図１３）。プロセス分散先コンピュータ２１のプロセス分散マネージャ２４は、プロセス起動元コンピュータ１から分散されたプロセスである分散プロセス２２の最大使用メモリ量を常に監視し、その最大使用メモリ量が増えたら自己が管理するアプリケーション情報７の最大使用メモリ量（ここでは‘３Ｍ’）を更新し（Ｓ１１）、プロセス起動元コンピュータ１に通知する（Ｓ１２）。プロセス起動元コンピュータ１のプロセス分散マネージャ４は、通知された最大使用メモリ量（‘３Ｍ’）を受信する（Ｓ１３）。プロセス分散マネージャ４が現在管理している最大使用メモリ量（‘２Ｍ’）より、通知された最大使用メモリ量（‘３Ｍ’）の方が大きいか否か判断し（Ｓ１４）、ここの例の様に通知された最大使用メモリ量の方が大きい場合には、プロセス分散マネージャ４が管理しているアプリケーション情報７の最大使用メモリ量を通知された最大使用メモリ量（‘３Ｍ’）に更新する（Ｓ１５）。一方、通知された最大使用メモリ量の方が小さい場合には（プロセス分散マネージャ４で管理されているアプリケーション情報の最大使用メモリ量の方が大きい）、プロセス分散マネージャ４が管理しているアプリケーション情報７の最大使用メモリ量をプロセス分散先コンピュータ２１に通知する（Ｓ１６）。プロセス分散先コンピュータ２１のプロセス分散マネージャ２４は、通知された最大使用メモリ量を受信し（Ｓ１７）、自己が管理するアプリケーション情報の最大使用メモリ量を受信した最大使用メモリ量に更新する（Ｓ１８）。最大使用メモリ量の連続しての通知は、ネットワーク負荷や遅延を考慮して一定時間（例えば５秒）間隔を空ける必要がある。これらの処理によって、分散して実行されているアプリケーションの最大使用メモリ量が適切に管理される。
【００２５】
次に、プロセスを分散させるプロセス分散先コンピュータの選択について説明する（図１４）。プロセス分散マネージャ４は、各リソース情報に含まれる空きメモリ容量（ここでは便宜上プロセス分散先コンピュータ２１が広報したリソース情報の‘３３０Ｍ’）と分散させるアプリケーションに関するアプリケーション情報７の最大使用メモリ量（ここでは便宜上プロセス起動元コンピュータ１のアプリケーション情報の最大使用メモリ量‘２Ｍ’（上記Ｓ１５で更新されていないとする））を比較する（Ｓ２１）。ここの例の様にそのコンピュータの空きメモリ容量（‘３３０Ｍ’）が最大使用メモリ量（‘２Ｍ’）以上であれば、次式の選択値を計算する（Ｓ２２）。未満であれば選択値を計算しない。
選択値＝コンピュータ処理能力×（１−ＣＰＵ使用率（％）／１００）×リモート係数
ここでリモート係数とは、プロセス分散マネージャ４によって管理される定数であり、例えばプロセス起動元コンピュータ：１．０、プロセス分散先コンピュータ：０．８である。この値の差は、後者がネットワークを介してＩＯを実行するために発生するオーバーヘッドの差である。そして、すべてのリソース情報について計算し終えたら（Ｓ２３）、計算した選択値が１つ以上あるか判断し（Ｓ２４）、選択値が１つ以上あれば、選択値が最大となるもの（即ち、最も処理能力のあるコンピュータ）（ここでは‘ＦＪ３３’）をプロセス分散先コンピュータとして選択する（Ｓ２５）。選択値が１つもない場合には、空きメモリ容量が最大のものをプロセス分散先コンピュータとして選択する（Ｓ２６）。
【００２６】
次にプロセスの起動について説明する（図１５）。プロセス起動元コンピュータ１のプロセス分散マネージャ４は、プロセスを分散させるプロセス分散先コンピュータ（ここでは‘ＦＪ３３’）を選択する（Ｓ３１、詳細はＳ２１からＳ２６）。選択したコンピュータが自己のコンピュータであるか判定し（Ｓ３２）、そうであれば自己のコンピュータでプロセスを起動する（Ｓ３３）。ここの例の様にそうでなければ、プロセス起動依頼情報５１を作成し（Ｓ３４）、作成したプロセス起動依頼情報５１をＳ３１で選択したコンピュータ（‘ＦＪ３３’）に送付する（Ｓ３５）。プロセス分散先コンピュータ２１（‘ＦＪ３３’）のプロセス分散マネージャ２４は、送付されたプロセス起動依頼情報５１を受信する（Ｓ３６）。
【００２７】
受信したプロセス起動依頼情報５１に含まれる分散システム名（‘ＤＩＳ０１’）とプロセス管理マネージャ２４が管理している分散システム名（‘ＤＩＳ０１’）とが一致するか判断し（Ｓ３７）（一致する場合ログオン成功とみなす）、プロセス分散先コンピュータ２１の現在の空きメモリ容量（‘３３０Ｍ’）がプロセス起動依頼情報５１に含まれるアプリケーション情報の最大使用メモリ量（‘２Ｍ’）以上か判断し（Ｓ３８）、プロセス分散マネージャ２４がリソース情報５を最後に広報してからプロセス起動依頼情報５１を受信するまで他のプロセスを起動していないか判断する（リソース情報の広報、更新、コンピュータの選択までの間にタイムラグがあり状況が変化している可能性があるため）（Ｓ３９）。ここの例の様にいずれの判断もＹｅｓであれば、プロセス起動依頼情報５１に含まれる起動プロセスイメージとアプリケーション情報に基づいてプロセスを起動し（Ｓ４０）、プロセスＩＤ情報６を作成し（Ｓ４１）、起動成功とプロセス分散先コンピュータにおけるプロセスＩＤ（‘３３’）をプロセス起動元コンピュータ１へ通知する（Ｓ４２）。ひとつでもＮｏがあれば、起動エラーをプロセス分散マネージャ４に通知する（Ｓ４３）。プロセス分散マネージャ４は、エラー通知を受信した場合（Ｓ４４）、別のコンピュータを選択する（Ｓ３１）。成功通知を受信した場合（Ｓ４４）、プロセスＩＤ情報を作成する（Ｓ４５）。
【００２８】
次にプロセス分散先コンピュータ２１で動作しているプロセス起動元コンピュータ１から分散されたプロセス２２のＩＯ処理について説明する（図１６）。プロセス分散先コンピュータ２１で動作しているプロセス２２が、ＩＯ要求を発行する（Ｓ５１）。ここでは例えば、ＯＳが次のようなＩＯインタフェースを提供しているとする。
●ｉｏ＿ｗｒｉｔｅ（ｄｅｖｉｃｅ，ｄａｔａ，ｄａｔａ＿ｓｉｚｅ）：プロセス起動元コンピュータのｄｅｖｉｃｅに対して、ｄａｔａとｄａｔａ＿ｓｉｚｅで示されるデータを書き込む。戻り値は、成功／失敗等の結果である。
●ｉｏ＿ｒｅａｄ（ｄｅｖｉｃｅ，ｂｕｆｆｅｒ，ｄａｔａ＿ｓｉｚｅ）：プロセス起動元コンピュータのｄｅｖｉｃｅからｄａｔａ＿ｓｉｚｅ分のデータをｂｕｆｆｅｒに読み込む。戻り値は、成功／失敗等の結果である。
【００２９】
ＩＯマネージャ２３は、プロセス２２からのＩＯ要求を受け付ける（Ｓ５２）。ＩＯマネージャ２３は、プロセス分散マネージャ２４を経由して、プロセスＩＤ情報２６からＩＯを要求したプロセス２２のプロセスＩＤ（ここでは‘３３’）を持つプロセスＩＤ情報６を探し出すことにより、プロセス２２がプロセス起動元コンピュータから分散されたプロセスなのか、自己のコンピュータのプロセス（即ちプロセス起動元コンピュータから分散された分散プロセスではない）なのか判断する（Ｓ５３）。プロセス２２がプロセス起動元コンピュータから分散されたプロセスであれば、プロセス起動元コンピュータ１にＩＯ処理を依頼するため、ＩＯ要求情報５２を作成し、プロセス起動元コンピュータ１のＩＯマネージャ３に送付する（Ｓ５５）。プロセス起動元コンピュータ１のＩＯマネージャ３は、送付されたＩＯ要求情報を受信する（Ｓ５６）。ＩＯ処理は、ＩＯ実行部８で行われる（Ｓ５７）。ＩＯの処理結果は、ＩＯマネージャ３がＩＯ処理結果情報５３としてプロセス分散先コンピュータ２１のＩＯマネージャ２３へ送付する（Ｓ５８）。ＩＯマネージャ２３は、送付されたＩＯ処理結果情報５３を受信して（Ｓ５９）、処理結果をｉｏ＿ｗｒｉｔｅまたはｉｏ＿ｒｅａｄの戻り値として、プロセス２２に返す（Ｓ６０）。
【００３０】
Ｓ５３の判断において、プロセス２２（即ちプロセス２）が自己のコンピュータのプロセスであると判断された場合（Ｓ５３）、自己のコンピュータのＩＯ実行部８で通常のＩＯ処理を行う（Ｓ５４）。ＩＯマネージャ３は、そのＩＯ処理結果をｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄの戻り値として、プロセス２へ返す（Ｓ６０）
ここで、ネットワーク負荷軽減のため、上記ｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄの処理において、ＩＯマネージャ２３は次のような保留処理を行う。同一コンピュータの同一デバイスに関するｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄが、ひとつ前のｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄのＩＯ処理結果を受信する前に発行された場合、そのｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄに関するＩＯ要求情報５２の送信は保留される。また、ＩＯ要求情報５２の送信が保留されているときに、さらに、ｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄが発行された場合は、これに関するＩＯ要求情報５２の送信も保留される。これら保留されているＩＤ要求情報５２は、待ち合わせていたｉｏ＿ｗｒｉｔｅ／ｉｏ＿ｒｅａｄのＩＯ処理結果情報５３を受信したとき、１つのＩＯ要求情報５３（図９）にまとめられて送信される。このように１つにまとめられたＩＯ要求情報５２を受取ったプロセス起動元コンピュータ１のＩＯマネージャ３は、すべてのＩＯ処理を実行し、すべてのＩＯ処理が完了するのを待つ。ただし、一定時間（例えば１００ｍｓ）待っても、すべてのＩＯ処理が完了しない場合、待つのを中止する。そして完了したすべてのＩＯ処理の結果をまとめてプロセス分散先コンピュータ２１のＩＯマネージャ２３に返信する。もし完了していないＩＯ処理があれば始めに戻り、再度すべてのＩＯ処理が完了するのを一定時間待つ。
【００３１】
ＩＯマネージャ２３は、プロセスに対して次のような専用インタフェースも提供する。これらは、本システムで提供されるＩＯマネージャ専用に作成されたプロセスのみから利用できる。
●ｉｏ＿ｗｒｉｔｅ＿ｌｏｃａｌ（ｄｅｖｉｃｅ，ｄａｔａ，ｄａｔａ＿ｓｉｚｅ）：プロセスが動作しているコンピュータのｄｅｖｉｃｅに対して、ｄａｔａとｄａｔａ＿ｓｉｚｅで示されるデータを書き込む。戻り値は、成功／失敗等の結果。
●ｉｏ＿ｒｅａｄ＿ｌｏｃａｌ（ｄｅｖｉｃｅ，ｂｕｆｆｅｒ，ｄａｔａ＿ｓｉｚｅ）：プロセスが動作しているコンピュータのｄｅｖｉｃｅからｄａｔａ＿ｓｉｚｅ分のデータをｂｕｆｆｅｒに読み込む。戻り値は、成功／失敗等の結果。
●ｉｏ＿ｗｒｉｔｅ＿ｉｍｍｅｄｉａｔｅｌｙ（ｄｅｖｉｃｅ，ｄａｔａ，ｄａｔａ＿ｓｉｚｅ）：上述した保留処理を行わないｉｏ＿ｗｒｉｔｅ。
●ｉｏ＿ｒｅａｄ＿ｉｍｍｅｄｉａｔｅｌｙ（ｄｅｖｉｃｅ，ｂｕｆｆｅｒ，ｄａｔａ＿ｓｉｚｅ）：上述した保留処理を行わないｉｏ＿ｒｅａｄ。
なお、同一コンピュータの同一ｄｅｖｉｃｅに対するｉｏ＿ｘｘｘとｉｏ＿ｘｘｘ＿ｉｍｍｅｄｉａｔｅｌｙ（ｘｘｘはｒｅａｄ／ｗｒｉｔｅ）が混在した場合、ＩＯ処理の順序性を保つためｉｏ＿ｘｘｘ＿ｉｍｍｅｄｉａｔｅｌｙが発行されても保留処理が行われる。
【００３２】
次に、プロセス起動元コンピュータＡのユーザの指示により、プロセス分散先コンピュータＢ（即ちプロセス移管元コンピュータＢ）で動作中のプロセスＢを他のプロセス分散先コンピュータＣに移管する処理について説明する（図１７、図１８）。プロセス起動元コンピュータＡのプロセス分散マネージャＡから、プロセス分散先コンピュータＢ（プロセス移管元コンピュータＢ）のプロセス分散マネージャＢへ、プロセスＢを他のコンピュータに移管する指示が送信される（Ｓ７１）。プロセス分散マネージャＢは、２つの次式を満たし、ａ２×（１−ｃ２／１００）×ｒが最大であるものに関するコンピュータをプロセス移管先コンピュータＣとして選択する（但し、コンピュータＢは選択対象外とする）（Ｓ７２）。
●プロセスＢを動作させる能力があるか否か判断する式
ａ２×（１−ｃ２／１００）×ｒ＞ａ１×（ｃ１／１００）×ｒ
●プロセスＢを動作させるメモリがあるか否か判断する式
ｎ２≧ｎ１
ここで、
ａ１：プロセスＢを実行しているコンピュータＢのコンピュータ処理能力
ｃ１：コンピュ−タＢのＣＰＵ使用率（％）
ｎ１：プロセスＢの最大使用メモリ量
ａ２：移管先コンピュータＣのコンピュータ処理能力
ｃ２：コンピュータＣのＣＰＵ使用率（％）
ｎ２：コンピュータＣの空きメモリ容量
ｒ：リモート係数
である。このリモート係数ｒは、例えば、プロセス起動元コンピュータ：１．０、プロセス起動元コンピュータでないコンピュータ：０．８である。
【００３３】
移管先が見つかった場合（Ｓ７３）、プロセス分散マネージャＢは、プロセス移管依頼情報５５を作成し（Ｓ７４）、プロセス移管先コンピュータＣのプロセス分散マネージャＣに対してプロセス移管依頼情報５５を送信する（Ｓ７５）。プロセス分散マネージャＣは、送信されたプロセス移管依頼情報５５を受信し（Ｓ７６）、プロセス移管依頼情報５５に含まれている分散システム名（‘ＤＩＳ０１’）とプロセス移管先コンピュータＣのプロセス管理マネージャＣが管理している分散システム名とが一致するか判断し（一致すればログオン成功とみなす）（Ｓ７７）、プロセス移管先コンピュータＣの現在の空きメモリ容量がプロセス移管依頼情報５５に含まれるアプリケーション情報の最大使用メモリ量（‘２Ｍ’）以上か判断し（Ｓ７８）、プロセス分散マネージャＣがリソース情報５を最後に広報してからプロセス移管依頼情報５５を受信するまで他のプロセスを起動していないか判断する（Ｓ７９）。
【００３４】
いずれもＹｅｓであれば、プロセス移管依頼情報５５に含まれるプロセスメモリイメージと実行環境情報に基づいてプロセスを起動し（Ｓ８０）、プロセスＩＤ情報を作成する（Ｓ８１）。プロセス分散マネージャＣはプロセス分散マネージャＡに対して、プロセスの移管が成功したことと、プロセス移管先コンピュータＣにおけるプロセスＩＤを通知し、プロセス分散マネージャＢに対しても、プロセスの移管が成功した旨をする（Ｓ８２）。プロセスの移管が成功した旨を受信したプロセス分散マネージャＡは、移管されたプロセスに関するプロセスＩＤ情報を更新する（Ｓ８３、Ｓ８４）。ひとつでもＮｏがあれば、移管エラーをプロセス分散マネージャＢに通知する（Ｓ８５）。プロセス分散マネージャＢは、移管エラー通知を受信した場合（Ｓ８６）、次のコンピュータを選択する（Ｓ７２）。移管成功を受信した場合（Ｓ８６）、移管したプロセスに関するプロセスＩＤ情報を削除する（Ｓ８７）。プロセスを移管することができるコンピュータが１つもない場合（Ｓ７３）、プロセス移管の失敗をプロセス分散マネージャＡに通知する（Ｓ８８）。
【００３５】
次に、プロセス起動元コンピュータＡから分散されたプロセス２２が動作しているプロセス分散先コンピュータ２１（プロセス移管元コンピュータＢ）がシャットダウンされて他のコンピュータ（プロセス移管先コンピュータＣ）にプロセス２２を移管させる場合の処理について説明する（図１９）。プロセス分散マネージャＢは、上記Ｓ７２と同様にプロセス移管先コンピュータＣを選択する（但し、コンピュータＢは選択対象外とする）（Ｓ９１）。移管先が見つかった場合（Ｓ９２）、プロセス分散マネージャＢは、プロセス移管依頼情報５５を作成し（Ｓ９３）、プロセス移管先コンピュータＣのプロセス分散マネージャＣに対してプロセス移管依頼情報５５を送信する（Ｓ９４）。プロセス分散マネージャＣは、送信されたプロセス移管依頼情報５５を受信し（Ｓ９５）、プロセス移管依頼情報５５に含まれている分散システム名（‘ＤＩＳ０１’）とプロセス移管先コンピュータＣのプロセス管理マネージャＣが管理している分散システム名とが一致するか判断し（Ｓ９６）、プロセス移管先コンピュータＣの現在の空きメモリ容量がプロセス移管依頼情報５５に含まれているアプリケーション情報内の最大使用メモリ量（‘２Ｍ’）以上か判断し（Ｓ９７）、プロセス分散マネージャＣがリソース情報５を最後に広報してからプロセス移管依頼情報５５を受信するまで他のプロセスを起動していないか判断する（Ｓ９８）。
【００３６】
いずれもＹｅｓであれば、プロセス移管依頼情報５５に含まれるプロセスメモリイメージと実行環境情報に基づいてプロセスを起動し（Ｓ９９）、プロセスＩＤ情報を作成する（Ｓ１００）。プロセス分散マネージャＣは、プロセス起動元コンピュータＡのプロセス分散マネージャＡに対して、プロセスが移管されたことと、プロセス移管先コンピュータＣにおけるプロセスＩＤを通知し、プロセス分散マネージャＢに対して、プロセスの移管が成功した旨を通知する（Ｓ１０１）。プロセスの移管が行われた旨を受信したプロセス分散マネージャＡは、移管されたプロセスに関するプロセスＩＤ情報を更新する（Ｓ１０２、Ｓ１０３）。一方、ひとつでもＮｏがあれば、移管エラーをプロセス分散マネージャＢに通知する（Ｓ１０４）。プロセス分散マネージャＢは、移管エラー通知を受信した場合（Ｓ１０５）、次のコンピュータを選択する（Ｓ９１）。
【００３７】
移管先が見つからない場合（Ｓ９２）、移管先をプロセス起動元コンピュータＡとしてプロセス強制移管依頼情報５６を作成し、プロセス起動元コンピュータＡのプロセス分散マネージャＡへ送信する（Ｓ１０６）。プロセス分散マネージャＡは、プロセス強制移管依頼情報５６を受信し（Ｓ１０７）、プロセス強制移管依頼情報５６に含まれるプロセスイメージと実行環境情報に基づいてプロセスを起動し（Ｓ１０８）、プロセスＩＤ情報を更新する（Ｓ１０９）。
【００３８】
（付記１）ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス起動元コンピュータを、
前記プロセス分散先コンピュータから送信されたリソース情報を受信して、受信したリソース情報を更新するリソース情報更新手段、
前記リソース情報からプロセスを分散させるべきコンピュータを選択する選択手段、    プロセス起動依頼情報を選択されたプロセス分散先コンピュータに送信する手段、
前記プロセス分散先コンピュータを、
リソース情報を一定時間毎に前記プロセス起動元コンピュータに送付する手段、
前記プロセス起動元コンピュータから送信されたプロセス起動依頼情報を受信して、受信したプロセス起動依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
（付記２）前記プロセス起動元コンピュータを、前記プロセス分散先コンピュータから送信された最大使用メモリ量を受信して、受信した最大使用メモリ量を更新する最大使用メモリ量更新手段として更に機能させ、
前記プロセス分散先コンピュータを、前記プロセス起動元コンピュータから分散されたプロセスの最大使用メモリ量を前記プロセス起動元コンピュータに送付する最大使用メモリ量送付手段として更に機能させ、
前記選択手段を、前記リソース情報と前記最大使用メモリ量からプロセスを分散させるべきコンピュータを選択する手段として機能させることを特徴とする付記１記載のプロセス分散システムのためのプログラム。
（付記３）前記選択手段を、プロセス分散先コンピュータの空きメモリ容量が最大使用メモリ量以上である場合に、前記リソース情報に基いて最も処理能力のあるコンピュータを、プロセスを分散させるべきコンピュータとして選択する手段として機能させることを特徴とする付記２記載のプロセス分散システムのためのプログラム。
（付記４）前記リソース情報更新手段を、受信したリソース情報に含まれているプロセス分散システムを一意に表す分散システム名と自己の分散システム名が一致する場合、受信したリソース情報を更新する手段として機能させることを特徴とする付記１、２、または３記載のプロセス分散システムのためのプログラム。
（付記５）前記最大使用メモリ量更新手段を、受信した最大使用メモリ量が自己の最大使用メモリ量以上の場合には、自己の最大使用メモリ量を受信した最大使用メモリ量に更新する手段として機能させることを特徴とする付記２、３または４記載のプロセス分散システムのためのプログラム。
（付記６）前記最大使用メモリ量送付手段を、前記プロセス起動元コンピュータから分散されたプロセスの最大使用メモリ量が増加したら、該最大使用メモリ量を前記プロセス起動元コンピュータに送付する手段として機能させることを特徴とする付記２、３、４または５記載のプロセス分散システムのためのプログラム。
（付記７）ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス分散先コンピュータを、
自己のコンピュータで動作しているアプリケーションのプロセスからのＩＯ要求を受け付ける手段、
ＩＯを要求したプロセスのプロセスＩＤと一致するプロセスＩＤ１を持つプロセスＩＤ情報を探して、ＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたか否かを判断する手段、
ＩＯ要求を出したプロセスがプロセス起動元コンピュータから分散依頼されたプロセスである場合には、ＩＯ要求情報をプロセス起動元コンピュ−タに送付するＩＯ要求送付手段、
前記プロセス起動元コンピュータを、
送付されたＩＯ要求情報を受信し、受信したＩＯ要求情報に基づきＩＯを実行する手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
（付記８）前記プロセス起動元コンピュータを、ＩＯの実行結果を含むＩＯ処理結果情報を前記プロセス分散先コンピュータに送付する手段として更に機能させ、
前記プロセス分散先コンピュータを、プロセス起動元コンピュータから送付されたＩＯ処理結果情報を受信するＩＯ結果受信手段として更に機能させ、
前記ＩＯ要求送付手段を、一つ前のＩＯ要求情報に対するＩＯ処理結果情報を前記ＩＯ結果受信手段が受信する前に、新たなＩＯ要求がプロセスから出された場合には、該新たなＩＯ要求を保留する手段として機能させることを特徴とする付記７記載のプロセス分散システムのためのプログラム。
（付記９）ネットワークに接続されたプロセス起動元コンピュータとプロセス分散先コンピュータとプロセス移管先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス起動元コンピュータを、
プロセス分散先コンピュータに、該プロセス分散先コンピュータで実行されているプロセスを他のコンピュータに移管させる依頼を行う手段、
前記プロセス分散先コンピュータを、
リソース情報と最大使用メモリ量からプロセスを移管させるコンピュータを選択する選択手段、
プロセス移管依頼情報を選択したプロセス移管先コンピュータに送付する手段、
前記プロセス移管先コンピュータを、
送付されたプロセス移管依頼情報を受信して、受信したプロセス移管依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
（付記１０）ネットワークに接続されたプロセス移管元コンピュータとプロセス移管先コンピュータとから成るプロセス分散システムのためのプログラムにおいて、
前記プロセス移管元コンピュータを、
自己のコンピュータのシャットダウン時に、リソース情報と最大使用メモリ量からプロセスを移管させるコンピュータを選択する選択手段、
プロセス移管依頼情報を選択したプロセス移管先コンピュータに送付する手段、
前記プロセス移管先コンピュータを、
送付されたプロセス移管依頼情報を受信して、受信したプロセス移管依頼情報に基づいて、プロセスを起動する起動手段、
として機能させることを特徴とするプロセス分散システムのためのプログラム。
（付記１１）前記選択手段を、プロセス移管先コンピュータの空きメモリ容量が最大使用メモリ量以上である場合に、前記リソース情報に基いて最も処理能力のあるコンピュータを、プロセスを移管させるべきコンピュータとして選択する手段として機能させることを特徴とする付記９または１０記載のプロセス分散システムのためのプログラム。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施例
【図２】本実施例におけるプロセス起動元コンピュータ／プロセス分散先コンピュータ及びプロセスの属性一覧表
【図３】リソース情報の例
【図４】プロセスＩＤ情報の例
【図５】アプリケーション情報の例
【図６】プロセス起動依頼情報の例
【図７】ＩＯ要求情報の例
【図８】ＩＯ処理結果情報の例
【図９】ＩＯ要求情報の例（複数のＩＯ要求がまとめて送信される場合）
【図１０】プロセス移管依頼情報の例
【図１１】プロセス強制移管依頼情報の例
【図１２】リソース情報の更新に関するフロー
【図１３】最大使用メモリ量の更新に関するフロー
【図１４】プロセス分散先コンピュータの選択に関するフロー
【図１５】プロセスの起動に関するフロー
【図１６】ＩＯ処理に関するフロー
【図１７】プロセスの移管に関する概略フロー
【図１８】プロセスの移管に関する詳細フロー
【図１９】プロセス分散先コンピュータにおけるシャットダウンに関するフロー
【符号の説明】
【００４０】
１  プロセス起動元コンピュータ
２  自己のコンピュータで動作するプロセス
３  プロセス起動元コンピュータにおけるＩＯマネージャ
４  プロセス起動元コンピュータにおけるプロセス分散マネージャ
５  プロセス起動元コンピュータにおけるリソース情報
６  プロセス起動元コンピュータにおけるプロセスＩＤ情報
７  プロセス起動元コンピュータにおけるアプリケーション情報
８  プロセス起動元コンピュータにおけるＯＳのＩＯ実行部
１１  マウス
１２  キーボード
１３  ディスプレイ
１４  ディスク
１５  ネットワーク
２１  プロセス分散先コンピュータ
２２  プロセス起動元コンピュータから分散されたプロセス
２３  プロセス分散先コンピュータにおけるＩＯマネージャ
２４  プロセス分散先コンピュータにおけるプロセス分散マネージャ
２６  プロセス分散先コンピュータにおけるプロセスＩＤ情報
２７  プロセス分散先コンピュータにおけるアプリケーション情報
２８  プロセス分散先コンピュータにおけるＯＳのＩＯ実行部
【図１】
2005107958.tif 000003
【図２】
2005107958.tif 000004
【図３】
2005107958.tif 000005
【図４】
2005107958.tif 000006
【図５】
2005107958.tif 000007
【図６】
2005107958.tif 000008
【図７】
2005107958.tif 000009
【図８】
2005107958.tif 000010
【図９】
2005107958.tif 000011
【図１０】
2005107958.tif 000012
【図１１】
2005107958.tif 000013
【図１２】
2005107958.tif 000014
【図１３】
2005107958.tif 000015
【図１４】
2005107958.tif 000016
【図１５】
2005107958.tif 000017
【図１６】
2005107958.tif 000018
【図１７】
2005107958.tif 000019
【図１８】
2005107958.tif 000020
【図１９】
2005107958.tif 000021