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 担当者:横川 智教 (岡山県立大学) 12/03/21 FSE/ASE2011勉強会 1 A05-1 Scalable and Precise Symbolic Analysis for Atomicity Violation Malay K. Ganai (NEC Labs America) 12/03/21 FSE/ASE2011勉強会 2 Background コンカレントシステムにおけるバグの原因の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. 12/03/21 FSE/ASE2011勉強会 3 BEST(Binary instrumentation-based Error-directed Symbolic Testing) Target Binary Test Harness Stage2:Simplify CTM • ローカル処理を合成 • 実行不能/冗長なコンテクス トスイッチを削除 Stage1:Trace Generalization • バイナリを実行し,メモリアクセス等 のイベントを記録 • Concurrent Trace Model(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の充足可能性判定 12/03/21 FSE/ASE2011勉強会 Stage5: Debug Traces 4 Contributions Generalization: 扱えるスケジュールに制約がない Precision: 実行可能なスケジュールの全てかつそれのみを記号表現 Scalability: CTMの簡単化により問題のサイズを削減 制約ベースの検証 → 明示的なスケジュールの列挙が不要 Feasibility: Causal AtomicityやCausal Mutual Atomicityなどの 様々なAtomicity Propertyを検証することが可能 12/03/21 FSE/ASE2011勉強会 5 Evaluation 9種のマルチスレッドアプリケーション(C/C++/Java) に対してBESTツールを適用 A. Atomicity Analysis (Tab. 4) スレッド数に対する問題サイズの変化の測定 • 17個のバグを検出 • CAと比較して,CMAの検出コストは小さい B. Reduction Step (Tab. 5) 削減手法の組み合わせに関する効果の測定 • 削減効果は大きい(最大で2×106倍) • CAと比較して,CMAに関する削減の度合いが大きい 12/03/21 FSE/ASE2011勉強会 6 A05-2 DC2: A Framework for Scalable, Scope-Bounded Software Verification Franjo Ivancic, Gogul Balakrishnan, Aarti Gupta (NEC Labs America) Sriram Sankaranarayanan (University of Colorado) Naoto Maeda, Hiroki Tokuoka, Takashi Imoto, Yoshiaki Miyazaki (NEC Corporation) 12/03/21 FSE/ASE2011勉強会 7 Background Software Model Checkingへの要求 Scalability: 1MLOC以上のソースコードが扱えなければならない Performance: 与えられた時間内に検証を完了しなければならない Accuracy: 誤検出が多くてはならない ソフトウェア検証フレームワークDC2の開発 12/03/21 FSE/ASE2011勉強会 8 DC2(Depth-Cutoff with Design Constraints) Scope bounding: ネストの深い関数を排除することでモデルサイズを制限 Automatic specification inference: 関数の外部環境(グローバル変数,呼び出し等)の制約を推測 スタブ関数の推測 プログラム解析ツールSpecTackleの開発 Environment refinement: 反例を元に抽象モデルを詳細化 CEGER(CounterExample-Guided Environment Refineme NECが開発したソフトウェア検証ツールVARVELの一部として実 12/03/21 FSE/ASE2011勉強会 9 Depth Cutoff in DC2 fun. f() assume(pre_f) call g1(); call g2(); fun. g1() assert(pre_g1) call h(); call h_stub(); fun. h() … fun. g2() assert(pre_g2) … fun. h_stub() assert(pre_h) inferred stub assume(post_h) (本文Fig.3より抜粋) 12/03/21 FSE/ASE2011勉強会 10 Evaluation A. DC2の適用 (Tab. 4) DC2適用前後のSuccess Ratioと#Likely Bugsを測定 • 定められた期間で検証が完了した割合が増加 • 検出数の増加および誤検出の減少 B. CEGERの適用 Zister Benchmark (Tab. 6) • 検出率が向上(7/90→10/13) • 検出数も増加 Industrial Benchmark (Tab. 7) • より少ない検出数でバグを発見 • 被験者は非専門家であったが効果があった 12/03/21 FSE/ASE2011勉強会 11 A05-3 Formalizing Hardware/Software Interface Specifications Juncao Li, Thomas Ball, Vladimir Levin, Con McGarvey (Microsoft Corporation) Fei Xie (Portland State University) 12/03/21 FSE/ASE2011勉強会 12 Background ドライバ(SW)とデバイス(HW)の依存性 ドライバを開発時にはデバイスが完成している必要がある 開発サイクルの長期化 HW/SWインタフェースのモデル化 ドライバ(SW)開発 Software Inter face Hardware デバイス(HW)開発 HW/SWを並行して開発することが可能 12/03/21 FSE/ASE2011勉強会 13 Contributions 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つの評価基準を提示 12/03/21 FSE/ASE2011勉強会 14 Formal specification framework atWritePortA() atWritePortB() Σ={{wr_a},{wr_b},{no_evt},..} Output2PortA() Output2PortB() Isr() Software Model (LPDS) Hardware Model (BA) atRun_DIO() I={{intr},{no_intr},..} RunIsr() (本文Fig.5より抜粋) 12/03/21 FSE/ASE2011勉強会 15 Evaluation 提案するモデル4つの評価基準をもとに評価 Correctness assurance: 仕様の不整合をCコンパイラで検出 Manual effort: 仕様化するプロトコルの複雑さをドキュメントの規模を元に測 False positives: over abstractionに起因する偽陽性 Comparison with the English specification: モデルとドキュメントの関係解析のためMODEL-DOC ratioを導 モデルを記述するmodelCの行数 MODEL-DOC = ドキュメントのページ数 12/03/21 FSE/ASE2011勉強会 16 A05-4 Safe Asynchronous Multicore Memory Operations Matko Botincan, Mike Dodds (University of Cambridge) Alastair F. Donaldson (Imperial College London) Matthew J. Parkinson (Microsoft Reseach Cambridge) 12/03/21 FSE/ASE2011勉強会 17 Background マルチコアシステムにおいて非同期メモリ操作は非常に重要な技 Cell,CUDA,OpenCLなどでも利用される 不正な非同期操作に起因するバグは検出・分析が非常に困難 ある環境では正しく動作し,他では重大な障害を引き起こす 形式的検証が必要とされる マルチコアプログラムの安全性検証手法の提案 ツールasyncStarとしての実装 12/03/21 FSE/ASE2011勉強会 18 Contributions マルチコアプログラムを対象としたプログラム論理の構築 スレッドのfork/joinと非同期メモリ操作を考慮 マルチコアプログラム論理の自動証明 SMTソルバの利用 ツールasyncStarの実装 Industrial Benchmarkによる評価 12/03/21 FSE/ASE2011勉強会 19 asyncStar coreStar Theorem prover SMT solver Abstraction APRON Symbolic execution asyncStar Pre/post conditions Loop invariants VMC program (Verified Multicore C) coreStarIL program VMC frontend (本文Fig.5より抜粋) 12/03/21 FSE/ASE2011勉強会 20 Evaluation Cell Broadband Engine SDKのベンチマークを用いて評価 バグを含まないもの(Correct)と含むもの*(Buggy)に対して asyncStarを適用した結果を測定 *Wait命令を取り除くことで作成 証明および反証は現実的な時間で終了(~8416秒程度) 要素数の変化は検証コストに影響を与えない 本質的なボトルネックではない 12/03/21 FSE/ASE2011勉強会 21
© Copyright 2024 ExpyDoc