Investigating Time Properties of Interrupt-Driven Programs

In design of dependable software for real-time embedded systems, time analysis is an important but challenging problem due in part to the randomicity and nondeterminism of interrupt handling behaviors. Time properties are generally determined by the behavior of the main program and the interrupt handling programs. In this paper, we present a small but expressive language for interrupt-driven programs and propose a timed operational semantics for it which can be used to explore various time properties. A number of algebraic laws for the computation properties that underlie the language are established on top of the proposed operational semantics. We depict a number of important time properties and illustrate them using the operational semantics via a small case study.

[1]  Joonwon Lee,et al.  Transparent and Selective Real-Time Interrupt Services for Performance Improvement , 2007, SEUS.

[2]  Si Liu,et al.  Formal Model of Interrupt Program from a Probabilistic Perspective , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[3]  Steve R. Kleiman,et al.  Interrupts as threads , 1995, OPSR.

[4]  Jens Palsberg,et al.  Static checking of interrupt-driven software , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[5]  Joost-Pieter Katoen,et al.  A probabilistic extension of UML statecharts: Specification and Verification. , 2002 .

[6]  John Regehr Safe and Structured Use of Interrupts in Real-Time and Embedded Software , 2007, Handbook of Real-Time and Embedded Systems.

[7]  Yu Guo,et al.  Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads , 2009, Journal of Automated Reasoning.

[8]  Joseph Y.-T. Leung,et al.  Handbook of Real-Time and Embedded Systems , 2007 .

[9]  Takeo Kanade,et al.  Unifying Theories of Programming , 2010, Lecture Notes in Computer Science.

[10]  John Regehr,et al.  Interrupt Verification via Thread Verification , 2007, Electron. Notes Theor. Comput. Sci..

[11]  Jian Guo,et al.  Binary Code Level Verification for Interrupt Safety Properties of Real-Time Operating System , 2012, 2012 Sixth International Symposium on Theoretical Aspects of Software Engineering.

[12]  Jens Palsberg,et al.  Stack Size Analysis for Interrupt-Driven Programs , 2003, SAS.

[13]  Jens Palsberg,et al.  A Typed Interrupt Calculus , 2002, FTRTFT.

[14]  John Regehr,et al.  Random testing of interrupt-driven software , 2005, EMSOFT.

[15]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[16]  Jan A. Bergstra,et al.  Syntax and defining equations for an interrupt mechanism in process algebra , 1985 .

[17]  Jens Palsberg,et al.  Deadline analysis of interrupt-driven software , 2003, IEEE Transactions on Software Engineering.

[18]  Ted Hills Structured interrupts , 1993, OPSR.