Patent ID: 8195984

Claim:
A system for executing an application program, comprising: an execution machine configured to execute one or more code segments of the application program; a first probe machine configured to execute one or more code segments of the application program; a scheduler that coordinates execution of the code segments on the execution machine and execution of the code segments on the first probe machine, wherein execution of a code segment on the execution machine is within a predetermined time interval behind execution of same code segment on the first probe machine; wherein the first probe machine is configured to detect a software failure in a failed code segment, to determine a correction for the software failure, and to notify the scheduler of the correction; and wherein the scheduler applies the correction to the execution machine prior to the execution machine executing the code segment experiencing the software failure and arranges for checkpoints of the first probe machine to be saved at predefined time intervals; further comprising: a second probe machine configured to recover the first probe machine at a checkpoint prior to the software failure and to detect and correct the software failure.