Dynamic techniques for minimizing the intrusive effect of monitoring actions - Gupta, R.; Spezialetti, M. (Proceedings of 15th International Conference on Distributed Computing Systems, 1995)
Programs written in distributed programming languages are often non-deterministic in nature and hence the execution of such programs is not only dependent upon the program input, but also on the timing of the execution. Thus, an attempt to monitor the run-time behavior of a non-deterministic program through code instrumentation, such as during debugging, can potentially alter the program's behavior. In this paper we present techniques for dynamically minimizing the intrusive effects of monitoring by attempting to ensure that the likelihoods of various outcomes of the non-deterministic events are the same for uninstrumented and instrumented programs. This goal is achieved by minimizing the intrusive effects of monitoring on message passing between processes located at different sites of a distributed system. Monitoring actions alter the message pool at the time of non-deterministic message selection and the order in which the messages arrive at a processor. The dynamic techniques presented in this paper minimize intrusion by restoring the message pool and message ordering.