Transaction Processing Facility
Encyclopedia
TPF is an IBM real-time operating system
for mainframes
descended from the IBM System/360
family, including zSeries
and System z9
. The name is an initialism for Transaction Processing Facility.
TPF evolved from the Airlines Control Program
(ACP), a free package developed in the mid-1960s by IBM in association with major North American and European airlines. In 1979, IBM introduced TPF as a replacement for ACP — and as a priced software product. The new name suggests its greater scope and evolution into non-airline related entities.
Current users include Sabre
(reservations), Amadeus (reservations), VISA Inc
(authorizations), American Express
(authorizations), EDS SHARES (reservations), Holiday Inn
(central reservations), CBOE (order routing), Singapore Airlines
, KLM, Garuda Indonesia
, Amtrak
, Marriott International
, Travelport
and the NYPD (911 system).
TPF delivers fast, high-volume, high-throughput transaction processing, handling large, continuous loads of essentially simple transactions across large, geographically dispersed networks. The world's largest TPF-based systems are easily capable of processing tens of thousands of transactions per second. TPF is also designed for highly reliable, continuous (24x7) operation. It is not uncommon for TPF customers to have continuous online availability of a decade or more, even with system and software upgrades. This is due in part to the multi-mainframe operating capability and environment.
While there are other industrial-strength transaction processing system
s, notably IBM's own CICS
and IMS
, TPF's raison d'être is extreme volume, large numbers of concurrent users and very fast response times, for example VISA credit card
transaction processing during the peak holiday shopping season.
TPF implements an application known as PARS. Many airlines use this passenger reservation application or its international version IPARS. TPF was traditionally a 370 assembly language
environment for performance reasons, and many TPF assembler applications persist. However, more recent versions of TPF encourage the use of C
. Another programming language
called SabreTalk
was born and died on TPF. One of TPF's major components is a high performance, specialized database facility called TPFDF.
It is common for TPF sites to also use other IBM mainframe operating systems, such as z/OS
and z/VM
, for offline and complementary processing. It is also possible to run a close cousin of TPF, called ALCS
, atop z/OS rather than as a separate operating system. All these operating systems usually coexist on the same physical hardware since IBM mainframes feature multiple ways of partitioning, to handle mixed workloads.
IBM announced the delivery of the next release of TPF, dubbed z/TPF V1.1, in September 2005. Most significantly, z/TPF adds 64-bit addressing and mandates use of the 64-bit GNU
development tools. The GCC compiler
and the DIGNUS Systems/C++ and Systems/C are the only supported compilers for z/TPF. The Dignus compilers offer reduced source code changes when moving from TPF 4.1 to z/TPF. Japan Airlines has publicly acknowledged they are running z/TPF.
, that is, on mainframe systems in which there is more than one CPU. Within the community, the CPUs are referred to as Instruction Streams or simply I-streams. On a mainframe or in a logical partition (LPAR) of a mainframe with more than one I-stream, TPF is said to be running tightly-coupled.
Due to the reentrant nature of TPF programs and the control program, this is made possible as no active piece of work modifies any program. The default is to run on the main I-stream which is given as the lowest numbered I-stream found during IPL. However users and/or programs can initiate work on other I-streams via internal mechanisms in the API which let the caller dictate which I-stream to initiate the work on. In the new z/TPF, the system itself will try to load balance by routing any application that does not request a preference or affinity to I-streams with less work than others.
In the TPF architecture, each I-stream shares common core, except for a 4Kb in size prefix area for each I-stream. In other instances where core data must or should be kept separate, the application designer typically carves up reserved storage areas into a number of sections equal to the number of I-streams. A good example of the TPF system doing this can be found with TPFs support of I-stream unique globals. Proper access to these carved sections of core are made by taking the base address of the area, and adding to it the product of the I-stream relative number times the size of each area.
system would be two IBM mainframes sharing one DASD (Direct Access Storage Device
). In this case the control program would be equally loaded into core and each program or record on DASD could be potentially accessed by either mainframe.
In order to serialize accesses between data records on a loosely coupled system, a practice known as Record locking
must be used. This means that when one mainframe processor obtains a hold on a record, the mechanism must prevent all other processors from obtaining the same hold and communicate to the requesting processors that they are waiting. Within any tightly coupled system this is easy to manage between I-streams via the use of the Record Hold Table. However when the lock is obtained offboard of the TPF processor in the DASD control unit, an external process must be used. Historically the record locking was accomplished in the DASD control unit via an RPQ known as LLF (Limited Locking Facility) and later ELLF (extended). LLF and ELLF were both replaced by the Multipathing Lock Facility (MPLF). To run clustered (loosely-coupled) zTPF requires either MPLF in all disk control units or an alternative locking device called a Coupling Facility. http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.hcpf2/hcsf9b3153.htm http://www-01.ibm.com/support/docview.wss?uid=swg27007957
process are those which are processor shared. In TPF most record accesses are done by using record type and ordinal. So if you had defined a record type in the TPF system of 'FRED' and gave it 100 records or ordinals, then in a processor shared scheme record type 'FRED' ordinal '5' would resolve to exactly the same file address on DASD - clearly necessitating the use of a record locking mechanism.
All processor shared records on a TPF system will be accessed via exactly the same file address which will resolve to exactly the same location.
). TPF's built-in user interface is line driven with simple text screens that scroll upwards. There are no mice, windows, or icons on a TPF Prime CRAS. All work is accomplished via the use of typed one or two line commands, similar to early versions of UNIX
before X
. There are several products available that connect to the Prime CRAS and provide graphical interface functions to the TPF operator, for example the TPF Operations Server. Graphical interfaces for end-users are typically provided through PC based functions.
TPF also does not include a compiler/assembler, text editor, or the concept of a desktop. TPF application source code is typically kept in PDSs on a z/OS system. However, some previous installations of TPF kept source code in z/VM
-based files and used the CMS update facility to handle versioning. Currently the z/OS compiler/assembler is used to build TPF code into object modules, producing load files that the TPF "online system" can accept. Starting with z/TPF 1.1, Linux
will be the build platform.
Using TPF requires an intimate knowledge of the Operations Guide since there is no shipped support for any type of online command "directory" that you might find on other platforms. Commands created by IBM and shipped by IBM for the running and administration of TPF are referred to as "Z-messages" as they are all prefixed with the letter "Z." Other letters are reserved so that customers may write their own commands.
TPF has extremely limited capability to debug itself. Typically third party software packages such as IBM
's TPF Tool Kit or Step by Step Trace from Bedford Associates or CMSTPF,TPF/GI,zTPF/GI from TPF Software Inc. are employed to aid in the tracing and tracking of errant TPF code. Since TPF can run as a second level guest under IBM's z/VM, a user can employ the VM trace facility to closely follow the execution of code. TPF will allow certain types of function traces to operate and dump their data to a tape, typically through user exits that present parameters to a called function or perhaps the contents of a block of storage. There are some other types of trace information that TPF can collect in core while running, and this information gets "dumped" whenever the system encounters a severe error.
Today, much of these limitations are removed. In fact, only because of legacy support are smaller than 4K DASD records still used. With the advances made in DASD technology, a read/write of a 4K record is just as efficient as a 1055 byte record. The same advances have increased the capacity of each device so that there is no longer a premium placed on the ability to pack data into the smallest model as possible.
Before z/TPF, all assembler language programs were limited to 4K in size. Assembler is a more space-efficient language to program in so a lot of function can be packed into relatively few 4K segments of assembler code compared to C in 4K segments. However, C language programming is much easier to obtain skilled people in, so most if not all new development is done in C. Since z/TPF allows assembler programs to be repackaged into 1 logical file, critical legacy applications can be maintained and actually improve efficiency - the cost of entering one of these programs will now come at the initial enter when the entire program is fetched into core and logical flow through the program is accomplished via simple branch instructions, instead of a dozen or so IBM instructions previously needed to perform what is known as 'core resident enter/back'.
Physical memory was carved into sections reserved for each size so a 1055 byte block always came from a section and returned there, the only overhead needed was to add its address to the physical block table's proper list. No compaction or data collection was required.
As applications got more advanced demands for more core increased and once C became available, memory chunks of indeterminate or large size were required. This gave rise to the use of heap storage and of course some memory management routines. To ease the overhead, TPF memory was broken into frames - 4K in size (and now 1Mb in size with z/TPF). If an application needed a certain number of bytes, the number of contiguous frames required to fill that need were granted.
Real-time operating system
A real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...
for mainframes
IBM mainframe
IBM mainframes are large computer systems produced by IBM from 1952 to the present. During the 1960s and 1970s, the term mainframe computer was almost synonymous with IBM products due to their marketshare...
descended from the IBM System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...
family, including zSeries
ZSeries
IBM System z, or earlier IBM eServer zSeries, is a brand name designated by IBM to all its mainframe computers.In 2000, IBM rebranded the existing System/390 to IBM eServer zSeries with the e depicted in IBM's red trademarked symbol, but because no specific machine names were changed for...
and System z9
ZSeries
IBM System z, or earlier IBM eServer zSeries, is a brand name designated by IBM to all its mainframe computers.In 2000, IBM rebranded the existing System/390 to IBM eServer zSeries with the e depicted in IBM's red trademarked symbol, but because no specific machine names were changed for...
. The name is an initialism for Transaction Processing Facility.
TPF evolved from the Airlines Control Program
Airlines Control Program
IBM Airline Control Program, or ACP, was an operating system developed by IBM beginning about 1965. In contrast to previous airline transaction processing systems, the most notable aspect of ACP is that it was designed to run on most models of the IBM System/360 mainframe computer family...
(ACP), a free package developed in the mid-1960s by IBM in association with major North American and European airlines. In 1979, IBM introduced TPF as a replacement for ACP — and as a priced software product. The new name suggests its greater scope and evolution into non-airline related entities.
Current users include Sabre
Sabre (computer system)
Sabre Global Distribution System , owned by Sabre Holdings, is used by more than 55,000 travel agencies around the world with more than 400 airlines, 88,000 hotels, 24 car rental brands, and 13 cruise lines...
(reservations), Amadeus (reservations), VISA Inc
VISA (credit card)
Visa Inc. is an American multinational financial services corporation headquartered on 595 Market Street, Financial District in San Francisco, California, United States, although much of the company's staff is based in Foster City, California. It facilitates electronic funds transfers throughout...
(authorizations), American Express
American Express
American Express Company or AmEx, is an American multinational financial services corporation headquartered in Three World Financial Center, Manhattan, New York City, New York, United States. Founded in 1850, it is one of the 30 components of the Dow Jones Industrial Average. The company is best...
(authorizations), EDS SHARES (reservations), Holiday Inn
Holiday Inn
Holiday Inn is a brand of hotels, formally a economy motel chain, forming part of the British InterContinental Hotels Group . It is one of the world's largest hotel chains with 238,440 bedrooms and 1,301 hotels globally. There are currently 5 hotels in the pipeline...
(central reservations), CBOE (order routing), Singapore Airlines
Singapore Airlines
Singapore Airlines Limited is the flag carrier airline of Singapore. Singapore Airlines operates a hub at Changi Airport and has a strong presence in the Southeast Asia, East Asia, South Asia, and "Kangaroo Route" markets...
, KLM, Garuda Indonesia
Garuda Indonesia
PT Garuda Indonesia Tbk , publicly known as Garuda Indonesia, is the flag carrier of Indonesia. It is named after the mystical giant bird Garuda of Hinduism and Buddhist mythology. It is headquartered at Soekarno-Hatta International Airport in Tangerang, near Jakarta, the capital city of Indonesia...
, Amtrak
Amtrak
The National Railroad Passenger Corporation, doing business as Amtrak , is a government-owned corporation that was organized on May 1, 1971, to provide intercity passenger train service in the United States. "Amtrak" is a portmanteau of the words "America" and "track". It is headquartered at Union...
, Marriott International
Marriott International
Marriott International, Inc. is a worldwide operator and franchisor of a broad portfolio of hotels and related lodging facilities. Founded by J. Willard Marriott, the company is now led by son J.W. Marriott, Jr...
, Travelport
Travelport
Travelport is a broad-based business services company and a leading provider of critical transaction processing solutions to companies operating in the global travel industry...
and the NYPD (911 system).
TPF delivers fast, high-volume, high-throughput transaction processing, handling large, continuous loads of essentially simple transactions across large, geographically dispersed networks. The world's largest TPF-based systems are easily capable of processing tens of thousands of transactions per second. TPF is also designed for highly reliable, continuous (24x7) operation. It is not uncommon for TPF customers to have continuous online availability of a decade or more, even with system and software upgrades. This is due in part to the multi-mainframe operating capability and environment.
While there are other industrial-strength transaction processing system
Transaction Processing System
A transaction processing system is a type of information system. TPSs collect, store, modify, and retrieve the transactions of an organization. A transaction is an event that generates or modifies data that is eventually stored in an information system. To be considered a transaction processing...
s, notably IBM's own CICS
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
and IMS
Information Management System
IBM Information Management System is a joint hierarchical database and information management system with extensive transaction processing capabilities.- History :...
, TPF's raison d'être is extreme volume, large numbers of concurrent users and very fast response times, for example VISA credit card
VISA (credit card)
Visa Inc. is an American multinational financial services corporation headquartered on 595 Market Street, Financial District in San Francisco, California, United States, although much of the company's staff is based in Foster City, California. It facilitates electronic funds transfers throughout...
transaction processing during the peak holiday shopping season.
TPF implements an application known as PARS. Many airlines use this passenger reservation application or its international version IPARS. TPF was traditionally a 370 assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
environment for performance reasons, and many TPF assembler applications persist. However, more recent versions of TPF encourage the use of C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
. Another programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
called SabreTalk
SabreTalk
SabreTalk is a dialect of PL/I for the S/360 IBM mainframes running the TPF platform. SabreTalk was developed jointly by American Airlines, Eastern Air Lines and IBM....
was born and died on TPF. One of TPF's major components is a high performance, specialized database facility called TPFDF.
It is common for TPF sites to also use other IBM mainframe operating systems, such as z/OS
Z/OS
z/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
and z/VM
Z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...
, for offline and complementary processing. It is also possible to run a close cousin of TPF, called ALCS
ALCS transaction monitor
ALCS, which stands for Airline Control System, is an application server that provides industrial-strength, online transaction management for mission-critical applications....
, atop z/OS rather than as a separate operating system. All these operating systems usually coexist on the same physical hardware since IBM mainframes feature multiple ways of partitioning, to handle mixed workloads.
IBM announced the delivery of the next release of TPF, dubbed z/TPF V1.1, in September 2005. Most significantly, z/TPF adds 64-bit addressing and mandates use of the 64-bit GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
development tools. The GCC compiler
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
and the DIGNUS Systems/C++ and Systems/C are the only supported compilers for z/TPF. The Dignus compilers offer reduced source code changes when moving from TPF 4.1 to z/TPF. Japan Airlines has publicly acknowledged they are running z/TPF.
Tightly coupled
TPF is capable of running on a multiprocessorMultiprocessing
Multiprocessing is the use of two or more central processing units within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them...
, that is, on mainframe systems in which there is more than one CPU. Within the community, the CPUs are referred to as Instruction Streams or simply I-streams. On a mainframe or in a logical partition (LPAR) of a mainframe with more than one I-stream, TPF is said to be running tightly-coupled.
Due to the reentrant nature of TPF programs and the control program, this is made possible as no active piece of work modifies any program. The default is to run on the main I-stream which is given as the lowest numbered I-stream found during IPL. However users and/or programs can initiate work on other I-streams via internal mechanisms in the API which let the caller dictate which I-stream to initiate the work on. In the new z/TPF, the system itself will try to load balance by routing any application that does not request a preference or affinity to I-streams with less work than others.
In the TPF architecture, each I-stream shares common core, except for a 4Kb in size prefix area for each I-stream. In other instances where core data must or should be kept separate, the application designer typically carves up reserved storage areas into a number of sections equal to the number of I-streams. A good example of the TPF system doing this can be found with TPFs support of I-stream unique globals. Proper access to these carved sections of core are made by taking the base address of the area, and adding to it the product of the I-stream relative number times the size of each area.
Loosely coupled
TPF is capable of supporting multiple mainframes (of any size themselves - be it single I-stream to multiple I-stream) connecting to and operating on a common database. Currently, 32 IBM mainframes may share the TPF database; if such a system were in operation, it would be called 32-way loosely coupled. The simplest loosely coupledLoose coupling
In computing and systems design a loosely coupled system is one where each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. The notion was introduced into organizational studies by Karl Weick...
system would be two IBM mainframes sharing one DASD (Direct Access Storage Device
Direct access storage device
In mainframe computers and some minicomputers, a direct access storage device, or DASD , is any secondary storage device which has relatively low access time relative to its capacity....
). In this case the control program would be equally loaded into core and each program or record on DASD could be potentially accessed by either mainframe.
In order to serialize accesses between data records on a loosely coupled system, a practice known as Record locking
Record locking
Record locking is the technique of preventing simultaneous access to data in a database, to prevent inconsistent results.The classic example is demonstrated by two bank clerks attempting to update the same bank account for two different transactions. Clerks 1 and 2 both retrieve the account's...
must be used. This means that when one mainframe processor obtains a hold on a record, the mechanism must prevent all other processors from obtaining the same hold and communicate to the requesting processors that they are waiting. Within any tightly coupled system this is easy to manage between I-streams via the use of the Record Hold Table. However when the lock is obtained offboard of the TPF processor in the DASD control unit, an external process must be used. Historically the record locking was accomplished in the DASD control unit via an RPQ known as LLF (Limited Locking Facility) and later ELLF (extended). LLF and ELLF were both replaced by the Multipathing Lock Facility (MPLF). To run clustered (loosely-coupled) zTPF requires either MPLF in all disk control units or an alternative locking device called a Coupling Facility. http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.hcpf2/hcsf9b3153.htm http://www-01.ibm.com/support/docview.wss?uid=swg27007957
Processor shared records
Records that absolutely must be managed by a record lockingRecord locking
Record locking is the technique of preventing simultaneous access to data in a database, to prevent inconsistent results.The classic example is demonstrated by two bank clerks attempting to update the same bank account for two different transactions. Clerks 1 and 2 both retrieve the account's...
process are those which are processor shared. In TPF most record accesses are done by using record type and ordinal. So if you had defined a record type in the TPF system of 'FRED' and gave it 100 records or ordinals, then in a processor shared scheme record type 'FRED' ordinal '5' would resolve to exactly the same file address on DASD - clearly necessitating the use of a record locking mechanism.
All processor shared records on a TPF system will be accessed via exactly the same file address which will resolve to exactly the same location.
Processor unique records
A processor unique record is one that is defined such that each processor expected to be in the loosely coupled complex has a record type of 'FRED' and perhaps 100 ordinals. However, if a user on any 2 or more processors examines the file address that record type 'FRED', ordinal '5' resolves to, they will note a different physical address is used.What TPF is not
TPF has no built-in graphical user interface (GUIGui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
). TPF's built-in user interface is line driven with simple text screens that scroll upwards. There are no mice, windows, or icons on a TPF Prime CRAS. All work is accomplished via the use of typed one or two line commands, similar to early versions of UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
before X
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
. There are several products available that connect to the Prime CRAS and provide graphical interface functions to the TPF operator, for example the TPF Operations Server. Graphical interfaces for end-users are typically provided through PC based functions.
TPF also does not include a compiler/assembler, text editor, or the concept of a desktop. TPF application source code is typically kept in PDSs on a z/OS system. However, some previous installations of TPF kept source code in z/VM
Z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...
-based files and used the CMS update facility to handle versioning. Currently the z/OS compiler/assembler is used to build TPF code into object modules, producing load files that the TPF "online system" can accept. Starting with z/TPF 1.1, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
will be the build platform.
Using TPF requires an intimate knowledge of the Operations Guide since there is no shipped support for any type of online command "directory" that you might find on other platforms. Commands created by IBM and shipped by IBM for the running and administration of TPF are referred to as "Z-messages" as they are all prefixed with the letter "Z." Other letters are reserved so that customers may write their own commands.
TPF has extremely limited capability to debug itself. Typically third party software packages such as IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
's TPF Tool Kit or Step by Step Trace from Bedford Associates or CMSTPF,TPF/GI,zTPF/GI from TPF Software Inc. are employed to aid in the tracing and tracking of errant TPF code. Since TPF can run as a second level guest under IBM's z/VM, a user can employ the VM trace facility to closely follow the execution of code. TPF will allow certain types of function traces to operate and dump their data to a tape, typically through user exits that present parameters to a called function or perhaps the contents of a block of storage. There are some other types of trace information that TPF can collect in core while running, and this information gets "dumped" whenever the system encounters a severe error.
What TPF is
TPF is highly optimized to permit messages from the supported network to either be switched out to another location, routed to an application (specific set of programs) or to permit extremely efficient accesses to database records.Data records
Historically all data on the TPF system had to fit in fixed record (and core block) sizes of 381, 1055 and 4K bytes. This was due in part to the physical record sizes of blocks located on DASD. Much overhead was saved by freeing up any part of the operating system from breaking large data entities into smaller ones during file operations, and reassembling same during read operations. Since IBM hardware does I/O via the use of channels and channel programs, TPF would generate very small and efficient channel programs to do its I/O - all in the name of speed. Since the early days also placed a premium on the size of storage media - be it memory or disk, TPF applications evolved into doing very powerful things while using very little resource.Today, much of these limitations are removed. In fact, only because of legacy support are smaller than 4K DASD records still used. With the advances made in DASD technology, a read/write of a 4K record is just as efficient as a 1055 byte record. The same advances have increased the capacity of each device so that there is no longer a premium placed on the ability to pack data into the smallest model as possible.
Programs and residency
TPF also had its programs allocated as 381, 1055 and 4K bytes in size and each program consisted of a single record (aka segment). Therefore a comprehensive application needed many segments. With the advent of C-support, application programs were no longer limited to 4K sizes, much larger C programs could be created, loaded to the TPF system as multiple 4K records and read into memory during a fetch operation and correctly reassembled. Since in the past core memory was at a premium, only highly used programs ran 100% of the time as core resident, most ran as file resident. Given the limitations of older hardware, and even today's relative limitations, a fetch of a program, be it a single 4K record or many, is expensive. Since core memory is monetarily cheap and physically much much larger, greater numbers of programs could be allocated to reside in core. With the advent of z/TPF, all programs will reside in core - eventually - the only question is when they get fetched the first time.Before z/TPF, all assembler language programs were limited to 4K in size. Assembler is a more space-efficient language to program in so a lot of function can be packed into relatively few 4K segments of assembler code compared to C in 4K segments. However, C language programming is much easier to obtain skilled people in, so most if not all new development is done in C. Since z/TPF allows assembler programs to be repackaged into 1 logical file, critical legacy applications can be maintained and actually improve efficiency - the cost of entering one of these programs will now come at the initial enter when the entire program is fetched into core and logical flow through the program is accomplished via simple branch instructions, instead of a dozen or so IBM instructions previously needed to perform what is known as 'core resident enter/back'.
Core usage
Historically and in step with the previous, core blocks - memory - were also 381, 1055 and 4K bytes in size. Since ALL memory blocks had to be of this size, most of the overhead for obtaining memory found in other systems was discarded. The programmer merely needed to decide what size block would fit the need and ask for it. TPF would maintain a list of blocks in use and simply hand the first block on the available list.Physical memory was carved into sections reserved for each size so a 1055 byte block always came from a section and returned there, the only overhead needed was to add its address to the physical block table's proper list. No compaction or data collection was required.
As applications got more advanced demands for more core increased and once C became available, memory chunks of indeterminate or large size were required. This gave rise to the use of heap storage and of course some memory management routines. To ease the overhead, TPF memory was broken into frames - 4K in size (and now 1Mb in size with z/TPF). If an application needed a certain number of bytes, the number of contiguous frames required to fill that need were granted.
External links
- TPF Information Center (IBM)
- z/TPF (IBM)
- TPF User Group (TPF User Group)
- Blackbeard (Alternative TPF Homepage)
- Bedford Associates (Suppliers of step by step trace and TPF Consultancy Services)
- TPFfers (Single largest online community of TPF programmers)
- PCS Training (Independent training company specialising in TPF)
- TPFWork.com (Job board specialising in TPF and ALCS)
- TPFSOFTWARE (Provides products & Services in TPF & Allied technologies for Airline, Banking & Hospitality)
- Virtual Software Systems (Provides software to allow concurrent testing of TPF programs by several programmers under VM)
- A BLOG FOR TPF GUYS (The only available blog on the Internet for TPFers.)