• 検索結果がありません。

背景 並行システム : 協調する複数の処理 ( プロセス ) から構成されるシステム 並行システムの例 ( 昇降舵のフライバイワイヤ ) 操縦桿 x2 角度 x3x2 ジャイロ x3 重量計 x4 フラップ LVDT IRU WOW FSACE PB 優先ボタン x2 MON モニタ COM コマン

N/A
N/A
Protected

Academic year: 2021

シェア "背景 並行システム : 協調する複数の処理 ( プロセス ) から構成されるシステム 並行システムの例 ( 昇降舵のフライバイワイヤ ) 操縦桿 x2 角度 x3x2 ジャイロ x3 重量計 x4 フラップ LVDT IRU WOW FSACE PB 優先ボタン x2 MON モニタ COM コマン"

Copied!
24
0
0

読み込み中.... (全文を見る)

全文

(1)

並行システム解析支援ツール

~協調動作の可視化~

10回クリティカルソフトウェアワークショップ 10

th

WOCS

2

2012年9月28日

この資料の一部またはすべての内容について、作成者の許可なき使用・複製・配布を固くお断りします

○磯部祥尚

*

1

, 大岩寛

*

1

, 高橋孝一

*

1

, 田中純

*

2

産業技術総合研究所

*

1

セキュアシステム研究部門

,

*

2

イノベーション推進本部

(2)

背景

 並行システム:

協調する複数の処理(プロセス)

から構成されるシステム

並行システムの例(昇降舵のフライバイワイヤ)

角度

x3x2

ジャイロ

x3

重量計

x4

フラップ

操縦桿

x2 IRU WOW FSACE

MON

モニタ

COM

コマンド LVDT ACE, PCU PB

優先ボタン

x2

フライト制御

x4

アクチュ

エータ

x4 協調

センサ

プロセッサ アクチュエータ

(エンブラエル社 レガシー)

なぜ並行システム?

 センサに対する応答性

 故障時に対する冗長性

 制御情報の通信(共有)

 背景

:ネットワークやマルチコアの普及によって、並行処理が身近になっている

 課題

:全体で正しく並行処理するように、個々のプロセスを設計するのは難しい

(3)

目標

 目標

:設計モデルの協調動作を理論的に解析するツール

CONPASU

の開発

手戻りコスト

削減

 効果

:信頼性の向上、手戻りコストの削減

CONPASU-tool

REM SQ SUM

並行システムのモデル

解析

設計

要求

分析

実装

結合

テスト

受入

テスト

単体

テスト

フィードバック

解析結果

設計レビュー支援

(4)

発表概要

 はじめに(済)

 背景

 目標

CONPASUツールの特徴

 並行システムの解析例

 協調動作の可視化

 モデル検査との違い

CONPASUの適用

 既存ツールとの連携

CSPモデルベース設計工程

CONPASUの機能

 記号処理

 状態数削減

 おわりに

 まとめ、今後の課題

pp.5-11

pp.12-15

pp.16-20

(5)

CONPASUツールの特徴

 並行システムの解析例

 協調動作の可視化

(6)

UI

並行システムの解析例

 並行システム全体の動作を把握するのは難しいので…

input

ok

ng

quit0

succ

start

net

term

quit1

ack

upload

cancel

complete

output

Sender

Receiver

構造

UI

Receiver

Sender

通信

通信

振舞い

(7)

UI

並行システムの解析例

 並行システム全体の動作の可視化するツール

CONPASU

[1]

を開発中

input

ok

ng

quit0

succ

start

net

term

quit1

ack

upload

cancel

complete

output

Sender

Receiver

構造

UI

Receiver

Sender

通信

通信

振舞い

並行システム

全体の振舞い

