Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Podobné dokumenty
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Soubory. Tomáš Oberhuber. Soubory. Soubory. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

8 Třídy, objekty, metody, předávání argumentů metod

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Manuál Multitag čtečka

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

VISUAL BASIC. Práce se soubory

Programovací jazyk Pascal

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Maturitní téma: Operační MS-DOS

Stručný návod k programu Octave

Práce se soubory. Základy programování 2 Tomáš Kühr

Programování v C++, 2. cvičení

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

PŘETĚŽOVÁNÍ OPERÁTORŮ

Popis programu EnicomD

Lokální definice (1) plocha-kruhu

PSK3-9. Základy skriptování. Hlavička

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Algoritmizace a programování

Souborové systémy a logická struktura dat (principy, porovnání, příklady).

Algoritmizace a programování

C2110 Operační systém UNIX a základy programování

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Semestrální práce z předmětu ÚPA MIPS

09. Memory management. ZOS 2006, L.Pešička

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Jazyk symbolických adres

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)


Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

5. STRUKTURA PLC PROGRAMU

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Importy a exporty KLIENTSKÝ DOPLNĚK PRO PODPORU IMPORTŮ VERZE 3.2.0

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Vývoj rozhraní pro vzdálené ovládání systému mainframe. Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze

DUM 06 téma: Tvorba makra pomocí VBA

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Průvodce aplikací FS Karta

Reporting. Ukazatele je možno definovat nad libovolnou tabulkou Helios Orange, která je zapsána v nadstavbě firmy SAPERTA v souboru tabulek:

DATABÁZE MS ACCESS 2010

Microsoft Office. Word hromadná korespondence

Proměnné a parametry. predn_08.odt :00:38 1

přetížení operátorů (o)

PROGRAMOVÁNÍ V SHELLU

Základy algoritmizace a programování

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Operační systém UNIX

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Technická specifikace struktury ABO formátu UHL1 DATOVÝ SOUBOR

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Mechanismus obarvení řádků browse

Základní příkazy OS UNIX

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Úvod do Linuxu. SŠSI Tábor 1

1 Tabulky Příklad 3 Access 2010

UŽIVATEL, SKUPINA, PROCES

Management procesu I Mgr. Josef Horálek

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

MS Excel makra a VBA

KIV/ZIS cvičení 5. Tomáš Potužák

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8.2 Používání a tvorba databází

Programování v jazyce C a C++

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Transkript:

Úvod do Struktura příkazy setu v Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Úvod do Struktura příkazy setu v 1 Úvod do 2 Struktura 3 příkazy 4 5 setu v 6 7 8 9

Úvod do Struktura příkazy setu v kombinuje funkce: shellového skriptu (jde o skript na spouštění programů) makefilů (spouštění úloh může být podmíněné) Data set pro musí mít následující formát (zpětná kompatibilita s děrnými štítky): FB (fixed blocked) - RECORD LENGTH = 80 nejčastěji se používá PDS každý job se skládá z jednotlivých kroků, ve kterých jsou spouštěny externí programy nebo volány procedury těchto kroků může být až 255 v jednom jobu

Příklad jobu v Úvod do Struktura příkazy setu v 000100 //OBETO80J JOB (90300000), OBETO80, 000150 // CLASS=A,REGION=4096K, 000200 // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID 000300 //STEP1 EXEC PGM= 000310 //STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR 000320 // DD DSN=SYS1.LPA,DISP=SHR 000400 //SYSIN DD * 000500 FIELDS=(1,75,CH,A) 000600 /* 000700 //SYSOUT DD SYSOUT=* 000800 //IN DD * 000900 PLUTO 001000 MARS... 001800 /* 001900 //OUT DD SYSOUT=* 002000 /*

Struktura Úvod do Struktura příkazy setu v //* COMMENTS //NAME_FIELD OPERATION OPERAND1,OPERAND2 COMMENTS // CONTINUATION /* INSTREAM /* //

Struktura Úvod do Struktura příkazy setu v příkazy se píšou velkými písmeny řádek s komentářem začíná //* řádek s příkazy začíná dvěma lomítkama // - tzv. ID FIELD ihned bez mezery následuje tzv. NAME FIELD - jméno jobu, kroku, definice vstupu/výstupu apod. je-li za ID FIELD uvedena mezera, značí to pokračování předchozího řádku navázání na předchozí řádek musí začít před 16 sloupcem

