mvs. traditional mainframes mainframe operating systems were designed to concurrently process...

61
MVS

Upload: kory-jacobs

Post on 03-Jan-2016

222 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

MVS

Page 2: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional Mainframes Mainframe operating systems were designed to

concurrently process several batch applications. Over time:

– The number of concurrent applications increased;– Innovations such as virtual memory, multiple virtual

machines, time sharing, and interactivity enhanced the operating environment

– BUT----- The underlying architecture of the operating system still

reflected its batch processing roots.

Page 3: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional Mainframes Today’s dominant distributed information

technology environment is highly interactive, with a myriad of personal computers and workstations simultaneously communicating with a variety of remote service providers via the Internet and similar networks.

These operating systems have outgrown their batch roots.

Traditional batch-oriented operating systems still exist, however, running as virtual machines under a higher-level operating system.

Page 4: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional Mainframes Although they represent old technology, traditional

mainframe operating systems such as MVS do offer one significant advantage:– Relative simplicity

A modern distributed system is incredibly complex and is best studied by focusing on the interrelated layers rather on the contents of any given layer.

It is possible, however, to understand the internal logic of an MVS operating system, and what happens within a stand-alone computer is a pretty good reflection of what happens inside one of those complex, distributed system’s independent layers.

Page 5: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesThe Program Status WordThe Program Status Word

A computer executes one instruction during each machine cycle.

The Instruction Control Unit looks to the Instruction Counter for the address of its next instruction.– The Program Status Word (PSW)

External devices are attached to the mainframe through channels:– A special-purpose computer– Because it has its own independent processor, the

channel can function in parallel with the main processor, thus freeing the mainframe to do other work.

Page 6: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesPhysical I/OPhysical I/O

External devices are attached to the mainframe through channels:– A special-purpose computer– Because it has its own independent processor,

the channel can function in parallel with the main processor, thus freeing the mainframe to do other work.

Page 7: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesPhysical I/OPhysical I/O

The channel executes instructions– Channel Program

The channel’s function is to transfer a certain number of bytes from a peripheral device into memory (or from memory to a peripheral device).

The channel program is stored in the main computer’s memory and passed to the channel when the I/O operation begins.

Page 8: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesPhysical I/OPhysical I/O

Channel Program:– Consists of one or more channel command

words (CCW)– Each CCW Contains a:

Command code that specifies the operation to be performed (read, write, seek)

Data Address Byte Count Several Flags

Page 9: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesPhysical I/OPhysical I/O

When the channel’s processor receives a start I/O command from the main processor:– It copies the channel address word into the

channel’s instruction counter– The channel fetches and executes the first

channel command word.

Page 10: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesPhysical I/OPhysical I/O

The channel and the computer function independently.

The main processor has no way of knowing when the channel has completed its work unless the channel tells it.

When the I/O operation is finished, the channel signals the main processor and reports its status to the operating system (I/O Interrupt).

Page 11: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesInterruptsInterrupts

The signal that flashes from a channel to the processor.

The mainframe responds to an Interrupt by switching PSWs. Three fields are involved:– The current PSW – The special register that

holds the address of the next instruction to be executed,

– An old PSW;– A new PSW – Holds the address of an interrupt

handling routine in the operating system.

Page 12: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesInterruptsInterrupts

When an Interrupt occurs:– Hardware stores the current PSW in the old

PSW field and then loads the new PSW into the current PSW register.

– The current PSW now points to the Interrupt Handling Routine.

– As the processor begins its next machine cycle, it fetches the instruction whose address is in the PSW and starts the Interrupt Handling Routing.

Page 13: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesInterruptsInterrupts

The old PSW holds the address of the next instruction in the original application program.– After the interrupt is processed, the application

program is resumed.

Page 14: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesInterruptsInterrupts

The mainframe recognizes six different Interrupt types:– I/O Interrupt – The channel must signal the

processor when an I/O operation is completed.– Restart Interrupt – Allows an operator or

another processor to intervene and start a program.

– External Interrupt – Comes from the operator’s console, another processor, or the timer.

Page 15: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesInterruptsInterrupts

