Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Memory management

&pagelevel(4)&pagelevel

Exit routines occupy the class 4 memory of the privileged system address space in BS2000. They are regarded as a dynamically loadable part of the system and consequently not protected against overwriting.

Task-local memory, e.g. for parameters, can be requested and released in class 5 memory with the aid of the privileged system functions $GETMEM and $RETMEM, respectively.

Global memory must always be reserved as class 4 memory.

Task-local or global memory for the exit routines can be reserved at system generation time with the aid of the class 2 options TASKVECT and SYSVECT; default value: 0 pages; maximum value: 15 pages.

The task vector and system vector are set up after the first call of an exit routine. The task vector is released at LOGOFF or when the task is destroyed; the system vector is retained till shutdown.

The address of the task vector is obtained by calling $TANC with the operands FUNCT=READ and OWNER=SYSEXIT. The address of the system vector is obtained by calling $SANC with the operands FUNCT=READ and OWNER=SYSEXIT. The fields ETCBSEXP (TCB) and EXVTSEXP (EXVT) should not be accessed directly. For further details, see the “Developer’s Handbook ”.

The length of each vector expressed in bytes is stored in the first half-word of the vector. Since bit 215 is set for vector lengths greater than 7 pages, the Assembler instruction LH cannot be used when loading the length in a register.

The system vector and the task vector are used by all exits; access coordination is the responsibility of the exit programmer or systems support.

It is the user’s responsibility to avoid memory bottlenecks caused by the use of task and system vectors or by $REQM or by the exit routines residing in class 4 memory.