ase2011 session05: analysis, verification and validation

21
12/03/21 FSE/ASE2011 勉勉勉 1 ASE2011 Session05: Analysis, Verification and Validation 1. Scalable and Precise Symbolic Analysis for Atomicity Violations 2. DC2: A Framework for Scalable, Scope-Bounded Software Verification 3. Formalizing HW/SW Interface Specifications 4. Safe Asynchronous Multicore Memory Operations 勉勉勉 勉勉 勉勉 ( 勉勉勉勉勉勉 )

Upload: jin-ratliff

Post on 30-Dec-2015

38 views

Category:

Documents


1 download

DESCRIPTION

ASE2011 Session05: Analysis, Verification and Validation. Scalable and Precise Symbolic Analysis for Atomicity Violations DC2 : A Framework for Scalable, Scope-Bounded Software Verification Formalizing HW/SW Interface Specifications Safe Asynchronous Multicore Memory Operations. - PowerPoint PPT Presentation

TRANSCRIPT

12/03/21 FSE/ASE2011 勉強会 1

ASE2011  Session05: Analysis, Verification and Validation

1. Scalable and Precise Symbolic Analysis for Atomicity Violations

2. DC2: A Framework for Scalable, Scope-Bounded Software Verification

3. Formalizing HW/SW Interface Specifications4. Safe Asynchronous Multicore Memory Operations

担当者:横川 智教 ( 岡山県立大学 )

Scalable and Precise Symbolic Analysis for Atomicity Violation

12/03/21 FSE/ASE2011 勉強会 2

A05-1

Malay K. Ganai(NEC Labs America)

Background

12/03/21 FSE/ASE2011 勉強会 3

コンカレントシステムにおけるバグの原因の 45.7 %は原子性 (Atomicity) の違反に関するもの [1]

バグの原因 割合 ( 件数 )

Atomicity violation

45.7%(48)

Deadlocks 29.5%(31)

Order violation 22.8%(24)

Others 2.0%(2)

原子性の違反を検出するツール BEST の開発[1] S. Lu et al., “Learning from mistakes: A comphrensive study on real world concurrency bug characteristics,” In Architectural Support for Programming Languages and Operating Systems, 2008.

BEST(Binary instrumentation-based Error-directed Symbolic Testing)

12/03/21 FSE/ASE2011 勉強会 4

Target BinaryTest Harness

Stage1:Trace Generalization• バイナリを実行し,メモリアクセス等

のイベントを記録• Concurrent Trace Model(CTM) を作

Stage2:Simplify CTM• ローカル処理を合成• 実行不能 / 冗長なコンテク

ストスイッチを削除

Stage3:Inferring Atomic Specification• CTM から Atomic Region を抽出• atomic と証明済 /non-atomic と既知

のものを削除• Atomic Property を生成

Stage4:Property-specific Symbolic Analysis• Atomic Violation(NAV) と Feasible Schedule(Ωsched) を記号

表現• NAV∧Ωsched の充足可能性判定

Stage5: Debug Traces

Contributions

12/03/21 FSE/ASE2011 勉強会 5

Generalization:

Precision:

Scalability:

Feasibility:

扱えるスケジュールに制約がない

実行可能なスケジュールの全てかつそれのみを記号表現

CTM の簡単化により問題のサイズを削減制約ベースの検証 → 明示的なスケジュールの列挙が不要

Causal Atomicity や Causal Mutual Atomicity などの様々な Atomicity Property を検証することが可能

Evaluation

12/03/21 FSE/ASE2011 勉強会 6

9 種のマルチスレッドアプリケーション (C/C++/Java)に対して BEST ツールを適用

A. Atomicity Analysis (Tab. 4)スレッド数に対する問題サイズの変化の測定

• 17 個のバグを検出• CA と比較して, CMA の検出コストは小さい

B. Reduction Step (Tab. 5)

削減手法の組み合わせに関する効果の測定• 削減効果は大きい ( 最大で 2×106 倍 )• CA と比較して, CMA に関する削減の度合いが大きい

DC2: A Framework for Scalable, Scope-Bounded

Software Verification

12/03/21 FSE/ASE2011 勉強会 7

A05-2

Franjo Ivancic, Gogul Balakrishnan, Aarti Gupta(NEC Labs America)

Sriram Sankaranarayanan(University of Colorado)

Naoto Maeda, Hiroki Tokuoka, Takashi Imoto, Yoshiaki Miyazaki(NEC Corporation)

Background

12/03/21 FSE/ASE2011 勉強会 8

Software Model Checking への要求Scalability:  1MLOC 以上のソースコードが扱えなければならない

Performance: 与えられた時間内に検証を完了しなければならない

Accuracy: 誤検出が多くてはならない

ソフトウェア検証フレームワーク DC2 の開発

DC2(Depth-Cutoff with Design Constraints)

12/03/21 FSE/ASE2011 勉強会 9

NEC が開発したソフトウェア検証ツール VARVEL の一部として実装

Scope bounding: ネストの深い関数を排除することでモデルサイズを制限Automatic specification inference: 関数の外部環境 ( グローバル変数,呼び出し等 ) の制約を推測 スタブ関数の推測

