Obslužný program sálových počítačů IBM

Z Wikipedie, otevřené encyklopedie

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ů

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:

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

IDCAMS

Program 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

Program 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

IEBCOPY 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

IEBDG (anglicky Data Generator) vytváří testovací datové soubory obsahující data popsaná zadanými vzorky.

IEBEDIT

IEBEDIT 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

IEBGENER 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í writerSMTP“ 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

IEBIMAGE 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

IEBISAM 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

IEBPTPCH (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

IEBUPDTE ("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

IEFBR14

IEFBR14 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

Tyto 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

ICKDSF (anglicky Device Support Facility) instaluje, inicializuje a spravuje DASD, buď v prostředí operačního systému, nebo jako samostatný program.

IEHDASDR

IEHDASDR („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

IEHINITT (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

IEHLIST 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

IEHMOVE přemisťuje nebo kopíruje kolekce dat. Nicméně DFSMS (Systém Managed Storage) prostředí jsou nyní obvyklý a IBM nedoporučuje používání IEHMOVE program v tyto. 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

IEHPROGM 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

Ná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

K 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

Kaž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

Po 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

Reference

V tomto článku byl použit překlad textu z článku IBM mainframe utility programs na anglické Wikipedii.

  1. GC28-1143-2, MVS/XA Conversion Notebook, May 1984, page 1-1
  2. 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

Externí odkazy