Using the interfaces provided on BS2000 systems, shareable parts of the application program units and parts of the runtime systems can be loaded either as shareable programs in nonprivileged subsystems.
The shareable modules must be loaded in the memory by the administrator before the application is started. They can be exchanged while the application is running.
Non-shareable parts of the program units must be created as follows:
The entry point of the program unit (it is in the non-shareable part or in the private slice) must be described in a PROGRAM statement and assigned to a load module there using the LOAD-MODULE operand in the PROGRAM statement.
The load module must be generated with a LOAD-MODULE statement with LOAD-MODE={STARTUP | ONCALL}. The load module or its private slice is loaded dynamically into the local task memory (class 6 memory) at the start of the application program. The links in the shared code are established dynamically using the external references to the shareable modules.
The load modules (OM format) containing the shareable modules of the program unit and the load modules containing the non-shareable program components must not occur together in a program library.
Example
PROGRAM NONSHARE,LOAD-MODULE=NAME1,COMP=ILCS
LOAD-MODULE NAME1,LIB=UTM.PLIB,LOAD-MODE=STARTUP,VERSION=001
NONSHARE
is located in the non-shareable part (for LLMs in the private slice) of the program unit.