Pool file storage

Application programs obtain pool file record addresses by issuing a get file storage (GFS) type macro. The application then can store data in the record that is referenced by the file address for the appropriate period. The application returns the file address for a pool record to the system by issuing a release file storage (RFS) type macro.

Pool file storage is managed through the use of pool directories built by offline programs and assigned to online system residency by special programs invoked in an initial system restart. There are several types of file pools based upon the attributes of:
  • Longevity (long or short term)
  • Record size (381, 1055, or 4095 bytes)
  • Duplication (yes or no)
  • File address format.

The various types of pools may be considered as system record types. Each type of pool is allocated some maximum number of records (usually a very large number). The base addresses of the various pool types are identified in the SYCON macro which is generated by FCTBG, and are held in keypoints during online execution for the use of the get file storage macros. The space required for the pools is accounted for in the FACE table.

Rather than maintain a unique space consuming a file address for each record, the system maintains a bit indicator in a pool directory. Each record within a pool type is indicated with a bit (for example, 0 or 1). The relative position of a bit within a directory determines an ordinal number within a pool type, shown in Figure 1. Upon a request for file storage, the GFS macro interpreter scans the directory for a 1. Upon a match, the relative position number within the directory is used as an ordinal number and the bit is switched to zero. A release file storage macro interpreter switches the availability bit of a short-term pool record back to a one. In the case of a release, a FARF address must be converted into a relative bit position in a directory.

FARF address references in the pool area are generated by the get file storage facility. The resulting address is passed to the requesting program. This is the address to be referenced as a parameter of the FIND and FILE macro requests. The FIND and FILE macro interpreters perform the additional translation necessary to obtain the physical module number by using the FACE Table. Therefore, pool addresses, as well as fixed file addresses are independent of a change to online disk pack hardware addresses (for example, the system operator may have a need to bind a symbolic module number to different hardware addresses during online system activity).
Figure 1. Sample file pool directory
Alternative text description not available.
File pool records are classified according to the attributes of size, duplication, and length of intended use. The following basic pool types are supported:
  • Small, short-term pool (SST)
  • Small, long-term pool (SLT)
  • Small, long-term duplicate pool (SDP)
  • Large, short-term pool (LST)
  • Large, long-term pool (LLT)
  • Large, long-term duplicate pool (LDP)
  • 4 KB short-term pool (4ST)
  • 4 KB short-term FARF6 pool (4S6)
  • 4 KB long-term pool (4LT)
  • 4 KB long-term duplicate pool (4DP)
  • 4 KB long-term duplicate FARF6 pool (4D6)

All pool records are duplicated in a completely duplicated file system. Only long-term pool records may be duplicated in a partially duplicated file system.

Pool records are not loaded like fixed records since the pool records are only used during execution of the online system. However, the directories which control the use of this area are loaded in the fixed file area by the online directory generation programs.

The recommended way to acquire pool addresses is by use of the GETFC macro, supplying the desired pool record ID only. The system then determines from the record ID attribute table (RIAT) the pool type and size (small, large, or 4 KB) required. The next available pool record of the requested type is assigned to the operational program. The program must then record the address of the record in order to later find the data it has inserted in it. Duplicates are obtained in the same manner as duplicated fixed file data records. (See z/TPF General Services for more information about the GETFC macro.)

After fixed file requirements and their location on file have been determined, the remaining file space is available for assignment of file pool storage.

The considerations that should be taken into account in the assignment of file area for pool usage are:
  • Requirements for a given pool can only be estimated at system initialization time. It is suggested that not all available pool space be allocated at system initialization, but some area be held in reserve for later addition to a given pool as dictated by actual needs.
  • A particular pool type does not have to consist of only one contiguous interval on disks. Pool segments are supported in which different areas of disks are tied together as one pool through the directory scheme.