z/OS MVS Program Management: User's Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Program object structure

z/OS MVS Program Management: User's Guide and Reference
SA23-1393-00

Program objects have the following structural features:
  • Program object design allows for the removal or increase of most size restrictions, including maximum text size (now 1 gigabyte) and number of control sections (now unlimited).
  • Because program objects never have to reside in a PDS, they can take advantage of PDSE library technology and its many advantages."
  • The program object structure is generalized and extendable. It will continue to change as required to support new functions.
  • Program objects support long names (up to 32767 bytes).
  • Program objects contain many of the same enhancements supported in the Generalized Object File Format (GOFF), which is now being generated by the High Level Assembler and a number of high level languages (as well as the Binder itself). This includes support for C/C++ writeable static.
  • Program objects contain multiple classes of text, distinguished by attributes that control binding and loading characteristics and behavior. Classes are central to C and DLL support.
    • There are two types of classes: text (byte-stream) and nontext (record-like, IDR, ADATA)
    • The separate attributes assigned to each class include:
      • LOAD: the class is brought into memory at the time the module is loaded
      • DEFERRED LOAD: The class is prepared for loading, but not instantiated until requested. (Deferred classes are most frequently used by LE for loading multiple dynamically modifiable copies of data.)
      • NOLOAD: The class is not loaded with the program, for example, it is nontext.
      • RMODE 24/ANY: Indicates placement of segments within virtual storage.
    • A section is the smallest unit that can be manipulated by users (replaced, deleted, ordered). The contribution to a class from a section is called an element; a section may contribute elements to more than one class. Elements (other than parts) may contain entry points.
    • Classes are bound into independently loadable segments. A segment contains classes with compatible attributes. A program object can have multiple segments.
    • The loading characteristics of the class (and segment) determine the placement of the segment in virtual storage. Multisegment program objects can be loaded into noncontiguous areas of virtual storage, for example, when bound with the RMODE(SPLIT) option.
    • Program objects contain a class of data specifically intended for users to save associated or application data (ADATA). It is not loadable (NOLOAD). This data can be source statements, debugging tables, user information, history data, and documentation. It is accessible via the binder Application Programming Interface defined in z/OS MVS Program Management: Advanced Facilities.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014