Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
234 words
In a fault-tolerant computer system having a primary processor and a backup processor, a method for executing a primary replica of a program (primary replica) on the primary processor and a backup replica of the program (backup replica) on the backup processor, the primary processor including a primary replica supervisor interposed between the primary replica and a primary operating system, the backup processor including a backup replica supervisor interposed between the backup replica and a backup operating system, each replica having a process state, the method comprising the steps of: at the primary replica supervisor, intercepting an asynchronous event provided by the primary operating system in response to a system call issued the primary replica; delivering the asynchronous event to the primary replica at an application-relative time that advances as the replica executes independent of the system call to the primary operating system, the asynchronous event causing a process state change at the primary replica (primary state change); sending the intercepted asynchronous event to the backup replica supervisor over a replica coordination communication medium coupling the primary and backup replica supervisors; and delivering the intercepted asynchronous event to the backup replica at the application-relative time, the intercepted asynchronous event causing a process state change at the backup replica (backup state change) such that if the primary processor fails, the backup state change is equivalent to the primary state change as of the application-relative time.
Claim 2
Dependent Claim
234 words
In a fault-tolerant computer system having a primary processor and a backup processor, a method for executing a primary replica of a program (primary replica) on the primary processor and a backup replica of the program (backup replica) on the backup processor, the primary processor including a primary replica supervisor interposed between the primary replica and a primary operating system, the backup processor including a backup replica supervisor interposed between the backup replica and a backup operating system, each replica having a process state, the method comprising the steps of: at the primary replica supervisor, intercepting an asynchronous event provided by the primary operating system in response to a system call issued the primary replica; delivering the asynchronous event to the primary replica at an application-relative time that advances as the replica executes independent of the system call to the primary operating system, the asynchronous event causing a process state change at the primary replica (primary state change); sending the intercepted asynchronous event to the backup replica supervisor over a replica coordination communication medium coupling the primary and backup replica supervisors; and delivering the intercepted asynchronous event to the backup replica at the application-relative time, the intercepted asynchronous event causing a process state change at the backup replica (backup state change) such that if the primary processor fails, the backup state change is equivalent to the primary state change as of the application-relative time.
Claim 3
Dependent Claim
27 words
The method of claim 1 further comprising the step of partitioning execution of the replicas into epochs, each of which contains at least one logical time offset.
Claim 4
Dependent Claim
55 words
The method of claim 2 wherein the application-relative time comprises an epoch and a logical time offset from the beginning of the epoch and wherein the step of partitioning comprises the steps of: instrumenting the replicas to advance the logical time offset; and transferring control to the replica supervisors at a boundary of the epoch.
Claim 5
Dependent Claim
275 words
In a fault-tolerant computer system having a primary processor and a backup processor, a method for executing a primary replica of a program (primary replica) on the primary processor and a backup replica of the program (backup replica) on the backup processor, the primary processor including a primary replica supervisor interposed between the primary replica and a primary operating system, the backup processor including a backup replica supervisor interposed between the backup replica and a backup operating system, each replica having a plurality of threads, the method comprising the steps of: executing each thread of the primary replica to perform acquisitions and releases of exclusive accesses to shared resources (primary acquisitions and releases); at the primary replica supervisor, (i) intercepting the primary acquisitions and releases to identify the thread executed by the primary replica and the shared resources accessed by the primary replica and (ii) permitting performance of the primary acquisitions and releases of the shared resources; sending identities of the executed thread and accessed shared resources to the backup replica supervisor over a replica coordination communication medium coupling the primary and backup replica supervisors; executing each thread of the backup replica to perform acquisitions and releases of exclusive accesses to shared resources (backup acquisitions and releases); at the backup replica supervisor, (i) intercepting the backup acquisitions and releases and (ii) permitting performance of those backup acquisitions and releases to shared resources that correspond to the identified executed thread and accessed shared resources of the primary replica, such that if the primary processor fails, the backup acquisitions and releases are equivalent to the primary acquisitions and releases as of a time prior to the failure.
Claim 6
Dependent Claim
275 words
In a fault-tolerant computer system having a primary processor and a backup processor, a method for executing a primary replica of a program (primary replica) on the primary processor and a backup replica of the program (backup replica) on the backup processor, the primary processor including a primary replica supervisor interposed between the primary replica and a primary operating system, the backup processor including a backup replica supervisor interposed between the backup replica and a backup operating system, each replica having a plurality of threads, the method comprising the steps of: executing each thread of the primary replica to perform acquisitions and releases of exclusive accesses to shared resources (primary acquisitions and releases); at the primary replica supervisor, (i) intercepting the primary acquisitions and releases to identify the thread executed by the primary replica and the shared resources accessed by the primary replica and (ii) permitting performance of the primary acquisitions and releases of the shared resources; sending identities of the executed thread and accessed shared resources to the backup replica supervisor over a replica coordination communication medium coupling the primary and backup replica supervisors; executing each thread of the backup replica to perform acquisitions and releases of exclusive accesses to shared resources (backup acquisitions and releases); at the backup replica supervisor, (i) intercepting the backup acquisitions and releases and (ii) permitting performance of those backup acquisitions and releases to shared resources that correspond to the identified executed thread and accessed shared resources of the primary replica, such that if the primary processor fails, the backup acquisitions and releases are equivalent to the primary acquisitions and releases as of a time prior to the failure.