Today's programming methodology emphasizes the study of static aspects of programs. In practice, however, monitoring a program in execution, i.e., monitoring a process, is routinely done by any programmer whose task it is to produce a reliable piece of software. There are two reasons why one might want to examine the dynamic aspects of a program: first, to evaluate the performance of a program, and hence to assess its overall behavior; and second, to demonstrate the presence of programming errors, isolate erroneous program code, and correct it. This latter task is commonly called ``debugging a program'' and requires a detailed insight into the innards of a program being executed. Today, many computer systems are being used to measure and control real-world processes. The pace of execution of these systems and their control programs is therefore bound to timing constraints imposed by the real-world process. As a step towards solving the problems associated with execution monitoring of real-time programs, we develop a set of appropriate concepts and define the basic requirements for a real-time monitoring facility. As a test case for the theoretical treatment of the topic, we design hardware and software for an experimental real-time monitoring system and describe its implementation.
[1]
Bernhard Plattner,et al.
Monitoring Program Execution: A Survey.
,
1981
.
[2]
Richard E. Fryer.
The memory bus monitor: a new device for developing real-time systems
,
1973,
AFIPS National Computer Conference.
[3]
J. Nievergelt,et al.
Special Feature: Monitoring Program Execution: A Survey
,
1981,
Computer.
[4]
Robert L. Glass.
Real-time: the “Lost World” of software debugging and testing
,
1980,
CACM.
[5]
Charles A. Witschorik.
The real‐time debugging monitor for the bell system 1A processor
,
1983,
Softw. Pract. Exp..