gtpc3m10Concepts and Structures

TPF System Program Classifications

Several types of program classifications are used in the TPF system. These program classifications are associated with Entry management and the storage residence of programs during the online operation of the TPF system.

Control Program

Programs that are included in the online environment, other than ECB-controlled programs, are collectively called the control program (formerly known as the core resident control program). Although such programs reside on TPF online file storage for the purpose of system restarts, the programs are assigned to main storage to control the online execution of the TPF system. These programs are link edited together for online execution with the MVS linkage editor (rather than the TPF linkage editor).

Many programs within the control program are reentrant, in the context of simultaneous execution on several I-stream engines. This means that the program is shared among all I-stream engines and the program references data through private registers and Page 0 in the I-stream engine. Such a program can, however, enter a critical region to update data that is shared among all I-stream engines, in which case a processor lock must be invoked when the data is updated. Nevertheless, within an I-stream engine such a reentrant program remains serially reusable; that is, the program runs to completion before being invoked by another Entry on the same I-stream engine.

In a multiple I-stream engine environment, register save areas for a reentrant control program component necessary to make nested subroutine calls are private to an I-stream engine. If save areas were held within the subroutines, as on a uniprocessor, the simultaneous use of such a component could fail unless the save areas were treated as shared data on which locking would be necessary. Such locking would cause prohibitive performance degradation, and frequently make a multiprocessing environment look like a uniprocessor. So, private save areas, also called stacks, are used in the TPF system to maintain reentrancy for control program components across multiple I-stream engines. In some operating systems, stacks are used to allow a routine to make recursive calls to itself. This cannot be done in the TPF system.

A set of pointers to the private stacks is held in Page 0 of each I-stream engine. The stacks are classified according to the control program component that uses the area; for example, the SVC save area.

For example, in the course of invoking the FINDC macro service routine, the macro decoder program initializes the SVC stack pointer (which is register 13, a convention followed by the TPF system), which permits the FINDC macro service routine to make nested subroutine calls. See Figure 23.

Figure 23. Reentrant Stacks


ECB-Controlled Programs

A program that uses an entry control block (ECB) for execution is called an ECB-controlled or E-type program. An ECB-controlled program must fit into a 4KB main storage block (unless it is an ISO-C program) and is invoked by an enter, create, or control transfer macro request. It is released by a back or exit macro request. (Control transfer is discussed under TPF System Control Transfer.)

ECB-controlled programs that are used to perform system services are called system ECB-controlled. User installation defined programs are called application ECB-controlled programs.

In summary, there are:

ECB-controlled programs can be written in high-level assembler, C, or C++ programming language. The program type is identified during the offline load process.