Loading module

from Wikipedia, the free encyclopedia

The term load module (also called phase ) is mostly used in the z / OS (formerly also MVS ) and BS2000 operating systems . The term denotes an executable program stored in a load module library.

In z / OS, a load module library is a PO file ( Partitioned Data Set , PDS ) or an Extended Partioned Data Set ( PDSE ).

A load module is a so-called member of a load module library; if the program is a member of a PDSE, it is also called a program object in z / OS (in BS2000: object program ).

Program objects support extended properties of programs that were not so important in classic MVS:

  • Program size larger than 16 MB
  • Program names longer than eight characters and are case-sensitive
  • Support of DLLs

Generation of a charging module

This is created when a source text (e.g. COBOL , Fortran , C or Assembler ) is translated with the respective compiler (the object code is created , often also referred to as an object module) and then linked with the linker .

An executable program is usually not just a program's object code. As a rule, the linker has to add further program routines or at least information about further program routines (subprograms) to the original object code.

In z / OS parlance, such object code parts are called control sections ( CSECT s for short ). The different control sections of a load module can have been generated by different compilers.

Content of a loading module

A load module contains, on the one hand, the machine code generated by the compilers, but also information that is required to

  • load the program into main memory and execute it:
    • Where should the program be loaded?
    • Where are relative (movable, relocatable ) addresses in the load module ? These are addresses in the program that the compiler generated, but which have to be converted by the loading process to the actual addresses in the main memory before the program is executed.
    • If it is already in memory, can the version in memory be used, or is a new, fresh version needed?
    • Where is the entry point of the program, i.e. H. where should the operating system branch when it wants to hand over execution to the loaded program?
  • edit the program with the linker (linkage editor, binder), e.g. B. to be able to exchange individual program parts.