JP2014102530A - 情報伝達システム設計支援方法およびプログラム - Google Patents

情報伝達システム設計支援方法およびプログラム Download PDF

Info

Publication number
JP2014102530A
JP2014102530A JP2011045593A JP2011045593A JP2014102530A JP 2014102530 A JP2014102530 A JP 2014102530A JP 2011045593 A JP2011045593 A JP 2011045593A JP 2011045593 A JP2011045593 A JP 2011045593A JP 2014102530 A JP2014102530 A JP 2014102530A
Authority
JP
Japan
Prior art keywords
task
execution time
time
information transmission
application processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011045593A
Other languages
English (en)
Inventor
Koichi Nakamoto
幸一 中本
Shuichi Onishi
秀一 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VITS Inc
Hyogo Prefectural Government
Original Assignee
VITS Inc
Hyogo Prefectural Government
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VITS Inc, Hyogo Prefectural Government filed Critical VITS Inc
Priority to JP2011045593A priority Critical patent/JP2014102530A/ja
Priority to PCT/JP2012/001479 priority patent/WO2012117747A1/ja
Publication of JP2014102530A publication Critical patent/JP2014102530A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】不具合の重大な原因の1つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、システム設計支援方法を提供する。
【解決手段】少なくとも1つのプログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、各々の計算機に搭載されるプログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップと、プログラム毎にタスクの実行フローを定義するステップと、情報伝達手段の伝達時間を定義するステップと、タスク毎に定義された実行時間等を用いて、タスクの実行フローの実行時間を算出するステップと、複数の計算機にまたがる処理を連携して行うプログラムの組合せを定義するステップと、定義したプログラムの組合せの実行時間分布からシステム全体の性能予測を行うステップとを備える。
【選択図】図1

Description

