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
一句话总结

本文提出一种基于属性的代码切片技术,以自动化生成环境模型和内核抽象,从而高效验证OSEK/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.

研究动机与目标

  • 为解决基于安全关键型OSEK/VDX的汽车操作系统验证所面临的高昂成本与复杂性问题。
  • 通过自动化静态分析最小化内核代码与环境模型,从而降低验证工作量。
  • 通过聚焦于与特定安全属性相关的代码路径,提升故障检测效率。
  • 通过统一的、基于属性的环境模型,实现模型检测与随机测试的协同验证。

提出的方法

  • 从目标属性反向切片,识别具有直接依赖关系的顶层函数。
  • 使用正向切片计算影响范围,提取相关代码段。
  • 施加来自OSEK/VDX标准的外部约束与来自函数调用结构的内部约束,生成有效且非确定性的函数调用序列。
  • 利用静态分析工具Understand,自动化生成环境模型与内核抽象。
  • 将验证目标缩小至仅提取的函数及其预处理代码,以实现高效的模型检测与测试。
  • 将生成的模型与CBMC集成用于形式化验证,同时与随机测试集成用于压力测试。

实验结果

研究问题

  • RQ1如何自动构建环境模型,以降低基于OSEK/VDX系统的验证成本?
  • RQ2基于属性的代码切片在嵌入式操作系统中能在多大程度上提升测试覆盖率与故障检测能力?
  • RQ3如何利用统一的环境模型协同应用模型检测与随机测试?
  • RQ4CBMC、根级别与末端级别随机测试在检测细微故障方面的相对优势与局限性是什么?
  • RQ5通过切片实现的代码抽象如何提升实时内核形式化验证的可扩展性?

主要发现

  • 基于属性的环境生成技术通过仅聚焦于与分析属性相关的代码路径,显著缩小了验证目标的规模。
  • 末端级别随机测试成功检测到任务激活计数相关的溢出故障,而CBMC因展开深度的资源限制未能发现此类问题。
  • CBMC在完整性方面表现最佳,但其代价随展开深度增加呈指数级增长,受到限制。
  • 根级别随机测试在压力测试中效果较差,因其依赖于固定的OIL配置文件。
  • API级别随机测试无需额外分析即可提供即时反馈,适合在故障检测后快速定位问题。
  • 协同工作流——从末端级别随机测试开始,继之以根级别测试,最终由CBMC收尾——在识别与验证细微安全问题方面被证明是有效的。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。