Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "MVS. Traditional Mainframes Mainframe operating systems were designed to concurrently process several batch applications. Over time: – The number of concurrent."— Presentation transcript:

1 MVS

2 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.

3 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.

4 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.

5 Traditional Mainframes The 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.

6 Traditional Mainframes Physical 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.

7 Traditional Mainframes Physical 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.

8 Traditional Mainframes Physical 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

9 Traditional Mainframes Physical 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.

10 Traditional Mainframes Physical 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).

11 Traditional Mainframes Interrupts 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.

12 Traditional Mainframes Interrupts 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.

13 Traditional Mainframes Interrupts 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.

14 Traditional Mainframes Interrupts 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.

15 Traditional Mainframes Interrupts 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.

16 Traditional Mainframes Operating 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)

17 Traditional Mainframes The 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.

18 Traditional Mainframes Job 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.

19 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

20 MVS Job Control Statements EXEC Statement Identifies the program to be executed Identifies a job step

21 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.

22 Fig. 11.4: An OS/JCL statement.

23 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.

24 JOB Statement

25 Fig. 11.5: A JOB statement.

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

27 The first two positions must contain a // to identify the statement as a Job Control Statement.

28 //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.

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

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: Positional Parameter - Parameter is identified by its position in the job statement. 30

31 //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

32 Positional Parameters

33 //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.

34 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.’)

35 //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.

36 //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.

37 Keyword Parameters

38 //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.

39 //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.

40 //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.

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

42 //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.

43 //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.

44 //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??????????

45 //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.

46 //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.

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

48 //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

49 Fig. 11.10: The COND parameter.

50 //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.

51 EXEC Statement

52 //STEP1 EXEC PGM=PR350 PROC=GENLDGR STEP1 - Step Name EXEC - Operation PGM= - Program to be executed PROC= - Proc to be executed 52

53 //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.

54 //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.

55 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

56 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

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

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

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

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

61 Fig. 11.9: The cataloged procedure FORTRAN.


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

Similar presentations


Ads by Google