本発明は、ネットワークなどの情報伝達手段で接続された複数の計算機で構成されるシステム全体の性能予測を行い、情報伝達システムに搭載されるソフトウェアの設計ならびに評価するための設計支援方法と設計支援プログラムに関するものである。
自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに要求される機能が増大したことにより、システムに搭載されるソフトウェア量が増大し、ソフトウェア部品も莫大な数になっている。
このようなシステムの性能問題については、システムを結合し、機能を実現するソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
なぜなら、これらソフトウェア部品の多くは、共通のハードウェア資源を共有しながら同時に作動する場合があり、1つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。
かかる状況下、従来から、多くのネットワークシステムの設計モデルには待ち行列モデルが多く利用されている(例えば、非特許文献1)。しかしながら、待ち行列モデルはソフトウェア設計には待ち行列モデルとソフトウェアの設計モデルに大きいなギャップがあり、実用的なアプローチとは言い難いものであった。
また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している(非特許文献2)。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。
また、コンピュータシステム内の性能予測のアプローチ方法を開示しているものもある(特許文献1)。
また、並列計算機を対象とした性能評価方法もあるが(特許文献2)、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。
また、実際にシステムでの性能を測定しそのデータに基づき性能予測を行うものがある(特許文献3)。この方法は、系列システムの開発には有効であろうが、最初にシステムを設計する場合にはあまり有効に機能するものではない。
また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある(特許文献4)。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
特開平4−363730号公報 特開2000−298598号公報 特開2004−220453号公報 特開2004−272582号公報
滝根 哲哉、伊藤 大雄、西尾 章治郎、ネットワーク設計理論、岩波書店、2001 C.Smith and L.Willianm’s, "Performance Solutions," Addison Wesloy,2002
組込みシステムの動作不良原因は、組込みソフトウェア不具合が半数以上を占める。不具合が起きる理由として、組込みソフトウェアの大規模化と複雑化に対して、十分な対策がとられなかったためである。
上記状況に鑑みて、本発明は、不具合の重大な原因の1つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、情報伝達システム設計支援方法およびプログラムを提供することを目的とする。
上記目的を達成すべく、本発明の情報伝達システム設計支援方法は、少なくとも1つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、以下の1)〜6)のステップを備える。
1)各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップ
2)アプリケーション処理プログラム毎にタスクの実行フローを定義するステップ
3)情報伝達手段の伝達時間を定義するステップ
4)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
5)複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義するステップ
6)定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行うステップ
かかる構成によれば、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに要求されるシステム性能の予測について、設計段階において事前検証することができる。
上記1)の各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
次に、上記2)のアプリケーション処理プログラムを構成するタスクの実行フローについて説明する。ここで、アプリケーション処理プログラムとは、例えば、自動車車載システムやロボット制御システムの場合には、ロボット遠隔操作機能を実現するプログラムや、ブレーキ制御機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する1以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。
次に、上記3)の情報伝達手段の伝達時間について説明する。情報伝達手段とは、無線通信ネットワーク、有線通信ネットワーク、伝達ギアや伝達シャフトなどの物理的な伝達機構を含む。また、伝達時間とは、アプリケーション処理プログラムにおける情報データ単位をネットワーク伝送する時間や、物理的な伝達機構ではモータ駆動時の遅延時間をいう。
次に、上記4)のタスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間をどのように算出するとは、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことである。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
ここで、1方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム(OS)によって優先度の高いものが実行されることから、例えば、1方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。
次に、上記5)のアプリケーション処理プログラムの組合せについて説明する。複数の計算機に搭載されるそれぞれのアプリケーション処理プログラムが、情報伝達手段を介して情報をやり取りして連携して処理を行うものである場合、どのアプリケーション処理プログラムの組合せが連係するのかを明確にする必要がある。上記1)、2)、4)のステップにより、アプリケーション処理プログラム毎のタスクの実行フローの実行時間が算出できる。複数の計算機に処理がまたがり連携して処理を行うアプリケーション処理プログラムの組合せが明確になると、各々のアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布を加算して、場合によっては情報伝達手段の伝達時間も付加して、上記6)のシステム全体の性能予測を行うことができる。
本発明の情報伝達システム設計支援方法における上記1)のタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップにおいて、更に、起動オフセット時間および実時間属性が定義されることが好ましい。
ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、CPU時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。
本発明の情報伝達システム設計支援方法における上記3)の情報伝達手段の伝達時間を定義するステップにおいて、更に、遅延時間と再送回数が定義されることが好ましい。通信ネットワークなどは、アプリケーション処理プログラムが送受信するデータサイズによっては、1回で送受信できないものもあり、通信トラフィック状況によっては処理待ち時間が発生することもある。また、通信データエラーが発生した場合は再送処理が発生する。そのため、事前に遅延時間と再送回数を定義することで、システム全体の実行時間分布をより正確に把握して性能評価を行うことができる。
本発明の情報伝達システム設計支援方法における上記1)のタスクの実行時間において、タスク実行時間の分布情報が付加されることが好ましい。
タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
例えば、タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることがより好ましい。重み付けは、見積り実行時間になる確率で表現してもよい。
例えば、タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことがより好ましい。
ここで、ハードウェアリソースとは、上述した情報伝達手段や、計算機内の共有メモリ、フラッシュメモリ(flash
memory)などの不揮発性の半導体メモリ、USB(Universal Serial Bus:)メモリ、ハードディスクなどをいう。
また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
また、タスク実行時間の分布情報には、該タスクが排他制御ロジックを含む場合に、排他制御の処理待ち時間を含むことがより好ましい。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。
また、タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることがより好ましい。
ここで、システムソフトウェアとは、オペレーティングシステム(OS)や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラム毎の性能目標となる予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される1以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることが好ましい。
ここで、条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
また、本発明の情報伝達システム設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることが好ましい。
複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
次に、本発明の情報伝達システム設計支援プログラムについて説明する。
本発明の情報伝達システム設計支援プログラムは、少なくとも1つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援プログラムであって、コンピュータに、以下のa)〜f)を実行させるためのプログラムである。
a)各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義する手順
b)アプリケーション処理プログラム毎にタスクの実行フローを定義する手順
c)情報伝達手段の伝達時間を定義する手順
d)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出する手順
e)複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する手順
f)定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う手順
数の計算機が情報伝達手段によって接続されたシステムに組み込まれるソフトウェアは、情報伝達手段の制約や、個々の計算機内のメモリが少ないなどの厳しいハードウェア制約の中で、応答性能の制約も受けながら、システムに搭載するソフトウェアを設計する必要がある。
本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
システム設計支援フロー図 アプリケーション処理プログラムの説明図 アプリケーション処理プログラムの実行フローに用いるタスクの説明図 タスクの実行フローの説明図1 タスクの実行フローの説明図2 タスクの実行フローの説明図3 タスクの実行フローの説明図4 タスクの実行フローの説明図5 タスクの実行フローの説明図6 タスクの実行フローの説明図7 複数の計算機で連携して動作するシステムのソフトウェア構成図 自動車ブレーキ抑制システムの機能ブロック図
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
図1は、本発明の情報伝達システム設計支援方法の処理フローを示している。
本発明の情報伝達システム設計支援方法は、1以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
(ステップ1)各々の計算機に搭載されるアプリケーション処理プログラムのタスク毎にタスク情報(優先度,起動周期,実行時間,実行回数)を定義する。
(ステップ2)アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
(ステップ3)ネットワークなどの情報伝達手段の伝達時間を定義する。
(ステップ4)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
(ステップ5)複数の計算機上で連携して処理を行うアプリケーション処理プログラムの組合せを定義する。
(ステップ6)アプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布に基づいて、システム全体の性能予測を行う。
アプリケーション処理プログラムとタスクの関係について、図2を用いて説明する。
図2は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
図2のアプリケーション処理プログラムでは、処理タスク1と処理タスク2で構成されている。処理タスク1は、メッセージキュー1からメッセージデータ3を取り出し、メッセージデータ3を加工して共有メモリ5にデータを書き込む処理を行うものとする。また、処理タスク2は、共有メモリ5からデータを読み込み、データを加工して、フラッシュメモリ6にデータを書き込む処理と、場合によってはフラッシュメモリ6からデータを読み出して、メッセージキュー2に送る処理を行うものとする。
このようなアプリケーション処理プログラムにおいては、上記(ステップ1)に従って、まず処理タスク1と処理タスク2の2つのタスクに関して、優先度,起動周期,実行時間,実行回数を定義することになる。
ここで、処理タスク1がメッセージ駆動型のタスクとし、処理タスク2が周期的駆動型のタスクとして設計されるとする。処理タスク1の起動周期は0(ゼロ)で、処理タスク2の起動周期を例えば10msとする。また、メッセージ駆動型の処理タスク1は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は1であり、複数回処理が繰り返される場合、実行回数はn回となる。
実行時間に関しては、処理タスク1の場合、タスクの行う処理、すなわち、メッセージキュー1からデータの取り出し処理、共有メモリ5への書き込み処理、それぞれの見積り時間を予測して決定する。また、処理タスク2の場合、共有メモリ5からデータを読み込み処理、フラッシュメモリ6にデータを書き込む処理、メッセージキュー2にデータを送る処理、それぞれの見積り時間を予測して決定する。
ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク1と処理タスク2がそれぞれ書き込み・読み込みを行う共有メモリ5に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。
図3(1)は、アプリケーション処理プログラムの実行フローに用いるタスクの種類の一例を示している。タスクは見積り予測が可能な単位に細かく定義する。タスクを繰り返し実行するものや、条件によってケース分けして多数を実行するものや、タスクを並列に実行するものなど定義する。
また、図3(2)は、ハードウェアリソースの一例を示している。ハードウェアリソースは、共有メモリ、有線通信ネットワーク、無線通信ネットワーク、伝達軸などをいう。また、ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。
次に、アプリケーション処理プログラムを構成するタスクの実行フローについて図4〜10を参照して説明する。
まず、繰り返しタスクの実行フローの一例を示す。図4は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク10が10μsec、プロセストランザクションタスク12が20μsec、終了セッションタスク14が5μsecの見積り時間で、繰り返しタスク16の繰り返し回数n=5とした場合、図4に示す実行フローの実行時間は、10+20×5+5=115μsecとなる。
次に、ケースタスクの実行フローの一例を示す。図5はケースタスクの実行フローの一例を示している。例えば、トランザクション取得タスク20が15μsec、プロセスAタスク22が20μsec、プロセスBタスク24が40μsec、プロセスCタスク26が25μsecの見積り時間で、ケースタスク28の分岐確率a〜cがそれぞれ0.5,0.3,0.2とした場合、図5に示す実行フローの実行時間は、最小実行時間が15+20=35μsec、最大実行時間が15+40=55μsecで、実行時間分布が35μsec,55μsec,15+25=40μsecがそれぞれの確率で現れる分布となる。
次に、パルドタスクの実行フローの一例を示す。図6はパルドタスクの実行フローの一例を示している。例えば、ユーザ入力操作タスク30が5μsec、リモートクエリー表示タスク32が15μsec、クエリー結果をスクリーンに表示させるタスク34が25μsec、入力データを表示データとするタスク36が10μsec、ディスプレイ表示タスク38が20μsecの見積り時間の場合、図6に示す実行フローの実行時間は、5+25+10+20=60μsecとなる。なお、パルドタスク31は付属するタスク32とタスク34が並列実行され、それらのタスクが全て終了しないと先に処理が進まないロジックを備えるものである。
次に、共有メモリを排他制御するタスクの実行フローの一例を示す。図7は、データ入力し共有メモリに書き込む2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク41とデータ入力タスク42と書込みデータタスク43の実行フローで構成されるプログラムと、繰り返しタスク46とデータ入力タスク47と書込みデータタスク48の実行フローで構成されるプログラムである。例えば、書込みデータタスク43の実行時間は20μsecで、書込みデータタスク48の実行時間は25μsecとすると、それぞれの書込みデータタスクは他方の書込みデータタスクが共有メモリ40に書込み中は処理待ちとなるため、書込みデータタスク43の実行時間は最小実行時間が20μsec、最大実行時間が20+25=45μsecとなり、書込みデータタスク48の実行時間は最小実行時間が25μsec、最大実行時間が25+20=45μsecとなる。
また、図8は、共有メモリにデータを書き込む処理と読み込む処理の2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク51とデータ入力タスク52と書込みデータタスク53の実行フローで構成されるプログラムと、繰り返しタスク56と読込みデータタスク57とスクリーン表示タスク58の実行フローで構成されるプログラムである。共有メモリ50に一方のプログラムがデータを書き込んで、他方のプログラムが書き込まれたデータを読み込んで処理する場合を想定する。例えば、データ入力タスク52の実行時間は10μsec、書込みデータタスク53の実行時間は20μsec、読込みデータタスク57の実行時間は15μsec、スクリーン表示タスク58の実行時間は25μsecとすると、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+15+25=70μsecとなる。
ここで、データ入力タスク52の優先度と読込みデータタスク57の優先度が異なる場合を考える。仮に、データ入力タスク52が、読込みデータタスク57より優先される場合、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+10+15+25=80μsecとなる。書込みデータタスク53が終了した後、繰り返しによって再びデータ入力タスク52が動作しそれが終了するまで、読込みデータタスク57が動作しないからである。なお、データ入力タスク10が、スクリーン表示タスク58より優先される場合も同様となる。
次に、フラッシュメモリにアクセスするタスクの実行フローの一例を示す。図9は、データ格納しそれをテンポラリメモリあるいはフラッシュメモリに格納するプログラムのタスクの実行フローの一例を示している。例えば、データ格納タスク60の実行時間は15μsec、テンポラリメモリへ格納タスク62の実行時間は20μsec、フラッシュメモリの処理待ち時間を50μsecと見積ってフラッシュメモリへ格納タスク63の実行時間は70μsec、終了セッションタスク65の実行時間は5μsec、ケースタスク61の分岐確率がそれぞれ0.8と0.2とすると、図9に示す実行フローの実行時間は、最小実行時間が15+20=40μsec、最大実行時間が15+70+5=90μsecで、実行時間分布が40μsec,90μsecがそれぞれの確率で現れる分布となる。
次に、メッセージキューからメッセージを受け取るタスクの実行フローの一例を示す。図10は、メッセージキュー70からメッセージ受信しサービスを行うプログラムのタスクの実行フローの一例を示している。例えば、メッセージ受信タスク71の実行時間は10μsec、サービス処理タスク72の実行時間は50μsec、終了セッションタスク73の実行時間は5μsecとすると、図10に示す実行フローの実行時間は、10+50+5=65μsecとなる。
次に、図11を参照して、複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する方法と、定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う方法について説明する。
図11は、計算機1と計算機2が有線通信ネットワークで接続されているシステムの概念図を示すものである。計算機1にはタスク1〜3で構成されるアプリケーション処理プログラム1が搭載されている(図11の計算機1の枠内において点線で囲んだもの)。また、計算機2にはタスク4,5で構成されるアプリケーション処理プログラム2が搭載されている(図11の計算機2の枠内において点線で囲んだもの)。また、計算機1にはタスク3,6で構成される別のアプリケーション処理プログラムが搭載されている。また、計算機2にはタスク4,7で構成される別のアプリケーション処理プログラムが搭載されている。
このようなシステム全体の性能評価を行う場合において、まず、計算機1と計算機2のアプリケーション処理プログラム1とアプリケーション処理プログラム2が連係して処理を行うこと、すなわち、アプリケーション処理プログラム1とアプリケーション処理プログラム2の組合せで特定の処理を行うことを定義する。アプリケーション処理プログラム1とアプリケーション処理プログラム2は、それぞれ、タスク1〜3の実行フローとタスク4,5の実行フローで定義されて、それらの実行時間が算出可能である。
従って、アプリケーション処理プログラム1とアプリケーション処理プログラム2の組合せとそれらの結合する情報伝達手段である有線通信ネットワークの伝達時間がわかることで、当該システムにおける一連の処理プログラムの実行最小時間、実行最大時間、実行時間分布を得ることができ、そこからシステム全体の性能予測を行うことができるのである。
(自動車ブレーキ抑制システム)
図12に自動車ブレーキ抑制システムの機能ブロック図を示す。ネットワーク管理機能を実現するプログラムが、センサーの信号を取り込み、データ伝送によりブレーキ抑制機能を実現するプログラムに送る。また、ブレーキ抑制機能を実現するプログラムがそのセンサー信号を解析処理してブレーキ抑制するアクチュエーターに送る制御信号を生成する。そして、ネットワーク管理機能を実現するプログラムが生成された制御信号をデータ伝送によりアクチュエーターへ出力する。
ネットワーク管理機能を実現するプログラムならびにブレーキ抑制機能を実現するプログラムは、共に2msの起動周期で周期的に起動される。また、共に起動遅延は0.5msである。なお、センサーから出力される信号はリアルタイムで出力されるものであり、アクチュエーターへの伝達もリアルタイムで行われるものと想定する。
ネットワーク管理機能を実現するプログラムの実行時間が20μsec、ブレーキ抑制機能を実現するプログラムが50μsecと仮定して、センサー信号からアクチュエーターへの出力までの実行時間を算出する。タスクの実行フローの実行時間は20+50=70μsec、それぞれの起動遅延0.5+0.5=1msを加算すると、最小実行時間が算出できる。最大実行時間は、起動周期のタイミングによって最も情報伝達時間が長くなるケースであり、最小実行時間に起動周期2+2=4msを加算する。
本発明は、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに搭載されるソフトウェアの設計支援ツールとして有用である。
1,2 メッセージキュー
3,4 データ
5 共有メモリ
6 フラッシュメモリ
11,12 タスク

