20081120 goto et2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻...

24
名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2後藤 隼弐

Upload: others

Post on 13-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐

Page 2: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

2 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

▶ 背景

▶ TLVの紹介

▶ TLVデモンストレーション

▶ おわりに

Page 3: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

3 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

 組込み分野でのマルチコアプロセッサ利用の増加

Page 4: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

4 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

Page 5: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

5 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

[453665]:[1]: task 4 becomes RUNNABLE. [453670]:[1]: dispatch to task5. [454235]:[2]: leave from inh 1056. [456997]:[3]: task 6 becomes RUNNABLE. [457665]:[3]: dispatch to task6. [457886]:[2]: task 4 becomes SUSPENDED. [459345]:[4]: task 5 becomes RUNNABLE. [459665]:[4]: dispatch to task5. [460457]:[1]: task 5 becomes WAITTING. [461007]:[1]: task 4 becomes RUNNABLE. [463665]:[1]: dispatch to task4. [469005]:[3]: task 6 becomes SUSPENDED. ・

・・

・・・

4コア上で動くTOPPERS/FMPのトレースログの例

 トレースログを可視化表示するツールの開発へ

Page 6: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

6 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

シミュレータ RTOS-A

RTOS-A

RTOS-D

RTOSが出力する トレースログ

シミュレータが出力する トレースログ

RTOSが出力する トレースログ

様々なRTOSが出力する トレースログ

周期ハンドラのジッタ

TLV 様々な形式の

トレースログに対応

RTOS-C RTOS-B 割込み発生箇所

タスクの状態変化

CPU使用率の変化

様々な情報表示 に対応

Page 7: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

7 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

マーカー マーカー間の時間表示

タスクの状態遷移を表示している

拡大縮小などの操作

表示タスクの切替え

タスクの情報 テキストログ

Page 8: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

8 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

実行状態 実行可能 状態

待ち状態 起動 終了

RTOS生成過程

TLV

トレースログ ファイル

リソース ファイル

表示

RTOS コンフィギュレーション

ファイル

RTOS初期化構成 ファイル

ソフトウェア部品

RTOSライブラリ コンフィギュレーション

コンパイル & リンク

RTOS実行

アプリケーション ソースファイル

RTOS実行形式 ファイル

Page 9: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール
Page 10: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

10 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

Page 11: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

11 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

ココ

Page 12: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール
Page 13: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

13 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

▶ TLVが想定する可視化対象

▶ TLV全体像

▶ JSON形式

▶ 各ファイルの説明

Page 14: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

14 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

名前

属性1 属性2 …

リソースの例

TASK1

state …

タスクの例

DORMANT RUNNABLE RUNNING WAITING RUNNABLE

10ns 120ns 315ns 455ns 520ns t

RUNNING

605ns

DORMANT

725ns

振舞い1 振舞い2 …

activate()

exit() …

Page 15: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

15 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

図凡例

ファイル

処理

データ

入力ファイル 入力ファイルが 依存するファイル

入力ファイルが 依存しないファイル

TLVにより 生成されるファイル

TLV

トレースログ ファイル

リソース ファイル

可視化ルール ファイル

表示

TLVデータ

可視化ルールの適用

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

Page 16: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

16 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

Page 17: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

17 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

Page 18: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

18 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

[1551] dispatch to task 1. [2409] task 1 becomes WAITING. [2414] dispatch to task 5. [12005] task 1 becomes RUNNABLE. [13013] dispatch to task 1. [13024] task 1 becomes WAITING. [13028] dispatch to task 5. [23005] task 1 becomes RUNNABLE. [24013] dispatch to task 1. [24024] task 1 becomes WAITING. [24028] dispatch to task 5. [34005] task 1 becomes RUNNABLE. [35013] dispatch to task 1. [35024] task 1 becomes WAITING. [35028] dispatch to task 5. [45005] task 1 becomes RUNNABLE.

Page 19: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

19 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