Struktura Úvod do Struktura příkazy setu v za NAME FIELD následuje operace - OPERATION dále jsou operandy operace oddělují se čárkou bez mezery - mezera uvozuje komentář musí končit před 72 sloupcem ten indikoval pokračování na dalším děrném štítku pokud není 72 sloupec prázdný, vyžaduje se pokračování řádku

Struktura Úvod do Struktura příkazy setu v konec jobu značí samotná // za nimiž nenásleduje nic není nutné je uvádět, jako konec se pak bere poslední řádek pokud ale za samotným // následují další řádky, nebudou provedeny /* v prvních dvou sloupcích značí datový vstup - INSTREAM datový vstup lze poznat podle chybějích //, které určují příkaz /* proto není povinné je užitečné, pokud je vstupem kód pokud vstup má také obsahovat /* - například kód v C/C++, lze definovat jiný DELIMITER

Struktura Úvod do Struktura příkazy setu v //INPUT DD DATA,DLM=@@ /* C/C++ code @@

Příkaz JOB Úvod do Struktura příkazy setu v JOB definuje nový job/úlohu resp. uvozuje hlavičku úlohy. Obsahuje následující operandy: NOTIFY MSGLEVEL CLASS REGION TIME

Příkaz JOB - JOBNAME Úvod do Struktura příkazy setu v JOBNAME definuje jméno úlohy. píše se před před slovo JOB udává jméno úlohy (identifikátor) délka 1-8 znaků často je to ID uživatele plus jedno písmeno z/os neumožňuje současný běh dvou jobu se stejným id Za jménem úlohy se uvádí klíčové slovo JOB.

Úvod do Struktura příkazy setu v Příkaz JOB - ACCOUNTING INFORMATION Za slovo JOB se do závorky píše tzv. ACCOUNTING INFORMATION nutné zjistit u administrátora bez něj nelze job vůbec spustit - záleží na nastavení systému jde o kód přidělovaný ruzným projektům umožňuje např. i sledovat vytížení systému jednotlivými projekty

Příkaz JOB - NAME Úvod do Struktura příkazy setu v Následuje jméno operátora (autora jobu): může být povinné nemusí se nutně shodovat s id uživatele, ale často se tak volí maximální délka je 20 znaků

Příkaz JOB - parametry Úvod do Struktura příkazy setu v K následujícím parametrům existují defaultní hodnoty a není tedy nutné je uvádět. NOTIFY - komu poslat zprávu o dokončení běhu úlohy, může být jiné než id operátora MSGCLASS - určuje, kam směrovat zprávy, které vznikají během zpracování jobu např. TSO, tiskárna apod.

Příkaz JOB - parametry Úvod do Struktura příkazy setu v MSGLEVEL - úroveň zpráv - kód + alokační zprávy první parametr 0 = JES statements 1 = JES statements, statements, vypíše vkládané katalogované procedůry 2 = JES statements, statements druhý parametr 1 = zprávy od JES, SMS a kód 0 = pouze kód (při abnormal end se vypíše všechno)

Příkaz JOB - parametry Úvod do Struktura příkazy setu v CLASS - určuje, do jaké třídy úlohu zařadit (A, B, Q, K) vlastnosti tříd zavisí na systemovém nastavení např. A - úlohy běžící méně než 15 vteřin B - úlohy běžicí méně než půl hodiny C - úlohy vyžadující pásky REGION - udává pamět k úspešnému proběhnutí jobu TIME - udává maximální dobu běhu jobu TIME=(min,sec) TIME=min

Příkaz EXEC Úvod do Struktura příkazy setu v EXEC definuje nový krok = spuštění / utility nebo volání procedury lze spouštět programy //STEPNAME EXEC PGM=program nebo procedury //STEPNAME EXEC PROC=procedura

Úvod do Struktura příkazy setu v výstupních dat DD DD - data definition - slouží k určení vstupů a výstupů //MYDATA DD... vytvoří "virtuální" data set se jménem MYDATA tzv. DDNAME pod tímto jménem pak program s daným data setem pracuje fp = fopen( "DD:MYDATA", "r" ); také to lze chápat jako vytvoření symbolického odkazu v Unixu ln -s indata.dat MYDATA fp = fopen( "MYDATA", "r" );

Úvod do Struktura výstupních dat DD příkazy setu v //OUT DD SYSOUT=* vytváříme DD se jménem OUT (program ho používá pro výstup) přesměrujeme ho na SYSOUT - "standardní výstup" - stdout následuje nastavení SYSOUT, * znamená zacházet s výstupem, jak je uvedeno v hlavičce jobu u MSGCLASS