Claims (10)

  1. 少なくとも1つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続されたシステム全体の設計支援方法であって、
    各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップと、
    アプリケーション処理プログラム毎にタスクの実行フローを定義するステップと、
    前記情報伝達手段の伝達時間を定義するステップと、
    前記タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップと、
    複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義するステップと、
    定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行うステップと、
    を備えたことを特徴とする情報伝達システム設計支援方法。
  2. 前記タスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップにおいて、更に、起動オフセット時間および実時間属性が定義されることを特徴とする請求項1に記載の情報伝達システム設計支援方法。
  3. 前記情報伝達手段の伝達時間を定義するステップにおいて、更に、遅延時間と再送回数が定義されることを特徴とする請求項1に記載の情報伝達システム設計支援方法。
  4. 前記タスクの実行時間において、タスク実行時間の分布情報が付加されたことを特徴とする請求項1に記載の情報伝達システム設計支援方法。
  5. 前記タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることを特徴とする請求項4に記載の情報伝達システム設計支援方法。
  6. 前記タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことを特徴とする請求項4に記載の情報伝達システム設計支援方法。
  7. 前記タスク実行時間の分布情報は、該タスクが排他制御ロジックを含む場合に、排他制御の予想待ち時間を含むことを特徴とする請求項4に記載の情報伝達システム設計支援方法。
  8. 前記タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることを特徴とする請求項4に記載の情報伝達システム設計支援方法。
  9. 前記システム全体の性能予測を行うステップにおいて、システム全体の予測時間領域を定義し、前記実行時間分布が前記予測時間領域と比較して逸脱する場合にはアラームを出力することを特徴とする請求項1に記載の情報伝達システム設計支援方法。
  10. 少なくとも1つのアプリケーション処理プログラムが搭載された複数の計算機が情報伝達手段によって接続された情報伝達システム全体の設計支援プログラムであって、
    コンピュータに、
    各々の計算機に搭載されるアプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義する手順と、
    アプリケーション処理プログラム毎にタスクの実行フローを定義する手順と、
    前記情報伝達手段の伝達時間を定義する手順と、
    前記タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出する手順と、
    複数の計算機に処理がまたがるアプリケーション処理を連携して行うアプリケーション処理プログラムの組合せを定義する手順と、
    定義したアプリケーション処理プログラムの組合せの実行最小時間、実行最大時間、実行時間分布からシステム全体の性能予測を行う手順と、
    を実行させるためのプログラム。
