Obslužný program sálových počítačů IBM
Obsluž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ů
editovatMnoho 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:
DD jméno | Obvyklá funkce |
---|---|
SYSIN | vstupní soubor s „příkazy“ pro program; pokud je požadována implicitní akce, bývá prázdný (DUMMY) |
SYSUT1 | vstupní soubor |
SYSUT2 | výstupní soubor |
SYSUT3 | pracovní (dočasný) soubor pro vstup (SYSUT1) (často není použit) |
SYSUT4 | pracovní (dočasný) soubor pro výstup (SYSUT2) (často není použit) |
SYSPRINT | soubor pro tiskový výstup z programu |
SYSOUT | výstupní soubor pro zprávy programu |
SYSUDUMP | výstupní soubor pro systémový 'dump', pokud program selže |
Programy pro práci s datovými soubory
editovatIDCAMS
editovatProgram 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
IEBCOMPR
editovatProgram 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:
- Číslo záznamu a bloku
- DD jména souborů, v nichž se objevila nekonzistence
- Nestejné záznamy
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:
- Datové soubory obsahují stejný počet záznamů.
- Odpovídající si záznamy a klíče jsou identické.
V případě členěných datových souborů považuje IEBCOMPR soubory za stejné, pokud jsou splněny následující podmínky:
- Adresářové položky obou členěných datových souborů shodují - tj. počet položek je stejný a jména jsou shodná.
- Odpovídající si členy obsahují stejný počet záznamů.
- Odpovídající si záznamy a klíče jsou identické.
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).
IEBCOPY
editovatIEBCOPY 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:
- Vytvořit sekvenční obraz členěného datového souboru (PDS) do PS datového souboru pro účely zálohování nebo přenosu.
- Kopírovat PDS na místě pro uvolnění nepoužitého prostor ze smazaných členů; tzv. komprimace PDS.
- Kopírovat vybrané členy do jiného členěného souboru.
- Přejmenovávat vybrané členy členěného souboru.
- Slučovat více členěných datových souborů do jednoho.
- Modifikovat a kopírovat zaváděcí moduly a měnit velikosti jejich bloků.
- Členy, které již jsou přítomné v cílovém členěném souboru, nebudou nahrazeny, pokud není použita volba R.
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.
IEBDG
editovatIEBDG (anglicky Data Generator) vytváří testovací datové soubory obsahující data popsaná zadanými vzorky.
IEBEDIT
editovatIEBEDIT 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 START=jobname
udává jméno vstupní úlohy, na kterou má být aplikován příkaz EDIT. Každý příkaz EDIT musí být použit na jinou úlohu. Pokud je zadané START bez TYPE a STEPNAME, bude na výstup opsána celá zadaná úloha počínaje příkazem JOB.
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 TYPE={POSITION|INCLUDE|EXCLUDE}
určuje, jaké kroky se mají vybírat do výstupního datového souboru. Lze použít následující hodnoty:
POSITION
udává, že výstup má obsahovat příkaz JOB, krok zadaný parametrem STEPNAME a všechny následující kroky v dané úloze. Všechny kroky, které předcházejí zadaný krok, jsou vynechány. POSITION je implicitní volba.INCLUDE
udává, že výstupní datový soubor má obsahovat příkaz JOB a všechny kroky zadané parametrem STEPNAME.EXCLUDE
udává, že výstupní datový soubor má obsahovat příkaz JOB a všechny kroky patřící do příslušné úlohy, kromě kroků zadaných v parametru STEPNAME.
Parametr STEPNAME=(namelist)
určuje jména kroků úlohy, které mají být zpracovány.
namelist
může být jméno jednoho kroku úlohy, seznam jmen kroků oddělených čárkami nebo rozsah kroků oddělených pomlčkou (například STEPA-STEPE). V seznamu jmen lze tyto zápisy libovolně kombinovat. Pokud je zadáno více než jedno jméno kroku, musí být celý namelist uzavřený v závorkách.
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 NOPRINT
udává, že do datového souboru se zprávami se nemá opisovat výsledný výstupní datový soubor; implicitní chování je, že výsledný výstup se vypisuje do datového souboru zpráv.[1]
IEBGENER
editovatIEBGENER 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:
- Vytváření záloh sekvenčních datových souborů nebo členů PDS.
- Změna fyzické velikosti bloku nebo délky logického záznamu sekvenčního datového souboru.
- Vytváření upraveného datového souboru.
- Tisk sekvenčního datového souboru nebo členu členěného souboru.
- Vytváření členěného výstupního datového souboru ze sekvenčního vstupního datového souboru.
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 „SMTP
“ např. tímto postupem:
//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.
IEBIMAGE
editovatIEBIMAGE 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ě.
IEBISAM
editovatIEBISAM 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.
IEBPTPCH
editovatIEBPTPCH (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:
- Tisk nebo děrování celý datový soubor, sekvenční nebo členěné (PDS).
- Tisk nebo děrování vybraných členů knihovny.
- Tisk nebo děrování vybraných záznamů ze sekvenčního nebo členěného datového souboru.
- Tisk nebo děrování adresáře členěného souboru.
- Tisk nebo děrování upravené verze sekvenčního datového souboru nebo PDS.
- Kontrola, zda je datový soubor prázdný
//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=*
//
IEBUPDTE
editovatIEBUPDTE ("UPDaTE") zahrnuje změny na sekvenční nebo členěné datové soubory. UNIX patch
program je podobný program, ale používá různé značky ve vstupním formátu (e..g, „./ INSERT ...“ v MVS se stane „@@...“ v Unix Patch).
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 ./ INSERT
.
Program IEBUPDTE může provádět mimo jiné následující úkoly:
- Vytváření a aktualizace knihovny
- Modifikování sekvenční datové soubory nebo členy knihovny
- Změna organizace datového souboru ze sekvenčního na členěný nebo z členěného na sekvenční.
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:
- IEBUPDTE přijímá hodnotu (NEW nebo MOD) parametru PARM uvedeného v příkazu EXEC. Hodnota NEW indikuje, že řídicí příkazy i vstupní data programu jsou obsaženy v souboru s DD jménem SYSIN a žádný soubor s DD jménem SYSUT1 není potřebný. Hodnota MOD indikuje, že soubor s DD jménem SYSIN obsahuje pouze řídicí příkazy; v tomto případě je požadovaný soubor s DD jménem SYSUT1, který obsahuje vstupní data.
- IEBUPDTE čte vstupní datový soubor buď z DD příkazu SYSUT1 anebo z DD příkazu SYSIN.
Krok řízený programem IEUPDTE vypadá takto:
//stepname EXEC PGM=IEUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=class
//SYSUT1 DD ...
//SYSUT2 DD ...
//SYSIN DD ...
Plánovací programy
editovatIEFBR14
editovatIEFBR14 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 xxxxx.yyyyy.zzzzz
:
//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é programy
editovatTyto 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.
ICKDSF
editovatICKDSF (anglicky Device Support Facility) instaluje, inicializuje a spravuje DASD, buď v prostředí operačního systému, nebo jako samostatný program.
IEHDASDR
editovatIEHDASDR („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]
IEHINITT
editovatIEHINITT (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.
IEHLIST
editovatIEHLIST 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:
- adresář PDS
- VTOC (Volume Table of Contents)
- Catalog (OS CVOL)
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
/*
IEHMOVE
editovatIEHMOVE 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:
- Přesun nebo kopírování sekvenčních a členěných datových souborů
- Přesun nebo kopírování vícesvazkových datových souborů
- Přesun celý svazek datových souborů
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
/*
IEHPROGM
editovatIEHPROGM 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:
- Mazání (rušení) datového souboru nebo členu knihovny
- Přejmenovávání datového souboru nebo členu knihovny
- Katalogizace nebo dekatalogizace datového souboru
- Správa hesel datových souborů
Pro katalogizaci:
//SYSIN DD *
CATLG DSNNAME=jméno_datového souboru,
VOL=jméno-zařízení=číslo-svazku
/*
//
Podpůrné programy
editovatNá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.
SORT
editovatK 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 linker
editovatKaž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.
DFSMS
editovatPo 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é.
Odkazy
editovatReference
editovatV tomto článku byl použit překlad textu z článku IBM mainframe utility programs na anglické Wikipedii.
- ↑ GC28-1143-2, MVS/XA Conversion Notebook, May 1984, page 1-1
- ↑ GC28-1143-2, MVS/XA Konverze Notebook, květnu 1984, stránka 1-1. bitsavers.trailing-edge.com [online]. [cit. 2017-02-08]. Dostupné v archivu pořízeném dne 2014-11-29.
Související články
editovatExterní odkazy
editovat- IBM: Manuál programu DFSMSdfp pro z/OS 1.8 Archivováno 10. 7. 2020 na Wayback Machine.
- IBM: Manuál programu IDCAMS pro z/OS 1.8 Archivováno 10. 7. 2020 na Wayback Machine.
- IBM: Manuál programu ADRDSSU pro z/OS 1.8 Archivováno 10. 7. 2020 na Wayback Machine.
- MVS UTILITIES