JP2013205892A - システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム - Google Patents

システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム Download PDF

Info

Publication number
JP2013205892A
JP2013205892A JP2012071240A JP2012071240A JP2013205892A JP 2013205892 A JP2013205892 A JP 2013205892A JP 2012071240 A JP2012071240 A JP 2012071240A JP 2012071240 A JP2012071240 A JP 2012071240A JP 2013205892 A JP2013205892 A JP 2013205892A
Authority
JP
Japan
Prior art keywords
processing
task
performance
time
simulation
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.)
Granted
Application number
JP2012071240A
Other languages
English (en)
Other versions
JP5777550B2 (ja
Inventor
Makoto Isoda
誠 磯田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012071240A priority Critical patent/JP5777550B2/ja
Publication of JP2013205892A publication Critical patent/JP2013205892A/ja
Application granted granted Critical
Publication of JP5777550B2 publication Critical patent/JP5777550B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】イベント処理タスクと周期処理タスクとが混在する検証対象システムの性能を検証できるようにすることを目的とする。
【解決手段】性能検証モデル200は、メッセージを一つずつ処理する少なくとも一つのイベント処理タスクとメッセージを一つ以上まとめて処理する少なくとも一つの周期処理タスクとを所定の処理順序で組み合わせた制御フローについて、タスク毎の処理時間と、周期処理タスク毎の起動周期とを指定する。シミュレーション部110は、性能検証モデル200に基づいて検証対象システムの動作をシミュレーションする。指標値算出部120は、シミュレーション部110のシミュレーション結果に基づいて検証対象システムの性能の指標値210を算出する。性能評価部130は、指標値210と性能要求値220とを比較して性能評価結果230を出力する。
【選択図】図1

Description

本発明は、例えば、検証対象システムの性能を検証するシステム性能検証装置、システム性能検証方法およびシステム性能検証プログラムに関するものである。
組込みリアルタイムシステムは、計算機とコンソールからなる制御装置を中心にセンサ装置と駆動装置を備え、外部環境に対して適切な制御をかける。
近年の多機能・高性能の要求を実現するため、複数のシステムをネットワーク接続して運用することによって、システム単体での機能・性能の限界を克服する取り組みが盛んである。
以降では、組込みリアルタイムシステムをネットワークシステムで接続した形態を統合システムと呼ぶ。
統合システムは、複数のシステムをネットワーク接続して運用しながら全体としてはあたかも一つのシステムとして機能・性能を提供する必要がある。そのため、統合システムは、ネットワークを介した場合でもリアルタイムで動作することを特徴とする。
統合システムの実開発では、既に以下の点が課題になっている。
(1)実運用でのシステム構成(制御装置、センサ装置、駆動装置、通信装置など)が大規模であり、出荷前に実運用と同等の試験環境を整えるのが難しい。そのため、実運用の構成を想定した性能測定が困難である。
(2)システム設計段階でハードウェアの仕様(プロセッサ、通信メディアの処理速度や多重度など)およびソフトウェアの仕様が確定し、個別の開発が始まる。そのため、試験段階で性能要求の未達成が分かっても、ハードウェアを増設して対処することは困難である。
(3)低コストで多機能化を実現するため、多数のソフトウェアが一つのハードウェアに搭載される。そのため、多数のソフトウェアから性能のボトルネックとなるソフトウェアを特定するためには時間がかかる。
(4)システム内部やシステム間でメッセージを送受信する際に、負荷状況によって待ち時間が変動する。そのため、ソフトウェアおよびハードウェアの単体の処理性能を単純に積み上げただけでは性能を見積もることができない。
上記課題は開発プロセス上のソフトウェア・ハードウェア開発以降の下流工程に集中している。そのため、上記課題に対して上流工程のシステム設計で対処することが求められており、システム設計の段階で実運用の構成を想定した性能を見積もる必要がある。
具体的には、ソフトウェアの機能分担とハードウェアの割当を決定する際に、タスク構成(イベント処理タスク、周期処理タスク)、メッセージ送受信(シグナル送受信、メソッド呼び出し)、ハードウェア構成、性能計算の粒度という、性能に影響を及ぼす設計情報を用いて性能検証を行う技術が必要である。
従来の性能検証技術としては、待ち行列シミュレーション(例えば特許文献1、特許文献2、非特許文献1)、待ち行列理論(例えば非特許文献2)、RMA(Rate Monotonic Analysis)(例えば、非特許文献3)が用いられることが多い。
これら従来技術の特徴を以下に示す。
・待ち行列シミュレーションは、「複数のイベント処理タスク、お互いにシグナル送受信あり、複数ハードウェア構成」または「複数の周期処理タスク、それぞれ独立に並行実行、複数ハードウェア構成」の場合の性能を計算できる。
・待ち行列理論は、「複数のイベント処理タスク、お互いにシグナル送受信あり、複数ハードウェア構成」の場合の性能を計算できる。しかし、周期処理タスクには対応していない。
・RMAは、「複数の周期処理タスク、それぞれ独立に並行実行、単一ハードウェア構成」の場合の性能を計算できる。しかし、シグナル送受信や複数ハードウェア構成には対応していない。
また、従来技術の計算手法と適用範囲は以下のとおりである。
・待ち行列シミュレーションは統計的手法に分類され、計算結果は誤差範囲を持ったものとなる。適用対象の動作を計算機上で模擬するので、実際の統合システムに適用する場合でも大規模・複雑な仕様を直接扱いやすい。
・待ち行列理論およびRMAは解析的手法に分類され、計算結果は誤差範囲のない確定値となる。適用対象を数式で厳密に表現しなければならないため、実際の統合システムに適用する場合はその仕様を抽象化または限定する必要がある。
従来技術は以下のような課題を有する。
・待ち行列シミュレーションは、イベント処理タスクと周期処理タスクとの混在には対応していない。
・待ち行列理論は、周期処理タスクに対応していない。また、待ち行列理論は、実システムの仕様を抽象化または限定する必要がある。
・RMAは、シグナル送受信や複数のハードウェアの構成には対応していない。また、RMAは、実システムの仕様を抽象化または限定する必要がある。
特開平10−143400号公報 特開2003−177943号公報
森戸 晋、逆瀬川浩孝 著、「システムシミュレーション」朝倉書店、2000年発行 秋丸春夫、川島幸之助 著、「情報通信トラヒック−基礎と応用−」オーム社、1990年発行 C. L. Liu, "Scheduling Algorithms for Multiprogramming in a Hard−Real−Time Environment," Journal of ACM, Vol.20, No.1, pp.46−61, January 1973.
本発明は、例えば、イベント処理タスクと周期処理タスクとが混在する検証対象システムの性能を検証できるようにすることを目的とする。
本発明のシステム性能検証装置は、
処理要求が入力される検証対象システムであって前記検証対象システムに入力された処理要求を一つずつ処理する少なくとも一つのイベント処理タスクと前記検証対象システムに入力された処理要求を一つ以上まとめて処理する少なくとも一つの周期処理タスクとを所定の処理順序で組み合わせた複数の処理タスクによって前記処理要求に対する処理を行う検証対象システムを定義するデータとして、前記複数の処理タスクの処理タスク毎の処理時間と、前記複数の処理タスクに含まれる周期処理タスク毎の起動周期とを指定する性能検証モデルを記憶する性能検証モデル記憶部と、
前記複数の処理タスクを模擬するための複数の模擬タスクを前記性能検証モデルに基づいて動作させるシミュレーション部と、
前記シミュレーション部による前記複数の模擬タスクの動作結果に基づいて前記検証対象システムの性能値を算出する性能値算出部とを備える。
本発明によれば、例えば、イベント処理タスクと周期処理タスクとが混在する検証対象システムの性能を検証することができる。
実施の形態1におけるシステム性能検証装置100の構成図。 実施の形態1における検証対象システムの設計情報の一例を示す表。 実施の形態1における性能検証モデル200を構成する要素の一例を示す表。 実施の形態1における性能検証モデル200の一例を示す概要図。 実施の形態1における性能検証モデル200の負荷入力が開放型の負荷入力である場合のメッセージの流れを示す図。 実施の形態1における性能検証モデル200の負荷入力が閉鎖型の負荷入力である場合のメッセージの流れを示す図。 実施の形態1における検証対象システムの性能の指標値の一例を示す表。 実施の形態1における検証対象システムの性能の指標値の具体例を示す図。 実施の形態1におけるシステム性能検証装置100のシステム性能検証方法を示すフローチャート。 実施の形態1におけるシステム性能検証装置100のシステム性能検証方法を示すフローチャート。 実施の形態1におけるタスク起動処理(S120)を示すフローチャート。 実施の形態1におけるメッセージ送信処理(S140)を示すフローチャート。 実施の形態1におけるシステム性能検証装置100のハードウェア資源の一例を示す図。 実施の形態3におけるタスクの追加属性を示す表。 実施の形態4におけるタスクの追加属性およびハードウェアの追加属性を示す表。 実施の形態5における検証対象システムの待ち時間についての指標値を示す表。
実施の形態1.
イベント処理タスクと周期処理タスクとが混在する検証対象システムの性能を検証する形態について説明する。
図1は、実施の形態1におけるシステム性能検証装置100の構成図である。
実施の形態1におけるシステム性能検証装置100の構成について、図1に基づいて説明する。
システム性能検証装置100は、性能検証モデル200に基づいて検証対象システムの動作をシミュレーションし、検証対象システムの性能を評価する装置である。
検証対象システムは性能を検証する対象のシステムである。
例えば、検証対象システムは、単独の装置、複数の装置を備える単独のシステムまたは複数のシステムを備える統合システムである。
また、組込みリアルタイムシステムをネットワークシステムで接続した統合システムは、検証対象システムの一例である。
性能検証モデル200は、検証対象システムの動作に関する情報を定義したデータである。
システム性能検証装置100は、シミュレーション部110、指標値算出部120、性能評価部130、性能検証モデル作成部140、性能要求値作成部150および装置記憶部190を備える。図中に置いて装置記憶部190は複数に分けて記載しているが、装置記憶部190は1つの記憶部であっても複数の記憶部であってもどちらでも構わない。
シミュレーション部110は、性能検証モデル作成部140によって作成される性能検証モデル200に基づいて検証対象システムの動作をシミュレーションする。
指標値算出部120は、シミュレーション部110によるシミュレーション結果に基づいて検証対象システムの性能の指標値210を算出する。
性能評価部130は、指標値算出部120によって算出される検証対象システムの性能の指標値210と性能要求値作成部150によって作成される性能要求値220とを比較して検証対象システムの性能を評価し、性能評価結果230を生成する。
性能検証モデル作成部140は、利用者の入力に従って検証対象システムの性能検証モデルを生成する。
性能要求値作成部150は、利用者の入力に従って検証対象システムの性能要求値220の情報を生成する。
装置記憶部190は、システム性能検証装置100で使用するデータを記憶する。
例えば、装置記憶部190は、性能検証モデル200、シミュレーション結果、指標値210、性能要求値220および性能評価結果230を記憶する。
図2は、実施の形態1における検証対象システムの設計情報の一例を示す表である。
図2に示すように、検証対象システムの設計情報として、タスク構成、イベント処理タスク、周期処理タスク、メッセージ送受信、シグナル送受信、メソッド呼び出し、ハードウェア構成、性能計算の粒度などが挙げられる。
利用者は、図2に示すような検証対象システムの設計情報に基づいて性能検証モデル200の情報や性能要求値220をシステム性能検証装置100に入力する。
以下に、図2の記載内容の補足説明を行う。
タスク構成は、検証対象システムで実行するタスクの種類を指定する情報である。例えば、検証対象システムは、イベント処理タスクおよび周期処理タスクを実行する。
イベント処理タスクは、メッセージ(処理要求)を一つずつ処理するタスクである。
周期処理タスクは、メッセージを一つ以上まとめて周期的に処理するタスクである。
メッセージ送受信は、検証対象システムのタスクの呼び出し方法を指定する情報である。例えば、タスクの呼び出し方法には、シグナル送受信およびメソッド呼び出しがある。
シグナル送受信は、次のタスクにメッセージを渡した後、そのメッセージに対する応答を待たずに次のメッセージの処理を開始する方法である。
メソッド呼び出しは、次のタスクにメッセージを渡した後、そのメッセージに対する応答を待って次のメッセージの処理を開始する方法である。
ハードウェア構成は、検証対象システムで使用するハードウェアを指定する情報である。例えば、検証対象システムは、CPU(Central Processing Unit)、メモリ、入出力装置(キーボード、ディスプレイ、プリンタなど)、通信装置などのハードウェアを使用する。
性能計算の粒度は、検証対象システムの性能値の計算に関する情報である。
図3は、実施の形態1における性能検証モデル200を構成する要素の一例を示す表である。
図3に示すように、性能検証モデル200は、タスク、ハードウェア、負荷入力、測定点、シーケンス、時間情報などの要素を含む。
利用者は、性能検証モデル200の情報として図3に示すような要素についての情報をシステム性能検証装置100に入力する。
性能検証モデル作成部140は、利用者に入力された情報に従って性能検証モデル200を生成する。
以下に、図3の記載内容の補足説明を行う。
タスクは、検証対象システムで動作するタスクに関する情報である。
タスクは、属性として、種別、処理時間、多重度、優先度、ロック、ハードウェア、キュー種別、起動周期などを有する。
種別は、タスクの種別(イベント処理タスクまたは周期処理タスク)を示す情報である。
処理時間は、タスクが一つのメッセージを処理するために要する時間である。
多重度は、並列に処理することが可能なタスクの数を示す情報である。
優先度は、複数のタスクが同じハードウェアを使用する場合に各タスクがハードウェアを使用することができる優先順位を指定する情報である。
ロックは、タスク間でデータ等の排他制御が必要か否かを示す情報である。
ハードウェアは、タスクの処理で使用するハードウェアを示す情報である。
キュー種別は、メッセージを待機させるための待ちキューからメッセージを取り出す方法(シグナル送受信またはメソッド呼び出し)を指定する情報である。
起動周期は、周期処理タスクを起動する周期である。
ハードウェアは、検証対象システムが備えるハードウェアに関する情報である。
ハードウェアは、属性として、多重度やプリエンプト可否などを有する。
多重度は、複数のタスクから要求があった場合に並列に処理することが可能なタスクの数を示す情報である。
プリエンプト可否は、優先度が低いタスクから要求があった後に優先度が高いタスクから要求があった場合に優先度が高いタスクからの要求を先に処理するか否かを示す情報である。
負荷入力は、検証対象システムに対する外部からの処理要求に関する情報である。
負荷入力は、属性として、種別、到着間隔、入力数、外部遅延などを有する。
種別は、負荷入力の種別(開放型または閉鎖型)を指定する情報である。開放型の負荷入力は前の負荷入力に対する応答を待たずに次の負荷入力を行う方法であり、閉鎖型の負荷入力は前の負荷入力に対する応答を待って次の負荷入力を行う方法である。
到着間隔は、開放型の負荷入力が発生する周期を示す情報である。
入力数は、検証対象システムに一度に入力する負荷入力の数である。
外部遅延は、閉鎖型の負荷入力で前の負荷入力に対する応答があったときから次の負荷入力が発生するまでの遅延時間を示す情報である。
測定点は、シミュレーションにおいて時刻を計測するタイミングに関する情報である。
シーケンスは、複数のタスクの動作順序(タスクの並び順)に関する情報である。シーケンスは制御フローともいう。
シーケンスは、属性としてメッセージ送受信を有する。
メッセージ送受信は、タスクの並び順やタスクの種別などを指定する情報である。
時間情報は、シミュレーションの時間に関する情報である。
時間情報は、属性として、時間の単位やシミュレーション終了時刻などを有する。
時間の単位は、シミュレーションを行う時間(以下、「シミュレーション時間」という)の単位(分、時、日、月など)を指定する情報である。
シミュレーション終了時刻は、シミュレーションを終了する時刻である。
図4は、実施の形態1における性能検証モデル200の一例を示す概要図である。
実施の形態1における性能検証モデル200の一例の概要について、図4に基づいて説明する。
性能検証モデル作成部140は、例えば、図4に示すような内容の性能検証モデル200を生成する。
図4に示す性能検証モデル200は、「イベント処理タスク1→周期処理タスク1→周期処理タスク2→イベント処理タスク2」の順番(シーケンス)で負荷入力を処理することを指定している。イベント処理タスク1および周期処理タスク1はハードウェア1を共用し、周期処理タスク2およびイベント処理タスク2はハードウェア2を共用する。
また、性能検証モデル200は、イベント処理タスク1の待ちキューにメッセージが設定された時刻(測定点1)と、周期処理タスク1の待ちキューにメッセージが設定された時刻(測定点2)と、イベント処理タスク2の待ちキューにメッセージが設定された時刻(測定点3)とを記録することを指定している。また、性能検証モデル200は、測定点1から測定点2までの時間および測定点2から測定点3までの時間(タスク間応答時間)を測定することを指定している。
負荷入力(イベント処理タスク1の待ちキューへのメッセージの設定、測定点1)の時刻から負荷入力の終端(イベント処理タスク2による処理の終了)の時刻までの時間が検証対象システムの「外部応答時間」に相当する。
図5は、実施の形態1における性能検証モデル200の負荷入力が開放型の負荷入力である場合のメッセージの流れを示す図である。
性能検証モデル200の負荷入力が開放型の負荷入力である場合のメッセージの流れについて、図5に基づいて説明する。図5において、タスクの呼び出し方法は、メッセージを渡した先のタスクからの応答を待たずに次のメッセージの処理を開始するシグナル送受信であるものとする。
開放型の負荷入力は、前の負荷入力に対する応答を待たずに所定の到着間隔毎に発生する。
イベント処理タスク1は、負荷入力のメッセージが待ちキューに設定される度に待ちキューからメッセージを取り出し、取り出したメッセージを処理し、周期処理タスク1を呼び出すためのメッセージを周期処理タスク1の待ちキューに設定する。
周期処理タスク1は、所定の起動周期毎に動作し、起動周期の間に待ちキューに設定された1以上のメッセージをまとめて処理し、処理したメッセージ毎に周期処理タスク2を呼び出すためのメッセージを周期処理タスク2の待ちキューに設定する。また、周期処理タスク1は、メッセージ毎にイベント処理タスク1への応答を行う。
周期処理タスク2は、所定の起動周期毎に動作し、起動周期の間に待ちキューに設定された1以上のメッセージをまとめて処理し、処理したメッセージ毎にイベント処理タスク2を呼び出すためのメッセージをイベント処理タスク2の待ちキューに設定する。また、周期処理タスク2は、メッセージ毎に周期処理タスク1への応答を行う。
イベント処理タスク2は、負荷入力のメッセージが待ちキューに設定される度に待ちキューからメッセージを取り出し、取り出したメッセージを処理し、処理結果を出力する。また、イベント処理タスク2は、メッセージ毎に周期処理タスク2への応答を行う。
図6は、実施の形態1における性能検証モデル200の負荷入力が閉鎖型の負荷入力である場合のメッセージの流れを示す図である。
性能検証モデル200の負荷入力が閉鎖型の負荷入力である場合のメッセージの流れについて、図6に基づいて説明する。図6において、タスクの呼び出し方法は、メッセージを渡した先のタスクからの応答を待って次のメッセージの処理を開始するメソッド呼び出しであるものとする。
閉鎖型の負荷入力は、前の負荷入力に対する応答を待った後、所定の外部遅延の時間が経過したときに発生する。
イベント処理タスク1は、負荷入力のメッセージが待ちキューに設定されると待ちキューからメッセージを取り出し、取り出したメッセージを処理し、周期処理タスク1を呼び出すためのメッセージを周期処理タスク1の待ちキューに設定する。そして、イベント処理タスク1は、周期処理タスク1から応答があった後(周期処理タスク1から制御が戻った後)に次のメッセージを待ちキューから取り出す。
周期処理タスク1は、所定の起動周期毎に動作し、起動周期の間に待ちキューに設定された1以上のメッセージをまとめて処理し、処理したメッセージ毎に周期処理タスク2を呼び出すためのメッセージを周期処理タスク2の待ちキューに設定する。そして、周期処理タスク1は、周期処理タスク2から各メッセージに対する応答がある度にイベント処理タスク1への応答を行う。また、周期処理タスク1は、周期処理タスク2から全てのメッセージに対する応答があった後に待ちキューから新たに1以上のメッセージを取り出す。
周期処理タスク2は、所定の起動周期毎に動作し、起動周期の間に待ちキューに設定された1以上のメッセージをまとめて処理し、処理したメッセージ毎に周期処理タスク2を呼び出すためのメッセージを周期処理タスク2の待ちキューに設定する。そして、周期処理タスク1は、イベント処理タスク2から各メッセージに対する応答がある度に周期処理タスク1への応答を行う。また、周期処理タスク2は、イベント処理タスク2から全てのメッセージに対する応答があった後に待ちキューから新たに1以上のメッセージを取り出す。
イベント処理タスク2は、負荷入力のメッセージが待ちキューに設定されると待ちキューからメッセージを取り出し、取り出したメッセージを処理し、処理結果を出力する。また、イベント処理タスク2は、メッセージに対する処理が終了した場合、周期処理タスク2への応答を行う。そして、イベント処理タスク2は、待ちキューから次のメッセージを取り出す。
図7は、実施の形態1における検証対象システムの性能の指標値の一例を示す表である。
図7に示すように、検証対象システムの性能の指標値として、外部応答時間、タスク間応答時間、キュー長、サービス時間、利用率、待ち時間、スループットなどが挙げられる。
指標値算出部120は、シミュレーション結果に基づいて図7に示すような指標値を算出する。
利用者は、図7に示すような指標値について検証対象システムの性能要求値220をシステム性能検証装置100に入力する。
性能評価部130は、利用者から入力された性能要求値220の情報を生成する。
以下に、図7の記載内容の補足説明を行う。
外部応答時間は、負荷入力が検証対象システムに入力されてから検証対象システムが負荷入力に対する処理結果を出力するまでの時間である。
タスク間応答時間は、メッセージが特定のタスクの待ちキューに設定されてからその特定のタスクまたは別のタスクでの処理が終了するまでの時間である。
キュー長は、タスクの待ちキューに設定された処理待ちの状態のメッセージの数である。
サービス時間は、タスクがメッセージを処理していた時間である。
利用率は、ハードウェアが使用された時間の割合である。
待ち時間は、他のタスクからの応答待ち、ハードウェアの空き待ち、メッセージの入力待ち、起動周期待ちなど、メッセージを処理するまでの時間である。
スループットは、検証対象システムが単位時間当たりに処理する負荷入力の数である。
図8は、実施の形態1における検証対象システムの性能の指標値の具体例を示す図である。
実施の形態1における検証対象システムの性能の指標値の具体例について、図8に基づいて説明する。
図8において、負荷入力Aは「タスク1→タスク2」の順番で処理され、負荷入力Bは「タスク2→タスク1」の順番で処理されるものとする。
負荷入力Aが検証対象システムに入力された場合、負荷入力Aはタスク1で処理された後、タスク2で処理され、検証対象システムから負荷入力Aの処理結果が出力される。
負荷入力Aが入力されてから負荷入力Aの処理結果が出力されるまでの時間が、負荷入力Aに対する検証対象システムの外部応答時間である。
また、タスク1が負荷入力Aに対する処理をしていた時間が負荷入力Aに対するタスク1の処理時間であり、タスク2が負荷入力Aに対する処理をしていた時間が負荷入力Aに対するタスク2の処理時間である。
タスク1またはタスク2において負荷入力Aに対する待ち時間が無かった場合、検証対象システムの外部応答時間は、タスク1のサービス時間とタスク2のサービス時間とを合計した時間に等しい。
負荷入力Bが検証対象システムに入力された場合、負荷入力Bはタスク2で処理された後、タスク1で処理され、検証対象システムから負荷入力Bの処理結果が出力される。但し、タスク2が負荷入力Bに対する処理を終了したときにタスク1が負荷入力Aに対する処理をしている場合、タスク1が負荷入力Aに対する処理を終了するまで、負荷入力Bについて待ち時間が発生する。
負荷入力Bが入力されてから負荷入力Bの処理結果が出力されるまでの時間が、負荷入力Bに対する検証対象システムの外部応答時間である。
また、タスク2が負荷入力Bに対する処理をしていた時間が負荷入力Bに対するタスク2の処理時間であり、タスク1が負荷入力Bに対する処理をしていた時間が負荷入力Bに対するタスク1の処理時間である。
このとき、検証対象システムの外部応答時間は、タスク2のサービス時間とタスク1での待ち時間とタスク1のサービス時間とを合計した時間に等しい。
図9および図10は、実施の形態1におけるシステム性能検証装置100のシステム性能検証方法を示すフローチャートである。
実施の形態1におけるシステム性能検証装置100のシステム性能検証について、図9および図10に基づいて説明する。
以下、イベント処理タスクと周期処理タスクとを区別する必要が無い場合、単に「タスク」という。
また、シグナル送受信とメソッド呼び出しとを区別する必要が無い場合、待ちキューにメッセージを設定する動作がタスクの呼び出しを意味するものとする。以下、待ちキューにメッセージを設定することを「メッセージの送信」ともいう。
シミュレーション時の時刻および時間は、現実の時刻および時間とは異なる論理的なものである。
S101において、シミュレーション部110は、性能検証モデル作成部140によって生成された性能検証モデル200を装置記憶部190から読み出す。
シミュレーション部110は、シミュレーションのための初期化処理を行う。
例えば、シミュレーション部110は、以下のような初期化処理を行う。
・シミュレーション部110は、負荷入力の送信時刻やタスクの起動時刻などの時刻を管理するための管理テーブルを初期化する。
・シミュレーション部110は、外部応答時間やサービス時間などの指標値を初期化する。
・シミュレーション部110は、性能検証モデル200に指定されているタスク(検証対象システムで動作するタスクを模擬するためのタスク)を生成し、生成したタスクの初期化(例えば、待ちキューの初期化)を行う。
・シミュレーション部110は、ロックやハードウェアを模擬するための管理テーブルを初期化する。
・シミュレーション部110は、シミュレーションの開始時刻を記録する。
S101の後、S102に進む。
S102において、シミュレーション部110は、開放型または閉鎖型の負荷入力の送信時刻であるか否かを判定する。
負荷入力の送信時刻である場合(YES)、S110に進む。
負荷入力の送信時刻でない場合(NO)、S120に進む。
S110において、シミュレーション部110は、性能検証モデル200に指定されている情報に従って性能検証モデル200に指定された入力数分の負荷入力について負荷入力のメッセージを制御フローの先頭のタスクに送信する。
さらに、シミュレーション部110は、負荷入力のメッセージを送信する次回の時刻(以下、「次回の送信時刻」という)を以下のように設定する。設定とは、所定の記憶領域(例えば、管理テーブル)に情報を記憶することを意味する(以下同様)。
・負荷入力が開放型の負荷入力である場合、シミュレーション部110は、開放型の負荷入力の次回の送信時刻として、現在時刻から性能検証モデル200に指定された到着間隔(時間)が経過したときの時刻を設定する。
・負荷入力が閉鎖型の負荷入力である場合、シミュレーション部110は、前回に送信した閉鎖型の負荷入力のメッセージについて先頭のタスクから応答が出力されたときに、閉鎖型の負荷入力の次回の送信時刻を設定する。閉鎖型の負荷入力の次回の送信時刻は、先頭のタスクが応答を出力した応答時刻から性能検証モデル200に指定された外部遅延(時間)が経過したときの時刻である。
S110の後、S111に進む。
S111において、シミュレーション部110は、S110で負荷入力のメッセージを送信した時刻を負荷入力の入力時刻として記録する。
また、シミュレーション部110は、先頭のタスクが性能検証モデル200に測定点として指定されている場合、負荷入力の入力時刻と同じ時刻をこの測定点の入力時刻として記録する。
さらに、シミュレーション部110は、先頭のタスクの待ちキューに設定されているメッセージの数を先頭のタスクの待ちキューのキュー長として記録する。
S111の後、S120に進む。
S120において、シミュレーション部110は、起動時刻になったタスクを選択し、選択したタスクを起動する。
以下に、S120の詳細について説明する。
図11は、実施の形態1におけるタスク起動処理(S120)を示すフローチャートである。
実施の形態1におけるタスク起動処理(S120)について、図11に基づいて説明する。
S121において、シミュレーション部110は、起動時刻が現在時刻より以前の時刻を示すタスクのうち起動時刻が最も早いタスクを選択する。
選択したタスクが複数ある場合、シミュレーション部110は、性能検証モデル200に指定された各タスクの優先度に従って優先度が最も高いタスクを選択する。
但し、選択したタスクと同じ種類のタスクが性能検証モデル200に指定された多重度と同じ数だけ動作している場合、シミュレーション部110は他のタスクを選択する。
S121の後、S122に進む。
S122において、シミュレーション部110は、S121で選択したタスクを起動する。
以下、S122で起動したタスクを「起動タスク」という。
S122の後、S123に進む。
S123において、起動タスクは、自己の待ちキューからメッセージを取り出す。
起動タスクがイベント処理タスクである場合、起動タスクは待ちキューから先頭のメッセージを取り出す。
起動タスクが周期処理タスクである場合、起動タスクは待ちキューに設定されている全てのメッセージを取り出す。
S123の後、S124に進む。
S124において、起動タスクは、性能検証モデル200にロックが指定されているか否かを判定する。
ロックが指定されている場合(YES)、S125に進む。
ロックが指定されていない場合(NO)、S126に進む。
S125において、起動タスクは、S123で取り出したメッセージについてロックを設定する。
S125の後、S126に進む。
S126において、起動タスクは、自己に割り当てるハードウェア(以下、「割り当てハードウェア」)が性能検証モデル200に指定されているか否かを判定する。
割り当てハードウェアが指定されている場合(YES)、S127に進む。
割り当てハードウェアが指定されていない場合(NO)、タスク起動処理(S120)は終了する。
S127において、起動タスクは、割り当てハードウェアを割り当てられているタスクの数が性能検証モデル200に指定された割り当てハードウェアの多重度より少ない場合、割り当てハードウェアを自己に割り当てる設定を行う。
割り当てハードウェアを割り当てられているタスクの数が性能検証モデル200に指定された割り当てハードウェアの多重度と同じ数である場合、起動タスクは、性能検証モデル200に指定された優先度およびプリエンプト可否に基づいて、割り当てハードウェアを自己に割り当てることが可能であるか否かを判定する。割り当てハードウェアを自己に割り当てることが可能である場合、起動タスクは、割り当てハードウェアを自己に割り当てる設定を行う。
つまり、割り当てハードウェアを割り当てられているタスクの優先度が自己の優先度より低く、割り当てハードウェアについてプリエンプトが可能である場合、起動タスクは割り当てハードウェアの割り当て先を優先度が低いタスクから自己のタスクに切り替える設定を行う。
S127により、タスク起動処理(S120)は終了する。
図9に戻り、システム性能検証方法の説明を続ける。
S120の後、S130に進む。
S130について説明する。
S120で起動された起動タスクがイベント処理タスクである場合、S131に進む。
S120で起動された起動タスクが周期処理タスクである場合、S132に進む。
S131において、起動タスク(イベント処理タスク)は、性能検証モデル200で指定された処理時間を自己のサービス時間に加算する。
起動タスクは、自己が起動する次回の時刻(以下、「次回の起動時刻」という)として、現在時刻から性能検証モデル200に指定された処理時間が経過したときの時刻を設定する。
S131の後、S133に進む。
S132において、起動タスク(周期処理タスク)は、S123で取り出したメッセージ分の処理時間を自己のサービス時間に加算する。メッセージ分の処理時間とは、メッセージの数と処理時間とを掛け合わせた時間である。
起動タスクは、次回の起動時刻として、現在時刻から性能検証モデル200に指定された起動周期が経過したときの時刻を設定する。
S132の後、S133に進む。
S133において、シミュレーション部110は、少なくともいずれかのタスクが割り当てられているハードウェアを記録する。
S133の後、S140に進む。
S140において、起動タスクは、次のタスクにメッセージを送信する。
以下に、S140の詳細について説明する。
図12は、実施の形態1におけるメッセージ送信処理(S140)を示すフローチャートである。
実施の形態1におけるメッセージ送信処理(S140)について、図12に基づいて説明する。
S141において、起動タスクは、自己のタスクについてメッセージのロックが管理テーブルに設定されているか否かを判定する。
メッセージのロックが設定されている場合(YES)、S142に進む。
メッセージのロックが設定されていない場合(NO)、S143に進む。
S142において、起動タスクは、自己のタスクについてのメッセージのロックの解放を管理テーブルに設定する。
S142の後、S143に進む。
S143において、起動タスクは、自己のタスクについてハードウェアの割り当てが管理テーブルに設定されているか否かを判定する。
ハードウェアの割り当てが設定されている場合(YES)、S144に進む。
ハードウェアの割り当てが設定されていない場合(NO)、S145に進む。
S144において、起動タスクは、自己のタスクについてのハードウェアの割り当ての解放を管理テーブルに設定する。
S144の後、S145に進む。
S145において、起動タスクは、性能検証モデル200に指定されている次のタスクにメッセージを送信する。但し、起動タスクが制御フローの最後のタスクである場合、次のタスクへのメッセージの送信は不要である。
起動タスクは、次のタスクの待ちキューに設定されているメッセージの数を次のタスクの待ちキューのキュー長として記録する。
起動タスクは、次のタスクが性能検証モデル200に測定点として指定されている場合、メッセージを送信した時刻をこの測定点の入力時刻および出力時刻として記録する。
S145の後、S146に進む。
S145の後、各タスクは、以下のように動作する。
起動タスクがメソッド呼び出しのタスクであって次のタスクがシグナル送受信のタスクである場合、または起動タスクがメソッド呼び出しのタスクであると共に最後のタスクである場合、起動タスクは前のタスクに応答を行って停止し、制御は起動タスクから前のタスクに戻る。また、前のタスクがメソッド呼び出しのタスクである場合、前のタスクはさらに前のタスクに応答を行って停止し、制御は前のタスクからさらに前のタスクに戻る。また、さらに前のタスクに制御が戻った後も同様である。
起動タスクがシグナル送受信のタスクであって次のタスクがシグナル送受信のタスクである場合、または起動タスクがシグナル送受信のタスクであると共に最後のタスクである場合、起動タスクは停止する。
S146において、起動タスクは、性能検証モデル200に指定された次のタスクの呼び出し方法がメソッド呼び出しであるか否かを判定する。
次のタスクの呼び出し方法がメソッド呼び出しである場合(YES)、S147に進む。
次のタスクの呼び出し方法がメソッド呼び出しでない場合(NO)、メッセージ送信処理(S140)は終了する。
S147において、起動タスクは、S145で送信したメッセージに対する応答が次のタスクから戻ってくるまで待機し、次のタスクから応答が戻ってきたときに停止する。但し、起動タスクがメソッド呼び出しのタスクである場合、起動タスクは、前のタスクに応答を行って停止する。
このとき、次のタスクは、さらに次のタスクの呼び出し方法がメソッド呼び出しである場合、さらに次のタスクから応答が戻ってくるまで待機する。さらに次のタスクについても同様である。このように、制御フローにおいてメソッド呼び出しはタスクの呼び出し関係を入れ子の関係にする。
S147により、メッセージ送信処理(S140)は終了する。
図9に戻り、システム性能検証方法の説明を続ける。
S140の後、S150に進む。
S150において、シミュレーション部110は、少なくともいずれかの負荷入力に対する制御フローが終了したか否かを判定する。制御フローの終了とは、最後のタスクが待ちキューからメッセージを取り出して停止することである。但し、先頭のタスクがメソッド呼び出しである場合には先頭のタスクから応答が戻ってくることである。
少なくともいずれかの負荷入力に対する制御フローが終了した場合(YES)、S151に進む。
いずれの負荷入力に対する制御フローも終了していない場合(NO)、S152に進む。
S151において、シミュレーション部110は、制御フローが終了した時刻を負荷入力の出力時刻として記録する。
また、シミュレーション部110は、制御フローの終了時が性能検証モデル200に測定点として指定されている場合、制御フローが終了した時刻をこの測定点の出力時刻として記録する。
S151の後、S152に進む。
S152において、シミュレーション部110は、シミュレーションを開始してからシミュレーション時間が経過したか否かを判定する。
シミュレーション時間が経過した場合(YES)、シミュレーション部110はシミュレーションを終了する。処理はS160に進む。
シミュレーション時間が経過していない場合(NO)、S102に戻る。
S160において、指標値算出部120は、シミュレーション部110によるシミュレーション(S101からS152)の結果に基づいて、検証対象システムの性能の指標値210を算出する。
例えば、指標値算出部120は、以下のような性能項目の値について指標値210を算出する。このとき、指標値算出部120は、シミュレーションで負荷入力毎およびタスク毎に得られた結果を統計処理することにより、各性能項目の値の中心値(平均値)±誤差を指標値210として算出する。また、指標値算出部120は、性能検証モデル200に指定された時間の単位を用いる。
・外部応答時間は、「負荷入力の出力時刻−負荷入力の入力時刻」の時間である。
・タスク間応答時間は、「測定点の出力時刻−測定点の入力時刻」の時間である。
・キュー長は、タスクへのメッセージ送信時のキュー長(タスクの待ちキューに溜まるメッセージの数)である。
・サービス時間は、タスクでのメッセージ処理時の処理時間の累積(タスクの処理時間を累積した時間)である。
・利用率は、タスクでのメッセージ処理時のハードウェアの利用数(単位時間当たりのハードウェアの割り当て回数)である。
・待ち時間は、「外部応答時間−サービス時間」である。
・スループットは、「制御フローが終了した負荷入力の数÷シミュレーション時間」である。
S160の後、S170に進む。
S170において、性能評価部130は、性能要求値作成部150によって生成された性能要求値220の情報を装置記憶部190から取得する。
性能評価部130は、取得した情報が示す性能要求値220とS160で算出された指標値210とを比較し、比較結果に基づいて性能要求を満たす性能項目と性能要求を満たさない性能項目とを判定する。例えば、S160に示した性能項目のうち待ち時間以外の性能項目は指標値210が性能要求値220より小さい場合に性能要求を満し、待ち時間は指標値210が性能要求値220より大きい場合に性能要求を満たす。
性能評価部130は、判定結果を示す性能評価結果230を生成し、生成した性能評価結果230を出力(ディスプレイへの表示など)する。
S170により、システム性能検証方法の処理は終了する。
図13は、実施の形態1におけるシステム性能検証装置100のハードウェア資源の一例を示す図である。
図13において、システム性能検証装置100(コンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905(通信装置)、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile
Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、システム性能検証プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1において、開放型の負荷入力、閉鎖型の負荷入力、イベント処理タスク、周期処理タスク、シグナル送受信、メソッド呼び出し、ハードウェアの割り当て等は、性能検証モデル200に任意の組み合わせで定義して構わない。
実施の形態1により、例えば、以下のような効果を奏することができる。
・検証対象システムの内部にイベント処理と周期処理とが混在する場合に、周期処理での遅延時間を正確に模擬することで、高い精度で性能を計算することができる。
・検証対象システムの内部にシグナル送受信とメソッド呼び出しとが混在する場合に、メソッド呼び出しでの制御フローが戻るまでの遅延時間を正確に模擬することで、高い精度で性能を計算することができる。
実施の形態1において、例えば、以下のようなシステム性能検証装置100について説明した。括弧内に実施の形態で使用した名称を記載する。
システム性能検証装置100は、性能検証モデル記憶部(装置記憶部190)と、シミュレーション部110と、性能値算出部(指標値算出部120)とを備える。
性能検証モデル記憶部は、検証対象システムを定義するデータとして、複数の処理タスクの処理タスク毎の処理時間と、複数の処理タスクに含まれる周期処理タスク毎の起動周期とを指定する性能検証モデル200を記憶する。検証対象システムは、処理要求を一つずつ処理する少なくとも一つのイベント処理タスクと処理要求を一つ以上まとめて処理する少なくとも一つの周期処理タスクとを所定の処理順序で組み合わせた複数の処理タスク(制御フロー)によって処理要求に対する処理を行うシステムである。
シミュレーション部110は、複数の処理タスクを模擬するための複数の模擬タスクを性能検証モデル200に基づいて動作させる。
性能値算出部は、シミュレーション部110による複数の模擬タスクの動作結果に基づいて検証対象システムの性能値(指標値210)を算出する。
システム性能検証装置100は、要求値記憶部(シミュレーション部110)と、性能評価部130とを備える。
要求値記憶部は、検証対象システムの性能の要求値(性能要求値220)を記憶する。
性能評価部は、性能値算出部によって算出された性能値と要求値記憶部に記憶される要求値とを比較し、比較結果(性能評価結果230)を出力する。
シミュレーション部110は、複数の模擬タスクのうち先頭の模擬タスクに対して複数の処理要求(負荷入力)を所定のタイミングで発生させ、発生させた処理要求毎に当該処理要求を発生させた発生時刻(入力時刻)を記録する。
シミュレーション部110は、複数の模擬タスクのうちイベント処理タスクを模擬するための各イベント模擬タスクを各イベント模擬タスクの処理時間の経過毎に起動する。シミュレーション部110は、発生させた処理要求のうち起動したイベント模擬タスクによる処理を待つ処理要求が一つ以上存在する場合に、当該処理要求に対する処理を当該起動したイベント模擬タスクに当該処理時間の経過毎に一つずつシミュレート(時刻の記録、メッセージの送信など)させる。
シミュレーション部110は、複数の模擬タスクのうち周期処理タスクを模擬するための各周期模擬タスクを当該周期模擬タスクの当該起動周期で起動する。シミュレーション部110は、発生させた処理要求のうち起動した周期模擬タスクによる処理を待つ処理要求が一つ以上存在する場合に、当該一つ以上の処理要求に対する処理を当該起動した周期模擬タスクに当該起動周期毎にまとめてシミュレートさせる。
シミュレーション部110は、発生させた処理要求毎に、複数の模擬タスクのうち最終の模擬タスクによる処理が終了した終了時刻(出力時刻)を記録する。
性能値算出部は、シミュレーション部110によって処理要求毎に記録された発生時刻と終了時刻とに基づいて、検証対象システムに処理要求が入力されてから、入力された処理要求に対する処理が終了するまでの外部応答時間を検証対象システムの性能値の一つとして算出する。
実施の形態2.
実施の形態1では、特に、複数の組込みリアルタイムシステムをネットワークシステムで接続した統合システムを検証対象にする場合を説明した。
本実施の形態では、統合システムを構成する組込みリアルタイムシステムとネットワークシステムとのそれぞれを単独で検証対象にする場合について説明する。
まず、組込みリアルタイムシステムを検証対象にする場合について説明する。
性能検証モデル200は、タスクとして、OSが提供するプロセスまたはスレッドを定義する。
性能検証モデル200は、ハードウェアとして、各種プロセッサ(CPU、DSP、マイコンなど)を定義する。
性能検証モデル200は、シグナル送受信として、プロセスまたはスレッド間の非同期通信を定義する。
性能検証モデル200は、メソッド呼び出しとして、プロセスまたはスレッド間の同期通信を定義する。
システム性能検証装置100は、このような性能検証モデル200を用いてシミュレーションを行い、組込みリアルタイムシステム単独での指標値210を算出し、指標値210と性能要求値220とを比較し、性能評価結果230を出力する。
組込みリアルタイムシステムは、専用のハードウェアを用いて構成されてリアルタイム処理を行うシステムである。
例えば、組込みリアルタイムシステムとして、携帯電話、通信モデム、自動車に搭載される制御装置、宇宙衛星に搭載される制御装置などが挙げられる。
但し、汎用のハードウェアを用いて構成されるシステムに対して実施の形態1を適用しても構わない。
次に、ネットワークシステムを検証対象にする場合について説明する。
性能検証モデル200は、タスクとして、論理的な通信チャネル(TCP/UDPのポート、時分割通信のスロットなど)を定義する。
性能検証モデル200は、ハードウェアとして、物理的な通信メディア(Ethernet(登録商標)、時分割通信路など)を定義する。
性能検証モデル200は、シグナル送受信として、ネットワークシステムに接続される端末間の非同期通信を定義する。
性能検証モデル200は、メソッド呼び出しとして、ネットワークシステムに接続される端末間の同期通信を定義する。
システム性能検証装置100は、このような性能検証モデル200を用いてシミュレーションを行い、ネットワークシステム単独での指標値210を計算し、指標値210と性能要求値220とを比較し、性能評価結果230を出力する。
本実施の形態により、組込みリアルタイムシステム、ネットワークシステムまたはその他の個別のシステムを検証対象にして、実施の形態1と同様の効果を得ることができる。
実施の形態3.
実施の形態1では、タスクの処理時間をシグナル送受信およびメソッド呼び出し毎に指定する方法を説明した。
本実施の形態では、タスクの処理時間をタスクの現在状態毎に指定する方法を説明する。以降の説明では、シグナル送受信とメソッド呼び出しとを区別せずにメッセージと呼ぶ。
例えば、タスクは、装置の電源が入ったときに「初期状態」になり、初期化処理が終了したときに「通常状態」になり、故障が検出されて通常処理を持続できなくなると「保守状態」になる。
図14は、実施の形態3におけるタスクの追加属性を示す表である。図14に示すように、タスクは、属性として状態毎に処理時間を有する。つまり、性能検証モデル200は、タスクの状態毎に処理時間を指定する。
実施の形態1で説明したシステム性能検証方法(図9から図12参照)において、タスクの処理時間を使用する処理では、タスクの現在状態を判定し、判定した現在状態に対応する処理時間を使用する。例えば、起動タスクは、タスクの現在状態に対応する処理時間を用いてサービス時間および次回の起動時刻を更新する(S131、S132参照)。
イベント処理タスクは、メッセージの種別に応じて新たな状態に遷移するか、または現在の状態に留まり、次のメッセージ処理におけるタスクの現在状態を決定する。イベント処理タスクは、タスクが起動されるたびにこのように動作する。
周期処理タスクは、タスクが起動されたときに待ちキューに格納されているすべてのメッセージについてイベント処理タスクと同様の動作を繰り返し、すべてのメッセージの処理が終了したら次の起動周期が来るまで停止する。
本実施の形態により、実施の形態1の効果に加えて、以下に示す効果を得ることができる。
・検証対象システム内部の各要素に状態遷移がある場合に、状態ごとに異なる処理時間を正確に模擬することで、高い精度で性能を計算することができる。
実施の形態4.
実施の形態1および実施の形態3では、タスクの処理時間を絶対値で指定する方法を説明した。
本実施の形態では、タスクの処理時間をタスクの処理数(例えば、実行する命令数)とハードウェアの処理レート(処理速度)とを組み合わせて指定する方法を説明する。但し、実施の形態3と同様に、タスクの状態毎に処理時間または処理数を指定してもよい。
図15は、実施の形態4におけるタスクの追加属性およびハードウェアの追加属性を示す表である。図15に示すように、タスクは属性として処理数を有す、ハードウェアは属性として処理レートを有する。つまり、性能検証モデル200は、タスクの処理数およびハードウェアの処理レートを指定する。
実施の形態1で説明したシステム性能検証方法(図9から図12参照)において、タスクの処理時間を使用する処理では、タスクの処理数と、タスクを割り当てているハードウェアの処理レートとを用いて処理時間(=処理数÷処理レート)を算出する。
例えば、組込みリアルタイムシステムでは、処理数として命令演算数や浮動小数点演算数などを指定し、処理レートとしてMIPS(Million Instructions Per Second)やMFLOPS(Mega tera Floating point number Operations Per Second)などを指定する。
この場合、処理時間の計算式は「処理時間=命令演算数÷MIPS」または「処理時間=浮動小数点演算数÷MFLOPS」である。
例えば、ネットワークシステムでは、処理回数としてパケットサイズ(バイト数、ワード数など)を指定し、処理レートとして通信帯域(Mbps、ワード/秒など)を指定する。
この場合、処理時間の計算式は「処理時間=バイト数÷Mbps」または「処理時間=ワード数÷ワード/秒」である。
本実施の形態により、実施の形態1の効果に加えて、以下に示す効果を得ることができる。
・タスクの処理量を変えずにハードウェアの処理能力を増加または減少させ、性能要求値の達成/未達成を確認することで、ハードウェアの処理能力に対する要求を求めることができる。
・ハードウェアの処理能力を変えずにタスクの処理量を増加または減少させ、性能要求値の達成/未達成を確認することで、タスクの処理量への要求を求めることができる。
実施の形態5.
実施の形態1では、外部応答時間からサービス時間を引いて待ち時間を計算する方法を説明した。
本実施の形態では、待ち時間を細分化して計算する方法を説明する。
図16は、実施の形態5における検証対象システムの待ち時間についての指標値を示す表である。図16に示すように、検証対象システムの待ち時間はキューイング時間(開始待ち時間の一例)、ハードウェア待ち時間(処理待ち時間の一例)、ロック待ち時間(処理待ち時間の一例)、および周期満了時間(開始待ち時間の一例)に分けることができる。
キューイング時間は、メッセージが待ちキューに設定されてから待ちキューから取り出されるまでの待ち時間である。
ハードウェア待ち時間は、ハードウェアが割り当てられるまでの待ち時間である。
ロック待ち時間は、ロックを設定するとき(図11のS124でロックの指定有り(YES)の場合)の待ち時間である。つまり、ロック待ち時間は、設定したいロックが他のタスクに占有(設定)されている場合にそのロックが解放されて空くまでの待ち時間である。
周期満了時間は、メッセージが待ちキューに設定されてから起動周期の次の開始時までの待ち時間である。
「待ち時間=キューイング時間+ハードウェア待ち時間+ロック待ち時間+周期満了時間」という関係式が成り立つ。
実施の形態1で説明したシステム性能検証方法(図9から図12参照)において、シミュレーション部110(または起動タスク)はメッセージを送信した時刻をエンキュー時刻として記録する。
イベント処理タスクは、待ちキューからメッセージを取り出した時刻をデキュー時刻として記録し、エンキュー時刻からデキュー時刻までの時間をキューイング待ち時間に累積する。
周期処理タスクは、待ちキューからメッセージを取り出した時刻をデキュー時刻として記録し、エンキュー時刻からデキュー時刻までの時間を周期満了時間に累積する。
タスク(イベント処理タスクまたは周期処理タスク)は、優先度およびプリエンプト可否に基づいてハードウェアを割り当てられるまで待った時間をハードウェア待ち時間に累積する。
タスクは、他のタスクに占有されているロックを設定する場合、そのロックが解放されて空くまでの待ち時間をロック待ち時間に累積する。
指標値算出部120は、統計処理によってキューイング時間、ハードウェア待ち時間、ロック待ち時間および周期満了時間それぞれの指標値(中心値±誤差)を算出する。
本実施の形態により、実施の形態1の効果に加えて、以下に示す効果を得ることができる。
・待ち時間に占めるキューイング時間、ハードウェア待ち時間、ロック待ち時間または周期満了時間の割合を確認することで、タスクの処理滞留の原因を明確にする。
実施の形態6.
実施の形態1では、統計処理により性能項目の値の中心値±誤差を指標値210として算出する方法を説明した。
本実施の形態では、中心値の代わりに平均値、最小値および最大値を使用して指標値210を算出し、指標値210ごとに達成/未達成を判定する方法を説明する。また、性能評価結果230として指標値ごとにデッドラインの完了の可否を出力する方法を説明する。
指標値算出部120は、シミュレーションで記録した値の集合を用いて、性能項目ごとに平均値、最小値および最大値を算出する。また、指標値算出部120は、統計学での信頼区間の計算方法を用いて、それぞれの誤差を算出する。そして、指標値算出部120は、平均値、最小値または最大値と誤差とを用いて指標値210を算出する。
性能評価部130は、以下の基準に従って指標値210ごとに達成/未達成を判定する。以下に示す基準において、「平均値+誤差」または「平均値−誤差」は指標値210に相当する値である。
・外部応答時間の達成基準は「平均値+誤差≦要求値」である。
・タスク間応答時間の達成基準は「平均値+誤差≦要求値」である。
・キュー長の達成基準は「平均値+誤差≦要求値」である。
・サービス時間の達成基準は「平均値+誤差≦要求値」である。
・利用率の達成基準は「平均値+誤差≦要求値」である。
・待ち時間の達成基準は「平均値+誤差≦要求値」である。
・スループットの達成基準は「要求値≦平均値−誤差」である。
性能要求値220の情報は、外部応答時間またはタスク間応答時間の要求値として、開始デッドラインおよび終了デッドラインを指定する。
性能評価部130は、以下の基準に従ってデッドラインの完了の可否を判定する。以下に示す基準において、「最小値−誤差」および「最大値+誤差」は指標値210に相当する値である。
・外部応答時間のデッドライン完了可否基準は「開始デッドライン≦最小値−誤差」且つ「最大値+誤差≦終了デッドライン」である。
・タスク間応答時間のデッドライン完了可否基準は「開始デッドライン≦最小値−誤差」且つ「最大値+誤差≦終了デッドライン」である。
本実施の形態により、実施の形態1と同様の効果を得ることができる。
100 システム性能検証装置、110 シミュレーション部、120 指標値算出部、130 性能評価部、140 性能検証モデル作成部、150 性能要求値作成部、190 装置記憶部、200 性能検証モデル、210 指標値、220 性能要求値、230 性能評価結果、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、911 ディスプレイ、912 キーボード、913 マウス、914 ドライブ、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (18)

  1. 処理要求が入力される検証対象システムであって前記検証対象システムに入力された処理要求を一つずつ処理する少なくとも一つのイベント処理タスクと前記検証対象システムに入力された処理要求を一つ以上まとめて処理する少なくとも一つの周期処理タスクとを所定の処理順序で組み合わせた複数の処理タスクによって前記処理要求に対する処理を行う検証対象システムを定義するデータとして、前記複数の処理タスクの処理タスク毎の処理時間と、前記複数の処理タスクに含まれる周期処理タスク毎の起動周期とを指定する性能検証モデルを記憶する性能検証モデル記憶部と、
    前記複数の処理タスクを模擬するための複数の模擬タスクを前記性能検証モデルに基づいて動作させるシミュレーション部と、
    前記シミュレーション部による前記複数の模擬タスクの動作結果に基づいて前記検証対象システムの性能値を算出する性能値算出部と
    を備えることを特徴とするシステム性能検証装置。
  2. 前記システム性能検証装置は、さらに、
    前記検証対象システムの性能の要求値を記憶する要求値記憶部と、
    前記性能値算出部によって算出された性能値と前記要求値記憶部に記憶される要求値とを比較し、比較結果を出力する性能評価部とを備える
    ことを特徴とする請求項1記載のシステム性能検証装置。
  3. 前記シミュレーション部は、
    前記複数の模擬タスクのうち先頭の模擬タスクに対して複数の処理要求を所定のタイミングで発生させ、発生させた処理要求毎に当該処理要求を発生させた発生時刻を記録し、
    前記複数の模擬タスクのうちイベント処理タスクを模擬するための各イベント模擬タスクを各イベント模擬タスクの処理時間の経過毎に起動し、発生させた処理要求のうち起動したイベント模擬タスクによる処理を待つ処理要求が一つ以上存在する場合に当該処理要求に対する処理を当該起動したイベント模擬タスクに当該処理時間の経過毎に一つずつシミュレートさせ、
    前記複数の模擬タスクのうち周期処理タスクを模擬するための各周期模擬タスクを当該周期模擬タスクの当該起動周期で起動し、発生させた処理要求のうち起動した周期模擬タスクによる処理を待つ処理要求が一つ以上存在する場合に当該一つ以上の処理要求に対する処理を当該起動した周期模擬タスクに当該起動周期毎にまとめてシミュレートさせ、
    発生させた処理要求毎に、前記複数の模擬タスクのうち最終の模擬タスクによる処理が終了した終了時刻を記録し、
    前記性能値算出部は、
    前記シミュレーション部によって処理要求毎に記録された発生時刻と終了時刻とに基づいて、前記検証対象システムに処理要求が入力されてから、入力された処理要求に対する処理が終了するまでの外部応答時間を前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項1または請求項2記載のシステム性能検証装置。
  4. 前記性能値算出部は、前記外部応答時間から前記複数の処理タスクの合計の処理時間を差し引いて得られる待ち時間を前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項3記載のシステム性能検証装置。
  5. 前記性能値算出部は、前記待ち時間を前記複数の処理タスクの各処理タスクによる処理の開始待ち時間と各処理タスクの処理に伴うハードウェアによる処理待ち時間とを含む複数の時間に分けて算出する
    ことを特徴とする請求項4記載のシステム性能検証装置。
  6. 前記性能検証モデルは、前記複数の処理タスクのうち一つの処理タスクを入力側の処理タスクとして指定する共に、前記入力側の処理タスク以外の処理タスクであって前記入力側の処理タスクより後ろの処理タスクを出力側の処理タスクとして指定し、
    前記シミュレーション部は、前記複数の模擬タスクのうち前記入力側の処理タスクを模擬するための入力側の模擬タスクに、処理要求毎に処理待ちの開始の時刻を入力時刻として記録させ、前記複数の模擬タスクのうち前記出力側の処理タスクを模擬するための出力側の模擬タスクに、処理要求毎に処理のシミュレートが終了した時刻を出力時刻として記録させ、
    前記性能値算出部は、前記入力側の模擬タスクによって記録された各入力時刻と前記出力側の模擬タスクによって記録された各出力時刻とに基づいて、前記検証対象システムの前記入力側の処理タスクから前記出力側の処理タスクまでの処理に要するタスク間応答時間を前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項1から請求項5いずれかに記載のシステム性能検証装置。
  7. 前記複数の模擬タスクの各模擬タスクは、処理待ちの処理要求を設定するための待ちキューを備え、
    前記シミュレーション部は、前記複数の模擬タスクの各模擬タスクに、次の模擬タスクの待ちキューに処理要求を設定したときに当該待ちキューに設定されている処理要求の個数をキュー長として記録させ、
    前記性能値算出部は、前記複数の模擬タスクの各模擬タスクによって記録された各キュー長に基づいて、前記検証対象システムの前記複数の処理タスクそれぞれのキュー長を前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項1から請求項6いずれかに記載のシステム性能検証装置。
  8. 前記性能値算出部は、
    前記シミュレーション部が前記複数の模擬タスクを動作させたシミュレーション時間と前記シミュレーション時間に処理された処理要求の個数とに基づいて、前記検証対象システムによる処理要求のスループットを前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項1から請求項7いずれかに記載のシステム性能検証装置。
  9. 前記性能検証モデルは、前記複数の処理タスクの処理タスク毎に当該処理タスクが利用するハードウェアを指定し、
    前記シミュレーション部は、前記複数の模擬タスクの各模擬タスクに、処理要求の処理をシミュレートするときに前記性能検証モデルが指定する当該ハードウェアの利用を記録させ、
    前記性能値算出部は、前記複数の模擬タスクの各模擬タスクによる当該ハードウェアの利用の記録に基づいて、前記検証対象システムで使用される各ハードウェアの利用率を前記検証対象システムの性能値の一つとして算出する
    ことを特徴とする請求項1から請求項8いずれかに記載のシステム性能検証装置。
  10. 前記検証対象システムは、新たな処理要求の処理の開始が前回の処理要求の処理の終了まで待たされない開放型の処理要求と、新たな処理要求の処理の開始が前回の処理要求の処理の終了まで待たされる閉鎖型の処理要求とが、前記処理要求として入力され、
    前記性能検証モデルは、前記開放型の処理要求が前記検証対象システムに入力される入力周期を指定し、
    前記シミュレーション部は、新たな開放型の処理要求を前記性能検証モデルに指定される前記入力周期で発生させ、新たな閉鎖型の処理要求を前回の閉鎖型の処理要求の処理の終了毎に発生させる
    ことを特徴とする請求項1から請求項9いずれかに記載のシステム性能検証装置。
  11. 前記性能検証モデルは、前記複数の処理タスクの処理タスク毎に、新たな処理要求の処理の開始を前回の処理要求の処理の終了まで待たないシグナル呼び出しと、新たな処理要求の処理の開始を前回の処理要求の処理の終了まで待つメソッド呼び出しとのいずれかの呼び出し方法を指定し、
    前記シミュレーション部は、前記性能検証モデルに基づいて前記複数の模擬タスクの模擬タスク毎に前記性能検証モデルに基づいて前記シグナル呼び出しまたは前記メソッド呼び出しとのいずれかの呼び出し方法で動作させる
    ことを特徴とする請求項1から請求項10いずれかに記載のシステム性能検証装置。
  12. 前記シミュレーション部は、OS(Operating System)が提供するプロセス又はスレッドを前記処理タスクとして模擬するためのタスクを前記模擬タスクとして動作させる
    ことを特徴とする請求項1から請求項11いずれかに記載のシステム性能検証装置。
  13. 前記シミュレーション部は、通信チャネルを前記処理タスクとして模擬するためのタスクを前記模擬タスクとして動作させる
    ことを特徴とする請求項1から請求項11いずれかに記載のシステム性能検証装置。
  14. 前記性能検証モデルは、前記複数の処理タスクの処理タスク毎の処理時間として当該処理タスクの状態別に処理時間を指定し、
    前記シミュレーション部は、前記複数の模擬タスクの模擬タスク毎に当該模擬タスクの状態に対応する処理時間で各処理要求に対する処理をシミュレートさせる
    ことを特徴とする請求項1から請求項13いずれかに記載のシステム性能検証装置。
  15. 前記性能検証モデルは、前記複数の処理タスクの処理タスク毎の処理時間を指定する情報として当該処理時間を算出するための処理数と処理速度とを含み、
    前記シミュレーション部は、前記複数の模擬タスクの模擬タスク毎に当該処理数と当該処理速度とに基づく処理時間で各処理要求に対する処理をシミュレートさせる
    ことを特徴とする請求項1から請求項14いずれかに記載のシステム性能検証装置。
  16. 前記性能値算出部は、前記検証対象システムの性能の種類毎に平均値と最小値と最大値との少なくともいずれかについて性能値を算出する
    ことを特徴とする請求項1から請求項15いずれかに記載のシステム性能検証装置。
  17. 性能検証モデル記憶部とシミュレーション部と性能値算出部とを備えるシステム性能検証装置を用いるシステム性能検証方法であって、
    前記性能検証モデル記憶部は、処理要求が入力される検証対象システムであって前記検証対象システムに入力された処理要求を一つずつ処理する少なくとも一つのイベント処理タスクと、前記検証対象システムに入力された処理要求を一つ以上まとめて処理する少なくとも一つの周期処理タスクと、を所定の処理順序で組み合わせた複数の処理タスクによって前記処理要求に対する処理を行う検証対象システムを定義するデータとして、前記複数の処理タスクの処理タスク毎の処理時間と、前記複数の処理タスクに含まれる周期処理タスク毎の起動周期と、を指定する性能検証モデルを記憶する記憶であり、
    前記シミュレーション部が、前記複数の処理タスクを模擬するための複数の模擬タスクを前記性能検証モデルに基づいて動作させ、
    前記性能値算出部が、前記シミュレーション部による前記複数の模擬タスクの動作結果に基づいて前記検証対象システムの性能値を算出する
    ことを特徴とするシステム性能検証方法。
  18. 請求項17記載のシステム性能検証方法をコンピュータに実行させるためのシステム性能検証プログラム。
JP2012071240A 2012-03-27 2012-03-27 システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム Active JP5777550B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012071240A JP5777550B2 (ja) 2012-03-27 2012-03-27 システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012071240A JP5777550B2 (ja) 2012-03-27 2012-03-27 システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム

Publications (2)

Publication Number Publication Date
JP2013205892A true JP2013205892A (ja) 2013-10-07
JP5777550B2 JP5777550B2 (ja) 2015-09-09

Family

ID=49524963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012071240A Active JP5777550B2 (ja) 2012-03-27 2012-03-27 システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム

Country Status (1)

Country Link
JP (1) JP5777550B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561245A (zh) * 2020-11-27 2021-03-26 中广核工程有限公司 协同管理方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205541A (ja) * 2008-02-28 2009-09-10 Mitsubishi Electric Corp 性能評価装置、性能評価プログラム及び性能評価方法
JP2014102530A (ja) * 2011-03-02 2014-06-05 Hyogo Prefecture 情報伝達システム設計支援方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205541A (ja) * 2008-02-28 2009-09-10 Mitsubishi Electric Corp 性能評価装置、性能評価プログラム及び性能評価方法
JP2014102530A (ja) * 2011-03-02 2014-06-05 Hyogo Prefecture 情報伝達システム設計支援方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015022511; 佐野泰正 外3名: 'リアルタイムアプリケーション向けタスク処理定義可能なスケジューリングシミュレータ' 組込みシステムシンポジウム 2011 , 20111021, pp.20-1〜20-9, 情報処理学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561245A (zh) * 2020-11-27 2021-03-26 中广核工程有限公司 协同管理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
JP5777550B2 (ja) 2015-09-09

Similar Documents

Publication Publication Date Title
US9052954B2 (en) Predicting resource requirements for a computer application
US10015278B2 (en) Adaptive scheduling and orchestration in a networked environment
CN111950988B (zh) 分布式工作流调度方法、装置、存储介质及电子设备
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US9973512B2 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
Berten et al. On the distribution of sequential jobs in random brokering for heterogeneous computational grids
JP2015133112A (ja) ジョブスケジューリング方法、データアナライザ、データ解析装置、コンピュータシステム及びコンピュータ可読媒体
CN108733464B (zh) 一种确定计算任务的调度方案的方法及装置
EP2615546A1 (en) Method and system, scheduler for parallel simulating processors
Duong et al. A framework for dynamic resource provisioning and adaptation in iaas clouds
JP5777550B2 (ja) システム性能検証装置、システム性能検証方法およびシステム性能検証プログラム
CN108415765B (zh) 任务调度方法、装置及智能终端
Neves et al. Scheduling mapreduce jobs in HPC clusters
Peguero et al. Assessing jitter in sensor time series from android mobile devices
US9027035B2 (en) Non real-time metrology data management
JP2020154391A (ja) 情報処理システムおよびプログラム
JP2020024636A (ja) スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム
JP2015108877A (ja) 予測時間分布生成装置、制御方法、及びプログラム
US8881155B2 (en) Apportioning summarized metrics based on unsummarized metrics in a computing system
Ivers et al. Probabilistic network loads with dependencies and the effect on queue sojourn times
WO2013129061A1 (ja) 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム
Chauhan et al. Simulation and performance evaluation of the hadoop capacity scheduler.
CN117076138B (zh) 面向体系仿真的资源跨平台集成和调度方法及装置
KR20140030660A (ko) 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체
JP5284406B2 (ja) リソース利用率測定装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150527

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150707

R150 Certificate of patent or registration of utility model

Ref document number: 5777550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250