The mainframe recognizes six different Interrupt types:– Machine Check Interrupt – Occurs whne the

computer’s self-checking circuitry detects a hardware failure.

– A Supervisor Call (SVC) Interrupt – When a program requests a particular supervisor routine.

– Program Interrupt – the result of anillegal or invalid instruction.

Page 16: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesOperating System FunctionsOperating System Functions

Job and Task Management:– A Task – A single program or routine that has

been loaded on the computer and is ready to run.

– A Job – One or more related tasks.Job Management:

– The routines that dispatch, queue, schedule, load, initiate, and terminate jobs or tasks.

Task Management:– Supports a program as it runs (Interrupts)

Page 17: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesThe Master SchedulerThe Master Scheduler

The Master Scheduler:– The MVS Dispatcher– With several application tasks sharing memory,

it is inevitable that two or more will be ready to use the processor at the same time.

– The Master Scheduler resolves this conflict by following an algorithm to select the next task to run.

The operator can issue an external interrupt to communicate with the Master Scheduler and override the selection.

Page 18: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Traditional MainframesTraditional MainframesJob Control LanguageJob Control Language

Mainframe operating systems were designed to support a batch environment.

The complete job, including all the related programs or job steps and their peripheral device requirements, must be specified in advance and submitted to an operating system scheduler routine so it can be placed in a queue for eventual processing.

These specifications are defined in a series of job control language (JCL) statements.

Page 19: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

MVS Job Control StatementsMVS Job Control StatementsJOB Statement

Identifies a job to the operating systemSeparates and identifies jobsPasses Accounting and Priority

information to the operating system

Page 20: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

MVS Job Control StatementsMVS Job Control Statements EXEC Statement

Identifies the program to be executedIdentifies a job step

Page 21: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

MVS Job Control StatementsMVS Job Control Statements DD Statement

Identifies a data set to the operating systemDefines in detail the characteristics of each and

every peripheral device used by the job.

Page 22: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.4: Fig. 11.4: An An OS/JCL OS/JCL statement.statement.

//NAME OPERATION OPERANDS COMMENTS the statement ends with position 71 optional comments one or more blanks

a series of parameters, separated by commas, that provides detailed information about the job, job step, or data set

one or more blanks JOB, EXEC, or DD one or more blanks the job name, step name, or DD name begins in position 3 positions 1 and 2 must contain slashes

Page 23: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

JCL SyntaxJCL Syntax

Parentheses are required if more than one subparameter is coded.

To continue a JCL statement, break after any comma and resume on the next line.

Page 24: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

JOB StatementJOB Statement

Page 25: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.5: A Fig. 11.5: A JOB statement.JOB statement.

//JOBNAME JOB parameters list of parameters separated by commas the operation (JOB) is required the job name is required

Page 26: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Job Statement

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Page 27: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

The first two positions must contain a // to identify the

statement as a Job Control Statement.

Page 28: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Job Name – Identifies the Job - An 8-position alphanumeric name.

- The first position must be alphabetic.

Page 29: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Operation - JOB

Page 30: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Two types of parameters:Positional Parameter - Parameter is identified by its

position in the job statement. 30

Page 31: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Two types of parameters:Keyword Parameter - Identified by means of a

“key” word.Subparameter - May be contained within

positional or keyword parameters. 31

Page 32: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Positional Parameters

Page 33: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M.R.Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Accounting Information Positional Parameter is used to supply any type of accounting information which may be required by a particular installation.

The entire Accounting Information Parameter may contain as many as 142 characters.

If Subparameters are used in the Accounting Information Parameters, they must be separated by commas and enclosed within parentheses.

Page 34: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Accounting Information Parameter Example

Assuming that your installation requires 4 subparameters --

account number, billing date, billing code, and billing location---

//Jobname JOB (400-234-15678,’05/30’,4B16, // ‘ST. LOUIS, MO.’)

Page 35: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’, CLASS=T, // PRTY=5,MGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Programmer Name identifies the individual or group responsible for the job.

The Programmer Name positional parameter may be from 1 to 20 characters long, including any special characters.

