Jobbkontrollspråk

Job Control Language ( JCL ) är ett  programmeringsspråk som används i IBMs stordatoroperativsystem OS / 360 , MVS , OS /390 , z/OS och deras kloner, inklusive EU OS , TKS och BOS . IBM DOS/360 , DOS/VS , VSE , z/VSE -linjen implementerade en delvis kompatibel version av JCL. IBM GCS Guest OS implementerar en delmängd av JCL.

Används för att kontrollera lanseringen av batchjobb . På grund av sitt funktionella syfte har det minimala uttrycksegenskaper som i själva verket ett programmeringsspråk.

Operatörens syntax var ursprungligen fast bunden till vissa positioner (kolumner) på ett hålkort :

Denna syntax har funnits sedan den tidpunkt då uppgiften matades in från hålkort (80-kolumner) och låter dig skydda mot oavsiktlig lansering av information från felaktigt insatta (omvända) kort.

Av kompatibilitetsskäl har den inte ändrats sedan 1960- talet . och fortsätter att användas i moderna versioner av operativsystemen z/OS och z/VSE .

Exempel

Denna sekvens av kommandon (ett "jobb" i EU OS-termer) kopierar innehållet i en datauppsättning IS198.TEST.INPUTtill en datauppsättning IS198.TEST.OUTPUT.

//IS198CPY JOB (IS198T3*0500),'COPY JOB',CLASS=L,MSGCLASS=X //COPY01 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=IS198.TEST.INPUT,DISP=SHR //SYSUT2 DD DSN=IS198.TEST.OUTPUT, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(40,5),RLSE), // DCB=(LRECL=115,BLKSIZE=0), // DATACLAS=SEQFB //SYSIN DD DUMMY //

Kopiering utförs av ett verktyg IEBGENERsom kopierar indatauppsättningen ( SYSUT1) till utdatauppsättningen ( SYSUT2). Den nya ( ) utgångsdatauppsättningen kommer att tilldelas utrymme (parameter ) på direktåtkomstenheten: 40 cylindrar initialt och 15 gånger 5 cylindrar när det initialt tilldelade utrymmet är förbrukat. Om jobbet slutförs framgångsrikt kommer den nya datamängden att katalogiseras ( ), och om den misslyckas kommer den att raderas ( ) DISP=(NEW,CATLG,DELETE)SPACEDISP=(NEW,CATLG,DELETEDISP=(NEW,CATLG,DELETE)

Dessutom har programmet en ingångsström ( SYSIN- används inte (DUMMY)) och en utström ( SYSPRINT). Operatören JOBbeskriver användarens kontoinformation (formatet beror på systeminställningarna) och parametrarna för jobbutförande. I det här exemplet exekveras uppgiften med en klass L(klassparametrar bestäms av systemadministratören när operativsystemet ställs in), tjänstmeddelanden kommer att matas ut till utdatakön för klassen A. Namnet som anges som etiketten för JOB-satsen (IS198CPY) kommer att användas som jobb-ID när jobbet körs.

I ett Unix-liknande system skulle en liknande åtgärd se ut

cp IS198.TEST.INPUT IS198.TEST.OUTPUT

Man bör dock komma ihåg att "uppgiften" i termer av "traditionellt" OS för stordatorn fortfarande inte är en direkt analog till en batchfil i ett Unix-liknande system. Uppgifter bearbetas av ett speciellt systemprogram - Task Scheduler. Eftersom jobbkontrollspråket inte bara beskriver exekveringsordningen för vissa program, utan också alla resurser som behövs för detta (namn på datamängder och en plats för dem, I/O-enheter, krav på RAM och CPU-tid, etc.) . Schemaläggaren organiserar exekveringsordningen för uppgifter på ett sådant sätt att den mest effektiva användningen av tillgängliga datorresurser med minimal mänsklig operatörsinblandning.