τ[#ds0>0] /ds0:=tail(ds0), ds1:=ds1^<head(ds0)> @(0(11))

デッドロック

入力:

 並行システムの構造

 各プロセスの振舞い

出力:

 全体の振舞い

処理:

 並行合成

 状態数削減

CONPASU-tool

CONPASU(産総研知財管理番号:H24PRO-1409)

(8)

協調動作の可視化

 既存のツール(例:

PAT

[10]

, LTSA

[11]

)でも状態遷移図を表示できる

入力値は具体化されるため

状態数が多くなる

REM SQ SUM

状態数

: 42

遷移数

: 67

LTSA

パイプライン並列計算の例

状態数

: 105

遷移数

: 160

PAT

入力値

:{0,1}

入力回数

:3

状態数

: 8

遷移数

: 12

CONPASU

入力値

:無制限

入力回数

:任意

in.0

in.1

in?x1

(9)

状態数

: 3

遷移数

: 3

状態遷移図の抽象化

CONPASUでは興味のあるイベントに着目した状態数の削減が可能

状態数

: 8

遷移数

: 12

CONPASU

CONPASU-tool

途中結果の

表示を隠蔽

REM SQ SUM

in?

x1

[

n>0

]

/

y:=y+(x1

*

x1)%10,n:=n-1

@ ((11)1)

(計算式が見える!)

(10)

状態数

: 3

遷移数

: 3

計算過程の可視化

CONPASUでは任意の入力値に対する計算過程(計算式)を確認できる

in.0

in.1

in.1

prts.2

入力値

:{0,1}

入力回数

:3

状態数

: 105

遷移数

: 160

入力値

:無制限

入力回数

:任意

CONAPSU

PAT

in?x1

比較

(11)

モデル検査との違い

CONPASUでは検証用の性質(時相論理式など)を

記述

する必要がない

Snd

in

Ack

c2

ack

Rcv

out

c1

□(

in→◇ack)

性質(時相論理)

並行システムの設計モデル

逐次動作

“in” の後にいつか “ack” が起きる?

in” と“ack” の関係は?

in

ack

in

ack

in

ack

c1

c2

out

c2

ack

c1

in

この性質を記述

inとackを選択

 性質(逐次動作)はCONPASUが

抽出する

 両ツールを

併用すると効果的

(12)

CONPASUの適用

 既存ツールとの連携

(13)

変換器

UML→CSPM

既存のモデル/ツールとの連携

CONPASUは形式手法

CSP

*

1[2,3]

に基づく解析ツール

CONPASUの入力言語には形式言語

CSP

M

*

2

を採用

(例:モデル検査器

FDRと連携して、UMLモデルを解析可能)

Snd = in -> c1 -> Snd Rcs = c1 -> out -> c2 -> Rcv Ack = … Sys = ((Snd|||Ack) [|…|]Rcv)\{…} (サリー大学[7] モデル検査器[8] (オクスフォード大学) モデル検査器[9] デュッセルドルフ大学、 サウサンプトン大学 モデル解析器[1](産総研) *1 CSP : 並行システムを記述し、解析するための理論(プロセス代数) *2 CSP M: CSPの代表的なモデル検査器FDRの入力言語(関連研究が多い)

変換器

SimuLink→CSPM ペルナンブコ連邦大学、 エンブラエル社[6]

CONPASU

ProB

FDR

MATLAB/Simulink

UML State M.

UML Activity

CSP

M

言語

意味論

状態遷移図

(14)

形式手法

CSP

in

out

CNTL

back

x

y

z

in?x

back?z

out!y

y:=

f(x,y,z)

UI

𝑓 𝑥, 𝑦, 𝑧

= 𝑥 + 𝑦 − 𝑧 ∗ 𝐶

協調部(構造)

協調部(振舞い)

データ部(関数)

CSPモデルはメッセージパッシング通信を採用

⇒ 協調部(並行処理)とデータ部を分割して設計しやすい

 比較:共有メモリではプロセス間の結合強度が高い(分割しにくい)

x

z

y

y:=g(x,z)

共有メモリ

z:=h(x,y)

x:=f(y,z)

設計手順・役割分担の明確化

プロセス

チャネル

(15)

データ部

概念モデル

解析済の

CSPモデル

シミュレーション

CSPモデルベースの設計工程

CSPでは協調部(並行処理)とデータ部を分割して設計・解析しやすい

データ部

(関数定義等)

網羅的解析

構造図(コンポーネント図)

協調部

振舞い図(ステートマシン図)

int fact(n){ ... }

協調部

設計工程

解析工程

間違えやすい協調部は網羅的解析

CONPASUに実装中)

状態数の多いデータ部はシミュレーション解析

CONAPSUに実装予定)

(16)

CONPASUの機能

 記号処理

 状態数削減

(17)

CONPASUの機能

CONPASU

は並行処理の全体像を解析して可視化するツール

 逐次化機能

: 並行処理を

記号的意味論

によって逐次処理に展開する機能

 状態数削減機能

: 振舞いの等しさを保ったまま状態数を減らす機能

並行システムの設計モデル

in

c1

B1

B0

c2

B2

out

逐次化

CONPASU)

状態数削減

CONPASU)

状態数

: 8

容量3のバッファ

状態数

: 4

CONPASU

c1

in

c2

c1

out

c2

(18)

ack

in?

𝑥

out!(

𝑥 × 2)

記号的意味論

 プロセス代数の

記号的意味論

[4,5]

1995年頃から研究が行われている

Proc = in?

𝑥 → out!(𝑥 × 2) → ack → Proc

CSPモデル

(普通の)意味論

記号的意味論

in.0

in.1

in.2

in.9

out.0

out.2

out.4

out.19

ack

入力値

𝑥 ∈ {0, … , 9}

状態数の増加を抑えられる

×

解析(等価性判定など)は難しい

変数

(19)

状態数削減

 状態遷移図(変数含)の振舞いを変えずに

状態数を削減する方法

を考案

 振舞いを変えないように内部動作をバイパスする

(注:振舞いに影響する、すなわちバイパスできない内部動作もある)

 振舞いの等しさには

CSPの失敗等価性 =

F

を採用

/ n:=1,m:=0

print!

n

print!

n

τ

/

m:=m+2

τ

/

