(57)【要約】  【課題】  負荷変動に応じてコンポーネントの再配置を行うことにより、自立的に装置の構成変更を実行して負荷分散を行う分散処理システムを提供する。  【解決手段】  コントロールユニット１に搭載されたマイコン１１，１２，１３はバスによって結合され、分散処理システムを構築している。各マイコン１１，１２，１３は、アナログインタフェース３１、ＬＡＮインタフェース３２などのように配置場所が固定化されているコンポーネント３７と、音声通信プロトコル４１、ＴＴＹ通信プロトコル４３などのように配置場所を変えることができるコンポーネント３８とを備えている。各マイコン１１，１２，１３は、それぞれのＳＮＭＰエージェント５１，５２，５３を介して自己の負荷情報をＳＮＭＰマネージャ５０へ通知する。システム監視コンポーネント４５は、ＳＮＭＰマネージャ５０から負荷情報を取得して負荷に応じた最適なコンポーネント構成を行う。【選択図】    図７
2006065725.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータを相互に結合させて所望のプログラムを実行させる分散処理システムであって、
前記複数のコンピュータのそれぞれで動作するプログラムを保存する不揮発性記憶媒体と、
前記不揮発性記憶媒体から、負荷状態に応じて決定された必要最小限のコンピュータのメモリへ前記プログラムをロードし、該プログラムを実行させるソフトウェアと、
を備えることを特徴とする分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み型情報処理装置の負荷分散を行う分散処理システムに関し、特に、負荷変動に応じて自律的にコンポーネントの構成変更を行う分散処理システムに関するものである。
【背景技術】
【０００２】
近年、複数のＣＰＵを利用した組込み型情報処理装置（組込み型マイコンシステムとも云う）においても、オペレーティングシステム（以下、ＯＳと云う）を搭載し、そのＯＳ上に分散処理の制御を行うミドルウェアを載せたクライアントサーバ方式の分散処理システムを実現するプログラム作成方法が用いられている。
例えば、ＣＰＵ負荷を複数のプロセッサ間で最適に分散することによって、組込み型マイコンシステムのスループット低下を回避するような負荷分散制御を行う分散処理システムの技術が開示されている。この技術によれば、分散処理システムが所望のプログラムを作成することによって、マルチプロセッサシステムの運転中にプロセッサ負荷に偏りが発生してシステム効率が低下した場合でも、オペレータの介入なしにプロセッサ負荷を最適に分配するため、自動的にシステムのスッループットを高めることができる（例えば、特許文献１参照）。
【特許文献１】特開平９−２７４６０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の特許文献１を含めた従来技術による分散処理システムの負荷分散処理では、分散処理システムにおけるコンポーネント配置が固定的に決定されていて、不良現象が発生するまでコンポーネント配置の見直しが行われない。あるいは、人間の手を介して分散処理システムのモニタなどによって断続的に負荷分析を行い、システムダウン等の危険が差し迫った段階でアラームを発呼してコンポーネント配置の見直しを呼びかけている。このため、組込み型マイコンシステムの運用中において必ずしも適正な負荷分散が行われているとは限らないという問題がある。
【０００４】
本発明は、以上のような問題点に鑑みてなされたものであり、負荷変動に応じてコンポーネントの再配置を行うことにより、自立的に組込み型情報処理装置（組込み型マイコンシステム）の構成変更を実行して負荷分散を行う分散処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述した課題を解決するため、本発明に係る分散処理システムは、複数のコンピュータを相互に結合させて所望のプログラムを実行させる分散処理システムであって、複数のコンピュータのそれぞれで動作するプログラムを保存する不揮発性記憶媒体と、その不揮発性記憶媒体から、負荷状態に応じて決定された必要最小限のコンピュータのメモリへプログラムをロードし、そのプログラムを実行させるソフトウェアとを備えることを特徴とするものである。
【０００６】
本発明によれば、複数のコンピュータ（例えば、マイコン）をコントロールユニット上に搭載した分散処理システムにおいて、負荷の変動があったときは、その負荷に応じてマイコンの数を変化させながら分散処理を行っている。これによってシステム全体の処理能力に幅を持たせている。尚、本発明の分散処理システムには、それぞれのマイコンに分散処理ミドルウェアが搭載されているので、各マイコンに分散されている複数のコンポーネントを容易に結合して１つのシステムとして動作させることができる。また、本発明の分散処理システムは、各マイコンが分担している現在の負荷情報を取得して、その負荷情報に応じてプログラムを実行させるマイコンを複数のマイコンの中から選択するソフトウェアを搭載している。これによって、負荷の大きさに応じた最適なコンポーネントシステムを構築することができる。
【発明の効果】
【０００７】
以上に詳述したように本発明によれば、コンピュータシステムの負荷に柔軟に対応できる分散処理システムを構築できる。また、負荷の大きさに応じて必要とするコンピュータの数を決めているので、コンピュータシステムのハードウェア能力を効率的かつ経済的に引き出すことができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明における分散処理システムの実施の形態を詳細に説明するが、理解を容易にするために、従来の分散処理システムと対比しながら本発明の分散処理システムについて説明する。尚、以下の説明に用いる図面では従来技術及び本発明で共通する構成要素は同一符号を用いることとする。
【０００９】
まず、従来の分散処理システムの一例について説明する。図１は、ソフトウェアラジオを例にした従来の分散処理システムの構成図である。図１に示すようなソフトウェアラジオの分野においても、上記の分散処理システムを用いてソフトウェアによる無線通信を実現している場合がある。また、図２は、図１に示すコントロールユニットにおけるソフトウェアコンポーネントの配置図である。したがって、以下、図１及び図２を用いて、分散処理システムに適用されるソフトウェアラジオについて説明する。
【００１０】
図１において、コントロールユニット１にはアナログインタフェース、ＬＡＮインタフェース、音声通信プロトコル、映像通信プロトコル、モデムアダプタ、ホストコンピュータインタフェースなど、多数の機能要素が搭載されている。そして、コントロールユニット１は、Ａ／Ｄ・Ｄ／Ａ変換器２、プロトコルスタック３、プログラマブルモデムプロセッサ４、Ａ／Ｄ・Ｄ／Ａ変換器５、ＲＦユニット６などが接続され、音声、映像、データなどの通信を実現している。また、コントロールユニット１のホストコンピュータインタフェースは図示しないホストコンピュータとの間で制御データのやり取りを行っている。
【００１１】
このようなシステム構成の場合、コントロールユニット１上に無線通信を行うのに必要となるプログラムの各コンポーネントが載り、各コンポーネントは分散処理ミドルウェアにより結合され１本の無線通信プログラムとして動くことになる。具体的には、図２に示すように、コントロールユニット１上には、マイコン１１、マイコン１２、マイコン１３というように複数のマイコン（ＣＰＵ，揮発性メモリ、不揮発性メモリ、周辺回路等含む）が搭載され、各マイコン間はＰＣＩ等のバスあるいはＬＡＮで結合されている。
【００１２】
マイコン１１，１２，１３には、それぞれ、上記のプログラムの各コンポーネントが分散され、分散された各コンポーネントは該当するマイコン上でプロセスとして稼動する。そして、それぞれＯＳを搭載した各分散処理ミドルウェア１５，１６，１７がそれぞれ対応するマイコン１１，１２，１３上で動作し、各コンポーネントプロセスが各分散処理ミドルウェア１５，１６，１７を経由してクライアントサーバ結合され、全体で１本プログラムを形成して無線制御を行うことになる。
【００１３】
図３は、図１に示すソフトウェアラジオがソフトウェア無線を行う場合の機能分類図である。また、図４は、図３の機能分類に従ったコンポーネントの配置図である。通常、コンポーネントは、図３に示すようにインタフェースコンポーネントや通信プロトコルコンポーネントなどの機能別に複数のコンポーネントが分類される。そして、図４に示すように、分類された単位でそれぞれのマイコン１１，１２，１３に分散される。このとき、ソフトウェア無線を行う場合は、図４に示すように、インタフェース機能を実現するインタフェースコンポーネント２１、通信プロトコルの制御を行う通信プロトコルコンポーネント２２、高周波制御を行う高周波制御コンポーネント２３、モデムアダプタ等の各種のアダプタコンポーネント２４、及びシステムの監視・診断を行うシステム監視・診断コンポーネント２５に分類され、それぞれ該当するマイコン１１，１２，１３へ配置される。
【００１４】
このようなシステム構築、あるいはプログラム構築を行う段階において、コンポーネントシステムにかかる負荷及び使用するＣＰＵの性能を計算してコントロールユニット１上に搭載するマイコンの数を決定し、さらに、各マイコン上で動くコンポーネントを上記の分類に従って振り分けていく。
【００１５】
上述のようにして行ったコンポーネントの振り分けは、システム構築のテスト段階で再度見直されて最適化された振り分けを行うこともあるが、通常は、一度、本番稼動に移行してしまえば、コンポーネントは長い間変更されない状態のままである。そして、ある段階（例えば、システム負荷に処理能力が追いつかずに応答が遅くなった段階、システムダウンする段階、あるいは誤動作を引き起こすなど不都合な現象が発生して原因追求を行う段階など）において、初めてコンポーネントの構成が見直される。そして、コンポーネントの見直し後の段階において、ＣＰＵの性能を上げたり、ＣＰＵの数を増やしたり、あるいは、使用するチャネル数を制限してシステムの負荷を下げたりするなどの処置を講ずる。また、このような処置は常に固定的であって柔軟性に欠けるものである。
【００１６】
そこで、本発明における分散処理システムのソフトウェアラジオでは、図５に示すようなコンポーネントの配置を行う。すなわち、図５は、本発明のコントロールユニットにおけるソフトウェアコンポーネントの配置図である。図５に示すように、ハードウェアデバイス３０には３個のマイコン１１，１２，１３が結合されている。そして、ハードウェアデバイス３０と結合して機能するコンポーネントである、アナログインタフェース３１、ＬＡＮインタフェース３２、シリアルインタフェース３３、パラレルインタフェース３４、モデムアダプタ３５、及びホストコンピュータインタフェース３６は、何れのマイコンに載るかという配置場所が固定化されている。一方、音声通信プロトコル４１、映像通信プロトコル４２、ＴＴＹ通信プロトコル４３、ＶＯＩＰ通信プロトコル４４、及びシステム監視コンポーネント４５などは、何れのマイコンに載るかという配置場所は固定化されていない。
【００１７】
すなわち、図５に示すように、マイコン１１には、アナログインタフェース３１、ＬＡＮインタフェース３２、及びシリアルインタフェース３３の各デバイスが接続され、マイコン１２にはパラレルインタフェース３４及びモデムアダプタ３５が接続され、マイコン１３にはホストコンピュータインタフェース３６が接続される。このようにして、各マイコン１１，１２，１３は、設置場所が固定化されているコンポーネント３７と、自由に配置場所が変えられるコンポーネント３８とに分離される。
【００１８】
図５に示すように、コントロールユニット１上に３個のマイコン１１，１２，１３を使用し、ハードウェアデバイス３０等の制御を行うプログラムをマイコン上に搭載したシステムあるいは機器においては、設計段階でシステムにかかる負荷の平均値や負荷の最大値を考慮してシステムに要求される処理能力を算出し、そこから各マイコン１１，１２，１３の性能を決定する。
【００１９】
図６は、本発明において、負荷変動に応じて使用するマイコンの数を変化させていくステートチャート図である。すなわち、本発明においては、複数のマイコンをコントロールユニット上に搭載し、負荷の変動に応じて稼動させるマイコンの数を変化させて全体の処理能力に幅を持たせる。具体的に説明すると、図６に示すように、ある性能を持つマイコンが複数個あり、今回のシステムにかかる最大の負荷を処理するのに４個のマイコンが必要であったとする（図６の右側の図参照）。通常（平均）の負荷では３個のマイコンで十分に対応が可能であり（図６の中央の図参照）、さらに負荷がほとんどかからない状況（例えば、トランザクション的処理においては１日のうちのある時間帯とか、幾つかの機能を持つ機器においては負荷の低い機能を選択したとき）においては、マイコンが２個あれば十分対応可能であるとすれば（図６の左側の図参照）、システム構成としては、マイコン４個をコントロールユニットに搭載する。そして、負荷の変動によって稼動させるマイコンの数を決定し、残りをスリープモード・モジュールストップモード等の低消費電力モードに設定しておく。
【００２０】
すなわち、図６に示すように、負荷変動にしたがって使用するマイコンの数を変化させていく条件は、（３個のマイコンのＣＰＵの利用率の合計）／３＞（ＣＰＵ負荷限界点）のときは３個のマイコンから４個のマイコンへ変更し、（４個のマイコンのＣＰＵの利用率の合計）／３＜（ＣＰＵ負荷限界点）のときは４個のマイコンから３個のマイコンへ変更する。さらに、（３個のマイコンのＣＰＵの利用率の合計）／２＜（ＣＰＵ負荷限界点）のときは３個のマイコンから２個のマイコンへ変更し、（２個のマイコンのＣＰＵの利用率の合計）／２＞（ＣＰＵ負荷限界点）のときは２個のマイコンから３個のマイコンへ変更する。このようなコンポーネント配置はその都度メモリに記録される。
【００２１】
以上述べたように、本発明はコントロールユニット１上に複数のマイコンを搭載し、システムに発生する負荷を複数のマイコンで処理していくところに特徴がある。さらに、負荷変動によって使用するマイコンの数を変化させて行くところに特徴がある。
【００２２】
次に本発明におけるソフトウェアの構成について説明する。通常、マイコンが１つであれば、機器に要求される機能を持つプログラムを１本作成して不揮発性メモリに保存し、それをマイコン上で動かして制御して行く。マイコンを複数使った分散処理を利用したシステムとした場合は、前に述べたようにプログラムをコンポーネントに分け各コンポーネントを複数のマイコンに分散してクライアントサーバ結合し、１本のプログラムとして機能させる。これについては前述の図２〜図４で示したので重複する説明は省略する。
【００２３】
この場合は、図２で示したように、マイコン上には、各機能を実現するコンポーネント、クライアントサーバ結合を実現する分散処理ミドルウェア及びＯＳが載る。また、ＯＳがあれば、各マイコンに載るコンポーネントソフトウェアを不揮発性の記憶媒体にファイルとして保存させること（ダウンロード機能）、及びそのファイルをメモリに展開して実行させること（ローダ機能）ができる。もし、ＯＳが載らないのなら、これらの機能を代わりに果たす別のソフトウェアが必要となる。以上は、図２に示すような通常行われているソフトウェアの構成である。
【００２４】
本発明においては、これにシステム負荷情報を取得するためにＳＮＭＰ(Simple Network Management ProtocaI)マネージャとエージェント（またはこれに類するツール）が必要となる。図７は本発明に適用されるＳＮＭＰの概念図であり、図８は、本発明においてＵＮＩＸコマンドでシステム状態を調べる経過を示す説明図であり、また、図９は図８のＵＮＩＸコマンドでシステム状態を調べる経過を示す説明図の続きの説明図である。
【００２５】
図７で用いられるＳＮＭＰとは、ＲＦＣｌ１５７で定義されていてネットワークに接続されている機器をネットワークを介して監視する通信である。本発明では、定量的にシステム状態を把握するために無償の監視ツールであるＳＮＭＰを利用する。ＳＮＭＰは、１個のＳＮＭＰマネージャ５０と複数のＳＮＭＰエージェント５１，５２，５３とからなり、それぞれのＳＮＭＰエージェント５１，５２，５３をモニタしたい機器に組み込んでＳＮＭＰマネージャ５０で情報を収集する。
【００２６】
具体的には、図７に示すように、ＳＮＭＰエージェント５１，５２，５３は、ＭＩＢ（Management Information Base）ツリーと呼ばれる情報ツリーで示された監視データを監視対象の機器から収集する。そして、収集したデータはＳＮＭＰマネージャ５０からの要求に応じて送信する。本発明においては、各マイコン１１，１２，１３に各ＳＮＭＰエージェント５１，５２，５３を組み込み、さらに、システム監視コンポーネントが搭載されるマイコンにはＳＮＭＰマネージャ５０も組み込む。そして、システム監視コンポーネント４５からＳＮＭＰマネージャ５０のコマンドｓｎｍｐｇｅｔを各ＳＮＭＰエージェント５１，５２，５３に発して、それぞれのＳＮＭＰエージェント５１，５２，５３からの情報を取得する。
【００２７】
すなわち、図７において、コントロールユニット１に搭載されたマイコン１１，１２，１３はバスによって結合され、分散処理システムを構築している。また、各マイコン１１，１２，１３は、アナログインタフェース３１、ＬＡＮインタフェース３２、シリアルインタフェース３３などのように配置場所が固定化されているコンポーネント３７と、音声通信プロトコル４１、映像通信プロトコル４２、ＴＴＹ通信プロトコル４３などのように配置場所を変えることができるコンポーネント３８とによって構成されている。さらに、各マイコン１１，１２，１３は、それぞれのＳＮＭＰエージェント５１，５２，５３を介して自己の負荷情報をＳＮＭＰマネージャ５０へ通知する。すると、システム監視コンポーネント４５は、ＳＮＭＰマネージャ５０から負荷情報を取得して負荷に応じた最適なコンポーネント構成を行う。このようにして、負荷変動に応じてコンポーネントの再配置を行うことにより、自立的に装置の構成変更を実行して最適な負荷分散を行うことができる。
【００２８】
また、図８，図９に示すように、ＵＮＩＸコマンドでシステム状態を調べる場合は、ＳＮＭＰの代わりにＵＮＩＸコマンドを利用してシステム状態を把握することもできる。この場合は、メモリの使用量を調べる場合はｖｍｓｔａｔコマンドを使用し、ＣＰＵ利用率を調べる場合はｉｏｓｔａｔコマンドを使用し、ロードアベレージを調べる場合はｗコマンドを使用し、さらに、詳細を調べる場合はｔｏｐコマンドを使用すれば、必要な情報を取得することができる。
【００２９】
図８において、ｖｍｓｔａｔコマンドを使ってメモリの使用量を調べる場合、メモリ容量は２０秒間の仮想メモリとフリーメモリの合計容量であり、ｆｒｅはフリーリストの容量である。尚、容量の単位は１０２４バイトである。尚、ｆｒｅが急に減少するとシステムダウンを起こしたりデスクワップを起こしたりして、応答速度を低下させるおそれがある。
【００３０】
また、図８において、ｉｏｓｔａｔコマンドを使ってＣＰＵ利用率を調べる場合、ｕｓはユーザプロセスの時間の割合、ｎｉはユーザプロセスの優先度を落として実行した時間、ｓｙはＯＳが内部処理にかかった時間、ｉｎは割り込み処理を行っていた時間、ｉｄはアイドル状態であった時間を、それぞれ定義する。さらに、ｗコマンドを使ってロードアベレージを調べる場合は、ロードアベレージは１分、５分、１５分の平均値とする。
【００３１】
また、ｔｏｐコマンドを使って詳細を調べる場合は、図９の表に示すような詳細特性の一覧表が表示される。この場合、それぞれの項番の意味は図９のテーブルに示すようにそれぞれ定義されている。
【００３２】
図１０は、本発明に必要なハードウェア・ソフトウェアの構成図である。図１０において、ハードウェア・ソフトウェアの構成は、マイコン１１，１２，１３，１４を含むマイコン集合体１０と、各機能を実現するコンポーネント集合体７０と、ＳＮＭＰ６１，６２、６３，６４と、構成管理ソフトウェア６５，６６，６７，６８と、それぞれのＯＳを搭載した分散処理ミドルウェア１５，１６，１７，１８とを備えた構成となっている。そして、各分散処理ミドルウェア１５，１６，１７，１８はバスによって接続されている。
【００３３】
次に本発明における分散処理システムで実現されるソフトウェアラジオの動作を順を追って説明する。図１１は、本発明において分散処理システムの増築段階の運用までに行う作業図である。図１１に示すように、システム本番稼動前に次の２つのことを行う。１つ目は、監視対象とする負荷項目を決め、さらに、それぞれの負荷項目の上限及び下限の限界点を決める。上限の限界点はシステム負荷がこのレベルに達したら負荷を少なくする方向へ構成変更を行う。下限の限界点はシステムのハードウェア資源をより有効に使用するように構成変更を行う。例えば、メモリ容量が３２Ｍｂｙｔｅ、ＣＰＵ間バススピードが１０Ｍｂｙｔｅ／ｓｅｃのとき、ＣＰＵ負荷の上限の限界点は４０％以上、下限の限界点は１０％以下、メモリ負荷の上限の限界点は８０％以上、下限の限界点は５０％以下、ロードアベレージの上限の限界点は０.５以上、下限の限界点は０、パケットロスの上限の限界点は１％以上、下限の限界点は０％、などと決める。
【００３４】
尚、ロードアベレージとは、１秒間に処理しきれない待ちプロセス数の平均値であって、平均時間は１分、５分、１５分を標準的に用いる。ロードアベレージが１以上になるとプロセスは待ち状態になるが、平均値で示されるので１以下でも瞬間的に待ち状態になることがある。ロードアベレージの上限値の目安は０．５である。パケットロスは、パケット分割して送信したパケットが途中でロスして再送を行うとその分だけ遅くなる。例えば、１００パケット送信して１パケットロスすると１％のパケットロスとなる。一般的には、パケットロスが１％でデータ伝送が遅く感じ始める。ＣＰＵ負荷とは、ＣＰＵの能力を１００％とした時に、システムとユーザプロセスが使用中の分と通信・タイマなどの割り込み処理が使用中である分とを加算したものである。
【００３５】
２つ目は、各コンポーネントにおける初期コンポーネントの配置を決める。尚、通常は機能による分類分けでコンポーネントの配置を決めている。このようにして、初期コンポーネントの配置を行った段階でシステムを立ち上げて運用段階に入る。
【００３６】
次に、本発明で使用するコンポーネント配置方法について説明する。本発明は、コンポーネントの配置を機能によって振り分けるのではなく、図５で説明したように、ハードウェアと結合して機能する配置場所が固定化されたコンポーネント３７と、自由に配置場所が変えられるコンポーネント３８の２つに分けて振り分ける。前者のハードウェアと結合して機能するコンポーネント３７は、ハードウェアの配置位置（つまり、どのマイコンと結合されるか）によって必然的にその配置位置が制約される。そのため配置位置が固定化されるコンポーネントとなるわけである。
【００３７】
また、後者のコンポーネント３８は自由に配置位置を変えることができるコンポーネントであり、あらかじめ各マイコンの不揮発性記憶媒体に保存しておく。本発明では、これらのコンポーネント３７，３８の配置を上手に組替えることにより、負荷限界点に達した負荷を引き下げている。ソフトウェアラジオを例に固定化されているコンポーネント３７、及び自由に配置場所を変えることができるコンポーネント３８については図５で説明済みである。
【００３８】
次に、システムが運用段階に入ったら、図７に示すように、システム監視コンポーネントは、ＳＮＭＰマネージャ５０のコマンドｓｎｍｐ ｇｅｔを各ＳＮＭＰエージェント５１，５２，５３に対して送信し、各ＳＮＭＰエージェント５１，５２，５３からのシステム負荷情報を取得する。このとき、監視対象とする負荷項目のうちある負荷が決められた時間以上継続して上限限界点に達したならば、システム監視コンポーネントは、コンポーネントの再配置を行って古い配置に変わる新しい配置を決定する。
【００３９】
図１２は、本発明において、システム監視コンポーネントが負荷変動に応じて構成変更を行うフロー図である。図１２において、まず、システム監視コンポーネントは、ＳＮＭＰやシステムコマンドを使用して定期的に各マイコンの負荷項目に対する負荷情報を取得する（ステップＳ１）。次に、取得した負荷情報を各マイコン単位に分析して、負荷限界点に達している負荷項目が存在するか否かをチェックする（ステップＳ２）。そして、負荷限界点に達している負荷項目が存在するか否かを判定して（ステップＳ３）、負荷限界点に達している負荷項目が存在しなければ（ステップＳ３でＮｏ）、ステップＳ１に戻って上記の各ステップを繰り返す。
【００４０】
一方、ステップＳ３で、負荷限界点に達している負荷項目が存在していれば（ステップＳ３でＹｅｓ）、ロードアベレージが限界点に達しているか否かを判定する（ステップＳ４）。ここで、ロードアベレージが限界点に達していれば（ステップＳ４でＹｅｓ）、ＣＰＵ負荷が限界点に達しているか否かを判定する（ステップＳ５）。ステップＳ５でＣＰＵ負荷が限界点に達していれば（ステップＳ５でＹｅｓ）、ＣＰＵ負荷時のコンポーネントの再配置処理を行う（ステップＳ６）。
【００４１】
一方、ステップＳ５でＣＰＵ負荷が限界点に達していなければ（ステップＳ５でＮｏ）、メモリ負荷が限界点に達しているか否かの判定を行う（ステップＳ７）。ここで、メモリ負荷が限界点に達していれば（ステップＳ７でＹｅｓ）、メモリ負荷時のコンポーネントの再配置処理を行う（ステップＳ８）。また、ステップＳ７で、メモリ負荷が限界点に達していなければ（ステップＳ７でＮｏ）、ステップＳ１に戻って前述と同様の処理を繰り返す。
【００４２】
一方、ステップＳ４で、ロードアベレージが限界点に達していなければ（ステップＳ４でＮｏ）、パケットロスが限界点に達しているか否かの判定を行う（ステップＳ９）。ここで、パケットロスが限界点に達していれば（ステップＳ９でＹｅｓ）、パケットロス時のコンポーネントの再配置処理を行う（ステップＳ１０）。また、ステップＳ９で、パケットロスが限界点に達していなければ（ステップＳ９でＮｏ）、ステップＳ１に戻って前述と同様の処理を繰り返す。
【００４３】
図１３は、本発明において、システム監視コンポーネントがＣＰＵ負荷時のコンポーネントの再配置を行うフロー図である。また、図１４は、図１３のフロー図に基づいてコンポーネントの再配置処理を行うときの、各マイコンの負荷情報の一例を示す図である。すなわち、図１４は、監視する負荷項目ごとに各マイコンから取得した最新の負荷情報を示すデータである。
【００４４】
図１３のフロー図において、まず、使用中のマイコンにおけるＣＰＵの利用率の合計値を使用しているマイコンの数で割った値ｐを求める。例えば、図１４において、マイコン１１のＣＰＵ利用率４２.５０％、マイコン１２のＣＰＵ利用率１８.０３％、マイコン１３のＣＰＵ利用率２.５０％であるので、使用中のマイコンにおけるＣＰＵ利用率の合計値を現在使用しているマイコンの数で割ると、ｐ＝（４２.５０＋１８.０３＋２.５０）／３＝２１.０１％となる（ステップＳ１１）。
【００４５】
次に、ステップＳ１１で計算したｐの値が限界点に達しているか否かの判定を行う（ステップＳ１２）。ここで、ｐの値が限界点に達していなければ（ステップＳ１２でＮｏ）、マイコンを増やす必要はないが、ｐの値が限界点に達していれば（ステップＳ１２でＹｅｓ）、マイコンの数を１つ増やす（ステップＳ１３）。
【００４６】
次に、各コンポーネントのＣＰＵ利用率を取得し（ステップＳ１４）、再配置可能なコンポーネントをＣＰＵ利用率の高い順にソートする（ステップＳ１５）。図１５は、図１３のフロー図におけるコンポーネントの再配置処理で取得されたＣＰＵ利用率から、再配置可能なコンポーネントをＣＰＵ利用率の高い順に並べたテーブルを示す図である。
【００４７】
さらに、各マイコンごとに配置が固定化されているコンポーネントのＣＰＵ利用率を合計し、ＣＰＵ負荷限界点から引いた残りの値をａｖｅｉｌａｂｌｅＣＰＵ値として算出する（ステップＳ１６）。図１６は、図１３のフロー図におけるコンポーネント再配置処理でマイコンごとに求められたａｖｅｉｌａｂｌｅＣＰＵ値のテーブルを示す図である。
【００４８】
次に、ステップＳ１５でソートされた再配置可能なコンポーネントをａｖｅｉｌａｂｌｅＣＰＵ値が１番高いマイコンに振り分けて行く（ステップＳ１７）。図１７は、図１３のフロー図におけるコンポーネント再配置処理において、各コンポーネントをａｖｅｉｌａｂｌｅＣＰＵ値の１番高いマイコンに順に振り分けたテーブルを示す図である。尚、このテーブルでは、初期値と振り分け回数ごとの各マイコンのａｖｅｉｌａｂｌｅＣＰＵ値とコンポーネントの振り分け内容が記載されている。
【００４９】
次に、コンポーネントの再配置後における各マイコンのＣＰＵ負荷、メモリ負荷、データ転送量合計を計算し、各マイコンごとの負荷情報としてテーブルにする（ステップＳ１８）。図１８は、図１３のフロー図においてコンポーネントの再配置後に計算された各マイコンの負荷情報のテーブルを示す図である。
【００５０】
次に、ステップＳ１８で計算されたＣＰＵ負荷、メモリ負荷、データ転送量合計の全ての負荷監視項目が、何れのマイコンにおいても限界点に達していないか否かを判定する（ステップＳ１９）。全ての負荷監視項目が限界点に達していなければ（ステップＳ１９でＹｅｓ）終了する。ここではパケットロスが限界点に達していないと判断して、バスのデータ転送量がバススピードの１／２以下を採用する。
【００５１】
すなわち、図１８に示すように、全てのマイコン１１，１２，１３において、ＣＰＵ利用率＜４０％、メモリ利用率＜８０％、データ転送量＜５Ｍｂｙｔｅ／ｓｅｃであって、全ての負荷監視項目が限界点以下であるので、図１８に示すコンポーネント再配置後の各マイコンの負荷情報は、図４の機能別分類に変わる新しいコンポーネント配置のデータとなる。
【００５２】
一方、ステップＳ１９で、負荷監視項目のうちの１つでも限界点に達していれば（ステップＳ１９でＮｏ）、マイコンの数を１つ増やして（ステップＳ２１）、ステップＳ１６に戻り、前述の各ステップを経て、再度、再配置処理を繰り返す。このようにしてコンポーネントの再配置を行い、古い配置に変わる新しい配置を決定すると、図１８に示すような各マイコンの負荷情報が得られる。
【００５３】
以上のようにして新しいコンポーネントの配置が決定されたら、システム監視コンポーネントはその配置情報を構成管理マネージャに渡す。すると、構成管理マネージャは受取った新しいコンポーネント配置でシステムの再起動を行う。以下、このときの、構成管理マネージャと構成管理エージェントの動きについて図１９を用いて説明する。
【００５４】
図１９は、本発明における構成管理マネージャと構成管理エージェントの構成及び流れ図であり、（ａ）は構成管理マネージャと構成管理エージェントの構成図、（ｂ）はコンポーネント起動通知の流れ図、（ｃ）はコンポーネント運用開始通知の流れ図、（ｄ）はコンポーネント運用停止通知の流れ図、（ｅ）はコンポーネント終了通知の流れ図を示している。
【００５５】
図１９（ａ）に示すように、構成管理マネージャ７１はシステムに１つあるマイコン１２上に存在し、各構成管理エージェント７２、７３，７４は各マイコン１１，１２，１３上にそれぞれ個別に存在する。そして、構成管理マネージャ７１はシステムの管理を行い、各構成管理エージェント７２、７３，７４は構成管理マネージャ７１の指示に従って各マイコン１１，１２，１３上のコンポーネントの管理を行う。
【００５６】
また、構成管理マネージャ７１は各構成管理エージェント７２、７３，７４と共に動作し、各コンポーネントの起動・終了・システム運用の開始・停止、更に各コンポーネントの配置などを管理する。尚、構成管理マネージャ７１が管理する情報は、コンポーネントの配置情報、コンポーネントの実行引数、コンポーネントの運用条件、及びコンポーネントの運用開始順序などである。
【００５７】
コンポーネントシステムの起動時には、図１９（ｂ）に示すように、構成管理マネージャ７１から各構成管理エージェント７２，７３，７４に対してどの条件（パラメータ）で起動せよという指示が出される。つまり、構成管理マネージャ７１から各構成管理エージェント７２，７３，７４に対して起動コマンド、コンポーネント名、パラメータ数などのパラメータが送信されると、各構成管理エージェント７２，７３，７４は、受信したパラメータを引数にして該当コンポーネントを起動させる。起動結果については正常、または異常の応答が各構成管理エージェント７２，７３，７４から構成管理マネージャ７１へ通知される。そして、起動後は、各構成管理エージェント７２，７３，７４は起動コンポーネントテーブルに起動したコンポーネントを登録する。
【００５８】
コンポーネントシステムの運用開始時には、図１９（ｃ）に示すように、構成管理マネージャ７１は、予め決められた順序でコンポーネント運用開始通知のパラメータを各構成管理エージェント７２，７３，７４へ送信する。これによって、各構成管理エージェント７２，７３，７４は受信したパラメータを運用条件として該当するコンポーネントの運用を開始する。また、運用開始結果については正常、または異常の応答が各構成管理エージェント７２，７３，７４から構成管理マネージャ７１へ通知される。
【００５９】
コンポーネントシステムの運用停止時には、図１９（ｄ）に示すように、構成管理マネージャ７１は、開始時とは逆の順序でコンポーネント運用停止通知を各構成管理エージェント７２，７３，７４へ送信する。これによって、各構成管理エージェント７２，７３，７４は該当するコンポーネントの運用を停止する。また、運用停止結果については正常、または異常の応答が各構成管理エージェント７２，７３，７４から構成管理マネージャ７１へ通知される。
【００６０】
また、コンポーネントシステムの終了通知時には、図１９（ｅ）に示すように、構成管理マネージャ７１から各構成管理エージェント７２，７３，７４へ終了コマンドが送信されると、各構成管理エージェント７２，７３，７４は、起動コンポーネントテーブルに登録されているコンポーネントを終了させる。また、各構成管理エージェント７２，７３，７４は構成管理マネージャ７１からの指示に対しては必ず応答を返す。このようにして、コンポーネントの起動、運用開始、運用停止、終了における構成管理マネージャ７１と各構成管理エージェント７２，７３，７４のやり取りが行われる。
【００６１】
構成管理マネージャ７１と各構成管理エージェント７２，７３，７４との間における信号のやりとりは、電源の投入時やコンポーネントの配置変更時などに行われる。図２０は、構成管理マネージャと各構成管理エージェントとの間で信号のやりとりが行われるときのシステムのステータス図である。図２０に示すように、システム停止中から電源がオンされると、システムを立ち上げて、コンポーネント起動通知、コンポーネント運用開始通知、及びホストコンピュータへコンポーネント配置情報が送信される。
【００６２】
そして、システム運用中に、システム監視コンポーネントから構成要求変更があると、コンポーネント運用停止通知、コンポーネント終了通知、新しい配置図に従うコンポーネント起動通知、運用開始通知、及びホストコンピュータへコンポーネント配置情報が送信される。そして、システムの運用中において電源をＯＦＦにすると、システムが停止する。尚、上記の動作によってシステムがどのような状態にあるかはランプ表示によって報知される、例えば、システム立ち上げの場合はランプの点滅表示、コンポーネント運用時はランプの点灯表示、コンポーネントの構成変更時にはランプの明るさを変えた点灯表示などが行われる。
【図面の簡単な説明】
【００６３】
【図１】ソフトウェアラジオを例にした従来の分散処理システムの構成図である。
【図２】図１に示すコントロールユニットにおけるソフトウェアコンポーネントの配置図である。
【図３】図１に示すソフトウェアラジオがソフトウェア無線を行う場合の機能分類図である。
【図４】図３の機能分類に従ったコンポーネントの配置図である。
【図５】本発明のコントロールユニットにおけるソフトウェアコンポーネントの配置図である。
【図６】本発明において、負荷変動に応じて使用するマイコンの数を変化させていくステートチャート図である。
【図７】本発明に適用されるＳＮＭＰ(Simple Network Management ProtocaI)の概念図である。
【図８】本発明において、ＵＮＩＸコマンドでシステム状態を調べる経過を示す説明図である。
【図９】図８の続きの説明図である。
【図１０】本発明に必要なハードウェア・ソフトウェアの構成図である。
【図１１】本発明において分散処理システムの増築段階の運用までに行う作業図である。
【図１２】本発明において、システム監視コンポーネントが負荷変動に応じて構成変更を行うフロー図である。
【図１３】本発明において、システム監視コンポーネントがＣＰＵ負荷時のコンポーネントの再配置を行うフロー図である。
【図１４】図１３のフロー図に基づいてコンポーネントの再配置処理を行うときの、各マイコンの負荷情報の一例を示す図である。
【図１５】図１３のフロー図におけるコンポーネントの再配置処理で取得されたＣＰＵ利用率から、再配置可能なコンポーネントをＣＰＵ利用率の高い順に並べたテーブルを示す図である。
【図１６】図１３のフロー図におけるコンポーネント再配置処理でマイコンごとに求められたａｖｅｉｌａｂｌｅＣＰＵ値のテーブルを示す図である。
【図１７】図１３のフロー図におけるコンポーネント再配置処理において、各コンポーネントをａｖｅｉｌａｂｌｅＣＰＵ値の１番高いマイコンに順に振り分けたテーブルを示す図である。
【図１８】図１３のフロー図においてコンポーネントの再配置後に計算された各マイコンの負荷情報のテーブルを示す図である。
【図１９】本発明における構成管理マネージャと構成管理エージェントの構成及び流れ図である。
【図２０】構成管理マネージャと各構成管理エージェントとの間で信号のやりとりが行われるときのシステムのステータス図である。
【符号の説明】
【００６４】
１  コントロールユニット、１０  マイコン集合体、１１，１２，１３，１４  マイコン、１５，１６，１７，１８  分散処理ミドルウェア、２１  インタフェースコンポーネント、２２  通信プロトコルコンポーネント、２３  高周波制御コンポーネント、２４  アダプタコンポーネント、２５  システム監視・診断コンポーネント、３０  ハードウェアデバイス、３７，３８  コンポーネント、４５  システム監視コンポーネント、５０  ＳＮＭＰマネージャ、５１，５２，５３  ＳＮＭＰエージェント、６１，６２，６３，６４  ＳＮＭＰ、６５，６６，６７，６８  構成管理ソフトウェア、７１  構成管理マネージャ、７２，７３，７４  構成管理エージェント。
【図１】
2006065725.tif 000003
【図２】
2006065725.tif 000004
【図３】
2006065725.tif 000005
【図４】
2006065725.tif 000006
【図５】
2006065725.tif 000007
【図６】
2006065725.tif 000008
【図７】
2006065725.tif 000009
【図８】
2006065725.tif 000010
【図９】
2006065725.tif 000011
【図１０】
2006065725.tif 000012
【図１１】
2006065725.tif 000013
【図１２】
2006065725.tif 000014
【図１３】
2006065725.tif 000015
【図１４】
2006065725.tif 000016
【図１５】
2006065725.tif 000017
【図１６】
2006065725.tif 000018
【図１７】
2006065725.tif 000019
【図１８】
2006065725.tif 000020
【図１９】
2006065725.tif 000021
【図２０】
2006065725.tif 000022