Attached Support Processor (ASP) is an IBM software system that implements loosely coupled multiprocessing for the OS/360 operating system. IBM later expanded the name as Asymmetrical Multiprocessor while retaining the acronym ASP.
ASP evolved from the design of the 7094/7044 direct-coupled system, which used channel-to-channel communication. Attaching an IBM 7044 as a peripheral processor more than doubled the throughput of the 7094.
ASP was introduced in March 1967 and initially allowed two System/360 computers to be connected through a channel-to-channel adapter (CTCA). IBM documentation described ASP as a multiprocessor system that extended the capabilities of OS/360 and was intended particularly for installations with large scientific workloads consisting of many short-duration jobs.
As initially defined, an ASP system typically consisted of a large System/360 computer—usually a Model 50, Model 65, or Model 75—running OS/360 and designated the main processor. A smaller System/360, a Model 40 or larger, acted as the support processor and ran the ASP supervisor as a single task under OS/360 PCP (Primary Control Program).
The support processor handled functions such as printing, card reading and punching, allowing the main processor to concentrate on application processing. It also queued jobs—approximately 30 in the basic configuration—released them to the main processor in priority order, and performed pre-execution setup of removable input/output devices such as disks and magnetic tapes.
The main processor was otherwise configured similarly to a stand-alone processor running OS/360, except that a channel-to-channel adapter replaced the normal system input and output devices. The minimum recommended support processor was a Model 40 G, indicating 128 KB of memory, equipped with two selector channels, an IBM 1052 console typewriter, a 2540 card reader/punch, an IBM 1403 printer, and three IBM 2311 disk drives. IBM also recommended access to an IBM 2400-series tape drive.
The OS/360 installation on the main processor could be modified so that it overlaid itself with the 7090/7094 emulator when an emulator job was run. When the emulator job finished, OS/360 was restored, allowing emulated 709x jobs to be intermixed with standard System/360 jobs. This mechanism became unnecessary after IBM introduced integrated emulation support on systems including the System/360 Model 85 and System/370.
Later versions of ASP allowed one support processor to control multiple main processors. IBM also added Local ASP (LASP), in which the same processor could function as both the support processor and a main processor. These capabilities were included in ASP Version 3, along with support for OS/VS2 (SVS).
With the introduction of MVS for System/370, IBM redeveloped ASP as Job Entry Subsystem 3 (JES3). JES3 continued as a z/OS feature for decades. IBM designated JES2 as its strategic job entry subsystem in 2017; z/OS 2.5 was the final release to include JES3, and JES3 was removed in z/OS 3.1.
ASP provided functions for job processing, spooling, processor communication and system management. Some replaced functions of the underlying operating system, while others supported ASP's own operation.
The multifunction monitor (MFM) multiplexed several parallel functions under a single Task Control Block (TCB). These functions used ASP-specific macros rather than the corresponding OS/360 macros.
In ASP terminology, system input (SYSIN) consisted of data supplied as part of a job, including:
DD * statement;DD DATA statement; andDD *.System output (SYSOUT) included:
DD SYSOUT=output class;DD SYSOUT=output class; andASP used a set of SPOOL volumes to store ASP control blocks and data sets associated with jobs. ASP managed the input/output operations; to a running job, SYSIN and SYSOUT could appear as tape input/output.
ASP stored control information, SYSIN and SYSOUT data on the SPOOL volumes.
ASP used a channel-to-channel adapter (CTC or CTCA) to connect the support processor to each main processor. During system generation, each connection was defined as an IBM 1052-7 with FEATURE=CTC.
ASP used pseudo-CTC connections when one processor served simultaneously as both a main processor and the support processor. These connections were likewise defined during system generation with FEATURE=CTC.
A job running under ASP saw SYSIN and SYSOUT data sets as tape data sets, while ASP intercepted the input/output operations performed by the access methods. Each dummy device was generated as a tape drive with FEATURE=CTC.
Each ASP job passed through a series of stages, with each stage implemented by an ASP support program. A job could use the normal sequence of stages or request a different sequence. Stages could also perform utility functions such as card-to-card copying.