Obslužný program sálových počítačů IBMObslužné programy sálových počítačů IBM (anglicky IBM mainframe utility programs) jsou utility dodávané s operačními systémy sálových počítačů IBM (např. MVS) především pro práci s datovými soubory a datovými médii. Tento článek popisuje programy distribuované s operačním systémem OS/360 a jeho následníky. Nepopisuje programy pro DOS/360, VSE nebo VM. Původ a společné vlastnosti programůMnoho utilit bylo navrženo uživateli systémů IBM sdruženými v uživatelské skupině SHARE a následně upraveno nebo rozšířeno firmou IBM. Programy se zpravidla spouští z úloh Job Control Language (JCL). Obvykle používají následující DD jména pro datové soubory:
Programy pro práci s datovými souboryIDCAMSProgram IDCAMS (anglicky Access Method Services) generuje a mění datové soubory, ať používají nebo nepoužívají VSAM (Virtual Storage Access Method). Program IDCAMS se objevil spolu s VSAM v systému OS/VS; „Access Method“ ve jménu vychází ze skutečnosti, že v systému OS/VS „VSAM nahrazuje všechny ostatní přístupové metody“. IDCAMS by měl zahrnovat většinu funkčnosti ostatních pomocných systémových programů. Příklad použití: //XXXXXXXW JOB XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID
//STEP001 EXEC PGM=IDCAMS
//SYSIN DD *
REPRO INFILE(FILE01) OUTFILE(FILE02)
/*
//FILE01 DD DSN=PROD.FILE1.INPUT,disp=shr .....
//FILE02 DD DSN=PROD.FILE2.OUTPUT,
// DISP=(NEW,CATLG,DELETE),
// UNIT=DASD,
// SPACE=(TRK,(100,10),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//*
V tomto případě je řídicí příkaz v souboru s DD jménem SYSIN začleněn přímo do vstupního proudu, ale může použit libovolný sekvenční soubor nebo člen knihovny (včetně dočasných souborů), např.: //SYSIN DD DSN=PROD.MYFILE.REPRO,DISP=SHR
nebo: //SYSIN DD DSN=PROD.MYLIB.CNTLLIB(REPRO),
// DISP=SHR
IEBCOMPRProgram IEBCOMPR slouží k porovnávání dvou sekvenčních nebo členěných datových souborů. Porovnání je prováděno na úrovni logických záznamů. Proto se IEBCOMPR často používá pro verifikaci, že záložní kopie datového souboru je správná (tj. přesně se shoduje s původním souborem). Při zpracování porovnává IEBCOMPR jednotlivé záznamy z obou datových souborů. Pokud záznamy nejsou stejné, IEBCOMPR vypisuje na SYSOUT následující informace:
Při porovnávání sekvenčních datových souborů IEBCOMPR považuje datové soubory za stejné, pokud jsou splněny následující podmínky:
V případě členěných datových souborů považuje IEBCOMPR soubory za stejné, pokud jsou splněny následující podmínky:
Pokud se soubory liší, IECOMPR skončí s vhodnými zprávami. //XXXXXXXW JOB XXXXXXX,AAAA.A.A,CLASS=G,MSGCLASS=1,NOTIFY=XXXXX
//STEP01 EXEC PGM=IEBCOMPR,ACCT=PJ00000000
// INCLUDE MEMBER=@BATCHS
//*SYSIN DD DUMMY
//SYSIN DD *
COMPARE TYPORG=PO
/*
//SYSUT1 DD DSN=XXXXXXX.OLDFILE,UNIT=DASD,DISP=SHR
//SYSUT2 DD DSN=XXXXXXX.NEWFILE,UNIT=DASD,DISP=SHR
//SYSUT# DD
IEBCOMPR není příliš flexibilní ani uživatelsky přívětivý program. Neumí omezit porovnávání na určité sloupce, neumí ignorovat rozdíly v bílých znacích, neoznamuje, kde se objevil rozdíl v záznamech, a skončí po nalezení 10 rozdílů. Je však rychlý a je dostupný na všech sálových počítačích IBM. Je velmi užitečný, když se očekává přesná shoda, jako například při porovnávání zaváděcích modulů, u nichž nebyla změněna délka bloku, nebo při kontrole, že soubor byl zkopírován dobře. Pro porovnávání programů nebo zpráv, se obvykle používá program ISPF SuperC (ISRSUPC). IEBCOPYIEBCOPY kopíruje, komprimuje a slučuje členěné datové soubory. Během operace kopírování může také vybrat nebo přeskočit zadané členy a přejmenovávat nebo nahrazovat členy. Program IEBCOPY může provádět mimo jiné následující úkoly:
Program IEBCOPY lze použít pro kopírování souborů takto: //stepname EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=class
//MYDD1 DD DSN=xxxx.ppp.psps,DISP=SHR
//MYDD2 DD DSN=xxxx.ppp.pssp,DISP=SHR
//SYSIN DD *
COPY INDD=MYDD1,OUTDD=MYDD2
SELECT MEMBER=(MEM1,MEM2,MEM3)/ EXCLUDE MEMBER=(SF,DF,SA)
Pro popis vstupního a výstupního členěného datového souboru mohou být použita libovolná povolená DD jména, jejich propojení na vstupní a výstupní soubor je provedeno v příkazech, které řídí program IEBCOPY; v příkladu jsou použita DD jména MYDD1 a MYDD2; implicitní DD jména jsou SYSUT1 pro vstup a SYSUT2 pro výstup. Pro komprimaci členěného datového souboru se použije pouze jeden příkaz DD. IEBDGIEBDG (anglicky Data Generator) vytváří testovací datové soubory obsahující data popsaná zadanými vzorky. IEBEDITIEBEDIT selektivně kopíruje části JCL úlohy. Příklad použití programu IEBEDIT: //IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//STEP0001 EXEC PGM=IEBEDIT
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR
//SYSUT2 DD SYSOUT=(*,INTRDR)
//SYSIN DD *
EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15)
/*
//
Datový soubor xxxxx.yyyyy.zzzzz z tohoto příkladu musí obsahovat JCL úlohu nebo úlohy, které musí obsahovat kroky pojmenované STEP5, STEP10 a STEP15). Program IEBEDIT zkopíruje vybrané kroky JCL úlohy do výstupního souboru SYSUT2 (v tomto příkladu na interní reader). Příkaz EDIT má tuto syntaxi: [návěstí] EDIT [START=jobname]
[,TYPE={POSITION|INCLUDE|EXCLUDE}]
[,STEPNAME=(namelist)]
[,NOPRINT]
Parametr Implicitní chování: pokud chybí START, a je uveden pouze jeden příkaz EDIT, bude zpracována první úloha, která se objeví ve vstupním datovém souboru. Pokud není uvedeno START v jiném než prvním příkazu EDIT, bude zpracována následující úloha (JOB) ze vstupního datového souboru. Parametr
Parametr
Při použití s TYPE=POSITION, STEPNAME je zadán první krok, který má být zkopírován do výstupního datového souboru. Kroky, které předcházejí tomuto kroku, nebudou do výstupního datového souboru zkopírovány. Při použití s TYPE=INCLUDE nebo TYPE=EXCLUDE, určuje STEPNAME jména kroků úlohy, které mají být obsaženy v nebo vynechány z kopírování. Například STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indikuje, že mají být zkopírovány (nebo vynechány) kroky STEPA, STEPF až STEPL a STEPZ. Pokud není použito STEPNAME, bude na výstup zkopírována celá vstupní úloha, jejíž jméno je zadané v příkazu EDIT. Pokud není zadané jméno úlohy, bude zpracována první úloha na vstupu. Parametr IEBGENERIEBGENER kopíruje záznamy ze sekvenčního datového souboru nebo vytváří členěné datové soubory. Program IEBGENER lze používat k následujícím účelům:
Příklad použití programu IEBGENER pro kopírování datového souboru: //IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//STEP010 EXEC PGM=IEBGENER
//SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR
//SYSUT2 DD DSN=aaaaa.bbbbb.ccccc,DISP=(,CATLG),
// UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),
// DCB=(RECFM=FB,LRECL=1440)
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
Pro jednoduché kopírování může být rychlejší program sort. Mnoho instalací sálových počítačů proto používá volbu, která automaticky převádí takové úlohy na použití třídicího programu ICEGENER místo programu IEBGENER.
Na některých systémech je možné z dávkové úlohy poslat e-mail nasměrováním výstupu na externí writer „ //IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//NORMRC EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *,LRECL=80
HELO <SYSTEMID>
MAIL FROM:<USERID@SYSTEMID>
RCPT TO:<USERID@SYSTEMID>
DATA
From: <USERID@SYSTEMID>
To: <USERID@SYSTEMID>
Subject: Testovaci zprava
Testovaci zprava ze saloveho pocitace.
.
QUIT
/*
//SYSUT2 DD SYSOUT=(B,SMTP),LRECL=80
//SYSIN DD DUMMY
K e-mailu lze také připojit další soubory. IEBIMAGEIEBIMAGE pracuje s několika druhy definic (anglicky images) pro laserový tiskový subsystém IBM 3800 a tiskárnu IBM 4248. Obvykle se používá pro forms control buffers (FCBs), tabulky rozložení znaků, definice znaků a obrazy formulářů, které se mají tisknout spolu s textem, pro tisk log společností na stránce a pro tisk 'graybar' stránek (s podtiskem tvořeným šedými a bílými pruhy, aby se výstup podobal tisku na dříve používané papíry s předtištěnými zelenými pruhy). Tento program umožňuje uložit nejrůznější obrazy, které pak lze použít pro podtisk, aby nebylo nutné používat různé předtištěné formuláře, které vyžadují, aby operátoři vyměňovali papíry v tiskárně. IEBISAMIEBISAM ukládá, načítá, kopíruje a vypisuje index-sekvenční datové soubory používající přístupovou metodu ISAM. V novějších operačních systémech, kde bylo ISAM nahrazeno VSAM, se místo IEBISAM používá program IDCAMS. IEBPTPCHIEBPTPCH (anglicky PrinT and PunCH) vypisuje nebo děruje záznamy ze sekvenčního nebo členěného datového soubor. Program IEBPTPCH může provádět mimo jiné následující úkoly:
//IEBPTPCH JOB
// EXEC PGM=IEBPTPCH
//SYSIN DD *
PRINT MAXFLDS=2
TITLE ITEM=('Jméno',22),
ITEM=('GPA',50)
TITLE ITEM=(' ',1)
RECORD FIELD=(25,1,,22),
FIELD=(4,51,,50)
/*
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
Person 1 307 C Meshel Hall 3.89
Second person 123 Williamson Hall 2.48
3. person 321 Maag Knihovna 1.52
/*
//SYSUT2 DD SYSOUT=*
//
Pro kontrolu, zda je datový soubor prázdný lze použít následující příkazy; pokud je soubor prázdný, bude návratový kód nastaven na 4, jinak na 0: //IEBPTPCH JOB
// EXEC PGM=IEBPTPCH
//SYSUT1 DD DSN=<jméno_souboru>,DISP=SHR
//SYSUT2 DD DUMMY,
// DCB=(BLKSIZE=<blok velikost>,RECFM=FA)
//SYSIN DD *
PRINT TYPORG=PS
/*
//SYSPRINT DD SYSOUT=*
//
IEBUPDTEIEBUPDTE ("UPDaTE") zahrnuje změny na sekvenční nebo členěné datové soubory. UNIX Někteří programátoři vyslovují jméno tohoto programu „aj-í-bí-ap-ditty“. Program IEBUPDTE se používá na údržbu zdrojových knihoven. Vzdáleně se podobá unixovému programu patch. Na rozdíl od něj používá příkazy jako
IEBUPDTE se často používá pro přenos zdrojových knihoven z pásky na DASD. IEBUPDTE používá stejné JCL příkazy jako většina programů řady IEB s následujícími výjimkami:
Krok řízený programem IEUPDTE vypadá takto: //stepname EXEC PGM=IEUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=class
//SYSUT1 DD ...
//SYSUT2 DD ...
//SYSIN DD ...
Plánovací programyIEFBR14IEFBR14 je program, který nedělá nic. Operační systém však před a po spuštění tohoto programu alokuje a dealokuje datové soubory definované DD příkazy, proto se IEFBR14 často používá pro vytvoření, katalogizaci nebo smazání datových souborů. Příklad úlohy s IEFBR14, která smaže soubor //IEFBR14 JOB ACCT,'DELETE DATASET'
//STEP01 EXEC PGM=IEFBR14
//DELDD DD DSN=xxxxx.yyyyy.zzzzz,
// DISP=(MOD,DELETE,DELETE),UNIT=DASD
První verze tohoto programu obsahovala jedinou instrukci „Skok na registr 14“ (anglicky Branch na Registr). Při spouštění programu nebo volání funkce na OS/360 se návratová adresa ukládá do registru 14. Skok na registr 14 tedy okamžitě ukončí funkci nebo program. Kryptické jméno programu IEFBR14 začíná IEF, což je „prefix“ subsystému „správy úloh“ na OS/360. Další část vychází z mnemoniky používané v jazyce symbolických adres IBM pro skok – BR; 14 je číslo registru. První verze programu s jedinou instrukcí nefungovala správně – nenastavovala návratový kód. Bylo proto nutné přidat druhou instrukci, která nastavuje návratový kód na hodnotu 0 znamenající úspěch. Další chybou bylo, že IEFBR14 nebyl linkován jako reentrantní (současně použitelný více než jedním volajícím programem). Někteří hackeři upravovali program IEFBR14 tak, že změnili instrukci BR 14 na BR 15, což je „nejkratší smyčka na světě“, protože registr 15 obsahuje adresu začátku programu. Instrukce BR 15 se tak provádí opakovaně a program nikdy neskončí. Systémové programyTyto programy obvykle používají systémoví programátoři při správě operačního systému, spíše než programátoři, kteří v systému provádějí aplikační práce. ICKDSFICKDSF (anglicky Device Support Facility) instaluje, inicializuje a spravuje DASD, buď v prostředí operačního systému, nebo jako samostatný program. IEHDASDRIEHDASDR („Direct Access Storage Dump and Restore“) je starší program, který není uveden v aktuálních manuálech pro z/OS, vypisuje datové soubory z disku na tiskárnu, provádí zálohy a obnovuje zálohované soubory. IEHDASDR byl odstraněný v MVS/XA.[2] IEHINITTIEHINITT (anglicky INITialize Tape) inicializuje pásky zapsáním jmenovek. Při jednom spuštění programu lze inicializovat více pásek. Mohou být použity standardní IBM jmenovky nebo ASCII jmenovky. Příklad použití programu IEHINITT: //IEHINITT JOB ACCT,'LABEL TAPES',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHINITT,REGION=8M
//SYSPRINT DD SYSOUT=A
//LABEL DD DCB=DEN=2,UNIT=(3490,1,DEFER)
//SYSIN DD *
LABEL INITT SER=123450,NUMBTAPE=3
/*
Tento příklad zapíše jmenovky na 3 pásky magnetické páskové jednotky 3490. Na každou pásku bude zapsána standardní IBM jmenovka. VOLSER bude zvýšeno o 1 pro každou další pásku. Každá páska je po označení převinuta a odpojena. IEHLISTIEHLIST je program používaný pro výpis položek v adresáři členěného datového souboru (anglicky Partitioned Data Set, PDS) nebo pro výpis obsah Volume Table of Contens (VTOC). Program IEHLIST lze použít pro výpis položek obsažených v následujících adresářích:
Příklad použití programu IEHLIST: //IEHLIST JOB ACCT,'LIST PDS',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHLIST,REGION=8M
//SYSPRINT DD SYSOUT=A
//PDS1 DD DSN=xxxx.yyyy.zzzz,DISP=OLD
//SYSIN DD *
LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMAT
/*
Tato úloha provede formátovaný výpis PDS adresáře členěného soubor se jménem xxxx.yyyy.zzzz. Podobně vypadá použití programu IEHLIST pro výpis VTOC: //IEHLIST JOB ACCT,'LIST VTOC',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHLIST,REGION=8M
//SYSPRINT DD SYSOUT=A
//VOL1 DD VOL=SER=vvvvvv,DISP=OLD
//SYSIN DD *
LISTVTOC VOL=vvvvvv,FORMAT
/*
IEHMOVEIEHMOVE přemisťuje nebo kopíruje kolekce dat. Nicméně DFSMS (Systém Managed Storage) prostředí jsou nyní obvyklá a IBM nedoporučuje na ně používat IEHMOVE. Přesun se odlišuje od kopírování v tomto během přesun původní datový soubor je smazaný nebo zrušený. Program IEHMOVE může provádět mimo jiné následující úkoly:
IEHMOVE se může zdát nadbytečná vzhledem k existenci programů IEBGENER a IEBCOPY. IEHMOVE je však výkonnější. Hlavní výhodou IEHMOVE je, že není třeba zadávat prostor nebo DCB informace pro nové datové soubory, protože IEHMOVE alokuje prostor podle původních datových souborů. Další výhodou IEHMOVE je, že umí kopírovat nebo přesouvat skupiny datových souborů i celé svazků dat. Díky snadnému přesouvání skupin datových souborů nebo svazků je program IEHMOVE obecně upřednostňován systémovými programátory. Příklad použití program IEHMOVE: //stepname EXEC PGM=IEHMOVE,PARM='LINECNT=xx,POWER=n'
//SYSPRINT DD SYSOUT=class
//SYSUT1 DD UNIT=aaaa,VOL=SER=bbbbbb,DISP=OLD
//anyname1 DD UNIT=cccc,VOL=SER=dddddd,DISP=OLD
//anyname2 DD UNIT=eeee,VOL=SER=ffffff,DISP=OLD
//SYSIN DD ...
Všechny DD příkazy pro IEHMOVE kromě SYSPRINT a SYSIN se odkazují na celé zařízení DASD nebo páskový svazek, ne na jednotlivé datové soubory. Odkazy na celé svazky mohou představovat problém, protože dispozice DISP=OLD dává exkluzivní přístup ke svazku. Proto je při běhu IEHMOVE celý svazek nedostupný pro ostatní uživatele, (včetně všech datových souborů na něm). To je přijatelné pro soukromé svazky, například páskové svazky nebo připojitelné svazků, ale nepřijatelné pro veřejné svazky, jako například svazky DASD. DD jméno SYSUT1 určuje svazek DASD pro dočasné uložení pracovních datových souborů. V tomto DD příkazu je třeba zadat informace o jednotce a svazku. IEHMOVE byl jedním první systémových programů napsaných v jazyce PL/S. Pro přesun tří sekvenčních datových souborů (SEQSET1, SEQSET2 a SEQSET3) z jednoho diskového svazku na tři různé diskové svazky. Každý ze tří cílových svazků je připojen, když je požadován programem IEHMOVE. Zdrojové datové soubory nejsou katalogizované. Prostor je přidělené programem IEHMOVE. //MOVEDS JOB ...
//STEP1 EXEC PGM=IEHMOVE
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD1 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222222))
//DD2 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222333))
//DD3 DD UNIT=(disk,,DEFER),DISP=OLD,
// VOLUME=(PRIVATE,,SER=(222444))
//DD4 DD VOLUME=(PRIVATE,RETAIN,SER=(444444)),
// UNIT=disk,DISP=OLD
//SYSIN DD *
MOVE DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444
MOVE DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444
MOVE DSNAME=SEQSET3,TO=disk=222444,FROM=disk=444444
/*
IEHPROGMIEHPROGM vytváří a spravuje systémová řídicí data. Také se používá pro přejmenovávání a rušení (mazání) datových souborů. IEHPROGM lze používat k následujícím účelům:
Pro katalogizaci: //SYSIN DD *
CATLG DSNNAME=jméno_datového souboru,
VOL=jméno-zařízení=číslo-svazku
/*
//
Podpůrné programyNásledující programy technicky nejsou utilitami – protože nejsou dodávány s operačním systémem, ale prodávají se jako zvláštní balíčky. Protože se však jedná o standardní položky potřebné pro programování počítače, jsou nainstalovány téměř na všech počítačích. SORTK nejpoužívanějším programům na sálových počítačích patří sort/merge. Různé varianty tohoto programu slouží k řazení (třídění) záznamů v souboru do požadovaného pořadí a pro slučování předtříděných (anglicky pre-sorted) souborů. Moderní programy sort/merge mohou také vybírat nebo vynechávat určité záznamy, sumarizovat záznamy, odstraňovat duplicity, přeformátovávat záznamy a produkovat jednoduché sumární zprávy. Programy sort/merge pro sálové počítače IBM dodává několik společností. Třídicí program přímo od IBM se jménem IERRCO00 (nebo SORT) podporoval pouze diskové jednotky IBM první generace (2311 a 2314) a pásky (2400). Podpora pro diskové jednotky druhé generace podporovaly jiné programy IBM, především DFSORT (neboli ICEMAN, a také SORT). Překladače a linkerKaždý programovací jazyk používaný v počítačovém systému má svůj překladač, který převádí zdrojový program na cílový modul (anglicky object module) ve strojovém jazyce. Z cílových modulů vytvořených překladačem se spustitelný program neboli zaváděcí modul (anglicky load module) vytvoří linkerem, v terminologii IBM nazývaným linkage editor), který nese jméno IEWL. Příkladem překladače je IGYCRCTL, což je překladač pro aktuální IBM Enterprise COBOL pro operační systém z/OS. V průběhu doby existovalo několik starších překladačů jazyka COBOL od firmy IBM s různými jmény. IBM dodávalo překladače i pro jiné programovací jazyky. DFSMSPo zavedení Hierarchical storage management začala firma IBM dodávat sadu programů DFSMS (Storage Management System), které převzaly úlohy při správě úložných zařízení, které dříve prováděli manuálně systémoví programátoři. Správce úložišť (anglicky storage administrator) definuje třídy úložišť a pravidla, která zařazují datové soubory do těchto tříd. Uživatel nebo programátor pak pouze zadá třídu jednotlivých datových souborů (často pomocí standardních pojmenovávacích pravidel systému). Systém pak spravuje datové soubory automaticky, přičemž dbá o ukládání souborů na vhodné svazky, poskytuje zálohy a zotavení, přenáší datové soubory mezi jednotlivými vrstvami hierarchie pamětí podle potřeby, aby použití systémových prostředků bylo efektivní a vyvážené. OdkazyReferenceV tomto článku byl použit překlad textu z článku IBM mainframe utility programs na anglické Wikipedii.
Související článkyExterní odkazy
|
Portal di Ensiklopedia Dunia