Time-bounded analysis of real-time systems

Real-Time Embedded Software (RTES) constitutes an important sub-class of concurrent safety-critical programs. We consider the problem of verifying functional correctness of periodic RTES, a popular variant of RTES that execute periodic tasks in an order determined by Rate Monotonic Scheduling (RMS). A computational model of a periodic RTES is a finite collection of terminating tasks that arrive periodically and must complete before their next arrival. We present an approach for time-bounded verification of safety properties in periodic RTES. Our approach is based on sequentialization. Given an RTES C and a time-bound W, we construct (and verify) a sequential program S that over-approximates all executions of C up to time W, while respecting priorities and bounds on the number of preemptions implied by RMS. Our algorithm supports partial-order reduction, preemption locks, and priority locks. We implemented our approach for C programs, with properties specified via user-provided assertions. We evaluated our tool on several realistic examples, and were able to detect a subtle concurrency issue in a robot controller.

[1]  Miguel Felder,et al.  Verification of real-time designs: combining scheduling theory with automatic formal verification , 1999, ESEC/FSE-7.

[2]  Daniel Kroening,et al.  A Survey of Automated Techniques for Formal Software Verification , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[3]  Salvatore La Torre,et al.  Reducing Context-Bounded Concurrent Reachability to Sequential Reachability , 2009, CAV.

[4]  Rajib Mall Real-Time Systems: Theory and Practice , 2009 .

[5]  Zvonimir Rakamaric,et al.  Delay-bounded scheduling , 2011, POPL '11.

[6]  Philippe Schnoebelen,et al.  Efficient timed model checking for discrete-time systems , 2006, Theor. Comput. Sci..

[7]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[8]  Dragan Bosnacki,et al.  Improving Spin's Partial-Order Reduction for Breadth-First Search , 2005, SPIN.

[9]  Dinghao Wu,et al.  KISS: keep it simple and sequential , 2004, PLDI '04.

[10]  George C. Necula,et al.  CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs , 2002, CC.

[11]  Alan J. Hu,et al.  Context-Bounded Translations for Concurrent Software: An Empirical Evaluation , 2010, SPIN.

[12]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[13]  Ofer Strichman,et al.  Bounded model checking , 2003, Adv. Comput..

[14]  Jan Vitek,et al.  One Stack to Run Them All - Reducing Concurrent Analysis to Sequential Analysis under Priority Scheduling , 2010, SPIN.

[15]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[16]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[17]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[18]  Chao Wang,et al.  Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique , 2009, CAV.

[19]  Thomas W. Reps,et al.  Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis , 2008, CAV.

[20]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[21]  Alan Burns,et al.  Applying new scheduling theory to static priority pre-emptive scheduling , 1993, Softw. Eng. J..

[22]  John B. Goodenough,et al.  Generic Avionics Software Specification , 1990 .