Skip to main content
QUICK REVIEW

[論文レビュー] Property-based Code Slicing for Efficient Verification of OSEK/VDX Operating Systems

Mingyu Park, Taejoon Byun|arXiv (Cornell University)|Jan 1, 2013
Real-time simulation and control systems被引用数 7
ひとこと要約

本論文は、OEM/VDX自動車オペレーティングシステムの効率的検証のため、環境モデル生成とカーネル抽象化を自動化する性質ベースのコードスライシング手法を提案する。OSEK/VDX標準およびカーネルコール構造から関数依存関係と制約を静的解析によって抽出することで、検証対象を削減し、モデルチェックイング(CBMC)とランダムテストの有効な統合を可能にし、Trampoline OSの事例研究において故障検出効率を著しく向上させる。

ABSTRACT

Testing is a de-facto verification technique in industry, but insufficient for identifying subtle issues due to its optimistic incompleteness. On the other hand, model checking is a powerful technique that supports comprehensiveness, and is thus suitable for the verification of safety-critical systems. However, it generally requires more knowledge and cost more than testing. This work attempts to take advantage of both techniques to achieve integrated and efficient verification of OSEK/VDX-based automotive operating systems. We propose property-based environment generation and model extraction techniques using static code analysis, which can be applied to both model checking and testing. The technique is automated and applied to an OSEK/VDX-based automotive operating system, Trampoline. Comparative experiments using random testing and model checking for the verification of assertions in the Trampoline kernel code show how our environment generation and abstraction approach can be utilized for efficient fault-detection.

研究の動機と目的

  • 安全で重要なOEM/VDXベースの自動車オペレーティングシステムの検証における高コストと複雑さに対処すること。
  • 静的解析による自動化により、カーネルコードと環境モデルを最小限に抑えることで検証作業を軽減すること。
  • 特定の安全特性に関連するコードパスに焦点を当てることで、故障検出の効率を向上させること。
  • 一貫した性質駆動型環境モデルを用いて、モデルチェックイングとランダムテストの共同検証を可能にすること。

提案手法

  • 直接的な依存関係を持つ関数を特定するため、ターゲット特性からのバックワードスライシングを適用する。
  • 影響範囲(Cone of Influence)を計算し、関連するコードセグメントを抽出するためにフォワードスライシングを用いる。
  • OSEK/VDX標準からの外部制約と関数コール構造からの内部制約を組み合わせ、有効で非決定的な関数コールシーケンスを生成する。
  • 静的解析ツールUnderstandを用いて、環境モデルとカーネル抽象化を自動化する。
  • 効率的なモデルチェックイングとテストのため、抽出された関数とその前処理コードのみを検証対象に絞り込む。
  • 生成されたモデルをCBMCに統合して形式的検証を実施し、ランダムテストを用いてストレステストを実施する。

実験結果

リサーチクエスチョン

  • RQ1OEM/VDXベースのシステムにおける検証コストを低減するために、環境モデルをどのように自動生成できるか。
  • RQ2性質ベースのコードスライシングは、組み込みオペレーティングシステムにおけるテストカバレッジと故障検出にどの程度向上効果をもたらすか。
  • RQ3一貫した環境モデルを用いて、モデルチェックイングとランダムテストをどのように共同で適用できるか。
  • RQ4CBMC、ルートレベル、エンドレベルのランダムテストは、微細な故障を検出するうえで、それぞれどのような相違点と限界を有するか。
  • RQ5スライシングによるコード抽象化は、リアルタイムカーネルにおける形式的検証のスケーラビリティをどのように向上させられるか。

主な発見

  • 性質ベースの環境生成手法により、分析中の性質に関連するコードパスにのみ焦点を当て、検証対象のサイズが著しく削減された。
  • エンドレベルランダムテストは、アンワインディング深さのリソース制限によりCBMCが見逃した、タスクアクティベーションカウンティング関連のオーバーフロー障害を効果的に検出できた。
  • CBMCは最高の包括性を達成したが、アンワインディング深さの増加に伴い指数関数的にコストが増加するという制限があった。
  • ルートレベルランダムテストは、固定されたOIL設定ファイルに依存するため、ストレステストにはやや効果的でなかった。
  • APIレベルランダムテストは追加の解析を要せず即時にフィードバックを提供したため、故障検出後の迅速な障害特定に適していた。
  • エンドレベルランダムテストから始まり、ルートレベルテストを経てCBMCで終了する共同ワークフローは、微細な安全上の問題の同定と検証に有効であることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。