Link and load modules (LLMs) are generated by the linkage editor BINDER and are stored as type L elements in program libraries or in PAM files. LLMs in PAM files are designated as PAM-LLMs. Compilers (such as C compilers) can also generate LLMs and then store them in program libraries (see the manuals for the compilers for details).
The logical structure of an LLM is implemented in the form of a tree. The root of this tree is located in the internal name of the LLM with which BINDER identifies the LLM. Nodes are sub-LLMs which are arranged hierarchically in levels. Object modules form the lowest level (leaves) of the logical structure of an LLM. The element name and element version of the LLM stored as a library element (type L) are used for external identification of the LLM. In the case of PAM-LLMs, the name of the PAM file is used for external identification.
In addition to its logical structure, an LLM also has a physical structure. The object modules of an LLM consist of control sections, the CSECTs, which can be loaded separately into main memory. The CSECTs of one or more OMs are combined into a slice. A slice is thus a loadable unit for DBL.
There are three types of physical structures for an LLM:
An LLM with a single slice (the entire LLM is loaded into memory in one load operation).
An LLM with slices by attributes:
CSECTs which have the same attributes (READ-ONLY, RESIDENT, PUBLIC, RMODE) are combined into one slice (not permitted with PAM-LLMs).An LLM with user-defined slices:
The user specifies the positions of the slices. This permits the user to generate overlay structures (with PAM-LLMs up to 16 slices).
A detailed description of LLMs, their identification and their logical and physical structure can be found in the manual “BINDER” [1].