FORTRAN Reference Manual

FORTRAN Reference Manual528615-001
16-1
16 Fault-Tolerant Programming
Topics covered in this section include:
When you design an application, you must decide which processes in the application
need to be fault tolerant. A fault-tolerant process actually consists of two processes: a
primary process and a backup process.
If the primary process fails or the processor in which it is running fails, the backup
process takes over the tasks being performed by the primary process and continues
running your program.
Fault-tolerant processes are said to be either NonStop processes or persistent
processes. Both NonStop processes and persistent processes are implemented as
pairs of Guardian processes. FORTRAN treats all process pairs as NonStop
processes.
For each process pair, one process is designated as the primary process, the other as
the backup process. During normal processing, the primary process performs all the
tasks for your program. The backup process does not duplicate the work of the primary
process. System routines, however, transfer information specified by the primary
process to the data areas of the backup process.
A NonStop process is designed such that if its primary process fails, its backup
process has enough of the state of the primary process that the backup process can
continue running your program with minimal impact on a user at a terminal. Even data
at a terminal might be retained in the terminal itself.
A persistent process also runs as a process pair but the primary process sends the
backup process only enough information to enable the backup process to take over
processing if the primary process fails. The backup process, however, does not hold all
the state of the primary process. You might want to use persistent processes if:
You are depending on TMF to protect your transactions and you do not need a
backup process to maintain the integrity of your application.
You do not want any processor time given to managing a backup process, however
minimal the extra time might be.
You want to ensure that the application is always available at a terminal. For
example, if you run a terminal without a command interpreter, a persistent process
ensures that you always have an application screen displayed on your terminal,
Topic Page
Assigning a Process Name
16-2
Processes 16-3
Process Pairs 16-3
Overview of Fault- Tolerant Programs 16-4
Checkpointing 16-6
Starting a New Backup Process 16-12