620 likes | 802 Views
MVS. Traditional Mainframes. Mainframe operating systems were designed to concurrently process several batch applications. Over time: The number of concurrent applications increased;
E N D
Traditional 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.
Traditional 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.
Traditional 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.
Traditional MainframesThe 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.
Traditional MainframesPhysical 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.
Traditional MainframesPhysical 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.
Traditional MainframesPhysical 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
Traditional MainframesPhysical 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.
Traditional MainframesPhysical 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).
Traditional MainframesInterrupts • 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.
Traditional MainframesInterrupts • 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.
Traditional MainframesInterrupts • 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.
Traditional MainframesInterrupts • 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.
Traditional MainframesInterrupts • 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.
Traditional MainframesOperating 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)
Traditional MainframesThe 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.
Traditional MainframesJob 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.
MVS Job Control Statements • JOB Statement • Identifies a job to the operating system • Separates and identifies jobs • Passes Accounting and Priority information to the operating system
MVS Job Control Statements • EXEC Statement • Identifies the program to be executed • Identifies a job step
MVS Job Control Statements • DD Statement • Identifies a data set to the operating system • Defines in detail the characteristics of each and every peripheral device used by the job.
JCL 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.
Job Statement //P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT)
//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.
//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.
//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T,// PRTY=5,MSGCLASS=F,// MSGLEVEL=(1,1),TIME=(,30), // COND=(4,GT) Operation - JOB
//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
//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
//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.
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.’)
//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.
//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.
//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.
//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.
//P155 JOB (‘04/10/97’),’M.R.Izzo’,CLASS=T,PRTY=5, // MSGCLASS=F,MSGLEVEL=(1,1), // TIME=(,30),COND=(4,GT) • The MSGLEVELparameter 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.
Fig. 11.7: MSGLEVEL specifies which JCL statements and messages are to be printed.
//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.
//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.
//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??????????
//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.
//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 TIMEparameter specifies the total amount of CPU time the job will be allowed to run. • TheTIME 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.
Fig. 11.6: The TIME parameter sets a run time limit on the job.
//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 • TheCONDITION 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
//P155 JOB (‘04/10/97’),’M. R. Izzo’,CLASS=T, // PRTY=5,MSGCLASS=F, // MSGLEVEL=(1,1),TIME=(0,30), // COND=(4,GT),TYPRUN=SCANHOLD • The TYPRUN parameter allows the operating system to: • SCANthe 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.