Report Number: CSL-TR-90-425
Institution: Stanford University, Computer Systems Laboratory
Title: Concurrent runtime monitoring of formally specified programs
Author: Mandal, Manas
Author: Sankar, Sriram
Date: April 1990
Abstract: This paper describes an application of formal specifications
after an executable program has been constructed. We describe
how high level specifications can be utilized to monitor
critical aspects of the behavior of a program continuously
while it is executing. This methodology provides a capability
to distribute the monitoring of specifications on
multi-processor hardware platforms to meet practical time
constraints.
Typically, runtime checking of formal specifications involves
a significant time penalty which makes it impractical during
normal production operation of a program. In previous
research, runtime checking has been applied during testing
and debugging of software, but not on a permanent basis.
Crucial to our current methodology is the use of
multi-processor machines - hence runtime monitoring can be
performed concurrently on different processors. We describe
techniques for distributing checks onto different processors.
To control the degree of concurrency, we introduce
checkpoints - a point in the program beyond which execution
cannot proceed until the specified checks have been
completed. Error reporting and recovery in a multi-processor
environment is complicated and there are various techniques
of handling this. We describe a few of these techniques in
this paper.
An implementation of this methodology for the Anna
specification language for Ada programs is described. Results
of experiments conducted on this implementation using a 12
processor Sequent Symmetry demonstrate that permanent
concurrent monitoring of programs based on formal
specifications is indeed feasible.
http://i.stanford.edu/pub/cstr/reports/csl/tr/90/425/CSL-TR-90-425.pdf