Environment refinement: 反例を元に抽象モデルを詳細化

プログラム解析ツール SpecTackle の開発

CEGER(CounterExample-Guided Environment Refinement)

Depth Cutoff in DC2

12/03/21 FSE/ASE2011 勉強会 10

fun. f() assume(pre_f) call g1(); call g2();

( 本文 Fig.3 より抜粋 )

fun. g1() assert(pre_g1) call h(); call h_stub();fun. g2() assert(pre_g2) …

fun. h() …

fun. h_stub() assert(pre_h)  inferred stub assume(post_h)

Evaluation

12/03/21 FSE/ASE2011 勉強会 11

A. DC2 の適用 (Tab. 4)

DC2 適用前後の Success Ratio と #Likely Bugs を測定• 定められた期間で検証が完了した割合が増加• 検出数の増加および誤検出の減少

B. CEGER の適用Zister Benchmark (Tab. 6)

• 検出率が向上 (7/90→10/13)• 検出数も増加

Industrial Benchmark (Tab. 7)• より少ない検出数でバグを発見• 被験者は非専門家であったが効果があった

Formalizing Hardware/Software Interface

Specifications

12/03/21 FSE/ASE2011 勉強会 12

A05-3

Juncao Li, Thomas Ball, Vladimir Levin, Con McGarvey(Microsoft Corporation)

Fei Xie(Portland State

University)

Background

12/03/21 FSE/ASE2011 勉強会 13

ドライバ (SW) とデバイス (HW) の依存性

ドライバを開発時にはデバイスが完成している必要がある

開発サイクルの長期化

HardwareInterface

Software

HW/SW インタフェースのモデル化

デバイス (HW) 開発ドライバ (SW) 開発

HW/SW を並行して開発することが可能

Contributions

12/03/21 FSE/ASE2011 勉強会 14

Relative atomicity: トランザクションの優先度を相対的な原子性として表現

Specification of HW/SW interface protocols: 仕様記述言語 modelC を開発  C 言語のセマンティクスに 3 つの制約 ( 範囲付き整数,再帰 呼出回数の制限,動的メモリ割り当ての禁止 ) と 2 つの拡張  (Relative atomicity および non-determinism)Protocols coverage:

  HW/SW インタフェースのプロトコルを厳密にモデル化

Application and evaluation criteria:  MODEL-DOC ration を始めとし, 4 つの評価基準を提示

Formal specification framework

12/03/21 FSE/ASE2011 勉強会 15

SoftwareModel(LPDS)

HardwareModel(BA)

Σ={{wr_a},{wr_b},{no_evt},..}

I={{intr},{no_intr},..}

atWritePortA()atWritePortB()

atRun_DIO()

RunIsr()

Output2PortB()Output2PortA()

Isr()

( 本文 Fig.5 より抜粋 )

Evaluation

12/03/21 FSE/ASE2011 勉強会 16

提案するモデル 4 つの評価基準をもとに評価

Correctness assurance: 仕様の不整合を C コンパイラで検出

Manual effort: 仕様化するプロトコルの複雑さをドキュメントの規模を元に測定

False positives:  over abstraction に起因する偽陽性

Comparison with the English specification: モデルとドキュメントの関係解析のため MODEL-DOC ratio を導入

MODEL-DOC =モデルを記述する modelC の行数

ドキュメントのページ数

Safe Asynchronous Multicore Memory Operations

12/03/21 FSE/ASE2011 勉強会 17

A05-4

Matko Botincan, Mike Dodds(University of Cambridge)

Alastair F. Donaldson(Imperial College London)

Matthew J. Parkinson(Microsoft Reseach Cambridge)

Background

12/03/21 FSE/ASE2011 勉強会 18

マルチコアシステムにおいて非同期メモリ操作は非常に重要な技術

Cell , CUDA , OpenCL などでも利用される

不正な非同期操作に起因するバグは検出・分析が非常に困難

ある環境では正しく動作し,他では重大な障害を引き起こす

形式的検証が必要とされる

マルチコアプログラムの安全性検証手法の提案

ツール asyncStar としての実装

Contributions

12/03/21 FSE/ASE2011 勉強会 19

マルチコアプログラムを対象としたプログラム論理の構築スレッドの fork/join と非同期メモリ操作を考慮

マルチコアプログラム論理の自動証明SMT ソルバの利用

ツール asyncStar の実装Industrial Benchmark による評価

asyncStar

12/03/21 FSE/ASE2011 勉強会 20

( 本文 Fig.5 より抜粋 )

coreStar

Theorem prover

Symbolic execution

Abstraction

VMC frontendVMC program(Verified Multicore C)

SMT solver

APRON

coreStarIL programPre/post conditions

Loop invariants

asyncStar

Evaluation

12/03/21 FSE/ASE2011 勉強会 21

Cell Broadband Engine SDK のベンチマークを用いて評価

*Wait命令を取り除くことで作成

バグを含まないもの (Correct) と含むもの *(Buggy) に対してasyncStar を適用した結果を測定

証明および反証は現実的な時間で終了 (~ 8416秒程度 )

要素数の変化は検証コストに影響を与えない本質的なボトルネックではない