Betriebssysteme it-Akademie Bayern z/OS und OS/390 Lehrgang 2009 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 9a Job Control bs 0901 ww6 copyright W. G. Spruth, 10-2000 wgs 03-95 Availability, Reliability, and Serviceability are cornerstones in these systems. The systems have extensive recovery and redundancy functions built in. Continuous availability is ensured by dynamic reconfiguration capabilities as well as dynamic software changes. Data integrity is provided by system managed storage, automatic backup, recovery options, security, and software exploitation of the z/Architecture and S/390 architectures. Flexibility: The system can be tailored to the needs of the users and the business. Storage management: Automated management of data storage with backups and archives. Parallel Sysplex: Solution for coupling multiple system images together providing the look and feel of a single system image. Data can be shared among the images in the sysplex. Software The OS/390 operating system consists of load modules and is often called executablecode. These load modules are placed onto Disk (DASD) volumes into load libraries during a system install process. Hardware The system hardware consists of all the devices, controllers, and processors that make up a z/OS or OS/390 complex. Devices Shown are the tape, DASD, and console devices. OS/390 consists of a collection of functions that are called base elements and optional elements. The optional elements (features) are either integrated or nonintegrated. It is important to note that these optional features, both integrated and nonintegrated, are also tested as part of the integration of the entire system. z/OS und OS/390 Anfang 1966 als OS/360 (reines Stapelverarbeitungssystem) eingeführt - Fred Brooks Spätere Namenswechsel OS/360 MFT MVT MVS 1996 Namensänderung MVS nach OS/390 - Bündeln von mehr als 70 Komponenten: Vereinfachung der Installation und der Wartung 2000 Namensänderung OS/390 nach z/OS - 64 Bit Adressierung es 0555 ww6 wgs 11-00 Benutzer Schnittstelle Benutzer Prozesse SprachÜbersetzer Presentation Manager (GUI) Kommando Interpreter (Shell) Betriebssystem Schnittstelle Betriebssystem Kernel Hardware Schnittstelle Hardware Schichtenmodell der Rechnerarchitektur es 0520z ww6 wgs 09-99 JES TSO Stapel Verarbeitung Interaktive Verarbeitung Unix Shell Unix System Serv. Betriebssystem Hardware OS/390 Grundstruktur Die drei wichtigsten Subsysteme: JES (Job Entry Subsystem) für die Stapelverarbeitung TSO (Time Sharing Option) für die interaktive Verarbeitung (z.B. Programmentwicklung) Unix System Services, Posix kompatibles Unix Subsystem es 0117 ww6 wgs 04-99 OS/390 Grundstruktur unabhängige virtuelle Adressenräume (Regions) Unix Web. Job Com. TSO CICS Syst. Appl. Entry DB2 RACF Serv. Serv. Serv. Sub. OS/390 Kernel (Basic Control Program) Der OS/390 Kernel unterstützt eine Vielzahl von virtuellen Adressenräumen, die im OS/390 Jargon als Regions bezeichnet werden. Einige der Regions beherbergen Subsysteme, die Teil des Betriebssystems sind, aber im Benutzerstatus laufen. Einige der (zahlreichen) Subsysteme sind: CICS Transaktionsverarbeitung TSO Shell, Entwicklungsumgebung USS Unix kompatible Shell, Entwicklungsumgebung WAS WebSphere Web Application Server JES Job entry Subsystem DB2 relationale Datenbank RACF Sicherheitssystem Communications Server es 0556 ww6 wgs 03-01 z/OS Subsysteme CICS Transaktions Manager IMS Transaktionsmanager DB2 Datenbank IMS Datenbank VSAM index-sequentielles Dateisystem XCF JES2/3 Security Server (RACF, DCE Security, Firewall) Netview, Systemview WebSphere UNIX Services Distributed Computing Services (DCE, NFS, DFS, FTP) LAN Server Run Time Language Support C/C++ COBOL Object Oriented Cobol PL/1 Fortran Assembler C/C++ Open Class Library JDK, JVM es 0518z ww6 wgs 09-99 jedi.informatik.uni-leipzig.de 139.18.4.35:80 S/390 Rechner an den Universität Leipzig Z/OS 1.5 CICS IMS VSAM DB2 Unix System Services JES Cobol PL/1 Fortran C++ Java WebSphere S/390-Linux Studenten loggen sich mit PC oder Unix Clienten in den S/390 Server ein. Zugang mit einem gängigen 3270 Emulator, z.B. als Applet in einem Web Browser implementiert. Verbindungsprotokoll : TCP/IP und Telnet Direkter Web Zugriff ist möglich es 2005 ww6 wgs 06-01 System Functions Overview (1) Multiprocessing is the concurrent execution of two or more tasks on different processors. The System Resources Manager (SRM) must optimize the utilization of the resources of the system and at the same time provide an installationspecified level of service to each user. The Workload Manager (WLM) is a user-friendly interface to SRM. Job Entry Subsystem (JES) handles the job management function for both the z/OS and OS/390 operating systems. The Storage Management Subsystem (SMS) is included in DFSMS. SMS allows the system to manage the performance, availability, and space utilization of the DASD volumes installed at an installation. The VTAM, TSO, CICS, and IMS address spaces are all started task address spaces. These address spaces may be started at the operator's console by a START command System Functions Overview (2) Job management is handled by the Job Entry Subsystem, either JES2 or JES3. JES2 accepts the submission of work for the z/OS or OS/390 base control program (BCP. Kernel). Program management routines locate the program requested on the // EXEC Job Control Language (JCL) statement and load it into the private area of the assigned address space. Once a job gets assigned to an address space, it becomes work for the system to perform. A unit of work in the z/OS or OS/390 system is called a task. Task dispatching consists of determining which is the highest priority ready task and giving processor control to that task. Die wichtigsten OS/390 Sprachen Cobol PL/1 Assembler Fortran C++ Java Skripte Shellskripte unter Unix BAT-Files unter DOS REXX unter OS/390 REXX Von IBM entwickelte interpretative Scriptsprache, verfügbar für alle IBM Betriebssysteme, vergleichbar zu Pearl oder Tcl/tk. Vollwertige Programmiersprache. Weit verbreitet bei den Benutzern von S/390 Rechnern. es 0505z ww6 wgs 09-99 REXX Programmierbeispiel /* A short program to greet you /* First display a prompt */ */ say ‘Please type your name and then press ENTER:‘ parse pull answer /* Get the reply into answer */ /* If nothing was typed, then use a fixed greeting /* otherwise echo the name politely */ */ if answer=‘‘ es 0505z ww6 then say ‘Hello Stranger! ‘ else say ‘Hello answer!‘ wgs 09-99 Programmarten Subsysteme sind Programmprodukte wie Datenbanken und Trans aktionsmonitore, die Laufzeitumgebungen für eigentliche Benutzerprogramme zur Verfügung stellen. Benutzerprogramme können sein: klassische z/OS (bzw. OS/390) Hintergrundprogramme Kundenanwendungen, die unter der Kontrolle von CICS, IMS oder Websphere ablaufen, oder UNIX-Programme, die die UNIX System Services unter z/OS ausnutzen. Systems Management Funktionen werden für die Steuerung und Überwachung des Ablaufes benötigt. Es gibt sehr viele solcher Funktionen von der IBM und Drittanbietern zur Überwachung des Betriebssystems und, da sich das Betriebssystem in weiten Bereichen selbst steuert, zur Überwachung der Middleware und der Kundenanwendungen. Zwei Arten der Datenverarbeitung Interaktive Verarbeitung – Beispiel Excel: Sie arbeiten mit einer großen Excel Tabelle und stoßen eine Berechnung an, die viele Sekunden oder Minuten dauert. Während der Berechnung blockiert der Rechner, reagiert z.B. nicht auf Tastatur Eingaben. Stapelverarbeitung – Beispiel Word for Windows: Sie editieren ihre Diplomarbeit mit Word for Windows. Dies ist ein interaktiver Prozess. Sie beschließen, die ganze Arbeit auf Ihrem Tintenstrahldrucker probeweise auszudrucken. Dies dauert viele Sekunden oder Minuten. Während des Druckens blockiert der Rechner nicht. Sie können die Diplomarbeit weiter editieren. Hierzu setzt Word for Windows neben dem Editierprozess einen getrennten Druckprozess auf. Der Scheduler/Dispatcher des Betriebssystems stellt zeitscheibengesteuert beiden Prozessen CPU Zeit zur Verfügung. Excel Prozess Interaktiv blockiert editieren WfW Editierprozess berechnen Druckprozess Stapel editieren drucken Interaktive und Stapelverarbeitung Stapelverarbeitung unter Linux Der cron-Daemon ist eine Jobsteuerung von Unix bzw. Unix-artigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben (cronjobs) automatisch zu einer bestimmten Zeit ausführen kann. Hierzu werden Skripte und Programme zu vorgegebenen Zeiten gestartet. Der auszuführende Befehl wird in einer Tabelle, der so genannten crontab, gespeichert. Jeder Benutzer des Systems darf eine solche crontab anlegen. Diese Tabelle besteht aus sechs Spalten; Die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentage), die letzte enthält den Befehl. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt. Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien. Beim Hochfahren eines Linux Systems wird als Erstes cron gestartet. cron wiederum startet einen Shell Prozess. Griechisch chronos (χρόνος) bedeutet Zeit. Cron Cron is the name of a batch processing program that enables unix users to execute commands or scripts (groups of commands) automatically at a specified time/date. It is normally used for sys admin commands, like running a backup script, but can be used for anything. A common use today is connecting to the internet and downloading your email. Vixie cron and ISC Cron are modern versions, included with most Linux distributions. Cron is the software which most closely resembles the z/OS Batch Processing facilities. However, the z/OS Job Entry Subsystem (JES) provide functions which go far beyond those offered by cron. Ein Stapelverarbeitungsauftrag interagiert während seiner Ausführung nicht mit dem Benutzer. Er kann während der Ausführung temporär unterbrochen und wieder aufgenommen werden, jenachdem ob Aufträge mit höherer Priorität die Ressourcen dringender benötigen.werden Bei einer interaktiven Verarbeitung monitored der Benutzer die Ausführung und wartet auf die Ergebnisse. Unix Shell xxxx& Unix Shell Stapel Verarbeitung Interaktive Verarbeitung Betriebssystem Hardware Unix Grundstruktur Die Stapelverarbeitung ist ein Sonderfall der interaktiven Verarbeitung. In der Shellsprache werden Batch-Aufträge durch ein nachgestelltes „&“ gekennzeichnet. es 0118 ww6 wgs 04-99 Batch Processing Eine Stapelverarbeitung erfolgt häufig in mehreren Schritten. Beispiel: Monatliche Kreditabrechnung in einer Bank. Diese könnte z.B. aus den folgenden Schritten bestehen: 1.Darlehnskonto abrechnen, Saldo um Tilgungsrate verändern 2.Tilgung und Zinsen im laufenden Konto (Kontokorrent) auf der Sollseite buchen 3.Globales Limit überprüfen 4.Bilanzpositionen (Konten) 5.G+V Positionen (Gewinn- und Verlust Konten) 6.Zinsabgrenzung monatlich für jährliche Zinszahlung 7.Bankmeldewesen (ein Kunde nimmt je 90 000.- DM bei 10 Banken auf, läuft am Stichtag) Ein derartiger Vorgang wird als Auftrag oder „Job“ bezeichnet. Ein Job besteht aus einzelnen „Job Steps“. es 0511 ww6 wgs 09-01 Stapelverarbeitung vs. Interaktive Verarbeitung Batch Processing vs. Interactive Processing Eine interaktiven Client/Server Verarbeitung erfolgt synchron. Der Klient ruft ein Programm des Servers auf, und wartet (blokiert), bis die Ergebnisse des Servers zurückkommen. Eine Stapelverarbeitung erfolgt asynchron. Ein Klient ruft ein Server Programm auf, und wendet sich dann anderen Aufgaben zu. Der Klient fragt nicht, wann der Server mit der Stapelverarbeitung fertig ist. Die Benutzung eines Editors ist eine typische interaktive Anwendung. Die monatliche Gehaltsabrechnung in einem Großunternehmen ist typisch für eine Stapelverarbeitung. Eine Stapelverarbeitung erfolgt häufig in mehreren Schritten. Ein Beispiel sind die Buchungsvorgänge für die monatliche Kreditabrechnung in einer Bank. Diese könnte z.B. aus den folgenden Schritten bestehen: 8. Darlehnskonto abrechnen, Saldo um Tilgungsrate verändern 9. Tilgung und Zinsen im laufenden Konto (Kontokorrent) auf der Sollseite buchen 10.Globales Limit überprüfen 11.Bilanzpositionen (Konten) 12.G+V Positionen (Gewinn- und Verlust Konten) 13.Zinsabgrenzung monatlich für jährliche Zinszahlung 14.Bankmeldewesen (ein Kunde nimmt je 90 000.- DM bei 10 Banken auf, läuft am Stichtag) Ein derartiger Vorgang wird als „Job“ bezeichnet. Ein Job besteht aus einzelnen „Job Steps“. es 0511 ww6 wgs 09-01 Jobs Prozess (Process, Task) Auftrag (Job) Jedem Prozess sind Betriebsmittel zugeteilt : (mindestens ein Prozessleitblock - Process Control Block, PCB, Task Control Block, TCB). Weitere Betriebsmittel : Hauptspeicherplatz, Anspruch auf CPU - Zeit, Zugriffsberechtigungen. Ein Auftrag (JOB) wartet darauf, daß das System für ihn einen (oder mehrere) Prozesse generiert. JCL (Job Control Language) ist eine Scriptsprache, in der die Ausführung eines Jobs beschrieben wird. JES (Job Entry Subsystem) ist ein z/OS Subsystem, welches die gleichzeitige Ausführung zahlreicher Jobs steuert. Batch Processing Stapelverarbeitung Batch-Jobs, auch Stapelverarbeitung oder BatchProzesse genannt, sind Programmroutinen, die zeitoder ereignisgesteuert ohne Interaktion mit dem Benutzer ablaufen. Die Hintergrundprogramme lesen Daten ein und liefern Rückgabewerte sowie Statusinformationen wie Laufzeit, Störungen und Fehlerbeschreibungen zurück. Ein Job-Scheduler startet und überwacht die Batch-Läufe. Praktisch alle Computersysteme verfügen über solche Mechanismen. Selbst Windows-Desktops verwenden Jobs, beispielsweise zur Datensicherung oder zum Ausdrucken von Dokumenten. Firmen verwenden die Batch-Steuerung unter anderem dazu, Massendaten wie Lohnabrechnungen zu verarbeiten, Vertriebszahlen auszuwerten oder Geschäftsinformationen in ein Data Warehouse zu laden. es 0626 ww6 wgs 07-04 What is batch processing? Much of the work running on z/OS consists of programs called batch jobs. Batch processing is used for programs that can be executed: With minimal human interaction At a scheduled time or on an as-needed basis. After a batch job is submitted to the system for execution, there is normally no further human interaction with the job until it is complete. Batch Processing(1) Batch in z/OS: a job is submitted, it performs a long series of things (calculations, I/Os), writes ist results into a file, exits with RC Complex Queries (SQLJ instead of JDBC) Cheque and account processing debits, credits, loans, credit rating Data Backups, Compression, Conversion Offline ATM processing System & Database maintenance Data replication & synchronization Processing exchanged B2B data Tape processing Printing File system maintenance, healthchecks, compression… Configuration Jobs (wsadmin, RACF) Batch Processing(2) Enterprise Batch requires sophisticated functionality (which is not available in distributed environments Time dependent execution Maintaining relationships Adminstrative and controlling functions Ability to control & manage system resources Efficient multi tasking / multi user Accounting abilities Batch Execution environment Batch Processing(3) Can you imagine to run and control more the 10 batch jobs in a Windows or UNIX system in parallel? Can you imagine to control the output of more then 10 batch jobs in a Windows or Unix system? z/OS can run, administer and control ten thousands of batch jobs in one Parallel Sysplex! Submission eines Jobs Ein „Job Control Programm“ (Äquivalent einer Bat File unter DOS 6.22) besteht aus einer Reihe von prozeduralen Befehlen , und wird in der „Job Control Language“ (JCL) erstellt. Die JCL hat ihren Ursprung im Lochkartenzeitalter. Jeder JCL Befehl beginnt mit den beiden Zeichen „ // „ und hat keinen Delimiter (z.B. „ ; „ in C++) sondern statt dessen eine feste Befehlslänge von genau 80 Zeichen. Beispiel für einen JCL Befehl: // DCB=(RECFM=FB,LRECL=80,BLKSIZE=400) RECFM, FB, LRECL und BLKSIZE sind Schlüsselwörter der JCL Sprache. Der Befehl besagt, daß die hiermit angesprochene Datei (bzw. ihr Data Control Block, DCB) ein Fixed Block (FB) Record Format (RECFM) hat (alle Datensätze haben die gleiche Länge), dessen Länge (Logical Record Length LRECL) 80 Bytes beträgt, und daß für die Übertragung vom/zum Hauptspeicher jeweils 5 Datensätze zu einem Block von (Blocksize BLKSIZE) 400 Bytes zusammengefaßt werden. Literatur M.Winkler: „MVS/ESA JCL“. Oldenbourg, 3. Auflage, 1999 es 0507z ww6 wgs 09-99 Beispiel eines DOS 6.22 Jobs auftrag.bat f: cd programme able baker charlie cd \ c: able f:\programme able.exe baker.exe charlie.exe xxx.dat yyy.dat zzz.dat aaa.dat baker read xxx.dat read yyy.dat write yyy.dat write zzz.dat end end charlie read zzz.dat read xxx.dat write aaa.dat end es 0583 ww6 wgs 07-02 Programm Bibliothek Job Control Script xxx.auftrag.jcl Job Step 1 Job Step 2 Job Step 3 Daten Daten Daten Konzept eines z/OS Jobs Da das JCL Programm die verwendeten Dateien angibt, ist ein „late Binding“ der verwendeten Dateinen an die auszuführenden Programme möglich. Eine „Cataloged Procedure“ ist ein JCL Programm, welches vom Benutzer für eine spätere Verwendung zwischengespeichert wird (.z.B. in einer vom Benutzer erstellten Library JCLLIB) und bei Bedarf mittels eines JCL Befehls aufgerufen wird. Es 0554 wgs 09-00 JCL Symbolic references to files z/OS normally uses symbolic references to files (data sets) rather than actual file names. The use of symbolic references provides a naming redirection between a data set-related name used in a program and the actual data set used during execution of that program. 000100 //SPRUTHC 000200 // JOB (),CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), NOTIFY=&SYSUID, TIME=1440 000300 //PROCLIB JCLLIB ORDER=CBC.SCBCPRC 000400 //CCL EXEC PROC=EDCCB, 000500 // INFILE='SPRUTH.TEST.C(HELLO1)', 000600 // OUTFILE='SPRUTH.TEST.LOAD(HELLO1),DISP=SHR' Ein einfaches JCL Script JOB Statement markiert den Anfang eines Jobs EXEC Statement bezeichnet Prozedur, die ausgeführt werden soll PROC Statement gibt den Anfang einer Procedur an DD Statement bezeichnet die zu benutzenden Dateien /* Statement markiert das Ende von Daten, die in die JCL Statements eingeführt werden es 0363 ww6 wgs 09-01 ar 0121 ww6 wgs 09-02 PL/1 Programmierbeispiel es 0545 ww6 wgs 09-00 Submission eines Jobs Ein „Job Control Programm“ (Äquivalent einer Bat File unter DOS 6.22) besteht aus einer Reihe von prozeduralen Befehlen, und wird in einer Script Sprache, der „Job Control Language“ (JCL) erstellt. Die JCL hat ihren Ursprung im Lochkartenzeitalter. Jeder JCL Befehl beginnt mit den beiden Zeichen „ // „ und hat keinen Delimiter (z.B. „ ; „ in C++), sondern statt dessen eine feste Befehlslänge von genau 80 Zeichen (genau genommen 72 Zeichen plus 8 folgende Steuerzeichen). Beispiel für einen JCL Befehl: // DCB=(RECFM=FB,LRECL=80,BLKSIZE=400) RECFM, FB, LRECL und BLKSIZE sind Schlüsselwörter der JCL Sprache. Der Befehl besagt, daß die hiermit angesprochene Datei (bzw. ihr Data Control Block, DCB) ein Fixed Block (FB) Record Format (RECFM) hat (alle Datensätze haben die gleiche Länge), dessen Länge (Logical Record Length LRECL) 80 Bytes beträgt, und daß für die Übertragung vom/zum Hauptspeicher jeweils 5 Datensätze zu einem Block von (Blocksize BLKSIZE) 400 Bytes zusammengefaßt werden. Literatur M.Winkler: „MVS/ESA JCL“. Oldenbourg, 3. Auflage, 1999 es 0507z ww6 wgs 09-99 JES Job Entry Subsystem Job Scheduling Characteristics 1. At night, many batch jobs executing programs and utilities are processed. These jobs consolidate the results of the online transactions executed during the day. 2. The batch jobs generate reports of business statistics. 3. Backups of critical files and databases are made before and after the batch window. 4. Reports with business statistics are sent to a specific area for analysis during the following day. 5. Reports with exceptions are sent to the branch offices. 6. Monthly account balance reports are generated and sent to all bank customers. 7. Reports with processing summary are sent to the partner credit card company. 8. A credit card transaction report is received from the partner company. 9. In the production control department, the operations area is monitoring the messages on the system console and the execution of the jobs. 10. Jobs and transactions are reading or updating the database (the same database used by online transactions) and many files are written to tape. What is JES? In the z/OS operating system, JES manages the input and output job queues and data. JES handles the following aspects of batch processing for z/OS: Receives jobs into the operating system Schedules them for processing by z/OS Controls their output processing Accept and queue jobs submitted for execution Queue jobs for an initiator -- a JES program that requests the next job in the queue Accept output from a job while it is running and queue the output Can print the output, or save it on spool for an output manager to retrieve. What is spooling? Spooling is a method for queuing and holding data for input or output. JES uses one or more disk data sets for spooling. Input jobs and printed output from many jobs are stored in the single (conceptual) spool data set. Spooling Spooling is the means by which the system manipulates its work, including: Using storage on direct access storage devices (DASD) as buffer storage to reduce processing delays when transferring data between peripheral equipment and a program to be run. Reading and writing input and output streams on an intermediate device for later processing or output. Performing an operation such as printing while the computer is busy with other work. To implement input spooling in JCL, you declare //DD *, which defines one file whose content records are in JCL between the //DD *statement and the /*statements. All thelogical records must have 80 characters. In this case this file is read and stored in a specific JES2 spool area (a huge JES file on disk) To implement output spooling in JCL, you specify the keyword SYSOUT on the DD statement. SYSOUT defines an empty file in the spool, allocated with logical records of 132 characters in a printed format (EBCDIC/ASCII/UNICODE). This file is allocated by JES when interpreting a DD card with the SYSOUT keyword, and used later for the step program. Generally, after the end of the job, this file is printed by a JES function. What an initiator does To run multiple jobs asynchronously, z/OS uses initiators to: Ensure that jobs do not conflict in data set usage Ensure that single-user devices (tape drives) are allocated correctly Find executable programs requested by jobs Clean up after the job ends and request the next job Preventing two users from accessing the same data at the same time is critical to z/OS and the ability to do this is one of the defining characteristics of the operating system. JES, job management, and JCL Job control language (JCL) is the language used by a batch job to request resources and services from the operating system. Through JCL, you specify: Who you are (important for security reasons). Which resources (programs, files, memory) and services are needed from the system to process your program. Job Scheduling Mainframe operating systems are usually equipped with sophisticated job scheduling software that allows data center staff to submit, manage, and track the execution and output of these batch jobs. Batch processes have the following characteristics: Large amounts of input data are processed, stored records accessed, and a large volume of output is produced. Interactive response time is usually not the primary requirement, and the jobs can take several minutes to complete. However, batch jobs often must complete within a “batch window,” a period of less intensive online activity prescribed by a service level agreement. Information is generated about large numbers of users. A scheduled batch process consists of the execution of hundreds or thousands of jobs in a pre-established sequence. The process is managed by a specific area in the IT organization (the operations staff). Voraussetzung für die Ausführung eines Jobs ist, daß benutzte Programme und Dateien (Data Sets, Files) bereits existieren. Erstellung und Eingabe (Submission) eines Jobs erfordert die folgenden Schritte: 1.Zuordnung einer Datei, welche das Job Control Programm enthalten soll. (Kann unter ISPF geschehen). 2.Editieren und Abspeichern der JCL Datei (unter ISPF oder TSO) 3.Submission Da das JCL Programm die verwendeten Dateien angibt, ist ein „late Binding“ der verwendeten Dateinen an die auszuführenden Programme möglich. Eine „Cataloged Procedure“ ist ein JCL Programm, welches vom Benutzer für eine spätere Verwendung zwischengespeichert wird (.z.B. in einer vom Benutzer erstellten Library JCLLIB) und bei Bedarf mittels eines JCL Befehls aufgerufen wird. es 0508z ww6 wgs 09-99 Job Scheduler Job-Scheduler arbeiten nach dem Master/Agent-Konzept. Der Master (JES2 oderJES3) initiiert die Batches, reiht sie je nach Priorität in Warteschlangen ein und kontrolliert deren Ablauf. Die Agenten sind selbständige Prozesse, die in eigenen virtuellen Adressräumen laufen. Sie führen die Jobs aus und senden Statusinformationen an die Steuerungskomponente und/oder fertigen Laufzeitberichte an. JES Agent 1 Agent 2 Agent 3 / Kernel Z/OS bezeichnet die Agenten als „Initiator“. es 0627 ww6 wgs 07-04 Initiator Bei der Batch.Verarbeitung liest das Job Entry Subsystem (JES) einen Job mit Hilfe eines Internal Readers ein und interpretiert die Job Control Language (JCL) mit Hilfe des Converter/Interpreter. Der Initiator kontrolliert die Ausführung der einzelnen Jobsteps. Er ist ein integraler Bestandteil von z/OS, der JCL liest, interpretiert und ausführt. that reads, interprets, and executes the JCL. Er läuft normalerweise in mehreren Adressenräumen (als multiple initiators). Ein Initiator steuert den Ablauf von Jobs, einen nach den anderen innerhalb des gleichen adressenraums. Wenn z.B. 10 Initiators aktiv sind, dann laufen gleichzeitig 10 Batch Jobs in 10 getrennten Adressenräumen. Es 0533 ww6 wgs 08-00 INPUT Ein Job wird über den Reader (Internal Reader) eingelesen und auf dem Spool.Datenträger abgelegt. Er gelangt in die JES Input Queue und erhält eine Jobnummer. CONVERSION Die JCL wird im Falle von Prozeduren ergänzt und auf Gültigkeit überprüft. Es wird ein so genannter Internal Text erstellt, der als Kontrollblockstruktur die Batch.Verarbeitung gegenüber dem JES repräsentiert. EXECUTION Nach einem bestimmten Algorithmus und auf der Basis von Priorit äten wird ein Job zur Ausführung ausgewählt. Die Kontrollblöcke des ausgewählten Jobs werden dazu einem freien Initiator übergeben. OUTPUT Die vom Programm erstellten Listen werden in der JES Output Queue auf dem Spool.Datenträger gehalten, bis ein freier Drucker bereit ist, die Listen auszudrucken, oder bis der User/Operator den Output löscht (cancelt). PURGE Erst wenn der gesamte Output auf einen Drucker ausgegeben wurde, werden die von einem Batchjob belegten Bereiche auf dem Spool.Datentr äger gelöscht. Job Entry Subsystem (JES) Auf einem Großrechner laufen in der Regel zahlreiche Jobs gleichzeitig und parallel (hunderte oder tausende von z. T. langlaufenden Jobs während eines Tages). Die Übergabe eines neuen Jobs an das Betriebssystem, das Queuing von Jobs, die Prioritäts- und Ablaufsteuerung zahlreicher Jobs untereinander, Startzeit und Wiederholfrequenz, Durchsatzoptimierung sowie die Zuordnung oder Sperrung von Resourcen ist die Aufgabe eines Job Steuerungssystems. Unter Windows ist dies der “Windows Scripting Host”. Unter Unix existieren verschiedene Software Produkte, z.B. S+ batch, fbatch und viele andere. Die Übergabe (Submission) eines Stapelverarbeitungs-Jobs an das Betriebssystem erfolgt durch einen Benutzer; bei einem Großrechner durch einen spezifisch hierfür abgestellten Bediener (Operator). Unter z/OS wird die Job Submission mit Hilfe des Job Entry Subsystems (JES) automatisiert. JES bewirkt: Zu Anfang der Bearbeitung die Zuordnung von Eingabe und Ausgabe Ressourcen Während der Verarbeitung die Zuordnung von Ressourcen wie CPU´s und Hauptspeicher Nach Abschluß der Bearbeitung die Freigabe der Ressourcen. Sie werden damit für andere Jobs verfügbar. Jobs werden an das Betriebssystem über JES gesteuerte Queue Server (Initiator ) übergeben. Jeder Initiator bedient einen einzigen virtuellen Adressenraum, in dem er auch selbst untergebracht ist.. Wenn ein Job abgeschlossen wird, wird der Initiator des Adressraums aktiv und JES sendet den nächsten Job, der darauf wartet, verarbeitet zu werden. es 0509 ww6 wgs 09-99 Job Control Scheduling Levels bs1002 ww6 wgs 11-02 JES2 und JES3 Aus historischen Gründen existieren zwei leicht unterschiedliche JES Varianten: JES2 und JES3. In einer gegebenen OS/390 Installation wird jeweils nur eine der beiden Varianten eingesetzt. Die Mehrzahl der Installationen setzen JES2 ein, einschließlich jedi.informatik.uni-leipzig.de. In großen SYSPLEX Konfigurationen ist JES3 die bevorzugte Komponente. neue Jobs globales JES3 lokales JES3 lokales JES3 lokales JES3 lokales JES3 Mt Hilfe einer zentralen Ressource Verwaltung und Zuordnung kann ein „Single System Image“ erstellt werden, welches die verteilte Struktur des SYSPLEX vor dem Benutzer weitgehend verbirgt. Anwendungsprogrammierer können mit Hilfe von JCL ähnlichen Befehlen in ihrem Code festlegen, daß der Job zu vorgegebenen Zeitpunkten (z.B. täglich, monatlich oder jährlich) laufen soll. es 0510z ww6 wgs 09-99 Using SDSF After submitting a job, it is common to use System Display and Search Facility (SDSF) a utility that lets you look at output data sets. You can use SDSF to review the job output for successful completion, or to find and fix JCL errors. Specifically, SDSF allows you to display printed output held in the JES spool area. Much of the printed output sent to JES by batch jobs (and other jobs) is never actually printed. Instead it is inspected using SDSF and deleted or used as needed. SDSF provides a number of additional functions, including: Viewing the system log and searching for any literal string Entering system commands Controlling job processing (hold, release, cancel, and purge jobs) Monitoring jobs while they are being processed Displaying job output before deciding to print it Controlling the order in which jobs are processed Controlling the order in which output is printed Controlling printers and initiators Business Process Automation Automatisierung von Geschäftsprozessen Web Service Schnittstellen zum Job Scheduler Zeitsteuerung und Ereignissteuerung Ein Event ist beispielsweise das Unterschreiten des minimalen Lagerbestands. In diesem Fall müssen eine Reihe Jobs automatisch starten und koordiniert werden, und zwar sowohl in den internen ITSystemen als auch in denen der Lieferanten. es 0628 ww6 wgs 07-04 Job Scheduling Characteristics