gtpi1m5vSystem Installation Support Reference

Structure of the Global Areas

TPF primary globals are located in low main storage between the control program and working storage. The primary global area is divided as follows:

Global area 1 Protected storage

Global area 2 Unprotected storage

Global area 3 Protected storage

Global area 4 (User defined)

Global areas 1, 2, and 3 are called GL1, GL2, and GL3 in the following text.

An extended global area can optionally be specified in high main storage and accessed in 31-bit addressing mode. For systems with more than 16MB of main storage, the extended global area relieves constraints on main storage availability caused by TPF features like MDBF and tightly coupled support.

Figure 4 represents the layout of the global area for a base-only system with a single I-stream, that is, a system with no other subsystems, residing in a uniprocessor. (For a system without extended globals, ignore the top half of the diagram.)

Storage protection limits access to one or more storage locations by preventing writing or reading or both. A storage protection key is an indicator associated with one or more areas of storage. An entry must have a matching key to use a particular area of storage. Thus, an area of storage with a key different from an active entry is protected.

The smallest segment of storage affected by a protection key is 4096 (4KB) bytes. Each global area, therefore, starts on a 4KB boundary and is a multiple of 4KB bytes.

GL2 is assigned the same storage protection key as the active entry control block (ECB). GL1 and GL3 are assigned a different key so that the ECB must issue a macro before any updates can be performed. (Extended global areas have the same protection keys as the respective primary global areas.) After the ECB has completed an update, a second macro must be issued to return the key to its original setting. These 2 macros, GLMOD and FILKW, are discussed in Using the Global Area by Applications.

Global Area 1 (GL1)

The global area begins with the GL1 directory, called GL0BA, which is built as the records are loaded into main storage. The directory consists of a series of pointers. Each pointer in the GL1 directory contains the main storage and file address of a record resident in one of 4 places: GL1, GL2, extended GL1, or extended GL2. A series of data records, usually called global blocks, occupy the storage immediately following the directory. These global blocks are mapped by the DSECTs in GLOBB through GLOBG. Following the global blocks are resident application records. GL1 is a protected area of main storage.

Figure 4. Global Storage Allocation for a Base-Only System with a Single I-Stream


Global Area 2 (GL2)

The GL2 area immediately follows the GL1 area. There is no directory in the GL2 area. The GL1 or GL3 directory has pointers to the records in the GL2 or extended GL2 area.

The GL2 area contains resident application records and special program records. Special program records are concatenations of assembler-produced object decks. They consist of tables, not of executable code. Special program records control the operation of synchronous links. (see TPF Non-SNA Data Communications Reference for information about synchronous link control). They are not necessary for all systems. GL2 is an unprotected area of main storage.

Global Area 3 (GL3)

The GL3 area closely resembles the GL1 area. GL3 begins with the GL3 directory, called GL0BY. The structure of GL0BY is the same as GL0BA, a series of pointers. Each pointer in the GL3 directory contains the main storage and file address of a record resident in one of 4 places: GL3, GL2, extended GL3, or extended GL2. Both GL0BA and GL0BY can contain references to records resident in GL2. As in GL1, the directory is followed by a series of global blocks. These are mapped by the DSECTs in GL0BP and GL0BQ. Resident application records in turn follow the global blocks. GL3 is a protected area of main storage.

Global Area 4

TPF allows for the expansion of globals into a fourth area for which there is no general TPF support. For example, the system generation macro GLOBAL provides parameters that describe only global areas 1, 2, and 3 and their extended-global counterparts, although keypoint A and the SSU table provide space for global area 4 pointers. Also, CCCTIN carves space for the global 4 area if CTKA is altered to declare nonzero values for it. Implementation of a fourth global area is strictly the user's responsibility.