When a program
in supervisor state uses
the LOAD macro to bring a copy of the load module into virtual storage,
it can use one of three parameters to specify where the control program
is to load the module:
The GLOBAL=YES and GLOBAL=(YES,F) parameters should be used
only by programs running in address spaces that never terminate or
to load non-executable load modules. A module is loaded into global
storage so it can be shared among tasks in different address spaces.
If the address space containing the program that loaded the module
terminates, the loaded module is deleted and other users of this module
could attempt to run a program that is no longer in storage.
Note: If you determine the amount of storage required to
hold a loaded module using the module length returned from the BLDL
macro in the PDS2 data area field PDS2STOR, this will no longer work
for program objects exceeding 16 megabytes. The PDS2STOR field is
only 3 bytes in length, and it cannot denote any program length greater
than 16 megabytes. You can determine if a program object exceeds
16 megabytes by inspecting the PDS2BIG bit of the PDS2 data area.
If the PDS2BIG bit is set on, the program object is greater than
16 megabytes, and the 4-byte PDS2VTSR field contains the amount of
storage required to hold a loaded program object greater than 16 megabytes.
If the PDS2BIG bit is set off, use the PDS2STOR field to determine
the size of storage required.
If you do not use ADDR, ADRNAPF, or GLOBAL=YES (that is, you use
GLOBAL=NO or take the default), the control program loads the module
in subpool 244 or subpool 251, unless the following three conditions
are true:
- The module is reentrant
- The library is authorized
- You are not running under TSO/E test
In this case, the control program places the module in subpool
252. When choosing between subpools 244 and 251. the control program
uses:
- Subpool 244 only when within a task that was created by ATTACHX
with the KEY=NINE parameter
- Subpool 251in all other cases
Subpool 244 is not fetch protected and has a storage key equal
to your PSW key. Subpool 251 is fetch protected and has a storage
key equal to your PSW key. Subpool 252 is not fetch protected and
has storage key 0.
When a program is in problem state,
the control program brings the copy of the load module in subpool
251, with one exception. If the module is reentrant, the library
is authorized, and you are not running under TSO TEST, the control
program places the module in subpool 252.