pro DD - DSN Úvod do Struktura příkazy setu v DSN - DAT SET NAME - jméno data setu, pro který "symbolický odkaz" vytváříme lze použít název DUMMY např. pro zahození výstupu //OUT DD DUMMY

pro DD - DISP Úvod do Struktura příkazy setu v DISP - DISPOSITION - dispozice (stav) data setu na začátku, během zpracování a na konci DISP=(status,normal end, abnormal end) DISP=(status,normal end) DISP=status

pro DD - DISP Úvod do Struktura příkazy setu v DISP - DISPOSITION - dispozice (stav) data setu na začátku, během zpracování a na konci DISP=(status,normal end, abnormal end) DISP=(status,normal end) DISP=status Jde o tzv. poziční parametry (POSITIONAL PARAMETERS) - význam parametru je dán jeho pořadím.

Poziční parametry v Úvod do Struktura příkazy Černý pes. DOG=BLACK setu v

Poziční parametry v Úvod do Struktura příkazy setu v Černý pes. DOG=BLACK Černý pes s dlouhým ocasem. DOG=(COLOR=BLACK,TAIL=LONG) DOG=(BLACK,LONG)

Poziční parametry v Úvod do Struktura příkazy setu v Černý pes. DOG=BLACK Černý pes s dlouhým ocasem. DOG=(COLOR=BLACK,TAIL=LONG) DOG=(BLACK,LONG) Pes s černobílým ocasem. (TAIL je nyní první poziční parametr.) DOG=TAIL=COLOR=(BLACK,WHITE)

pro DD - DISP Úvod do Struktura příkazy setu v Status může být: NEW bude vytvořen nový data set, žádný se stejným jménem nesmí existovat defaultní hodnota, pokud není DISP uvedeno OLD data set už existuje a job k němu má exkluzivní přístup (nikdo jiný ho nesmí používat) pří zápisu dojde k smazání všech dat

pro DD - DISP Úvod do Struktura příkazy setu v SHR data set existuje a může být sdílen mezi více joby (i ostatní joby s ním mohou pracovat) u PDS nezabraní současnému zápisu do stejných členů - u PDSE už ano není dobré provádět v zápis do stejné knihovny kde máme zdrojáky je-li v dispozice SHR, může dojít k současnému zápisu do adresáře a následné ztrátě celého členu viz. také DELETE - smaže celé PDS, ne jen jeden člen MOD modifikace - data set existuje nebo bude vytvořen, job k němu má exkluzivní přístup, a pokud do data setu něco zapisuje, pripojuje se to na konec nelze používat s PDS - při přidávání dat nedochází k aktualizaci adresáře => připojená data jsou většinou ztracena

pro DD - DISP Úvod do Struktura příkazy setu v (ab)normal end ABNORMAL END - nastavá pokud při běhu jobu nastane chyba NORMAL END - job/krok proběhl bez chyby

Úvod do Struktura příkazy setu v pro DD - DISP Možné akce spojené s normal / abnormal end jsou: DELETE smazat defaultní pro NEW KEEP zachovat ale nezařazovat do katalogu defaultní pro OLD o SHR CATLG zachovat a zařadit do katalogu UNCATLG zachovat, ale odstranit z katalogu PASS co udělat s data setem se řeší až v některém dalším kroku, nelze použít jako třetí parametr

Úvod do Struktura příkazy setu v pro DD - DISP Možné akce spojené s normal / abnormal end jsou: DELETE smazat defaultní pro NEW KEEP zachovat ale nezařazovat do katalogu defaultní pro OLD o SHR CATLG zachovat a zařadit do katalogu UNCATLG zachovat, ale odstranit z katalogu PASS co udělat s data setem se řeší až v některém dalším kroku, nelze použít jako třetí parametr U PDS se DISP vztahuje na cele PDS, ne na jednotlivé členy DELETE - smaže celé PDS, ne jen zvoleného člena

