ase2011 session05: analysis, verification and validation
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 PresentationTRANSCRIPT
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