JP2011045593A 2011-03-02 2011-03-02 情報伝達システム設計支援方法およびプログラム Withdrawn JP2014102530A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011045593A JP2014102530A (ja) 2011-03-02 2011-03-02 情報伝達システム設計支援方法およびプログラム
PCT/JP2012/001479 WO2012117747A1 (ja) 2011-03-02 2012-03-02 ネットワーク型計算機ソフトウェアシステム設計支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011045593A JP2014102530A (ja) 2011-03-02 2011-03-02 情報伝達システム設計支援方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2014102530A true JP2014102530A (ja) 2014-06-05

Family

ID=46757689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011045593A Withdrawn JP2014102530A (ja) 2011-03-02 2011-03-02 情報伝達システム設計支援方法およびプログラム

Country Status (2)

Country Link
JP (1) JP2014102530A (ja)
WO (1) WO2012117747A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013205892A (ja) * 2012-03-27 2013-10-07 Mitsubishi Electric Corp システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5884841B2 (ja) * 2014-01-29 2016-03-15 日本電気株式会社 性能予測装置および性能モデル生成方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (ja) * 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体
JP2002268879A (ja) * 2001-03-07 2002-09-20 Mitsubishi Electric Corp プログラム設計支援装置、プログラム設計支援方法及びプログラム設計支援方法をコンピュータに実行させるためのプログラム。
JP2006185055A (ja) * 2004-12-27 2006-07-13 Toshiba Corp 計算機システムの設計支援システムおよび設計支援プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013205892A (ja) * 2012-03-27 2013-10-07 Mitsubishi Electric Corp システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム

