Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3533767.3543295acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
short-paper

SpecChecker-ISA: a data sharing analyzer for interrupt-driven embedded software

Published: 18 July 2022 Publication History
  • Get Citation Alerts
  • Abstract

    Concurrency bugs are common in interrupt-driven programs, which are widely used in safety-critical areas. These bugs are often caused by incorrect data sharing among tasks and interrupts. Therefore, data sharing analysis is crucial to reason about the concurrency behaviours of interrupt-driven programs. Due to the variety of data access forms, existing tools suffer from both extensive false positives and false negatives while applying to interrupt-driven programs. This paper presents SpecChecker-ISA, a tool that provides sound and precise data sharing analysis for interrupt-driven embedded software. The tool uses a memory access model parameterized by numerical invariants, which are computed by abstract interpretation based value analysis, to describe data accesses of various kinds, and then uses numerical meet operations to obtain the final result of data sharing. Our experiments on 4 real-world aerospace embedded software show that SpecChecker-ISA can find all shared data accesses with few false positives, significantly outperforming other existing tools. The demo can be accessed at https://github.com/wangilson/specchecker-isa.

    References

    [1]
    2022. SpecCherker-ISA. https://github.com/wangilson/specchecker-isa
    [2]
    Swarnendu Biswas, Man Cao, Minjia Zhang, Michael D Bond, and Benjamin P Wood. 2017. Lightweight data race detection for production runs. In Proceedings of the 26th International Conference on Compiler Construction. 11–21.
    [3]
    L. Bo, S. Jiang, J. Qian, R. Wang, and Y. Yao. 2019. Performance Evaluation of Data Race Detection Based on Thread Sharing Analysis with Different Granularities: An Empirical Study. IEEE Access, PP, 99 (2019), 1–1.
    [4]
    Guillaume Brat, Jorge A Navas, Nija Shi, and Arnaud Venet. 2014. IKOS: A framework for static analysis based on abstract interpretation. In International Conference on Software Engineering and Formal Methods. 271–277.
    [5]
    Rui Chen, Mengfei Yang, and Xiangying Guo. 2016. Interrupt data race detection based on shared variable access order pattern. Ruan Jian Xue Bao/Journal of Software, 547–561.
    [6]
    Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C Sreedhar, and Sam Midkiff. 1999. Escape analysis for Java. Acm Sigplan Notices, 34, 10 (1999), 1–19.
    [7]
    Michael Codish, Anne Mulkers, Maurice Bruynooghe, Maria Garcia De La Banda, and Manuel Hermenegildo. 1995. Improving abstract interpretations by combining domains. ACM Transactions on Programming Languages and Systems (TOPLAS), 17, 1 (1995), 28–44.
    [8]
    Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. 238–252.
    [9]
    Philippe Granger. 1989. Static analysis of arithmetical congruences. International Journal of Computer Mathematics, 30, 3-4 (1989), 165–190.
    [10]
    Jeff Huang. 2016. Scalable thread sharing analysis. In Proceedings of the 38th International Conference on Software Engineering. 1097–1108.
    [11]
    Taegyu Kim, Vireshwar Kumar, Junghwan Rhee, Jizhou Chen, Kyungtae Kim, Chung Hwan Kim, Dongyan Xu, and Dave Jing Tian. 2021. $PASAN$: Detecting Peripheral Access Concurrency Bugs within $Bare-Metal$ Embedded Applications. In 30th USENIX Security Symposium (USENIX Security 21). 249–266.
    [12]
    Hiroyasu Nishiyama. 2004. Detecting Data Races Using Dynamic Escape Analysis Based on Read Barrier. In Virtual Machine Research and Technology Symposium. 127–138.
    [13]
    John Whaley and Martin Rinard. 1999. Compositional pointer and escape analysis for Java programs. In Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. 187–206.

    Cited By

    View all
    • (2023)FITS: Inferring Intermediate Taint Sources for Effective Vulnerability Analysis of IoT Device FirmwareProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624759(138-152)Online publication date: 25-Mar-2023
    • (2023)An Empirical Study on Concurrency Bugs in Interrupt-Driven Embedded SoftwareProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598140(1345-1356)Online publication date: 12-Jul-2023
    • (2023)intCV: Automatically Inferring Correlated Variables in Interrrupt-Driven Program2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00061(562-568)Online publication date: 22-Oct-2023

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ISSTA 2022: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis
    July 2022
    808 pages
    ISBN:9781450393799
    DOI:10.1145/3533767
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 July 2022

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. abstract interpretation
    2. data sharing analysis
    3. embedded software
    4. interrupt

    Qualifiers

    • Short-paper

    Conference

    ISSTA '22
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 58 of 213 submissions, 27%

    Upcoming Conference

    ISSTA '24

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)33
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)FITS: Inferring Intermediate Taint Sources for Effective Vulnerability Analysis of IoT Device FirmwareProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624759(138-152)Online publication date: 25-Mar-2023
    • (2023)An Empirical Study on Concurrency Bugs in Interrupt-Driven Embedded SoftwareProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598140(1345-1356)Online publication date: 12-Jul-2023
    • (2023)intCV: Automatically Inferring Correlated Variables in Interrrupt-Driven Program2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00061(562-568)Online publication date: 22-Oct-2023

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media