(57)【要約】【課題】不具合の重大な原因の１つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、システム設計支援方法を提供する。【解決手段】少なくとも１つのプログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、各々の計算機に搭載されるプログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップと、プログラム毎にタスクの実行フローを定義するステップと、情報伝達手段の伝達時間を定義するステップと、タスク毎に定義された実行時間等を用いて、タスクの実行フローの実行時間を算出するステップと、複数の計算機にまたがる処理を連携して行うプログラムの組合せを定義するステップと、定義したプログラムの組合せの実行時間分布からシステム全体の性能予測を行うステップとを備える。【選択図】図１
2014102530.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、
各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップと、
アプリケーション処理プログラム毎にタスクの実行フローを定義するステップと、
前記情報伝達手段の伝達時間を定義するステップと、
前記タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出するステップと、
複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義するステップと、
定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行うステップと、
を備えたことを特徴とする情報伝達システム設計支援方法。
【請求項２】
前記タスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップにおいて、更に、起動オフセット時間および実時間属性が定義されることを特徴とする請求項１に記載の情報伝達システム設計支援方法。
【請求項３】
前記情報伝達手段の伝達時間を定義するステップにおいて、更に、遅延時間と再送回数が定義されることを特徴とする請求項１に記載の情報伝達システム設計支援方法。
【請求項４】
前記タスクの実行時間において、タスク実行時間の分布情報が付加されたことを特徴とする請求項１に記載の情報伝達システム設計支援方法。
【請求項５】
前記タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることを特徴とする請求項４に記載の情報伝達システム設計支援方法。
【請求項６】
前記タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことを特徴とする請求項４に記載の情報伝達システム設計支援方法。
【請求項７】
前記タスク実行時間の分布情報は、該タスクが排他制御ロジックを含む場合に、排他制御の予想待ち時間を含むことを特徴とする請求項４に記載の情報伝達システム設計支援方法。
【請求項８】
前記タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることを特徴とする請求項４に記載の情報伝達システム設計支援方法。
【請求項９】
前記システム全体の性能予測を行うステップにおいて、システム全体の予測時間領域を定義し、前記実行時間分布が前記予測時間領域と比較して逸脱する場合にはアラームを出力することを特徴とする請求項１に記載の情報伝達システム設計支援方法。
【請求項１０】
少なくとも１つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続された情報伝達システム全体の設計支援プログラムであって、
コンピュータに、
各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義する手順と、
アプリケーション処理プログラム毎にタスクの実行フローを定義する手順と、
前記情報伝達手段の伝達時間を定義する手順と、
前記タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出する手順と、
複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する手順と、
定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークなどの情報伝達手段で接続された複数の計算機で構成されるシステム全体の性能予測を行い、情報伝達システムに搭載されるソフトウェアの設計ならびに評価するための設計支援方法と設計支援プログラムに関するものである。
【背景技術】
【０００２】
自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに要求される機能が増大したことにより、システムに搭載されるソフトウェア量が増大し、ソフトウェア部品も莫大な数になっている。
このようなシステムの性能問題については、システムを結合し、機能を実現するソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
なぜなら、これらソフトウェア部品の多くは、共通のハードウェア資源を共有しながら同時に作動する場合があり、１つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。
【０００３】
かかる状況下、従来から、多くのネットワークシステムの設計モデルには待ち行列モデルが多く利用されている（例えば、非特許文献１）。しかしながら、待ち行列モデルはソフトウェア設計には待ち行列モデルとソフトウェアの設計モデルに大きいなギャップがあり、実用的なアプローチとは言い難いものであった。
また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している（非特許文献２）。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。
【０００４】
また、コンピュータシステム内の性能予測のアプローチ方法を開示しているものもある（特許文献１）。
また、並列計算機を対象とした性能評価方法もあるが（特許文献２）、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。
【０００５】
また、実際にシステムでの性能を測定しそのデータに基づき性能予測を行うものがある（特許文献３）。この方法は、系列システムの開発には有効であろうが、最初にシステムを設計する場合にはあまり有効に機能するものではない。
また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある（特許文献４）。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−３６３７３０号公報
【特許文献２】特開２０００−２９８５９８号公報
【特許文献３】特開２００４−２２０４５３号公報
【特許文献４】特開２００４−２７２５８２号公報
【非特許文献】
【０００７】
【非特許文献１】滝根  哲哉、伊藤  大雄、西尾  章治郎、ネットワーク設計理論、岩波書店、２００１
【非特許文献２】C.Smith and L.Willianm’s, “Performance  Solutions,” Addison Wesloy,2002
【発明の概要】
【発明が解決しようとする課題】
【０００８】
組込みシステムの動作不良原因は、組込みソフトウェア不具合が半数以上を占める。不具合が起きる理由として、組込みソフトウェアの大規模化と複雑化に対して、十分な対策がとられなかったためである。
【０００９】
上記状況に鑑みて、本発明は、不具合の重大な原因の１つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、情報伝達システム設計支援方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成すべく、本発明の情報伝達システム設計支援方法は、少なくとも１つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、以下の１）〜６）のステップを備える。
１）各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップ
２）アプリケーション処理プログラム毎にタスクの実行フローを定義するステップ
３）情報伝達手段の伝達時間を定義するステップ
４）タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
５）複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義するステップ
６）定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行うステップ
【００１１】
かかる構成によれば、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに要求されるシステム性能の予測について、設計段階において事前検証することができる。
上記１）の各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎の優先度，起動周期，実行時間，実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば０（ゼロ）とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
【００１２】
次に、上記２）のアプリケーション処理プログラムを構成するタスクの実行フローについて説明する。ここで、アプリケーション処理プログラムとは、例えば、自動車車載システムやロボット制御システムの場合には、ロボット遠隔操作機能を実現するプログラムや、ブレーキ制御機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する１以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。
【００１３】
次に、上記３）の情報伝達手段の伝達時間について説明する。情報伝達手段とは、無線通信ネットワーク、有線通信ネットワーク、伝達ギアや伝達シャフトなどの物理的な伝達機構を含む。また、伝達時間とは、アプリケーション処理プログラムにおける情報データ単位をネットワーク伝送する時間や、物理的な伝達機構ではモータ駆動時の遅延時間をいう。
【００１４】
次に、上記４）のタスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間をどのように算出するとは、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことである。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
ここで、１方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム（ＯＳ）によって優先度の高いものが実行されることから、例えば、１方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。
【００１５】
次に、上記５）のアプリケーション処理プログラムの組合せについて説明する。複数の計算機に搭載されるそれぞれのアプリケーション処理プログラムが、情報伝達手段を介して情報をやり取りして連携して処理を行うものである場合、どのアプリケーション処理プログラムの組合せが連係するのかを明確にする必要がある。上記１）、２）、４）のステップにより、アプリケーション処理プログラム毎のタスクの実行フローの実行時間が算出できる。複数の計算機に処理がまたがり連携して処理を行うアプリケーション処理プログラムの組合せが明確になると、各々のアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布を加算して、場合によっては情報伝達手段の伝達時間も付加して、上記６）のシステム全体の性能予測を行うことができる。
【００１６】
本発明の情報伝達システム設計支援方法における上記１）のタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップにおいて、更に、起動オフセット時間および実時間属性が定義されることが好ましい。
ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、ＣＰＵ時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。
【００１７】
本発明の情報伝達システム設計支援方法における上記３）の情報伝達手段の伝達時間を定義するステップにおいて、更に、遅延時間と再送回数が定義されることが好ましい。通信ネットワークなどは、アプリケーション処理プログラムが送受信するデータサイズによっては、１回で送受信できないものもあり、通信トラフィック状況によっては処理待ち時間が発生することもある。また、通信データエラーが発生した場合は再送処理が発生する。そのため、事前に遅延時間と再送回数を定義することで、システム全体の実行時間分布をより正確に把握して性能評価を行うことができる。
【００１８】
本発明の情報伝達システム設計支援方法における上記１）のタスクの実行時間において、タスク実行時間の分布情報が付加されることが好ましい。
タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
【００１９】
例えば、タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることがより好ましい。重み付けは、見積り実行時間になる確率で表現してもよい。
【００２０】
例えば、タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことがより好ましい。
ここで、ハードウェアリソースとは、上述した情報伝達手段や、計算機内の共有メモリ、フラッシュメモリ（flash
memory）などの不揮発性の半導体メモリ、ＵＳＢ（Universal Serial Bus:）メモリ、ハードディスクなどをいう。
また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
【００２１】
また、タスク実行時間の分布情報には、該タスクが排他制御ロジックを含む場合に、排他制御の処理待ち時間を含むことがより好ましい。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。
【００２２】
また、タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることがより好ましい。
ここで、システムソフトウェアとは、オペレーティングシステム（ＯＳ）や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。
【００２３】
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラム毎の性能目標となる予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
【００２４】
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される１以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることが好ましい。
ここで、条件実行される１以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって２つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
【００２５】
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることが好ましい。
複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
【００２６】
次に、本発明の情報伝達システム設計支援プログラムについて説明する。
本発明の情報伝達システム設計支援プログラムは、少なくとも１つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援プログラムであって、コンピュータに、以下のａ）〜ｆ）を実行させるためのプログラムである。
【００２７】
ａ）各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義する手順
ｂ）アプリケーション処理プログラム毎にタスクの実行フローを定義する手順
ｃ）情報伝達手段の伝達時間を定義する手順
ｄ）タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出する手順
ｅ）複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する手順
ｆ）定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う手順
【発明の効果】
【００２８】
数の計算機が情報伝達手段によって接続されたシステムに組み込まれるソフトウェアは、情報伝達手段の制約や、個々の計算機内のメモリが少ないなどの厳しいハードウェア制約の中で、応答性能の制約も受けながら、システムに搭載するソフトウェアを設計する必要がある。
本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
【図面の簡単な説明】
【００２９】
【図１】システム設計支援フロー図
【図２】アプリケーション処理プログラムの説明図
【図３】アプリケーション処理プログラムの実行フローに用いるタスクの説明図
【図４】タスクの実行フローの説明図１
【図５】タスクの実行フローの説明図２
【図６】タスクの実行フローの説明図３
【図７】タスクの実行フローの説明図４
【図８】タスクの実行フローの説明図５
【図９】タスクの実行フローの説明図６
【図１０】タスクの実行フローの説明図７
【図１１】複数の計算機で連携して動作するシステムのソフトウェア構成図
【図１２】自動車ブレーキ抑制システムの機能ブロック図
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【００３１】
図１は、本発明の情報伝達システム設計支援方法の処理フローを示している。
本発明の情報伝達システム設計支援方法は、１以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
（ステップ１）各々の計算機に搭載されるアプリケーション処理プログラムのタスク毎にタスク情報（優先度，起動周期，実行時間，実行回数）を定義する。
（ステップ２）アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
（ステップ３）ネットワークなどの情報伝達手段の伝達時間を定義する。
（ステップ４）タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
（ステップ５）複数の計算機上で連携して処理を行うアプリケーション処理プログラムの組合せを定義する。
（ステップ６）アプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布に基づいて、システム全体の性能予測を行う。
【００３２】
アプリケーション処理プログラムとタスクの関係について、図２を用いて説明する。
図２は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
図２のアプリケーション処理プログラムでは、処理タスク１と処理タスク２で構成されている。処理タスク１は、メッセージキュー１からメッセージデータ３を取り出し、メッセージデータ３を加工して共有メモリ５にデータを書き込む処理を行うものとする。また、処理タスク２は、共有メモリ５からデータを読み込み、データを加工して、フラッシュメモリ６にデータを書き込む処理と、場合によってはフラッシュメモリ６からデータを読み出して、メッセージキュー２に送る処理を行うものとする。
【００３３】
このようなアプリケーション処理プログラムにおいては、上記（ステップ１）に従って、まず処理タスク１と処理タスク２の２つのタスクに関して、優先度，起動周期，実行時間，実行回数を定義することになる。
ここで、処理タスク１がメッセージ駆動型のタスクとし、処理タスク２が周期的駆動型のタスクとして設計されるとする。処理タスク１の起動周期は０（ゼロ）で、処理タスク２の起動周期を例えば１０ｍｓとする。また、メッセージ駆動型の処理タスク１は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は１であり、複数回処理が繰り返される場合、実行回数はｎ回となる。
【００３４】
実行時間に関しては、処理タスク１の場合、タスクの行う処理、すなわち、メッセージキュー１からデータの取り出し処理、共有メモリ５への書き込み処理、それぞれの見積り時間を予測して決定する。また、処理タスク２の場合、共有メモリ５からデータを読み込み処理、フラッシュメモリ６にデータを書き込む処理、メッセージキュー２にデータを送る処理、それぞれの見積り時間を予測して決定する。
ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク１と処理タスク２がそれぞれ書き込み・読み込みを行う共有メモリ５に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。
【００３５】
図３（１）は、アプリケーション処理プログラムの実行フローに用いるタスクの種類の一例を示している。タスクは見積り予測が可能な単位に細かく定義する。タスクを繰り返し実行するものや、条件によってケース分けして多数を実行するものや、タスクを並列に実行するものなど定義する。
また、図３（２）は、ハードウェアリソースの一例を示している。ハードウェアリソースは、共有メモリ、有線通信ネットワーク、無線通信ネットワーク、伝達軸などをいう。また、ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。
【００３６】
次に、アプリケーション処理プログラムを構成するタスクの実行フローについて図４〜１０を参照して説明する。
まず、繰り返しタスクの実行フローの一例を示す。図４は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク１０が１０μｓｅｃ、プロセストランザクションタスク１２が２０μｓｅｃ、終了セッションタスク１４が５μｓｅｃの見積り時間で、繰り返しタスク１６の繰り返し回数ｎ＝５とした場合、図４に示す実行フローの実行時間は、１０＋２０×５＋５＝１１５μｓｅｃとなる。
【００３７】
次に、ケースタスクの実行フローの一例を示す。図５はケースタスクの実行フローの一例を示している。例えば、トランザクション取得タスク２０が１５μｓｅｃ、プロセスＡタスク２２が２０μｓｅｃ、プロセスＢタスク２４が４０μｓｅｃ、プロセスＣタスク２６が２５μｓｅｃの見積り時間で、ケースタスク２８の分岐確率ａ〜ｃがそれぞれ０．５，０．３，０．２とした場合、図５に示す実行フローの実行時間は、最小実行時間が１５＋２０＝３５μｓｅｃ、最大実行時間が１５＋４０＝５５μｓｅｃで、実行時間分布が３５μｓｅｃ，５５μｓｅｃ，１５＋２５＝４０μｓｅｃがそれぞれの確率で現れる分布となる。
【００３８】
次に、パルドタスクの実行フローの一例を示す。図６はパルドタスクの実行フローの一例を示している。例えば、ユーザ入力操作タスク３０が５μｓｅｃ、リモートクエリー表示タスク３２が１５μｓｅｃ、クエリー結果をスクリーンに表示させるタスク３４が２５μｓｅｃ、入力データを表示データとするタスク３６が１０μｓｅｃ、ディスプレイ表示タスク３８が２０μｓｅｃの見積り時間の場合、図６に示す実行フローの実行時間は、５＋２５＋１０＋２０＝６０μｓｅｃとなる。なお、パルドタスク３１は付属するタスク３２とタスク３４が並列実行され、それらのタスクが全て終了しないと先に処理が進まないロジックを備えるものである。
【００３９】
次に、共有メモリを排他制御するタスクの実行フローの一例を示す。図７は、データ入力し共有メモリに書き込む２つのプログラムのタスクの実行フローの一例を示している。２つのアプリケーション処理プログラムは、繰り返しタスク４１とデータ入力タスク４２と書込みデータタスク４３の実行フローで構成されるプログラムと、繰り返しタスク４６とデータ入力タスク４７と書込みデータタスク４８の実行フローで構成されるプログラムである。例えば、書込みデータタスク４３の実行時間は２０μｓｅｃで、書込みデータタスク４８の実行時間は２５μｓｅｃとすると、それぞれの書込みデータタスクは他方の書込みデータタスクが共有メモリ４０に書込み中は処理待ちとなるため、書込みデータタスク４３の実行時間は最小実行時間が２０μｓｅｃ、最大実行時間が２０＋２５＝４５μｓｅｃとなり、書込みデータタスク４８の実行時間は最小実行時間が２５μｓｅｃ、最大実行時間が２５＋２０＝４５μｓｅｃとなる。
【００４０】
また、図８は、共有メモリにデータを書き込む処理と読み込む処理の２つのプログラムのタスクの実行フローの一例を示している。２つのアプリケーション処理プログラムは、繰り返しタスク５１とデータ入力タスク５２と書込みデータタスク５３の実行フローで構成されるプログラムと、繰り返しタスク５６と読込みデータタスク５７とスクリーン表示タスク５８の実行フローで構成されるプログラムである。共有メモリ５０に一方のプログラムがデータを書き込んで、他方のプログラムが書き込まれたデータを読み込んで処理する場合を想定する。例えば、データ入力タスク５２の実行時間は１０μｓｅｃ、書込みデータタスク５３の実行時間は２０μｓｅｃ、読込みデータタスク５７の実行時間は１５μｓｅｃ、スクリーン表示タスク５８の実行時間は２５μｓｅｃとすると、データ入力してそれがスクリーン表示されるまでの最小実行時間は１０＋２０＋１５＋２５＝７０μｓｅｃとなる。
【００４１】
ここで、データ入力タスク５２の優先度と読込みデータタスク５７の優先度が異なる場合を考える。仮に、データ入力タスク５２が、読込みデータタスク５７より優先される場合、データ入力してそれがスクリーン表示されるまでの最小実行時間は１０＋２０＋１０＋１５＋２５＝８０μｓｅｃとなる。書込みデータタスク５３が終了した後、繰り返しによって再びデータ入力タスク５２が動作しそれが終了するまで、読込みデータタスク５７が動作しないからである。なお、データ入力タスク１０が、スクリーン表示タスク５８より優先される場合も同様となる。
【００４２】
次に、フラッシュメモリにアクセスするタスクの実行フローの一例を示す。図９は、データ格納しそれをテンポラリメモリあるいはフラッシュメモリに格納するプログラムのタスクの実行フローの一例を示している。例えば、データ格納タスク６０の実行時間は１５μｓｅｃ、テンポラリメモリへ格納タスク６２の実行時間は２０μｓｅｃ、フラッシュメモリの処理待ち時間を５０μｓｅｃと見積ってフラッシュメモリへ格納タスク６３の実行時間は７０μｓｅｃ、終了セッションタスク６５の実行時間は５μｓｅｃ、ケースタスク６１の分岐確率がそれぞれ０．８と０．２とすると、図９に示す実行フローの実行時間は、最小実行時間が１５＋２０＝４０μｓｅｃ、最大実行時間が１５＋７０＋５＝９０μｓｅｃで、実行時間分布が４０μｓｅｃ，９０μｓｅｃがそれぞれの確率で現れる分布となる。
【００４３】
次に、メッセージキューからメッセージを受け取るタスクの実行フローの一例を示す。図１０は、メッセージキュー７０からメッセージ受信しサービスを行うプログラムのタスクの実行フローの一例を示している。例えば、メッセージ受信タスク７１の実行時間は１０μｓｅｃ、サービス処理タスク７２の実行時間は５０μｓｅｃ、終了セッションタスク７３の実行時間は５μｓｅｃとすると、図１０に示す実行フローの実行時間は、１０＋５０＋５＝６５μｓｅｃとなる。
【００４４】
次に、図１１を参照して、複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する方法と、定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う方法について説明する。
【００４５】
図１１は、計算機１と計算機２が有線通信ネットワークで接続されているシステムの概念図を示すものである。計算機１にはタスク１〜３で構成されるアプリケーション処理プログラム１が搭載されている（図１１の計算機１の枠内において点線で囲んだもの）。また、計算機２にはタスク４，５で構成されるアプリケーション処理プログラム２が搭載されている（図１１の計算機２の枠内において点線で囲んだもの）。また、計算機１にはタスク３，６で構成される別のアプリケーション処理プログラムが搭載されている。また、計算機２にはタスク４，７で構成される別のアプリケーション処理プログラムが搭載されている。
【００４６】
このようなシステム全体の性能評価を行う場合において、まず、計算機１と計算機２のアプリケーション処理プログラム１とアプリケーション処理プログラム２が連係して処理を行うこと、すなわち、アプリケーション処理プログラム１とアプリケーション処理プログラム２の組合せで特定の処理を行うことを定義する。アプリケーション処理プログラム１とアプリケーション処理プログラム２は、それぞれ、タスク１〜３の実行フローとタスク４，５の実行フローで定義されて、それらの実行時間が算出可能である。
従って、アプリケーション処理プログラム１とアプリケーション処理プログラム２の組合せとそれらの結合する情報伝達手段である有線通信ネットワークの伝達時間がわかることで、当該システムにおける一連の処理プログラムの実行最小時間、実行最大時間、実行時間分布を得ることができ、そこからシステム全体の性能予測を行うことができるのである。
【実施例１】
【００４７】
（自動車ブレーキ抑制システム）
図１２に自動車ブレーキ抑制システムの機能ブロック図を示す。ネットワーク管理機能を実現するプログラムが、センサーの信号を取り込み、データ伝送によりブレーキ抑制機能を実現するプログラムに送る。また、ブレーキ抑制機能を実現するプログラムがそのセンサー信号を解析処理してブレーキ抑制するアクチュエーターに送る制御信号を生成する。そして、ネットワーク管理機能を実現するプログラムが生成された制御信号をデータ伝送によりアクチュエーターへ出力する。
ネットワーク管理機能を実現するプログラムならびにブレーキ抑制機能を実現するプログラムは、共に２ｍｓの起動周期で周期的に起動される。また、共に起動遅延は０．５ｍｓである。なお、センサーから出力される信号はリアルタイムで出力されるものであり、アクチュエーターへの伝達もリアルタイムで行われるものと想定する。
【００４８】
ネットワーク管理機能を実現するプログラムの実行時間が２０μｓｅｃ、ブレーキ抑制機能を実現するプログラムが５０μｓｅｃと仮定して、センサー信号からアクチュエーターへの出力までの実行時間を算出する。タスクの実行フローの実行時間は２０＋５０＝７０μｓｅｃ、それぞれの起動遅延０．５＋０．５＝１ｍｓを加算すると、最小実行時間が算出できる。最大実行時間は、起動周期のタイミングによって最も情報伝達時間が長くなるケースであり、最小実行時間に起動周期２＋２＝４ｍｓを加算する。
【産業上の利用可能性】
【００４９】
本発明は、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに搭載されるソフトウェアの設計支援ツールとして有用である。
【符号の説明】
【００５０】
１，２        メッセージキュー
３，４        データ
５            共有メモリ
６            フラッシュメモリ
１１，１２    タスク
【図１】
2014102530.tif 000003
【図２】
2014102530.tif 000004
【図３】
2014102530.tif 000005
【図４】
2014102530.tif 000006
【図５】
2014102530.tif 000007
【図６】
2014102530.tif 000008
【図７】
2014102530.tif 000009
【図８】
2014102530.tif 000010
【図９】
2014102530.tif 000011
【図１０】
2014102530.tif 000012
【図１１】
2014102530.tif 000013
【図１２】
2014102530.tif 000014