In a processing system that includes a first and a second processor, an indicator arrangement for designating selectively either one of the processors as a primary processor and designating the other processor as a secondary processor, a first main memory included in the first processor and a second main memory included in the second processor, the first and second main memories having the same contents including programs that include the first and second main memories having the same contents including programs that include a first an a second program, fault recovery programs, and shadow fault recover programs comprising selected portions of the fault recover programs, and a first and a second dispatch queue for holding the identities of programs designated for execution by the primary and secondary processor, respectively, and apparatus interconnecting the first and second main memories for automatically updating each main memory with content changes being made in the other main memory, a method of automatically changing system operation transparently to execution of application programs from a first state wherein both processors are active and executing substantially independently of each other programs identified by their respective dispatch queues to a second state wherein the second processor is standing by ready to assume execution of programs and the first processor is active and executing programs selected from programs identified by the first dispatch queue, the method comprising the steps of:
- placing the identity of the first program in the dispatch queue of the second processor to initiate a change of system operation from the first to the second mode;
- commencing to execute the first program only when no interrupted programs are identified by the dispatch queue of the second processor to ensure that any processor state existent in the second processor during the first mode of operation and relating to an application task not completed by the second processor is stored by the second processor in the second processor's main memory and by operation of the memory updating means is copied from the second processor's main memory to the first processor's main memory to be available to the first processor for execution of the related application task during the second mode of operation;
- causing the second program to be executed on the second processor, in response to execution of the first program, the second program being executed without interruption to ensure that a processor state relating to an application task is not formed by the second processor during system transition between the first and second modes of operation;
- interrupting the first processor in response to execution of the second program to cause the first processor to complete the system transition from the first to the second mode of operation;
- stopping the second processor;
- moving identity of programs from the second dispatch queue to the first dispatch queue to designate for execution by the primary processor during the second mode of operation programs designated for execution by the secondary processor during the first mode of operation, in response to the interruption;
- removing the identity of shadow fault recovery programs from the first dispatch queue to avoid during subsequent program execution duplication of activities of the fault recovery programs;
- checking the indicator arrangement to determine whether the first processor is designated the primary processor;
- changing the indicator arrangement to switch the processors designations if the first processor is not designated the primary processor, to cause the first processor to select for execution programs from the first dispatch queue during the second mode of operation;
- and
- continuing to execute on the first processor programs identified by the first dispatch queue, in the second mode of operation.