For example, it is possible to boot the operating system and start-up the application workload using the fast CPU simulator and then switch to the detailed simulator when a point of interest is reached. By supporting both high speed and high detail, SimOS can apply the detail in places where it would be infeasible to simulate with the detailed simulator alone. Although it is frequently possible to use the fast simulation modes of SimOS to position a workload to an arbitrary point in the execution, SimOS supports a more convenient mechanism called a checkpoint. Checkpoints contains all the simulated machine state taken in one consistent snapshot during the simulation execution. SimOS supports the ability to load the machine state from the checkpoint allowing the simulated execution to start at an arbitrary place without large amounts of simulator execution time.
Checkpoints are useful when the same part of a workload needs to be executed multiple times.
Examples include architectural studies where different machine parameters are tried with the same execution and operating system debugging where the same problematic behavior can be studied in detail. Although it is trivial to instrument SimOS's simulation models to non-intrusively collect statistics about how the model is behaving, this kind of information is often at too low of level. It is necessary for SimOS to record these statistics based on user-specified classifications rather than simply the state of the simulated hardware when it occurred. For example, an operating system developer might want to separate out the time spent in the operating system's idle loop from other kernel activity since it has radically different behavior. To build knowledge of the workload into the simulator in a general and flexible way, SimOS contains a TCL scripting language interpreter.