GDSX (Extended General Device Support) Manual
Design and Development
Extended General Device Support (GDSX) Manual—529931-001
2-13
Memory Management
Suspension of a task is transfer of control to the TSCODE dispatcher, which may then
execute a different task; when the task resumes execution, control is returned to the
instruction immediately following the pseudo call.
Because a USCODE task must execute a statement that gives up control before
TSCODE switches to the next ready task, only these procedures marked with asterisks
plus the TSCODE-supported utility procedures ^CHECKPOINT, DO^CP, FAULT,
STOP^TASK, WAITED^IO[X], and WAIT^EVENT need to be considered when
determining when a task will be suspended.
USCODE must communicate with external requesters by calls to ^READUPDATE[X]
and REPLY[X] on pseudo-$RECEIVE files created and managed by TSCODE for the
DEVICE^HANDLER tasks. See the tutorial in Section 5, DEVICE^HANDLER
Example, Design for details.
Memory Management
Because the working stack images of tasks are swapped to and from an extended data
segment, I/O operations must be performed by means of global buffers, and large
amounts of data local to tasks are best maintained somewhere other than the tasks’
stack images. To facilitate the efficient use of memory by both TSCODE and
* ^DELAY ^SERVERCLASS_DIALOG_BEGIN_
* ^DEVICEINFO2 ^SERVERCLASS_DIALOG_END_
** ^ENDTRANSACTION ^SERVERCLASS_DIALOG_SEND_
** ^FILE_CLOSE_ ^SERVERCLASS_SEND_
** ^FILE_GETINFO_ ^SERVERCLASS_SEND_INFO_
* ^FILE_GETINFOBYNAME_ ^SETMODE
** ^FILE_GETRECEIVEINFO_ ^SETMODENOWAIT
^FILEINFO ^SETMYTERM
* ^FILE_OPEN_ ^SETPARAM
^FNAMEEXPAND ^SIGNALINTERRUPT
^LOCKREC ^SIGNALTIMEOUT
^MYTERM ^UNLOCKREC
** ^NEWPROCESS ^WRITE[X]
* ^OPEN ^WRITEREAD[X]
* ^PROCESS_CREATE_ ^WRITEUPDATE[X]
** ^PROCESS_STOP_ ^WRITEUPDATEUNLOCK[X]
* Procedures that usually cause a task to be suspended.
** Procedures that are waited operations.