what if we wanted to characterize Powerpoint? Well, I'm running my talk
here under our system. This is an unmodified copy of Powerpoint,
running on Windows and commodity hardware. We have a software layer
between Powerpoint and the underlying platform. In this layer I've
embedded a tool that counts instructions, and its output is displayed in
the window over here, along with some statistics from our core system.
You can see that Powerpoint has executed 500 million instructions so
far. This is not a trivial thing -- Powerpoint is a huge application,
it has multiple threads, many dynamically loaded libraries, even
dynamically generated code.
There are many information gathering tools we could build, from program
characterization to gathering traces for simulation to profiling. And
as long as we're sitting in the application's runtime instruction
stream, what's to stop us from modifying it?