Modular Verification of Interrupt-Driven Software

09/28/2017
by   Chungha Sung, et al.
0

Interrupts have been widely used in safety-critical computer systems to handle outside stimuli and interact with the hardware, but reasoning about interrupt-driven software remains a difficult task. Although a number of static verification techniques have been proposed for interrupt-driven software, they often rely on constructing a monolithic verification model. Furthermore, they do not precisely capture the complete execution semantics of interrupts such as nested invocations of interrupt handlers. To overcome these limitations, we propose an abstract interpretation framework for static verification of interrupt-driven software that first analyzes each interrupt handler in isolation as if it were a sequential program, and then propagates the result to other interrupt handlers. This iterative process continues until results from all interrupt handlers reach a fixed point. Since our method never constructs the global model, it avoids the up-front blowup in model construction that hampers existing, non-modular, verification techniques. We have evaluated our method on 35 interrupt-driven applications with a total of 22,541 lines of code. Our results show the method is able to quickly and more accurately analyze the behavior of interrupts.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/03/2020

Towards Compositional Verification for Modular Robotic Systems

Software engineering of modular robotic systems is a challenging task, h...
research
01/22/2018

A Scalable Approach for Hardware Semiformal Verification

The current verification flow of complex systems uses different engines ...
research
11/25/2019

Abstract Compilation for Verification of Numerical Accuracy Properties

Verification of numerical accuracy properties in modern software remains...
research
01/28/2021

Safety Verification of Parameterized Systems under Release-Acquire

We study the safety verification problem for parameterized systems under...
research
04/14/2023

LoRe: A Programming Model for Verifiably Safe Local-First Software

Local-first software manages and processes private data locally while st...
research
09/28/2017

Thread-Modular Static Analysis for Relaxed Memory Models

We propose a memory-model-aware static program analysis method for accur...
research
11/16/2021

F-IDEs with Features and VCs Designed to Assist Human Reasoning When Verification Fails

This paper summarizes our efforts to aid human reasoning when verificati...

Please sign up or login with your details

Forgot password? Click here to reset