研究課題/領域番号 |
24700026
|
研究種目 |
若手研究(B)
|
研究機関 | 東京工業大学 |
研究代表者 |
荒堀 喜貴 東京工業大学, 情報理工学(系)研究科, 助教 (50613460)
|
研究期間 (年度) |
2012-04-01 – 2014-03-31
|
キーワード | プログラム解析 / 動的解析 / バグ検出 / データ競合 / スレッド / 割込み |
研究概要 |
本研究では,割込み処理に伴う競合状態を高精度かつ高効率に検出する動的手法を実現する.具体的な研究実施計画として,(1)スレッド競合の動的検出手法から割込み競合の動的検出手法への拡張手法を検討し(平成24年度),(2)割込み競合の検出に向けて拡張した各種の解析手法の特性分析を行い(平成25年度前半),(3)割込み競合検出手法の高精度化または高効率化に有効な解析手法及びその融合手法を確立する(平成25年度後半).高精度かつ高効率な割込み競合検出法の実現により,組込みソフトウェアやネットワークプログラムなど割込み処理を多用するプログラムの信頼性及び開発効率の向上に貢献する.本年度の研究成果は以下の通りである. 1. 割込み競合検出法の基となる既存のスレッド競合検出法の調査及び実現 割込み競合検出法の実現方針として,既存のスレッド競合検出法を割込み競合の検出が可能となるように拡張する.本年度の前半では,精度・効率面で多様な特性を持つ4種類のスレッド競合検出手法(happens-before解析,ハイブリッド解析,サンプリング,記号実行)を対象として文献調査を行いコンパイラコレクション(GCC)に実装した. 2. スレッド競合検出法から割込み競合検出法への拡張手法の検討及び実現 本年度の後半では,前半で実現したスレッド競合検出法から割込み競合検出法への拡張方式を検討し,GCCに実装した上で.小規模なプログラムを対象とする割込み競合検出実験を行った.その結果,単純な拡張では,割込み処理に特有のイベント(割込みハンドラの登録/解除,多重割込み)や共有資源アクセスの観測順序によって(スレッド競合検出の文脈では生じない)誤検出または検出漏れが発生することが判明した.この問題への解決手法として,ハイブリッド解析に基づく割込み競合検出法の高精度化手法を考案し,その成果の一部をDSW2012で発表した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
交付申請書に記載した研究実施計画における本年度の達成目標は,精度・効率面で多様な特性を持つ4種類のスレッド競合検出手法(happens-before解析,ハイブリッド解析,サンプリング,静的解析)を割込み競合の検出が可能となるよう拡張することである.以下に示す通り,この目標はおおむね達成され研究は順調に進展している. 1. 各種のスレッド競合検出法の実現 happens-before解析,ハイブリッド解析,サンプリングに基づくスレッド競合検出器の実現は,申請時に既に準備してあったlockset解析ベースのスレッド競合検出器を改変することで計画通りに達成できた.一方,静的解析に基づくスレッド競合検出手法については,申請時に提示したデータフロー解析とは異なる記号実行ベースの検出法を採用した.これは,割込み競合の高精度な検出には記号実行による正確なパス解析の方が有利であると判断したためである.ただし,競合検出の効率面ではデータフロー解析の方が有望であるため,次年度にこの解析も実現する予定ある. 2. スレッド競合検出法から割込み競合検出法への拡張 上記4種のスレッド競合検出法を割込み競合の検出が可能となるよう拡張した.この拡張は概ね申請時の計画通りに実施できた.まず,スレッド処理に伴う操作(スレッドの生成/破棄,ロックによる同期)と割込み処理に伴う操作(割込みハンドラの起動/終了,マスクによる同期)の類似性に着目し,両操作間の対応関係及び割込み競合条件を定義した.次に,各種のスレッド競合検出法において,スレッド処理に伴う操作の解析部及びスレッド競合条件の判定部を特定した後,特定した解析部と判定部を前述の対応関係に基づき割込み処理に伴う操作の解析部と割込み競合条件の判定部に改変した.これにより各種の割込み競合検出法を得た.更に,多重割込みやイベント観測順序への対応策も実現できた.
|
今後の研究の推進方策 |
平成25年度の前半は,データフロー解析に基づく競合検出法を実現した後,各種の割込み競合検出手法の特性分析を行う.まず,特性分析用のベンチマークを作成する.ここで,実用プログラムの開発プロジェクトのバグ修正履歴やCERT等による脆弱性報告を調査し,現実の開発において問題となっている割込み競合の種類及び種類別の重要度等の情報を特定する.その後,それらの情報をベンチマークのテスト項目に反映させ,妥当なベンチマークを実現する.最終的には,スレッド競合検出手法のベンチマークとして広く利用されているdata-race-testプロジェクトのユニットテスト群に相当する割込み競合テスト項目を用意する計画である. 次に,各種の割込み競合検出ツールをベンチマークに適用することで,各種の検出手法の精度と効率を計測分析する.ここで,検出手法の精度として,(1)誤検出率,(2)検出漏れ率等を計測する.検出手法の効率として,(1)検査コードの実行による実行時間の増加率,(2)メモリ使用量の増加率,(3)競合検出に要した総時間等を計測する. 平成25年度の後半は,割込み競合検出手法の高精度化または高効率化に有効な解析手法を適切に融合することで,高精度かつ高効率な検出手法を実現する.まず,特性分析に基づき,割込み競合検出手法の高精度化または高効率化に有効な解析手法を特定する.次に,各種のスレッド競合検出手法から割込み競合検出手法への拡張過程や拡張コスト等を比較検討し,高精度な解析手法各種と高効率な解析手法各種の間の融合の相性及び融合実現コストを解明する.次に,融合の相性が良くかつ融合コストが低いと判明した解析手法を融合することで,高精度かつ高効率な割込み競合検出手法を低コストで実現する.最後に,融合で得た検出手法についてベンチマークを用いて特性評価を行い,融合の有効性を確認する.研究成果は適宜発表する.
|
次年度の研究費の使用計画 |
該当なし
|