Job Entry Subsystem 2/3

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The Job Entry Subsystem (JES) is a component of IBM's MVS (OS/VS2 R2 through z/OS) operating systems that receives jobs into the computer system, schedules them for processing, and controls their output processing. There is also a JES[1] in OS/VS1,[2] often referred to as JES1. While MVS/370's immediate predecessor, SVS, retained the spooling facilities of OS/360, most installations used the optional ASP Version 3 or HASP II Version 4, sometimes incorrectly referred to as HASP4; ASP V3 is available for OS/360 and HASP II V4 has been quite easily retrofitted to OS/360, even on systems which did not, and cannot support the System/370 instruction set (there are a very limited number of non-privileged S/370 instructions, and no privileged S/370 instructions, and each such instance can be replaced by a number of S/360 instructions which performs the equivalent function).

In MVS, JES is a task that runs under MVS and provides the necessary functions to get jobs into and out of the MVS operating system, and to control the scheduling of, and, indeed, their execution. It is designed to provide efficient spooling, scheduling, and management facilities for the MVS operating system. By separating job processing into a number of tasks, MVS operates more efficiently. At any point in time, the computer system resources are busy processing the tasks for individual jobs, while other tasks are waiting for those resources to become available. In its most simple view, MVS divides the management of jobs and resources between the JES and the base control program of MVS. In this manner, the JES manages jobs before (i.e., during the reading and scheduling phases) and after the completion of running the program (i.e., the printing, punching and purging phases); the base control program manages them during processing, usually without any specific knowledge of JES.

There are three job entry subsystems in MVS; Master, JES2 and JES3. The Master subsystem is used during system initialization and for starting system tasks that must run outside of the control of the primary JES; in particular, it is used to start the primary JES.

The other two job entry subsystems have very little in common, and in fact jobs written to run on one usually require small Job Control Language changes before they can be run on the other.

JES2 (Job Entry Subsystem 2) is descended from the Houston Automatic Spooling Priority[3][4] (HASP) system, developed by the contractor programmers of IBM as self-initiative and eventually owned and supported by IBM for NASA's Houston-based Manned Spaceflight Center, hence the root word in its name, in the mid 1960s.

JES3 (Job Entry Subsystem 3) is similarly descended from the Attached Support Processor[nb 1][5] (ASP), which was IBM's initially preferred system for OS/360 "unit record I/O", although JES2's "shared SPOOL" program product (NJE) ultimately displaced JES3 (and even JES2) in many cases.

JES3 Main Device Setup (MDS) has more control over data sets shared between systems than JES2, and JES3 Dependent Job Control (DJC) has more provisions for scheduling jobs with dependencies on each other than JES2. With the widespread use of sophisticated job scheduling software, DJC has become less important.


OS/360's job input and print queuing had limited operational flexibility and performance. This was addressed by two field-developed packages: Houston Automatic Spooling Priority (HASP), and Attached Support Processor (ASP).

Source code was provided to IBM customers for both ASP and HASP, and many customers made substantial enhancements to these programs, some of which were incorporated into the official product. Far more installations made use of HASP than ASP, and in contemporary z/OS systems there are many more JES2 installations than JES3.


HASP was developed by IBM Federal Systems Division contractors at the Johnson Space Center in Houston. It originally managed job scheduling and print and punch output for a single OS/360 computer, such as a single 360/65. "Multi Access Spool" capability was added to let peer computers share a common job queue and print/punch output queues.

With the introduction of System/370 in 1972, IBM rewrote HASP to become a standard part of the system, now renamed Job Entry Subsystem 2. JES2 was introduced in OS/VS2 in Release 2 in 1973.[6] It was many years before the HASP labels were removed from the JES2 source, and the messages issued by JES2 are still prefixed with $HASP.


ASP initially stood for Attached Support Processor, and was developed to provide efficient use of multiple OS/360 systems with a shared workload. It allowed one central system to distribute jobs to multiple connected systems. ASP was announced in March 1967,[7]:p.710 and that year was reported to be "running very stably".[8]

ASP evolved from the design of the 7094/7044 Direct Coupled System, using data channel to data channel communication. By attaching an IBM 7044 as a peripheral processor throughput was more than doubled.

In a typical ASP configuration a small mainframe such as a 360/40 (the support or global system) controlled one or more 360/65 or larger processors (main or local systems). The computers were connected through selector channels on each host attached to channel-to-channel adapters, for an early form of short distance, point-to-point computer networking.

ASP required the purchase of an additional computer to manage input and output of the hosts running the job workload, which was economically justified by the high cost of standalone byte-multiplexor channels needed to drive printers and punched card reader devices: the 360/50 and smaller systems had a built-in byte multiplexor channel, whereas the faster 360/65 and larger systems required a relatively expensive standalone unit. Using ASP made it possible to avoid the cost of the byte multiplexor channel, and offloading the job scheduling, print, and card handling also offloaded those functions from the larger machines.

Increased reliability was another advantage to offset the added hardware cost. One or more main systems could fail or be taken offline for maintenance without taking down the whole complex.

ASP was primarily targeted at large government agencies and defense contractors that might have as many as six 360/65s all being scheduled and managed by a separate ASP machine. An uncommon variant, Local ASP (LASP) was a single large machine with the ASP functions running on the same machine. ASP became JES3. In the 1970s a notable installation of ASP was at Princeton University controlling an IBM 360/91 mainframe.

In 1973 IBM rewrote ASP and renamed it JES3, supporting MVS only.[6]

See also[edit]


  1. ^ Eventually renamed to Asymmetric Multiprocessing System


  1. ^ The job entry subsystem of OS/VS1, by J. H. Baily, J. A. Howard, and T. J. Szczygielski, IBM Systems Journal, Volume 13 (1974), No 3, Page 253
  2. ^ IBM Corporation (1972). OS/Virtual Storage 1 Features Supplement (PDF). 
  3. ^ IBM (February 26, 1971). The HASP System, February 26, 1971 HASP II (360D-05.1-014) V3M1. Version 3 Modification Level 1. 
  4. ^ IBM (September 1976). OS/VS2 HASP II Version 4 User's Guide Program Number 370H-TX-001 VS2 SVS Release 1.7 (PDF). First Edition. GC27-0052-0. 
  5. ^ IBM. IBM System/360 and System/370 Asymmetric Multiprocessing System: General Information Manual, Program Number 360A-CX-15X. GH20-1173. 
  6. ^ a b IBM Corporation (1973). Introduction to OS/VS2 Release 2 (PDF). 
  7. ^ Pugh; et al. (1991). IBM's 360 and Early 370 Systems. MIT Press. ISBN 9780262517201. 
  8. ^ "Representative ASP Installation". Computerworld. September 13, 1967. Retrieved February 7, 2013. 

External links[edit]