Page 36: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB ,’M. R. Izzo’, CLASS=T, // PRTY=5,MGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

If the Accounting Information Parameter is omitted, the Programmer Name must be preceded by a comma.

Page 37: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Keyword Parameters

Page 38: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

In MVS, jobs are scheduled according to job class and priority. Each job is assigned to a job class using the CLASS parameter.

CLASS may be any alphanumeric character (A-Z, 0-9) as defined by the installation.

The CLASS parameter values have no inherent meaning except as defined by the installation.

Page 39: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Within a job class category, jobs are selected for execution based on job PRIORITY specified in the JOB statement.

PRIORITY may be any number from 0 to 13, with the highest priority being 13.

Page 40: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M.R.Izzo’,CLASS=T,PRTY=5,

// MSGCLASS=F,MSGLEVEL=(1,1),

// TIME=(,30),COND=(4,GT)

The MSGLEVEL parameter is used to indicate which JCL statements and system messages are to be printed on the output listing.

MSGLEVEL has 2 subparameters - one which indicates what kinds of JCL statements are to be printed and one which indicates whether system allocation/termination messages are to be printed.

Page 41: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.7: Fig. 11.7: MSGLEVEL specifies which MSGLEVEL specifies which JCL statements and messages are to be JCL statements and messages are to be printed.printed.

MSGLEVEL=(a,b) select from 0 print no allocation messages unless job ends abnormally 1 print all messages select from 0 print only the JOB statement

1 print all JCL statements including those added by a cataloged procedure

2 print only programmer coded JCL statements

Page 42: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

The first subparameter (statements) identifies:0 - Print only the JOB statement.1 - Print all JCL statements, including

cataloged procedure statements.2 - Print the input JCL only.

Page 43: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

The second subparameter (statements) identifies:0 - Print no system(allocation/termination)

messages unless the job terminates abnormally.

1 - Print all allocation/termination messages.

Page 44: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

Print all JCL statements, including cataloged procedure statements.

Print all allocation/termination messages.

Where??????????

Page 45: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)

The MSGCLASS parameter directs the operating system to assign the output listing, as specified by the MSGLEVEL parameter, to a particular output class.

The MSGCLASS parameter pertains only to job JCL and allocation/termination messages.

Page 46: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(0,30), // COND=(4,GT),TYPRUN=SCAN

The TIME parameter specifies the total amount of CPU time the job will be allowed to run.

The TIME parameter has 2 subparameters - one which indicates the number of minutes and one which indicates the number of seconds the job will be allowed to run.

Page 47: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.6: Fig. 11.6: The TIME parameter sets a run The TIME parameter sets a run time limit on the job.time limit on the job.

TIME=(minutes,seconds) seconds (0-59) the comma is required if seconds are specified minutes (0-1440) parentheses are required unless only minutes are specified

Page 48: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(0,30), // COND=(4,GT),TYPRUN=SCAN

The CONDITION CODE is a number from 0 through 4095 which is compared to the return code or completion code issued by a program.

The OPERATOR specifies the type of comparison to be made: GT - Greater Than GE - Greater Than Or EQ – Equal to Equal To LE – Less Than Or LT - Less Than Equal To NE - Not Equal To

Page 49: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.10: Fig. 11.10: The COND parameterThe COND parameter..COND=(value,test,stepname) the name of a previous step whose completion code is to be tested. If not coded, the most recently completed job step is assumed. select from: GT greater than EQ equal to LT less than GE greater than or equal to LE less than or equal to NE not equal to a numeric value to be compared to the completion code returned by a previous step

Page 50: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(0,30), // COND=(4,GT),TYPRUN=SCAN HOLD

The TYPRUN parameter allows the operating system to:SCAN the JCL for errors. Once the scan is

completed, a JCL listing, containing any errors found, will be printed. The Job will not be executed.

HOLD – the job is submitted into the system but will not be executed. The job will stay in HOLD status until the TYPRUN parameter is deleted.

Page 51: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

EXEC StatementEXEC Statement

Page 52: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//STEP1 EXEC PGM=PR350 PROC=GENLDGR STEP1 - Step Name