Úvod do Struktura příkazy setu v setu v pokud použijeme DISP=NEW, je nutné udat tzv. DCB (DATA CONTROL BLOCK) parametry lze použít příkaz LIKE=data-set-name - použijí se parametry daný data set funguje pouze s SMS a pro data sety na DASD velikost se udá pomocí SPACE SPACE=(UNIT,(PRIMARY-EXTENTS, SECONDARY-EXTENTS, DIRECTORY-BLOCKS),RLSE) UNIT - jednotka pro vyjádření velikosti TRK, CYL, KB, MB, REC DIRECTORY-BLOCKS se uvádí pro PDS parametr RLSE udává, že nevyužité stopy se po uzavření knihovny uvolní

Úvod do Struktura příkazy setu v : setu v SPACE=(TRK,10) PS o velikosti 10 stop SPACE=(TRK,(10,5)) PS s 10 stopama primárně, 5 stop se bude alokovat při zaplnění SPACE=(CYL,5) PS o velikosti 5 cylindru SPACE=(TRK,(10,5,8)) PDS s 10 stopama primárně, 5 stop se bude alokovat při zaplnění, adresář o velikosti 8 traků SPACE=(1000,(50000,10000)) PS s 50000 záznamů primárně, 10000 se bude alokovat při zaplnění, průměrná velikost logického záznamu je 1000 bytů

DSORG Úvod do Struktura příkazy setu v Parametr DSORG - DAT SET ORGANIZATION udává typ data setu DSORG=PS - physical sequential DSORG=PO - partitioned organized není nutné, PDS se opět pozná podle nenulové velikosti adresáře Pro vytvoření PDSE je nutné použít DSNTYPE=LIBRARY Parametr RECFM - RECORD FORMAT - F, FB, V, VB, U.

setu v Úvod do Struktura příkazy setu v 001 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, 002 // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID 003 //STEP1 EXEC PGM= 004 //STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR 005 // DD DSN=SYS1.LPA,DISP=SHR 006 //IN DD DISP=SHR,DSN=OBETO80.INTRO.DATA(PLANETS) 007 //OUT DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(10,5,10)), 008 // DSN=OBET80.INTRO.DATA(OUT) 009 //SYSOUT DD SYSOUT=* 010 //SYSIN DD * 011 FIELDS=(1,3,CH,A) 012 /*

Speciální DD jména Úvod do Struktura příkazy setu v JOBLIB, STEPLIB slouží k připojení knihovny s programy JOBLIB se uvádí ihned za hlavičku - JOB platí pro celou úlohu STEPLIB se uvádí na začátku kroku za EXEC platí pro daný krok je-li uvedeno STEPLIB, JOBLIB se nepoužije Příklad: //STEPLIB DD DSN=knihovna,DISP=SHR

Úvod do Struktura příkazy setu v STEPCAT a JOBCAT Speciální DD jména slouží pro nastavení jiného katalogu SYSPRINT používá PL/I a některé další programy pro chybová hlášení SYSIN používá se pro vstupní data např. zdrojový kód pro překladače pokud z/os narazí na ne- příkaz, přepošle ho na SYSIN SYSOUT standardní výstup

Úvod do Struktura příkazy setu v FIELDS=(1,5,CH,A) zadávají se přes SYSIN - chceme třídit - jde o jeden z mnoha příkazů pro program FIELDS=(1,5,CH,A) chceme třídit podle POLE na PRVNÍ pozici logického záznamu o délce 5 znaků s polem se zachazí jako se znaky (CH) třídí se vzestupně (A) - ascending sequence

Úvod do Struktura příkazy setu v //DATAIN DD DISP=OLD,DSN=MY.INPUT1 // DD DISP=OLD,DSN=MY.INPUT2 Zadané data sety se budou jako vstup zpracovávat jeden po druhém.

Úvod do Struktura příkazy setu v //DATAIN DD DISP=OLD,DSN=MY.INPUT1 // DD DISP=OLD,DSN=MY.INPUT2 Zadané data sety se budou jako vstup zpracovávat jeden po druhém. V Unixu se zadá více vstupních souborů jako argumenty. Ty je ale nutné parsovat.

- příklad Úvod do Struktura příkazy setu v 001 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, 002 // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID 003 //STEP1 EXEC PGM= 004 //STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR 005 // DD DSN=SYS1.LPA,DISP=SHR 006 //IN DD DISP=SHR,DSN=OBETO80.INTRO.DATA(PLANETS) 007 // DD DISP=SHR,DSN=OBETO80.INTRO.DATA(PLANETY) 007 //OUT DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(10,5,10)), 008 // DSN=OBETO80.INTRO.DATA(OUT) 009 //SYSOUT DD SYSOUT=* 010 //SYSIN DD * 011 FIELDS=(1,3,CH,A) 012 /*