m:=m+2

STOP

print!

m

S1(n, m) S2(n, m) S3(n, m) S4(n, m)

bak/

n:=n+1

bak/

n:=n+1

観測されない内部動作

/ n:=1, m:=0+2

print!

n

STOP

print!

m

bak/

n:=n+1

S2(n, m) S4(n, m)

並行処理では、このような順番が可換な振舞いはよく現れる(インターリービング)

状態数削減

F

(20)

UI

並行システムの解析例

 並行システム全体の動作の可視化するツール

CONPASU

を開発中

input

ok

ng

quit0

succ

start

net

term

quit1

ack

upload

cancel

complete

output

Sender

Receiver

構造

UI

Receiver

Sender

通信

通信

振舞い

入力:

 並行システムの構造

 各プロセスの振舞い

出力:

 全体の振舞い

処理:

 並行合成

 状態数削減

CONPASU-tool

普通の意味論

で状態遷移図

を作成した場合(

FDR使用)

状態数:

12万

データ種類:

4種類

転送回数:

4回

状態数

: 8

(21)

おわりに

 まとめ

(22)

まとめ

CONPASU研究のポイント

 ネットワークやマルチコアの普及によって、並行処理が身近になっている

 複雑な並行処理の全体像を解析して、

簡潔に可視化するツール

を開発

UMLなどの並行処理も解析可能で、既存の開発工程への導入が容易

信頼性の向上、手戻りコストの削減

手戻り

コスト

削減

設計

UML

要求

分析

結合

テスト

受入

テスト

単体

テスト

解析

CSP

CONPASU)

解析

UML

UMLモデルベース開発工程への導入

実装

設計

CSP/UML

要求

分析

CONPASU)

解析

CSP/UML

CSPモデルベース開発工程の採用

実装

並行処理の明確化、

検証効率の向上

(23)

今後の課題

 解析結果のフィードバック方法

 見やすい解析結果の表示方法

 解析結果ともとのモデルとの対応表示方法、他

設計モデル

解析結果

解析

フィードバック

 モデルの表現力の拡張

 実数など、

CSP

M

では未対応のデータ型も扱えるようにする

(24)

参考文献

1. (CONPASU)Y. Isobe, CONPASU-tool: A Concurrent Process Analysis Support Tool based on Symbolic Computation, CPA2011, WoTUG-33, IOS Press, pp.341-362, 2011.

http://staff.aist.go.jp/y-isobe/conpasu/

2. (CSP)C. A. R. Hoare, Communicating Sequential Processes, Prentice Hall, 1985. http://www.usingcsp.com/cspbook.pdf

3. (CSP)A. W. Roscoe, The Theory and Practice of Concurrency, Prentice Hall, 1998. http://www.cs.ox.ac.uk/people/bill.roscoe/publications/68b.pdf

4. (記号的意味論)Z. Li and H. Chen, Computing strong/weak bisimulation equivalences and observation congruence for value-passing processes, TACAS '99, LNCS 1579, Springer, pages 300-314, 1999.

5. (記号的意味論)M. Hennessy and H. Lin, Symbolic bisimulations, Theoretical Computer Science, Volume 138, Issue 2, pp.353-389, 1995.

6. (Simulink-CSP)J. Jesus, A. Mota, A. Sampaio, and L. Grijo, Architectural Verification of Control Systems Using CSP, ICFEM 2011, LNCS 6991, Springer, pp.323-339, 2011.

7. (UML-CSP)I. Abdelhalim, S. Schneider, and H. Treharnea, Towards a Practical Approach to Check UML/fUML Models Consistency Using CSP, ICFEM 2011, LNCS 6991, Springer, pp.33-48, 2011.

8. (FDR)Formal Systems (Europe) Limited, Failures-divergence refinement: FDR2, http://www.fsel.com/

9. (ProB)Universität Düsseldorf and University of Southampton, The ProB Animator and Model Checker. www.stups.uni-duesseldorf.de/ProB/

10. National University of Singapore, PAT: Process analysis toolkit. http://www.comp.nus.edu.sg/~pat/ 11. Imperial College London, LTSA - labelled transition system analyser. http://www.doc.ic.ac.uk/ltsa/

参照

関連したドキュメント

シークエンシング技術の飛躍的な進歩により、全ゲノムシークエンスを決定す る研究が盛んに行われるようになったが、その研究から

日頃から製造室内で行っていることを一般衛生管理計画 ①~⑩と重点 管理計画

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

クチャになった.各NFは複数のNF  ServiceのAPI を提供しNFの処理を行う.UDM(Unified  Data  Management) *11 を例にとれば,UDMがNF  Service

運搬 中間 処理 許可の確認 許可証 収集運搬業の許可を持っているか

あれば、その逸脱に対しては N400 が惹起され、 ELAN や P600 は惹起しないと 考えられる。もし、シカの認可処理に統語的処理と意味的処理の両方が関わっ

「有価物」となっている。但し,マテリアル処理能力以上に大量の廃棄物が

(注)