An engine is a continuation-based construct that provides timed preemption.
To implement timed preemption there needs to be a clock.
This clock can measure real time or simulated time.
Simulated time can be implemented in a language like Scheme, by making each function start with decrementing the clock.
This computer science article is a stub.