Spouštění programů v Úvod do Struktura příkazy setu v //stepname EXEC PGM=program-name, // TIME=(min,sec), // REGION=memory, // PARM=parameters, // COND=condition

Spouštění programů v Úvod do Struktura příkazy setu v TIME udává čas CPU nutný k proběhnutí úlohy TIME=1440, TIME=NOLIMIT, TIME=MAXIMUM program může běžet libovolně dlouho TIME=0 pokud je to použito spolu s EXEC (ne v hlavičce jobu) program může využít všechen čas CPU, který zbývá z předchozích kroků REGION udává množství paměti potřebné pro úlohu

Spouštění programů v Úvod do Struktura příkazy setu v PARM předává parametry v z/os se parametry programů většinou předávají pomocí SYSIN PARM používají hlavně překladače a linkery/bindery

Úvod do Struktura příkazy setu v Spouštění programů v - podmínky COND - vyjádření podmínečného spuštění kroku v závislosti na výsledcích předchozích kroků lepší je používat IF-THEN-ELSE COND=ONLY tento krok spustit, pouze pokud některý předchozí skončil s ABEND COND=EVEN tento krok spustit, i pokud nekěterý z předchozích skončil s ABEND COND=(8,LT,STEP1) je-li 8 menší než (LESS THAN - LT) návratový kód kroku STEP1, tento krok nebude spuštěn COND=(0,NE) je-li 0 nerovno (NOT EQUAL - NE) maximu návratových kódů předchozích kroků, tento krok nebude spuštěn

Úvod do Struktura Spouštění programů v - návratové kódy příkazy setu v Návratové kódy job vraci maximum návratových kódů jednotlivých kroků 0 - vše proběhlo v pořádku následují čísla 4,8,12,16 čím vyšší, tím závažnější chyba, lze vracet i větší čísla, ale většina programů dodržuje tuto konvenci

Úvod do Struktura příkazy setu v Podmínky pro COND LT - less than Spouštění programů v - návratové kódy LE - less than or equal to EQ - equal to NE - not equal to GE - greater than or equal to GT - greater than

Úvod do Struktura příkazy setu v //PROC PROC //MY EXEC PGM= //STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR // DD DSN=SYS1.LPA,DISP=SHR //IN DD DISP=SHR,DSN=&SRTIN //OUT DD DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(10,5,10)), // DSN=&SRTOUT,UNIT=DISK //SYSOUT DD SYSOUT=* // PEND //******************************************************** //STEP1 EXEC PROC=PROC,SRTIN=OBETO80.INTRO.DATA(PLANETY), // SRTOUT=OBETO80.INTRO.OUT(PLANETY) //SYSIN DD * FIELDS=(1,3,CH,A) /*

Úvod do Struktura příkazy setu v definice procedůry se provede příkazem PROC, který předchází jméno procedůry dále lze uvést defaultní hodnoty některých parametrů jméno nesmí být delší, než 8 znaků následuje tělo procedůry v něm se můžeme odkazovat na jednotlivé parametry pomocí znaku & např. &SRTOUT tělo procedůry se ukončuje příkazem PEND s mezerou // PEND volání procedůry tvoří jeden krok úlohy provádí se příkazem //STEPNAME EXEC PROC=jméno-procedůry,PARAM1=param1,PARAM2=param2 PROC= může být vynecháno následně můžeme doplnit nebo předefinovat DD použité v procedůře

Katalogované procedůry v Úvod do Struktura příkazy setu v jde o procedůry uložené v knihovně jméno členu PDS, kam procedůru uložíme musí souhlasit se jménem procedůry k definici katalogované procedůry se nepřidává hlavička úlohy před voláním procedůry v je potřeba knihovnu "připojit" pomocí příkazu LIB nebo pomocí STEPLIB,JOBLIB //MYLIB LIB ORDER=OBETO80.INTRO.

Katalogované procedůry v Úvod do Struktura příkazy setu v OBETO80.INTRO.(MY) 210 //PROC PROC 300 //MY EXEC PGM= 310 //STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR 320 // DD DSN=SYS1.LPA,DISP=SHR 400 //IN DD DISP=SHR,DSN=&DSN 500 //OUT DD SYSOUT=* 600 //SYSOUT DD SYSOUT=* 610 // PEND

