Effective Verification for Low-Level Software with Competing Interrupts

被引:5
|
作者
Liang, Lihao [1 ]
Melham, Tom [1 ]
Kroening, Daniel [1 ]
Schrammel, Peter [2 ]
Tautschnig, Michael [3 ]
机构
[1] Univ Oxford, Dept Comp Sci, Wolfson Bldg,Pk Rd, Oxford OX1 3QD, England
[2] Univ Sussex, Sch Engn & Informat, Brighton BN1 9QT, E Sussex, England
[3] Queen Mary Univ London, Sch Elect Engn & Comp Sci, Mile End Rd, London E1 4NS, England
基金
英国工程与自然科学研究理事会; 欧盟地平线“2020”;
关键词
Interrupt-driven software; interrupts; concurrency; model checking; program instrumentation; symbolic execution;
D O I
10.1145/3147432
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested and subject to priorities. Interrupts can arrive at arbitrary times, leading to an exponential blow-up in the number of cases to consider. We present a new formal approach to verifying interrupt-driven software based on symbolic execution. The approach leverages recent advances in the encoding of the execution traces of interacting, concurrent threads. We assess the performance of our method on benchmarks drawn from embedded systems code and device drivers, and experimentally compare it to conventional approaches that use source-to-source transformations. Our results show that our method significantly outperforms these techniques. To the best of our knowledge, our work is the first to demonstrate effective verification of low-level embedded software with nested interrupts.
引用
收藏
页数:26
相关论文
共 50 条
  • [1] Effective Verification of Low-Level Software with Nested Interrupts
    Kroening, Daniel
    Liang, Lihao
    Melham, Tom
    Schrammel, Peter
    Tautschnig, Michael
    2015 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE), 2015, : 229 - 234
  • [2] THE VERIFICATION OF LOW-LEVEL CODE
    CLUTTERBUCK, DL
    CARRE, BA
    SOFTWARE ENGINEERING JOURNAL, 1988, 3 (03): : 97 - 111
  • [3] Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads
    Feng, Xinyu
    Shao, Zhong
    Dong, Yuan
    Guo, Yu
    PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 170 - +
  • [4] Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads
    Feng, Xinyu
    Shao, Zhong
    Guo, Yu
    Dong, Yuan
    JOURNAL OF AUTOMATED REASONING, 2009, 42 (2-4) : 301 - 347
  • [5] Certifying low-level programs with hardware interrupts and preemptive threads
    Feng, Xinyu
    Shao, Zhong
    Dong, Yuan
    Guo, Yu
    ACM SIGPLAN NOTICES, 2008, 43 (06) : 170 - 182
  • [6] Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads
    Xinyu Feng
    Zhong Shao
    Yu Guo
    Yuan Dong
    Journal of Automated Reasoning, 2009, 42 : 301 - 347
  • [7] A framework for embedded software portability and verification: from formal models to low-level code
    Renata Martins Gomes
    Bernhard Aichernig
    Marcel Baunach
    Software and Systems Modeling, 2024, 23 : 289 - 315
  • [8] A framework for embedded software portability and verification: from formal models to low-level code
    Gomes, Renata Martins
    Aichernig, Bernhard
    Baunach, Marcel
    SOFTWARE AND SYSTEMS MODELING, 2024, 23 (02): : 289 - 315
  • [9] Mechanized, Compositional Verification of Low-Level Code
    Bartels, Bjoern
    Jaehnig, Nils
    NASA FORMAL METHODS, NFM 2014, 2014, 8430 : 98 - 112
  • [10] A Computer-Algebraic Approach to Formal Verification of Data-Centric Low-Level Software
    Marx, Oliver
    Villarraga, Carlos
    Stoffel, Dominik
    Kunz, Wolfgang
    2016 ACM/IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR SYSTEM DESIGN (MEMOCODE), 2016, : 34 - 42