Joined: 22 Nov 2005 Posts: 700 Location: Troy, Michigan USA
An INITIATOR is kind of like giving you your own virtual computer to run on. The INITIATOR class is specified on the JOB card CLASS=.
It offers you an isolated environment to run in, while still sharing system resources with other initiators.
When you submit your job, it is placed into the input queue, and there it waits until an initiator becomes available, where the initiator will scan the input queue for any jobs waiting to be executed with the specific CLASS= that that initiator handles. If the initiator finds an appropriate job waiting to be executed it will pick it out of the input queue and place it into the active queue and allow the job to start executing, within the constraints of how that specific initiator was set up.
Some of the constraints that can be placed on an INITIATOR are: Priority, max run time, if you can use tapes, what processor(s) in a multi processor environment it will execute on, the number of initiators availiable for each class, and several other constraints.
This will allow test jobs to run alongside production jobs, without impacting the production jobs, and to limit how much of the available resources the job can utilize.
Joined: 26 Apr 2004 Posts: 4650 Location: Raleigh, NC, USA
From the "z/OS Basics" manual:
The initiator is an integral part of z/OS that reads, interprets, and executes the JCL. It is normally running in several address spaces (as multiple initiators). An inititator manages the running of batch jobs, one at a time, in the same address space.
What does an initiator do?
In order to run multiple jobs asynchronously, the system must perform a number of functions:
Select jobs from the input queues (JES does this).
Ensure that the required datasets are available (this might mean mounting tapes).
Ensure that multiple jobs (including TSO users) do not conflict in dataset usage.
Ensure that sufficient disk space is available for output datasets.
Find the executable programs requested for the job.
Clean up after the job ends and then request the next job.
All this must be done in a manner that produces no deadlocks (contentions).
Most of this work is done by the initiator, based on JCL information for each job. The primary purpose of JCL is to tell the initiator what is needed for the job.