Katalogované procedůry v Úvod do Struktura příkazy setu v 100 //OBETO80A JOB (90300000), OBETO80,CLASS=A,REGION=4096K, 200 // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID,TYPRUN=SCAN 300 //MYLIB LIB ORDER=OBETO80.INTRO. 630 //STEP1 EXEC PROC,DSN=OBETO80.INTRO.DATA(PLANETS) 631 //SYSIN DD * 632 FIELDS=(1,5,CH,A) 633 //*STEPLIB DD DSN=OBETO80.INTRO.,DISP=SHR 660 /*

Úvod do Struktura příkazy setu v 1. Kopírování PS - program IEBGENER - příklad COPY1 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //COPY EXEC PGM=IEBGENER //*STEPLIB DD DSN=SYS1.SICELINK,DISP=SHR //* DD DSN=SYS1.LPA,DISP=SHR //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD DSN=OBETO80.INTRO.SOURCE,DISP=OLD //SYSUT2 DD DSN=OBETO80.INTRO.DEST, // DISP=(NEW,CATLG,DELETE), // LIKE=OBETO80.INTRO.SOURCE, // UNIT=DISK

Úvod do Struktura příkazy setu v 2. Kopírování PDS (knihoven) - program IEBCOPY - příklad COPY2 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //COPY EXEC PGM=IEBCOPY //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD DSN=OBETO80.INTRO.DATA,DISP=SHR //SYSUT2 DD DSN=OBETO80.INTRO.DATA2, // DISP=(NEW,CATLG,DELETE), // LIKE=OBETO80.INTRO.DATA, // UNIT=DISK Pokud na SYSUT2 nastavíme stejný název jako na SYSUT1 dojde ke kompresi knihovny.

Úvod do Struktura příkazy setu v 3. Skript pro výpis PS na SYSOUT pomocí IEBGENER - příklad PRINT1 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //COPY EXEC PGM=IEBCOPY //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD DSN=OBETO80.INTRO.DATA,DISP=SHR //SYSUT2 DD DSN=OBETO80.INTRO.DATA2, // DISP=(NEW,CATLG,DELETE), // LIKE=OBETO80.INTRO.DATA, // UNIT=DISK

Úvod do Struktura příkazy setu v 4. Skript pro přípsání řádku do data setu pomocí IEBGENER - příklad PRINT2 //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //COPY EXEC PGM=IEBGENER //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD * ----------------------------------------------------------- //SYSUT2 DD DSN=OBETO80.INTRO.SOURCE, // DISP=(MOD)

Úvod do Struktura příkazy setu v 5. Skript pro spuštění vnořeného jobu pomocí IEBGENER - příklad SUB //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //PRINT EXEC PGM=IEBGENER //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT2 DD SYSOUT=(*,INTRDR) //SYSUT1 DD DATA //OBETO80J JOB (90300000), OBETO80,CLASS=A,REGION=4096K, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID //ALLOC EXEC PGM=IEFBR14 //JUNKDD DD DSN=OBETO80.INTRO.JUNK, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(5,1)), // RECFM=FB, // LRECL=80, // BLKSIZE=3120, // UNIT=DISK // /*

Úvod do Struktura příkazy setu v příkaz SYSOUT=(*,INTRDR) říká, že data se nejprve pošlou INTRDR, a potom na * (zastupuje MSGCLASS v hlavičce úlohy) INTRDR je INTERNAL READER, který načítá kód - viz. část o JES DD DATA se používá pro vkládání.

IEFBR14 Úvod do Struktura příkazy setu v program IEFBR14 pouze vrací nulový návratový kód (pří běhu nedošlo k chybě) jinak nedělá nic používá se pokud chceme vytvořit nebo smazat určitý data set název pochází z instrukce BR 14 - což odpovídá příkazu RETURN DDNAME při použití IEFBR14 může být libovolné //OGDEN1 JOB 1,BILL,MSGCLASS=X // EXEC PGM=IEFBR14 //A DD DSN=OGDEN.LIB.CNTL,DISP=(NEW,CATLG),VOL=SER=WORK02, // UNIT=3390,SPACE=(CYL,(3,1,25) //B DD DSN=OGDEN.OLD.DATA,DISP=(OLD,DELETE)

IEFBR14 Úvod do Struktura příkazy setu v program pochází od jedné skupiny programátoru v IBM, kteří názvy svých programů uvozovali pomocí IEF BR v asembleru znamená skok na adresu skok na adresu uloženou v registru 14 způsobí ukončení