Thesis available: Program Monitoring

Harish Patil <>
29 Jan 1997 11:21:02 -0500

          From comp.compilers

Related articles
Thesis available: Program Monitoring (Harish Patil) (1997-01-29)
| List of all articles for this month |

From: Harish Patil <>
Newsgroups: comp.compilers
Date: 29 Jan 1997 11:21:02 -0500
Organization: Compilers Central
Keywords: report, available, performance

Hello everyone:

  I am glad to announce that my Ph.D. thesis, titled "Efficient Program
  Monitoring Techniques", is available on-line. This thesis was
  completed under the supervision of Prof. Charles Fischer at the
  department of Computer Sciences, University of Wisconsin --Madison.
  The thesis is available as technical report # 1320. Please check it
  out at the URL:
  An abstract of the thesis follows.


Efficient Program Monitoring Techniques
Programs need to be monitored for many reasons, including performance
evaluation, correctness checking, and security. However, the cost of
monitoring programs can be very high. This thesis contributes two
techniques for reducing the high execution time overhead of program
monitoring: 1) customization and 2) shadow processing. These
techniques have been tested using a memory access monitoring system
for C programs.

"Customization" reduces the cost of monitoring programs by decoupling
monitoring from original computation. A user program can be customized
for any desired monitoring activity by deleting computation not
relevant for monitoring. The customized program is smaller, easier to
analyze, and almost always faster than the original program. It can be
readily instrumented to perform the desired monitoring. We have
explored the use of program slicing technology for customizing C
programs. Customization can cut the overhead of memory access
monitoring by up to half.

"Shadow processing" hides the cost of on-line monitoring by using idle
processors in multiprocessor workstations. A user program is
partitioned into two run-time processes. One is the main process
executing as usual, without any monitoring code. The other is a shadow
process following the main process and performing the desired
monitoring. One key issue in the use of shadow process is the degree
to which the main process is burdened by the need to synchronize and
communicate with the shadow process. We believe the overhead to the
main process must be very modest to allow routine use of shadow
processing for heavily-used production programs. We therefore limit
the interaction between the two processes to communicating certain
irreproducible values. In our experimental shadow processing system
for memory access checking the overhead to the main process is very
low - almost always less than 10%. Further, since the shadow process
avoids repeating some of the computations from the main program, it
runs much faster than a single process performing both the computation
and monitoring.

Harish Patil: Massachusetts Language Lab - Hewlett Packard
Mail Stop CHR02DC, 300 Apollo Drive, Chelmsford MA 01824
Phone: 508 436 5717 Fax: 508 436 5135 Email:

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.