| OCR Text |
Show tion of one machine instruction. Events in the execution stream provide a complete information about the executor's computational behavior. Assuming that each instruction produces at most one word of the result, the size of events is bounded by a small number. Examples of instructions that do not satisfy the assumption and that can produce potentially unbounded or at least large events are instructions that manipulate strings or evaluate polynomials. These instructions change large portions of the state and to capture their effect would require events of a large size. An execution stream can be implemented on processors with complex instruction sets, if the size of an event is variable or if more than one event is emitted for complex instructions. Since instructions of modern RISC processors tend to be simple, they provide good platforms for efficient monitoring. The effect of an instruction is easily captured in an event. The execution of one instruction can be captured in an event with the following values: • the instruction counter, • the program counter, • the address of the result location, • the old value of the result location before the instruction is executed, • the new value of the result location after the instruction is executed, • the instruction executed. This event is emitted by the interpreter for every executed instruction from the executor's program. It is assumed that the addresses of registers are mapped to a predetermined portion of address space. An event contains the values of the instruction counter |