As the use of concurrent and concurrent real-time software systems in safety-critical applications becomes widespread, the verification of their correctness has become an important concern. Unfortunately, analysis of these systems has been stymied by the explosive number of states they possess. The constrained expression approach, which uses an inequality-based technique to avoid the enumeration of these states, showed promise for analyzing large systems, but was incapable of verifying many important properties of interest to designers. For example, properties involving the order of the events in a concurrent system (e.g., mutual exclusion) could not be verified since the inequalities did not capture this information, nor could the technique verify liveness properties, since these require reasoning about infinite executions. I have developed extensions to this inequality-based technique that allow the verification of these more complex properties. In addition, I have completely automated an earlier extension of this technique for deriving bounds in concurrent real-time systems run on a uniprocessor and I have extended this technique to the maximally-parallel multiprocessor setting. Most importantly, I have demonstrated the feasibility of these extensions by implementing them in an automated tool and using this tool to analyze several sample systems.
Cited By
- Bouajjani A, Esparza J and Touili T A generic approach to the static analysis of concurrent programs with procedures Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (62-73)
- Bouajjani A, Esparza J and Touili T (2003). A generic approach to the static analysis of concurrent programs with procedures, ACM SIGPLAN Notices, 38:1, (62-73), Online publication date: 15-Jan-2003.
- Avrunin G, Corbett J, Dillon L and Wileden J (2019). Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems, IEEE Transactions on Software Engineering, 20:9, (708-719), Online publication date: 1-Sep-1994.
- Corbett J and Avrunin G A practical technique for bounding the time between events in concurrent real-time systems Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis, (110-116)
- Corbett J and Avrunin G (1993). A practical technique for bounding the time between events in concurrent real-time systems, ACM SIGSOFT Software Engineering Notes, 18:3, (110-116), Online publication date: 1-Jul-1993.
- Corbett J Identical tasks and counter variables in an integer programming-based approach to verification Proceedings of the 7th international workshop on Software specification and design, (100-109)
Index Terms
- Automated formal analysis methods for concurrent and real-time software
Recommendations
Concurrent software verification with states, events, and deadlocks
AbstractWe present a framework for model checking concurrent software systems which incorporates both states and events. Contrary to other state/event approaches, our work also integrates two powerful verification techniques, counterexample-guided ...