gtpc3m1vConcepts and Structures

Retain Module Records in Main Storage

In the TPF system, there are techniques used that are ultimately related to the overall objective of performance. Because there is a time delay when accessing data from external storage (such as modules) during which time an Entry is waiting, a performance objective is to minimize the waiting time. A way of minimizing the waiting time is to eliminate it. To this end, there are two mechanisms in the TPF system design that eliminate or minimize I/O accesses:

The term caching has been used in this introduction to emphasize that the TPF support of VFA is a specific instance of a general technique that occurs in other operating systems as well as in other components of the TPF system software and hardware. Within the other TPF system publications the phrase VFA buffer is used instead of VFA cache; VFA buffer is used hereafter.

The evolution of the TPF system to support both forms of multiprocessing (loosely coupled and tightly coupled) has complicated the procedures used in support of VFA and global records. MDBF adds additional complexity.

Virtual File Access (VFA)

Records are identified as VFA candidates in the record ID attribute table (RIAT). If the records associated with a record ID are identified as VFA candidates, one of two procedures must be specified for writing the record to a module in the event the record is modified. Of course, neither procedure is invoked if the record is read-only, because the procedure is triggered only on a file type macro or on a find and hold that generally implies a file request is expected to follow. However, there is no indication in the RIAT to indicate whether or not records are read-only. And read-only records are only a notion imposed by application design, not by the TPF system. So, an application is free to update a read-only record. Therefore, one of the following attributes must be specified despite the intended use of records:

Although the VFA attributes are kept in the RIAT, record sharing tables (RST) are used to keep the information necessary to control the VFA buffers of main storage, such as the reference bits, file addresses, subsystem IDs, and subsystem user IDs.

VFA is always active; in earlier versions of the TPF system, the use of VFA was optional.

User Exit for VFA

Indicating user exit within the RIAT permits an installation-supplied program to access and change the VFA attributes in the RIAT. User exit is a general facility of strategically placed locations in the system where control is given to programs supplied by an installation. One such exit is located in the system support of VFA. If user exit is specified for the records associated with a record ID, an installation-written program receives control at the designated location in the VFA system code, whereupon modifications can be made to the VFA attributes in the RIAT. The installation programs reached through user exits are, in essence, extensions to system programs and must be implemented and used with caution.

Considerations for a Loosely Coupled Complex

The limited lock facility (LLF) provides an efficient locking mechanism for records resident on modules among loosely coupled CPCs. However, LLF does not provide commands that permit synchronization of modifications to records resident in VFA. This limits the set of records that can be resident in VFA in a loosely coupled complex. (LLF provides locking but not synchronization.)

If the multi-path lock facility (MPLF) or coupling facility (CF) is available exclusively, the TPF system supports the synchronization of such a modification to corresponding records in the VFA buffers located in the main storage of the different CPCs in a loosely coupled complex. If a record that is located in the VFA buffers of several CPCs and defined as a VFA synchronization candidate is modified on one CPC, the other CPCs are then notified that an update is being made.

Globals

The TPF system provides an efficient mechanism for accessing data and communicating between application programs, resulting in quick response times even during high system activity, by avoiding delays caused by I/O operations. This mechanism is known as globals, and consists of areas of main storage allocated for use by applications. Typical uses are:

The TPF system provides the GLOBZ macro for applications to access and to possibly modify globals. To preserve the integrity of data in globals, they are also maintained on file storage. Keypointing is used to ensure that data that is modified in the global area is reflected in the main storage global area after a system restart.

The following is a very brief description of globals and concepts within the TPF system. See Figure 47.

Globals within the TPF system are contained in fixed locations in main storage. These locations are identified as global areas (see global areas 1, 2, and 3 in Figure 47). Within the main storage global areas, and also residing on a module (as global blocks), is a logical collection of data known as global records. These records can have various attributes (such as keypointability, SSU uniqueness or commonality, and I-stream uniqueness or commonality). A global record can be subdivided into global fields, which range in size from 1 to 256 bytes, are individually addressable using the GLOBZ macro, and can share many of the attributes of global records. A global directory is used to manage TPF globals. It is a table containing pointers to the main storage and file addresses of global records in global areas 1 and 3.

Globals that reside below the 16-MB boundary and are, therefore, accessible to programs running in 24-bit addressing mode are the primary globals. Extended globals reside in an area of storage defined above the 16-MB boundary. The extended global area greatly increases the amount of main storage available for use as globals. For each primary global area there is a corresponding extended area. A system can be generated with or without extended globals.

Global synchronization is necessary for communication among active I-stream engines in a central processing complex (CPC) across CPCs in a loosely coupled (LC) complex to maintain currency after modifications have been made to global fields and records. Although the TPF system does not automatically perform global synchronization, the SYNCC macro is provided for applications to perform this task. In a CPC with multiple I-stream engines and also in an LC environment, the system interprocessor global table (SIGT) contains the information necessary for controlling the locking, unlocking, and synchronizing of synchronizable globals.

Figure 47. Global Storage Allocation for a TPF Basic Subsystem with a Single I-Stream. Terms labeled GL0xx correspond to the names of assembler DSECTs associated with the areas.


MDBF Considerations

Within a TPF subsystem, a separate global area can be assigned to main storage for each subsystem user. See Figure 48. This implies that names of the global areas are identical for all subsystem users because the programs within a subsystem are shared, and references to the global fields must therefore use the same global names. However, the content of the fields of the same names within the main storage global areas unique to each subsystem user is different during online execution.

Figure 48. Globals. MDBF Considerations


Multiprocessing Considerations

Some records in the global area, shared by all CPCs, are written to a module in order to synchronize shared global records held in the private main storage of several CPCs within a loosely coupled complex. The use of a module for this synchronization also has the effect of keypointing; in this case, processor shared records are written to file storage.

No XLF locking or record synchronization is necessary on keypointable global records, because these records are always processor unique.