| OCR Text |
Show Introspection makes possible new ways of interaction. Each black box still has inputs and outputs, but an additional channel is provided. Through introspection, a black box can be made transparent for processes that deal with its behavior. This is similar to a human interaction with computers. We can, in principle, break black boxes and look inside and we can do that before or during run time. Process interaction through introspection provides new abstractions to software partitioning. These new abstractions are much more suitable for dealing with the dynamics of processes than black box approach. 3.3 Program Augmentation Applications under the title of program augmentation apply directors to existing programs, executors, in order to increase their performance or to provide new features. Since a director uses extensive knowledge about dynamic executor's behavior, program augmentation can lead to significant improvement over methods that rely on static analysis or runtime support. The task of synchronizing between the director and the executor is entirely the responsibility of the director. In most cases, executors may be completely uncooperative meaning that they do not need to be modified to work with a director. collect _st at isticsO { initializeO; start_executor(); while (executor_is_running()) { if (executor_calls_alloc()) collect_alloc(); if (executor_calls_free()) collect_free(); } print_results(); } ‘ 49 Figure 3.7. A Module to Collect Statistics about Memory Allocation |