gtps4m19 | System Generation |
Some system records that are essential for system restart are placed in a special area on the online disk modules, called the permanent record area. The permanent record area is unique because the data does not adhere to the structure of a general file, a general file data set, a fixed file, or a pool file.
The permanent record area includes the system programs necessary to start the IPL process. The IPL bootstrap program itself and the volume serial number (VSN) are placed on file storage by a standard MVS utility program (ICKDSF).
Closely associated with the permanent record area is the IPL area, core image restart area and the system keypoints, which are no longer physically located in the permanent record area itself. The ability to IPL the system relies on the ability to IPL a module that contains the permanent record area plus the IPL area, core image restart area, and system keypoints. The system operator may restart (IPL) the system by using any one of the modules of the first DASD device type in addition to IPLing from either the IPL prime or duplicate modules. The modules of the first DASD device type must be the same device type as the IPL prime and duplicate modules; The number of modules that can be IPLed are defined by the IPLABLE parameter on the ONLFIL macro.
The permanent record area is also made up of the 2 bootstrap records in addition to the volume serial number record. The permanent record area is loaded on the loader general file and the online modules by means of an MVS utility program (ICKDSF). The online modules are also formatted by means of the TPF offline formatter program (FMTR). These MVS initialization procedures are done before the initial IPL function.
The loader general file module is initialized and formatted with JCL provided by the SIP Stage II job stream. The online modules must be initialized and formatted by the user as a separate MVS procedure. The JCL necessary to do this is also provided in the SIP Stage II output. The format cards for the online modules are output by the FACE table generator. Support for the loader general file is unique from the standard general file support. The loader general file is not defined with a SIP GENFIL macro as are all other general file data sets. The SIP GENSIP macro parameters, VOLNLGF and LGFDV, are used to specify the loader general file volume serial number and device type, respectively.
Keypoint records are initially loaded during the IPL sequence by the general file loader online segment (ACPL) on the first prime module (this is the first module in the file status table) and also its duplicate module, if a duplicate module is indicated in the file status table.
The addresses of the areas in the permanent record area are generally
imbedded in the keypoints and in the programs of the restart sequence. Table 11 provides a list of these areas and their permanent file
addresses.
Table 11. Permanent Record Area Layout of the Restart Area
Cylinder | Track | Record | Record Type |
---|---|---|---|
0 | 0 | 1 | In the Loader General File a standard 24-byte MVS bootstrap record is written using the device support facility (ICKDSF) utility program. In all the online modules the TPF bootstrap record is written using the TPF General File Loader (ACPL). In both cases the bootstrap record is known as IPL1. |
0 | 0 | 2 | The second MVS bootstrap record (IPL2) is also loaded by the MVS ICKDSF utility program on the Loader General File, and later replaced on all online modules by the TPF IPL2 record. |
0 | 0 | 3 | The volume label is initialized by the ICKDSF utility program on all modules. |
0 | 0 | 4 | The IPL program (IPLA) is written by the MVS ICKDSF utility program on the Loader General File only. The record does not exist in the online modules. The Image Pointer Record (CTKX) references IPLA in the online modules. |
0 | 1 | 1 | 1KB of space is reserved for migration purposes for the former CTKX pointer. |
0 | 1 | 2 | The image control record (ICR) is written and initialized by ALDR with the first image entry being defined as primary. |
The remainder of the core image area, including the image pointer record (CTKX) and the keypoints, are loaded by the general file loader online segment (ACPL).
Records in the core image area are not spread evenly across DASD modules like data records and other programs. Rather, the core image is loaded to a defined area on each module until the defined area is full and then overflows to the same area on the next disk. Note that #CTKX, #CIMRx, #IPLx, and #KEYPT are vertical records.
The core image restart area includes the following components:
The record size for the CIMR components is 4K. Therefore, knowing the size of the control program, Program Allocation Table (IPAT), FACE Table (FCTB), Record ID Attribute Table (RIAT), System Interprocessor Global Table (SIGT), In-Core Dump Formatter (ICDF), Online General File Loader (ACPL), and so forth, you can determine the number of records required. SIP calculates the relative record number of each core image area component and initializes the image pointer record (CTKX) with these values.
Table 12 shows how to calculate the number of #CIMR
records. Users need to determine the number of records to code for
#IPLx, #CIMR, and so on. This information is
provided in Table 18. The sizes noted were obtained from the TPF
development test system and are only provided for the purpose of preliminary
estimates. It is not necessary for the purpose of system design to know
the exact sizes, but a reasonable estimate is required.
Table 12. Online Restart Area Work Sheet (BSS or BSS in an MDBF System)
Core Image Program | Approximate Size (Bytes) | Notes |
---|---|---|
CPS0 | 1 048 576 | 2 |
IPAT | 520 000 | 5 |
ICDF | 83 172 | |
ACPL | 20 000 | |
SIGT | 1 860 | 3 |
RIAT | 12 080 | 4 |
FCTB | 79 464 | 1 |
USR1 | 2 | IBM default. The actual size depends on user-defined inputs. |
USR2 | 2 | IBM default. The actual size depends on user-defined inputs. |
Subtotal | 1 613 772 | |
|
If you have a 10 prime module system (with 10 dupes) and you want 1 prime and 1 backup, copy the #CIMR1 code with 52 records. (52 × 10 >= 515)
Notes:
IPLA requires 4 #IPLx ordinals. IPLB can be assembled and its size can be obtained from the assembly. This size should be increased by 30% and the new size should be divided by 4079 to calculate the number of ordinals to allocate to #IPLx.
#CIMRx ordinals can be calculated by running a full SIP and inspecting SKGTSZ. This SIP-created segment contains the sizes of all the CIMR components. Add 30% to the total size in bytes and then divide by 4079 to determine the number of ordinals.