FORTRAN Reference Manual
Fault-Tolerant Programming
FORTRAN Reference Manual—528615-001
16-3
Processes
Processes
A program is a static set of instruction codes and initialized data. It can be represented
as source statements, such as a FORTRAN program, or as an object program or a run
unit consisting of machine instructions and initialized data. A process is the constantly
changing states of a running program. You can run multiple copies of the same
program file concurrently. Each execution of the program constitutes a separate
process.
A process consists of:
•
A code area that contains the instruction codes to execute; all processes that
execute the same program file in the same processor share the same code area.
•
A data area that contains the program’s variables and temporary storage; each
process has its own data area.
•
A process ID assigned by the operating system.
•
A process control block (PCB), which is used by the operating system to control
execution; the PCB contains pointers to the code and data areas, information on
the current status of the process, and pointers to files opened by the process.
Process Pairs
A process can recover from any hardware failure except a failure of the processor in
which it is running. Therefore, a fault-tolerant process consists of a primary process
and a backup process—called a process pair.
A process pair consists of two executions of the same object program. The primary
process runs in one processor and the backup process runs in another.
Checkpoint messages, sent periodically from the primary process to the backup
process, keep the backup process informed of the status of the primary process and
the data with which it is operating. If the backup process receives a system message
notifying it of the failure of its primary process or the processor in which the primary
process was running, the backup process takes over the role of the primary process
and continues executing instructions, beginning with the FORTRAN statement that
follows the most recent checkpoint that established a takeover point. (All
CHECKPOINT statements do not establish a takeover point.)