Also Published As

Publication number Publication date
WO2012117747A1 (ja) 2012-09-07

Similar Documents

Publication Publication Date Title
Yang Avoiding pitfalls when using NVIDIA GPUs for real-time tasks in autonomous systems
JP6583838B2 (ja) アプリケーションのシミュレーション
US9329915B1 (en) System and method for testing in a production environment
US10157089B2 (en) Event queue management for embedded systems
US9418181B2 (en) Simulated input/output devices
US20170147398A1 (en) Estimating job start times on workload management systems
JP6283096B2 (ja) プログラム試験サービス
JP5374707B2 (ja) 計算機ソフトウェアシステム設計支援装置
CN113886162A (zh) 一种计算设备性能测试方法、计算设备及存储介质
US20140331205A1 (en) Program Testing Service
WO2012117747A1 (ja) ネットワーク型計算機ソフトウェアシステム設計支援方法
JP4600601B1 (ja) デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム
US10176276B2 (en) Determining an optimal global quantum for an event-driven simulation
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
CN117032573A (zh) 微服务执行方法、电子设备及可读存储介质
US11954569B2 (en) Techniques for parallel model training
JP2006185055A (ja) 計算機システムの設計支援システムおよび設計支援プログラム
KR102491606B1 (ko) 커맨드 세트 기반 리플레이를 통해 수행 정보를 수집하는 프로세서 장치
US11544436B1 (en) Hardware-software interaction testing using formal verification
CN113391903A (zh) 可调度性模型的建立方法、装置、电子设备及存储介质
JP2015170081A (ja) シミュレーション装置及びシミュレーションプログラム
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
CN114035864A (zh) 接口处理方法、接口处理装置、电子设备和存储介质
JP5226848B2 (ja) シミュレーション装置及びプログラム
JP2004272582A (ja) 計算機システムの性能予測プログラムおよび設計支援システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140603