Abstract. We study the problem of determining stack boundedness and the exact maximum stack size for three classes of interrupt-driven programs. Interrupt-driven programs are used in many real-time applications that require responsive interrupt handling. In order to ensure responsiveness, programmers often enable interrupt processing in the body of lower-priority interrupt handlers. In such programs a programming error can allow interrupt handlers to be interrupted in cyclic fashion to lead to an unbounded stack, causing the system to crash. For a restricted class of interrupt-driven programs, we show that there is a polynomial-time procedure to check stack boundedness, while determining the exact maximum stack size is PSPACE-complete. For ...
ManuscriptAn important correctness criterion for software running on embedded microcontrollers is st...
An interrupt is an event that alters the sequence of instructions executed by a processor and requir...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
AbstractWe study the problem of determining stack boundedness and the exact maximum stack size for t...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
Static checking can provide safe and tight bounds on stack usage and execution times in interrupt-dr...
Embedded systems can fail to operate correctly due to interrupt overload: starvation caused by too m...
ManuscriptWhile developing embedded and real-time systems, it is usually necessary to write code tha...
Embedded control programs are hard to analyse because their behaviour depends on how they interact w...
AbstractTwo restricted imperative programming languages are considered: One is a slight modification...
Following a brief discussion of uniprocessor scheduling in which we argue the case for formal analys...
Intuitively, if we can prove that a program terminates, we expect some conclusion re-garding its com...
AbstractThis paper presents an approach to the efficient abstraction of interrupt handling in microc...
Context-bounded analysis of concurrent programs is a technique to compute a sequence of under-approx...
Resource-constrained devices are becoming ubiquitous. Examples include cell phones, palm pilots, and...
ManuscriptAn important correctness criterion for software running on embedded microcontrollers is st...
An interrupt is an event that alters the sequence of instructions executed by a processor and requir...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
AbstractWe study the problem of determining stack boundedness and the exact maximum stack size for t...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
Static checking can provide safe and tight bounds on stack usage and execution times in interrupt-dr...
Embedded systems can fail to operate correctly due to interrupt overload: starvation caused by too m...
ManuscriptWhile developing embedded and real-time systems, it is usually necessary to write code tha...
Embedded control programs are hard to analyse because their behaviour depends on how they interact w...
AbstractTwo restricted imperative programming languages are considered: One is a slight modification...
Following a brief discussion of uniprocessor scheduling in which we argue the case for formal analys...
Intuitively, if we can prove that a program terminates, we expect some conclusion re-garding its com...
AbstractThis paper presents an approach to the efficient abstraction of interrupt handling in microc...
Context-bounded analysis of concurrent programs is a technique to compute a sequence of under-approx...
Resource-constrained devices are becoming ubiquitous. Examples include cell phones, palm pilots, and...
ManuscriptAn important correctness criterion for software running on embedded microcontrollers is st...
An interrupt is an event that alters the sequence of instructions executed by a processor and requir...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...