EXEC - Operation

PGM= - Program to be executed

PROC= - Proc to be executed

52

Page 53: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//STEP1 EXEC PGM=PR350,ACCT=4552

ACCT - Allows you to supply accounting information for a job step.

This parameter may contain as many as 142 characters, including commas that separate any subparameters.

Page 54: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

//STEP1 EXEC PGM=PR350,ACCT=4552, // PARM=(20070315)

PARM - The PARM parameter is used to pass variable information to a program at execution time. The information may be any data that is needed to execute the program.

This parameter may contain up to 100 characters of information.

The PARM parameter may contain subparameters.

Page 55: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

ADDITIONAL PARAMETERS

//STEP1 EXEC PGM=PR350,ACCT=4552, // TIME=(0,10),COND=(4,GT,)

The TIME parameter specifies the total amount of CPU time the step will be allowed to run.

The TIME parameter has 2 subparamaters - one which indicates the number of minutes and one which indicates the number of seconds the step will be allowed to run.

55

Page 56: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

ADDITIONAL PARAMETERS

//STEP2 EXEC PGM=PR350,ACCT=4552, // TIME=(0,10),COND=(4,GT,)

The CONDITION CODE is a number from 0 through 4095 which is compared to the return code or completion code issued by a program in a previous step.

The comparison takes place before the step is executed. If the condition is True, the step is bypassed.

The OPERATOR specifies the type of comparison to be made:

GT - Greater Than GE - Greater Than Or EQ – Equal to Equal To LE – Less Than Or LT - Less Than Equal To NE - Not Equal To 56

Page 57: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

ADDITIONAL PARAMETERS

//STEP1 EXEC PGM=PR350,ACCT=4552, // TIME=(0,10) //STEP2 EXEC PGM=PR355 //STEP3 EXEC PGM=PR405, // COND=(7,LE,STEP1)

Page 58: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.1: Fig. 11.1: A A compile, link compile, link edit, and edit, and execute job. execute job.

S o u rcem o d u le

C o m p ilerC o m p iler

lis tin g

O b jec tm o d u le

S y stemlib ra ry

L in k a g eed ito r

L in k ed itm essa g es

L o a dm o d u le

L o a dm o d u le

In p u td isk file

P r in tedo u tp u t

O u tp u td isk file

Page 59: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.2: Fig. 11.2: The The JCL for a JCL for a compile, link compile, link edit, execute job. edit, execute job.

1. A JOB statement.

2. An EXEC statement for the compiler.

3. A DD statement for the object module file. 4. A DD statement for the printer. 5. A DD statement for the source module.

6. An EXEC statement for the linkage editor.

7. A DD statement for the object module file. This is the same file described in statement 3, but because this is a different job step a separate DD statement is needed.

8. A DD statement for the load module. 9. A DD statement for the printer.

10. An EXEC statement for the load module.

11. A DD statement for the load module. This is the same file created in the previous job step (statement 8), but once again this is a new step.

12. A DD statement for the disk input file. 13. A DD statement for the disk output file. 14. A DD statement for the printer.

Page 60: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.3: Fig. 11.3: A cataloged procedure is a A cataloged procedure is a library file containing pre-coded JCL library file containing pre-coded JCL statements. statements.

1. A JOB statement. 2. An EXEC COBOL, or EXEC FORTRAN, or some other EXEC statement

referencing the appropriate cataloged procedure. 3. A DD statement for disk input. 4. A DD statement for disk output. 5. A DD statement for printer output.

Page 61: MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent

Fig. 11.9: Fig. 11.9: The cataloged The cataloged procedure FORTRAN.procedure FORTRAN.

//FORT EXEC PGM=IEYFORT //SYSPRINT DD parameters (printed output) //SYSLIN DD parameters (object module output) //LKED EXEC PGM=IEWL,other parameters //SYSLIB DD parameters (system library) //SYSLMOD DD parameters (load module output) //SYSPRINT DD parameters (printed output) //SYSUT1 DD parameters (work space) //SYSLIN DD parameters (object module input) //GO EXEC PGM=*.LKED.SYSLMOD,other parameters