GDSX (Extended General Device Support) Manual
DEVICE^HANDLER Example, Design
Extended General Device Support (GDSX) Manual—529931-001
5-20
Testing Failure at a ^WRITEREAD
support of fault-tolerant applications. Depending on the degree to which USCODE
implements these features, various levels of fault tolerance can be achieved.
Persistent operation is possible without checkpointing by USCODE if a backup CPU is
specified when the GDSX process is started. In this case TSCODE:
•
Starts the backup process and monitors for failures.
•
Checkpoints global information such as control structures.
•
Restarts each task that was active at the time of failure. Tasks are restarted from
the beginning.
•
Starts a new backup process after a failure.
It may be unnecessary to do this part of the tutorial if your GDSX application does not
require fault-tolerance features beyond restarting tasks in case of a takeover by the
backup process. You will probably find it useful, however, if you need to use
TSCODE-supported checkpointing procedures to send stack images or dynamically
allocated memory to the backup process.
This exercise requires three terminals to be designated the TACL terminal, the Inspect
terminal, and the application terminal. Log on to all three terminals.
Testing Failure at a ^WRITEREAD
At the application terminal, pause the TACL process with the PAUSE command. For
this example, the terminal’s device name is $TC1.
At the TACL terminal, use CLEAR ALL if necessary to clear any previously set
parameter values, and enter the following PARAM command:
> PARAM EXTSUSIZE 1
Then run the GDSX example as a process pair by specifying a backup CPU:
> RUN GDSE /NAME $GDS, NOWAIT, CPU primary / backup
where primary and backup are CPU numbers for your system.
See whether the processes have actually been started:
> STATUS *, TERM
Record the CPU and PIN values for the GDSX processes for later reference:
primary-cpu,primary-pin backup-cpu,backup-pin
Start a requester process that will create a DEVICE^HANDLER task under GDSX:
> RUN APPL /NAME $A1, OUT $GDS.#TC1, NOWAIT/
The application terminal should now display a prompt.
At the application terminal, enter a few strings at the requester prompts to confirm that
the system behaves as you previously observed. Then enter some text at the prompt,