GDSX (Extended General Device Support) Manual

Design and Development
Extended General Device Support (GDSX) Manual529931-001
2-34
Takeover Processing
The format of this area is:
Each pool image is formatted as:
The last pool entry is a dummy and has a size of zero.
3. The area just constructed is moved to the next available word in the checkpoint
buffer. (Global data may have previously been queued in the buffer.)
4. The task’s stack image and TCB are placed in the checkpoint buffer.
5. The checkpoint buffer is written to brother.
6. The semaphore cpsem is released.
When the backup process receives the checkpoint message, any global data included
is copied to the same address in the backup. The checkpointing task’s stack image is
copied to an extended memory area of size specified by the TASKSIZE configuration
parameter. The backup copies the checkpointed portion of the TCB to the appropriate
location in the TCB pool. The task’s buffer images are copied to the TASKCPSIZE
area in extended memory.
User tasks would overwrite each others data if they were allowed to checkpoint
memory pool buffers directly across to corresponding addresses in memory pools for
the backup process. Suppose, for example:
1. Task 3 owns a buffer at address A and performs a type 2 checkpoint.
2. Task 3 deallocates the buffer at A.
3. Task 6 allocates a buffer at address A.
4. Task 6 performs a type 2 checkpoint.
If buffers were checkpointed directly, the data checkpointed by task 6 would have
overwritten the data checkpointed by task 3. Therefore, pool buffers are checkpointed
to a section of the backup process’s extended memory where each task has a
separate, TASKCPSIZE-sized area for checkpointing. Buffer images are copied, but to
different addresses, outside the memory pools.
Takeover Processing
If there is a takeover, any sync depth specified by external processes when GDSX is
opened has no effect. I/O operations of external requesters are not automatically
cpbuffer.size Total size of the checkpoint record
cpbuffer.task Task number of checkpointer
cpbuffer.data Buffer pool images
size Size of checkpointed data
xaddr Address of data in the primary buffer pool
data Buffer pool data image