[1551] dispatch to task 1. [2409] task 1 becomes WAITING. [2414] dispatch to task 5. [12005] task 1 becomes RUNNABLE. [13013] dispatch to task 1. [13024] task 1 becomes WAITING. [13028] dispatch to task 5. [23005] task 1 becomes RUNNABLE. [24013] dispatch to task 1. [24024] task 1 becomes WAITING. [24028] dispatch to task 5. [34005] task 1 becomes RUNNABLE. [35013] dispatch to task 1. [35024] task 1 becomes WAITING. [35028] dispatch to task 5. [45005] task 1 becomes RUNNABLE.

{ "TimeScale" :"ns", "ConvertRule" :"asp", "ResourceHeader":"asp", "Resources": { "Task":[ { "name" :"LOGTASK", "id" :1, "atr" :"TA_ACT", "pri" :3, "exinf":"LOGTASK_PORTID", "task" :"logtask_main", "stksz":4096, "stk" :"NULL" }, ...

Page 20: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

20 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

リソースヘッダ ファイル

変換ルール ファイル

Page 21: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

21 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

リソースヘッダ ファイル

変換ルール ファイル

{ "asp": { "Task":{ "DisplayName":"タスク", "Attributes":{ "name":{ "VariableType" :"string", "DisplayName" :"名前", "AllocationType":"Static", "CanGrouping" :false }, "id":{ "VariableType" :"int", "DisplayName" :"ID", "AllocationType":"Static", "CanGrouping" :false }, ...

Page 22: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

22 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

リソースヘッダ ファイル

変換ルール ファイル

{ "asp": { "Task":{ "DisplayName":"タスク", "Attributes":{ "name":{ "VariableType" :"string", "DisplayName" :"名前", "AllocationType":"Static", "CanGrouping" :false }, "id":{ "VariableType" :"int", "DisplayName" :"ID", "AllocationType":"Static", "CanGrouping" :false }, ...

{ "asp":{ "\[(?<time>\d+)\] dispatch to task (?<id>\d+)\.":[ {"EXIST{Task(state==RUNNING)}":[ "[${time}]Task(id==ATTR{Task(state==RUNNING).id}).preempt()", "[${time}]Task(id==ATTR{Task(state==RUNNING).id}).state=RUNNABLE" ]}, "[${time}]Task(id==${id}).dispatch()", "[${time}]Task(id==${id}).state=RUNNING" ], "\[(?<time>\d+)\] task (?<id>\d+) becomes (?<state>[^\.]+)\.":[ { "Task(id==${id}).state==DORMANT && ${state}==RUNNABLE" : "[${time}]Task(id==${id}).activate()", ...

検索する正規表現

置換する文字列 置換する文字列

置換条件

置換する文字列

文字列を抽出して利用できる

Page 23: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

23 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

可視化ルール ファイル

Page 24: 20081120 goto ET2008-print名古屋大学大学院 情報科学研究科 情報システム学専攻 高田・冨山研究室 博士課程前期課程2年 後藤 隼弐 トレースログ可視化ツール

24 トレースログ可視化ツール TraceLogVisualizer(TLV)のご紹介

トレースログ ファイル

リソース ファイル

TLV

可視化ルール ファイル

表示

TLVデータ

TLVデータ生成

TLVファイル

標準形式変換 リソースヘッダ ファイル

変換ルール ファイル

可視化ルール ファイル

{ "VisualizeRules":{ "Task.state":{ "RUNNING" :"runningShapes", "RUNNABLE":"runnableShapes", "WAITING" :"waitingShapes", "DORMANT" :"dormantShapes", ... }, "Task.activate()":"activateShapes", "Task.exit()" :"exitShapes" }, "Shapes":{ "runningShapes":[{ "Type":"Rectangle", "Area":["0,0","100%,80%"], "Pen" :{"Color":"0000ff00","Width":3.0}, "Fill":"6600ff00" }], "runnableShapes":[{ "Type":"Line", "Coordinates":["f(0),40%","t(0),40%"], "Pen":{"Color":"00ffff00","Width":3} }], ...

属性に対して指定

振舞いに対して指定

表示する図形の記述