Программы поддержки для OS/360 и последующих версий

Программы поддержки включены или доступны для IBM OS/360 и последующих версий

В этой статье обсуждаются программы поддержки, включенные или доступные для OS/360 и последующих версий . IBM классифицирует некоторые из этих программ как утилиты [1] [a] , а другие как сервисные средства; [2] границы не всегда последовательны или очевидны. Многие, но не все, из этих программ соответствуют типам в утилитном программном обеспечении .

В следующих списках описываются программы, связанные с OS/360 и ее преемниками . Утилиты DOS , TPF или VM не включены.

История/Общий JCL

Многие из этих программ были разработаны пользователями IBM через группу SHARE , а затем изменены или расширены IBM на основе версий, изначально написанных пользователем.

Эти программы обычно вызываются через Job Control Language (JCL). Они, как правило, используют общие идентификаторы JCL DD (в ОС, теперь операционных системах z/OS ) для своих наборов данных:

DDNAMEОбычная функция
СЫСИНВходной файл для 'команд' для утилиты. Часто устанавливается в DUMMY, если требуется действие по умолчанию
СИСУТ1входной файл
СИСУТ2выходной файл
СИСУТ3рабочий (spill) файл для ввода (SYSUT1) (часто не используется)
СИСУТ4рабочий (spill) файл для вывода (SYSUT2) (часто не используется)
СИСПРИНТвыходной файл для распечатки выходных данных утилиты
СИСТЕМНЫЙ ВЫХОДвыходной файл для сообщений от утилиты
СИСУДАМПвыходной файл для системного «дампа» в случае сбоя программы

Утилиты набора данных

IDCAMS

IDCAMS («Access Method Services») генерирует и изменяет наборы данных Virtual Storage Access Method (VSAM) и Non-VSAM. IDCAMS был представлен вместе с VSAM в OS/VS ; ссылка «Access Method» происходит от изначального мышления OS/VS «VSAM заменяет все другие методы доступа». IDCAMS, вероятно, обладает наибольшей функциональностью среди всех служебных программ, выполняя множество функций как для файлов VSAM, так и для файлов не-VSAM.

Следующий пример иллюстрирует использование IDCAMS для копирования набора данных на диск. Набор данных содержит 80-байтовые записи, и система выберет размер блока для вывода:

// 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 . ВЫВОД , // ОТОБРАЖЕНИЕ = ( НОВЫЙ , CATLG , УДАЛИТЬ ), // ЕДИНИЦА = DASD , // ПРОБЕЛ = ( TRK ,( 100 , 10 ), RLSE ), // DCB = ( RECFM = FB , BLKSIZE = 0 , LRECL = 80 ) // SYSPRINT DD SYSOUT = * // SYSOUT  DD SYSOUT = * // SYSUDUMP DD SYSOUT = *            //*

В приведенном выше примере контрольные карты SYSIN берутся из файла in-stream, но вместо этого вы можете указать на любой последовательный файл или член PDS, содержащий контрольные карты или временный набор данных, если хотите. Пример использования файлов SYSIN будет примерно таким:

// SYSIN  DD DSN = PROD.MYFILE.REPRO , DISP = SHR

или это:

// SYSIN  DD DSN = PROD.MYLIB.CNTLLIB ( REPRO ) , // DISP = SHR 

IEBCOMPR

IEBCOMPR сравнивает записи в последовательных или секционированных наборах данных .

Утилита IEBCOMPR используется для сравнения двух последовательных или секционированных наборов данных . Это сравнение наборов данных выполняется на уровне логической записи. Поэтому IEBCOMPR обычно используется для проверки корректности резервной копии набора данных (точного соответствия оригиналу).

Во время обработки IEBCOMPR сравнивает каждую запись из каждого набора данных, одну за другой. Если записи не равны, IEBCOMPR выводит следующую информацию в SYSOUT:

  • Номера записей и блоков, о которых идет речь.
  • Названия утверждений DD, в которых обнаружено несоответствие.
  • Неравные рекорды.

При сравнении последовательных наборов данных IEBCOMPR считает наборы данных равными, если выполняются следующие условия:

  • Наборы данных содержат одинаковое количество записей.
  • Соответствующие записи и ключи идентичны.

Для разделенных наборов данных IEBCOMPR считает наборы данных равными, если выполняются следующие условия:

  • Записи каталога для двух разделенных наборов данных совпадают, то есть имена одинаковы, а количество записей одинаково.
  • Члены-корреспонденты содержат одинаковое количество записей.
  • Соответствующие записи и ключи идентичны.

Если в процессе обработки обнаружено десять неравных сравнений, IECOMPR завершает работу с соответствующим сообщением.

// 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 не очень гибкая или удобная программа сравнения. Она не может ограничить сравнение только определенными столбцами, не может игнорировать различия в пробелах, не сообщает, где в записи возникает различие, и останавливается после 10 различий. С другой стороны, она быстрая и присутствует на всех мэйнфреймах IBM. Поэтому она очень полезна, когда ожидается точное совпадение, например, при сравнении загрузочных модулей, которые не были переблокированы, или при проверке корректности работы копии. Для сравнения программ или отчетов часто используется программа сравнения ISPF SuperC (ISRSUPC).

IEBCOPY

IEBCOPY копирует, сжимает и объединяет секционированные наборы данных . Он также может выбирать или исключать указанные элементы во время операции копирования, а также переименовывать или заменять элементы.

Некоторые из задач, которые может выполнять IEBCOPY, включают в себя следующее:

  • Создание выгрузки секционированного набора данных (PDS) в набор данных PS для резервного копирования или передачи.
  • Копирование PDS на место для освобождения неиспользуемого пространства от удаленных элементов; также называется сжатием PDS.
  • Копирование выбранных участников в другую PDS.
  • Переименование выбранных членов PDS.
  • Объединение нескольких разделенных наборов данных в единый PDS.
  • Изменение, копирование и повторная блокировка загрузочных модулей.
  • Элементы, которые уже присутствуют в другом PDS, не будут заменены, если не указана опция R.

Для утилиты IEBCOPY требуемые операторы управления заданиями для копирования следующие:

// имя_шага EXEC PGM = IEBCOPY // SYSPRINT DD SYSOUT = класс // MYDD1  DD DSN = xxxx . ppp . psps , DISP = SHR // MYDD2  DD DSN = xxxx . ppp . pssp , DISP = SHR // SYSIN  DD *  COPY INDD=MYDD1,OUTDD=MYDD2  ВЫБРАТЬ ЭЛЕМЕНТ=(MEM1,MEM2,MEM3)/ ИСКЛЮЧИТЬ ЭЛЕМЕНТ=(SF,DF,SA)   

Операторы DD MYDD1 и MYDD2 — это имена, выбранные пользователем для разделенных входных и выходных наборов данных соответственно; значения по умолчанию — SYSUT1 и SYSUT2. Вы можете использовать любое допустимое DDNAME для этих двух операторов DD. Эти DDNAME указываются в управляющих операторах утилиты, чтобы сообщить IEBCOPY имя входных и выходных наборов данных. Для сжатия PDS вам нужен только один оператор DD.

ИЭБДГ

IEBDG ('Генератор данных') создает тестовые наборы данных, состоящие из шаблонных данных. Операторы управления определяют поля создаваемых записей, включая позицию, длину, формат и выполняемую инициализацию. IEBDG может использовать существующий набор данных в качестве входных данных и изменять поля, как указано в операторах управления, например, заменяя поле имени случайным алфавитным текстом. Содержимое каждого поля может изменяться для каждой записи, например, путем поворота символов в алфавитно-цифровом поле влево или вправо для каждой последующей записи.

Пример:

// XXXXXXXW JOB XXXXXXX , AAAA , CLASS = G , MSGCLASS = 1 , NOTIFY =& SYSUID //********************************************************************** //* СОЗДАНИЕ НАБОРА ДАННЫХ ДЛЯ ДАЛЬНЕЙШЕГО ИСПОЛЬЗОВАНИЯ //***************************************************************** // CRSTEP EXEC PGM = IEFBR14 // DDCREA  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( NEW , CATLG ) //********************************************************************** //* СОЗДАНИЕ ТЕСТОВЫХ ДАННЫХ //***************************************************************** // STEP1 EXEC PGM = IEBDG // SYSPRINT DD SYSOUT = * // SEQOUT  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = OLD // SYSIN  DD DATA  DSD OUTPUT=(SEQOUT)  FD NAME=FIELD1,LENGTH=30,STARTLOC=1,FORMAT=AL,ACTION=TL  FD NAME=FIELD2,LENGTH=30,STARTLOC=31,FORMAT=AL,ACTION=TR  FD NAME=FIELD3,LENGTH=10,STARTLOC=71,PICTURE=10, X  P'1234567890',INDEX=1  CREATE QUANTITY=500,NAME=(FIELD1,FIELD2,FIELD3),FILL=X'FF'  END /* //*************************************************************************** //* ПЕЧАТЬ ТЕСТОВЫХ ДАННЫХ В SYSOUT //********************************************************************** // STEP2 EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1  DD DSN = * . STEP1 . SEQOUT , DISP = SHR // SYSIN  DD DUMMY //                  SYSUT2  DD SYSOUT = * //********************************************************************** //* УДАЛИТЬ СОЗДАННЫЙ НАБОР ДАННЫХ, ДАЖЕ ЕСЛИ ПРЕДЫДУЩИЕ ШАГИ ЗАВЕРШИЛИСЬ //********************************************************************** // DLSTEP EXEC PGM = IEFBR14 , COND = EVEN // DDDEL  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( OLD , DELETE , DELETE ) //    

IEBEDIT

IEBEDIT выборочно копирует части JCL.

Пример программы 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) /* //    

В этом примере набор данных xxxxx.yyyyy.zzzzz должен содержать задание(я) (которые должны включать шаги с именами STEP5, STEP10 и STEP15). Эта процедура IEBEDIT копирует выбранные шаги задания в выходной файл SYSUT2 (в этом примере внутренний считыватель).

Синтаксис оператора EDIT следующий:

[метка] ИЗМЕНИТЬ [START=имя_задания] [,ТИП={ПОЛОЖЕНИЕ|ВКЛЮЧИТЬ|ИСКЛЮЧИТЬ}] [,STEPNAME=(список_имен)] [,NOPRINT]

START=jobnameуказывает имя входного задания, к которому применяется оператор EDIT. Каждый оператор EDIT должен применяться к отдельному заданию. Если START указан без TYPE и STEPNAME, в вывод включаются оператор JOB и все шаги задания для указанного задания.

По умолчанию: Если START пропущен и указан только один оператор EDIT, обрабатывается первое задание, обнаруженное во входном наборе данных. Если START пропущен из оператора EDIT, отличного от первого оператора, обработка продолжается со следующего оператора JOB, обнаруженного во входном наборе данных.

TYPE={POSITION|INCLUDE|EXCLUDE}определяет содержимое выходного набора данных. Эти значения могут быть закодированы:

POSITIONуказывает, что вывод должен состоять из оператора JOB, шага задания, указанного в параметре STEPNAME, и всех шагов, которые следуют за этим шагом задания. Все шаги задания, предшествующие указанному шагу, исключаются из операции. POSITION — значение по умолчанию.

INCLUDEуказывает, что выходной набор данных должен содержать оператор JOB и все шаги задания, указанные в параметре STEPNAME.

EXCLUDEуказывает, что выходной набор данных должен содержать оператор JOB и все шаги задания, относящиеся к заданию, за исключением шагов, указанных в параметре STEPNAME.

STEPNAME=(namelist)указывает названия этапов работы, которые вы хотите обработать.

namelistможет быть одним именем шага задания, списком имен шагов, разделенных запятыми, или последовательным диапазоном шагов, разделенных дефисом (например, STEPA-STEPE). Любая комбинация из них может использоваться в одном списке имен. Если указано более одного имени шага, весь список имен должен быть заключен в скобки.

При кодировании с TYPE=POSITION, STEPNAME указывает первый шаг задания, который будет помещен в выходной набор данных. Шаги задания, предшествующие этому шагу, не копируются в выходной набор данных.

При кодировании с TYPE=INCLUDE или TYPE=EXCLUDE STEPNAME указывает имена шагов задания, которые должны быть включены в операцию или исключены из нее. Например, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) указывает, что шаги задания STEPA, STEPF через STEPL и STEPZ должны быть включены в операцию или исключены из нее.

Если STEPNAME опущен, копируется все входное задание, имя которого указано в операторе EDIT. Если имя задания не указано, обрабатывается первое обнаруженное задание.

NOPRINTуказывает, что набор данных сообщения не должен включать в себя список выходного набора данных.

По умолчанию: результирующий вывод указывается в наборе данных сообщения.

Более подробную информацию смотрите здесь: [1]

IEBGENER

IEBGENER копирует записи из последовательного набора данных или создает секционированный набор данных.

Некоторые из задач, которые может выполнять IEBGENER, включают в себя следующее:

  • Создание резервной копии последовательного набора данных или элемента PDS .
  • Изменение размера физического блока или логической длины записи последовательного набора данных.
  • Создание отредактированного набора данных.
  • Печать последовательного набора данных или элемента PDS.
  • Создание секционированного выходного набора данных из последовательного входного набора данных.

Пример программы IEBGENER для копирования одного набора данных в другой:

// 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         

Для задач прямого копирования программа сортировки часто может делать это быстрее, чем IEBGENER. Таким образом, многие магазины мэйнфреймов используют опцию, которая автоматически направляет такие задачи в программу сортировки ICEGENER вместо IEBGENER.

В некоторых системах можно отправлять электронную почту из пакетного задания, направляя вывод во внешний писательSMTP " " . В таких системах техника выглядит следующим образом:

// 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: Test Mail    ТЕСТОВАЯ ПОЧТА С МЭЙНФРЕЙМА . ВЫЙТИ /* // SYSUT2  DD SYSOUT = ( B , SMTP ), LRECL = 80 // SYSIN  DD DUMMY

Также можно прикреплять файлы при отправке электронного письма с мэйнфрейма.

IEBIMAGE

IEBIMAGE управляет несколькими типами определений (AKA изображениями ) для принтера IBM 3211, подсистемы лазерной печати IBM 3800 и принтера IBM 4248. Обычно используется для буферов управления формами ( FCB ), таблиц расположения символов, определений символов и изображений форм, которые будут напечатаны на выходе вместе с текстом, для логотипов компаний, которые будут напечатаны на странице, или просто для печати страниц «серых полос» (чередование серого и белого горизонтальных фонов, чтобы соответствовать предыдущей бумаге с зелеными полосами ). С помощью этой утилиты можно сохранять множество различных форм или логотипов в виде изображений и печатать их при необходимости, используя одну и ту же стандартную чистую бумагу, тем самым устраняя необходимость хранить много предварительно напечатанных форм и необходимость для операторов останавливать принтер и менять бумагу.

ИЭБИСАМ

IEBISAM выгружает, загружает, копирует и печатает наборы данных ISAM .

Извлечено из руководства IBM SC26-7414-08 z/OS DFSMSdfp Utilities: Программа IEBISAM больше не распространяется. Начиная с z/OS V1R7, наборы данных ISAM больше не могут обрабатываться (создаваться, открываться, копироваться или выгружаться). Наборы данных ISAM, которые все еще используются, должны быть преобразованы в наборы данных с последовательностью ключей VSAM.

До версии z/OS V1R7 можно было использовать службы методов доступа для выделения набора данных с последовательностью ключей VSAM и копирования в него набора данных ISAM.

ИЭБПТПЧ

IEBPTPCH («PrinT and PunCH») печатает или перфорирует записи из последовательного или секционированного набора данных.

Некоторые из задач, которые может выполнять IEBPTPCH, включают следующее:

  • Печать или перфорация всего набора данных , последовательного или разделенного (PDS).
  • Печать или перфорация выбранных членов PDS.
  • Печать или перфорация выбранных записей из последовательного или разделенного набора данных.
  • Печать или перфорация каталога PDS.
  • Печать или перфорация отредактированной версии последовательного набора данных или PDS.
  • Проверить наличие пустого набора данных
// IEBPTPCH JOB // EXEC PGM=IEBPTPCH // SYSIN  DD * PRINT MAXFLDS=2 TITLE ITEM=('Name',22),  ITEM=('GPA',50) TITLE ITEM=(' ',1) RECORD FIELD=(25,1,,22),  FIELD=(4,51,,50) /* // SYSPRINT DD SYSOUT = * // SYSUT1  DD * Лицо 1 307 C Meshel Hall 3.89 Второе лицо 123 Williamson Hall 2.48 Третье лицо 321 Maag Library 1.52 /* // SYSUT2  DD SYSOUT = * //  

Проверка пустого набора данных: если проверяемый набор данных пуст, то RC=4, иначе 0.

// IEBPTPCH JOB // EXEC PGM=IEBPTPCH // SYSUT1  DD DSN = < имя файла >, DISP = SHR // SYSUT2  DD DUMMY , // DCB = ( BLKSIZE = < размер блока >,RECFM=FA) // SYSIN  DD * PRINT TYPORG=PS /* // SYSPRINT DD SYSOUT = * //    

IEBTCRIN

Чтение записей с устройства чтения ленточных картриджей 2495.

IEBUPDAT

Изменяет записи в последовательном наборе данных или в элементе секционированного набора данных, замененные, но несовместимые с IEBUPDTE.

IEBUPDTE

IEBUPDTE ("UPDaTE") включает изменения в последовательные или секционированные наборы данных. Утилита UNIX patchявляется похожей программой, но использует другие маркеры формата ввода ( например , "./ INSERT ..." в MVS становится "@@..." в Unix Patch).

Некоторые программисты произносят это как «IEB up-ditty».

Утилита IEBUPDTE используется для обслуживания исходных библиотек. Некоторые из функций, которые может выполнять IEBUPDTE, включают следующее:

  • Создание и обновление библиотек
  • Изменение последовательных наборов данных или членов PDS
  • Изменение организации набора данных с последовательной на секционированную или с секционированной на последовательную.

IEBUPDTE обычно используется для распространения исходных библиотек с ленты на DASD .

IEBUPDTE использует те же операторы управления заданиями, которые требуются для большинства утилит типа IEB. Единственными исключениями являются следующие:

  • IEBUPDTE принимает параметр PARM, закодированный в операторе EXEC, NEW или MOD. NEW указывает, что операторы управления утилитами и входные данные содержатся в операторе SYSIN DD, поэтому оператор SYSUT1 DD не требуется. MOD указывает, что оператор SYSIN DD содержит только операторы управления утилитами без входных данных. Поэтому оператор SYSUT1 DD требуется для определения набора входных данных.
  • IEBUPDTE считывает входной набор данных либо из оператора SYSUT1 DD, либо из оператора SYSIN DD.

IEUPDTE использует следующие методы управления заданиями:

// имя_шага EXEC PGM = IEUPDTE , PARM = NEW // SYSPRINT DD SYSOUT = класс // SYSUT1  DD ... // SYSUT2  DD ... // SYSIN  DD ...   

Планировщик утилит

ИЭФБР14

IEFBR14 — это фиктивная программа, обычно вставляемая в JCL, когда единственным желаемым действием является выделение или удаление наборов данных.

Пример шага IEFBR14 :

// IEFBR14 JOB ACCT , ' DELETE DATASET ' // STEP01 EXEC PGM = IEFBR14 // DELDD  DD DSN = xxxxx.yyyyy.zzzzz , // DISP = ( MOD , DELETE , DELETE ) , UNIT = DASD     

Последовательность вызова для OS/360 содержала адрес возврата в регистре 14. Таким образом, переход к регистру 14 немедленно завершит программу. Однако до и после выполнения этой программы операционная система будет выделять и освобождать наборы данных, как указано в операторах DD, поэтому это обычно используется как быстрый способ настройки или удаления наборов данных.

Первоначально он состоял из одной инструкции «Переход к регистру» 14. Мнемоника, используемая в IBM Assembler, была BR, отсюда и название: IEF BR 14. IEF — это «префикс» подсистемы «управления заданиями» OS/360.

Эта программа с одной инструкцией имела ошибку — она не устанавливала код возврата. Поэтому пришлось добавить вторую инструкцию, чтобы очистить код возврата и выйти с правильным статусом.

IBM сообщила о дополнительной ошибке и исправила ее в этой теперь двухинструкционной программе. Эта ошибка была вызвана тем, что программа IEFBR14 не была отредактирована как повторно вводимая (одновременно используемая более чем одним вызывающим).

Некоторые хакеры взяли IEFBR14 и изменили инструкцию BR 14 на BR 15, тем самым создав «самый короткий цикл в мире», поскольку регистр 15 содержит адрес самого модуля IEFBR14, а инструкция BR 15 просто повторно вызовет модуль, навсегда.

Системные утилиты

Эти утилиты обычно используются системными программистами для поддержания работы системы, а не программистами, выполняющими прикладную работу в системе.

ICKDSF

ICKDSF («Средство поддержки устройств») устанавливает, инициализирует и обслуживает DASD как в операционной системе, так и автономно .

ИЕХАТЛАС

Назначьте альтернативные пути для дефектных путей.

IEHDASDR

IEHDASDR [1] : 161–187  может выполнять несколько операций для устройств хранения данных с прямым доступом [b] (DASD)

  • Инициализация тома DASD с дополнительной проверкой поверхности
  • Назначить альтернативные пути для дефектных путей
  • Печатные дорожки на DASD
  • Создать резервную копию тома DASD на ленте
  • Восстановление томов DASD с резервных лент.

В конечном итоге IBM прекратила добавлять поддержку новых типов устройств в IEHDASDR и направила клиентов к бесплатному DSF для инициализации томов и к платным DASDR (5740-UT1) и Data Facility/Data Set Services (5740-UT3, DF/DSS) для дампа/восстановления.

IBM удалила IEHDASDR из MVS/XA. [3]

ИЕХИНИТТ

IEHINITT ("INITialize Tape") инициализирует ленты, записывая метки лент. Несколько лент могут быть помечены за один запуск утилиты. Могут быть записаны стандартные метки IBM или ASCII .

Пример программы IEHINITT:

// IEHINITT JOB ACCT , 'LABEL TAPES' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHINITT , REGION = 8 M // SYSPRINT DD SYSOUT = A // LABEL  DD DCB = DEN = 2 , UNIT = ( 3490 , 1 , DEFER ) // SYSIN  DD * LABEL INITT SER=123450,NUMBTAPE=3 /*        

В этом примере будут промаркированы 3 ленты на магнитной ленте 3490. Каждая лента получит стандартную метку IBM. VOLSER будет увеличиваться на единицу для каждой промаркированной ленты. Каждая лента будет перемотана и выгружена после промаркировки.

ИЕХИОСУП

IEHIOSUP обновляет ссылки относительных адресов дорожек (TTR) для процедур вызова супервизора типа IV (SVC) в SYS1.SVCLIB. IEHIOSUP больше не поддерживается в OS/VS2 и более поздних версиях. [4]

Функции OPEN, CLOSE и EOV выполняются серией модулей SVC, которые выполняются последовательно. Некоторые модули содержат таблицы, используемые макросом XCTLдля ссылки на следующий модуль в серии. Из соображений производительности, чтобы избежать поиска в каталоге каждый раз, эти таблицы содержат дисковые адреса модулей, а не имена. Обновления SYS1.SVCLIB могут привести к изменению этих адресов, поэтому необходимо запустить IEHIOSUP для установки правильных адресов. [5]

Это пример JCL, необходимого для запуска IEHIOSUP. [1]

// ЗАДАНИЕ IHEIOSUP // EXEC PGM=IEHIOSUP // SYSUT1 DD DSNAME = SYS1 . SVCLIB ~ DISP = OLD , UNIT = 2311 , // VOLUME = SER = 111111 // SYSPRINT DD SYSOUT = A //   

ИЕЛИСТ

IEHLIST — это утилита, используемая для составления списка записей в каталоге секционированного набора данных (PDS) или для составления списка содержимого таблицы содержания тома ( VTOC ).

Утилита IEHLIST используется для вывода списка записей, содержащихся в любом из следующих:

  • каталог ПДС
  • VTOC
  • Каталог (ОС CVOL)

Пример программы IEHLIST:

// IEHLIST JOB ACCT , 'LIST PDS' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHLIST , REGION = 8 M // SYSPRINT DD SYSOUT = A // PDS1  DD DSN = xxxx . yyyy . zzzz , DISP = OLD // SYSIN  DD *  LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMAT /*     

Это задание создаст форматированный список каталога PDS PDS с именем xxxx.yyyy.zzzz.

Пример программы IEHLIST для составления списка VTOC очень похож:

// IEHLIST JOB ACCT , 'LIST VTOC' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHLIST , REGION = 8 M // SYSPRINT DD SYSOUT = A // VOL1  DD VOL = SER = vvvvvv , DISP = OLD // SYSIN  DD *  LISTVTOC VOL=SER=vvvvvv,FORMAT /*     

ИЕХМОВЕ

IEHMOVE перемещает или копирует наборы данных. Однако среды DFSMS ( System Managed Storage ) сейчас распространены, и IBM не рекомендует использовать утилиту IEHMOVE в них. Перемещение отличается от копирования тем, что после перемещения исходный набор данных удаляется или царапается. Некоторые из задач, которые может выполнять IEHMOVE, включают следующее:

  • Перемещение или копирование последовательных и секционированных наборов данных
  • Перемещение или копирование многотомных наборов данных
  • Перемещение всего объема наборов данных

На первый взгляд, IEHMOVE может показаться избыточным по сравнению с утилитами IEBGENER и IEBCOPY. Однако IEHMOVE более мощный. Главное преимущество использования IEHMOVE заключается в том, что вам не нужно указывать пространство или информацию DCB для новых наборов данных. Это связано с тем, что IEHMOVE выделяет эту информацию на основе существующих наборов данных.

Другим преимуществом IEHMOVE является то, что вы можете копировать или перемещать группы наборов данных, а также целые тома данных. Из-за простоты перемещения групп наборов данных или томов утилита IEHMOVE обычно пользуется популярностью у системных программистов .

Пример задания IEHMOVE:

// имя_шага EXEC PGM = IEHMOVE , PARM = 'LINECNT=xx,POWER=n' // SYSPRINT DD SYSOUT = класс // 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 ...  

Операторы DD для IEHMOVE, кроме SYSPRINT и SYSIN, ссылаются на тома DASD или магнитной ленты , а не на отдельные наборы данных . Однако ссылки на тома могут представлять проблему, поскольку указание DISP=OLDполучает эксклюзивный доступ к тому. Поэтому, пока выполняется задание IEHMOVE, весь этот том (и все наборы данных на нем) недоступны другим пользователям. Это приемлемо для частных томов, таких как ленточные или монтируемые тома DASD, но неприемлемо для публичных томов.

Оператор SYSUT1 DD указывает том DASD, где выделены три рабочих набора данных, требуемых IEHMOVE. Для этого оператора DD необходимо указать информацию о единице и объеме.

IEHMOVE была одной из первых систем, разработанных на PL/S .

В этом примере три последовательных набора данных (SEQSET1, SEQSET2 и SEQSET3) перемещаются с одного дискового тома на три отдельных дисковых тома. Каждый из трех принимающих томов монтируется, когда это требуется IEHMOVE. Исходные наборы данных не каталогизированы. Пространство выделяется 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 создает и поддерживает данные управления системой. Он также используется для переименования и скретчинга (удаления) набора данных.

Некоторые из задач, которые может выполнять IEHPROGM, включают в себя следующее:

  • Удаление (очистка) набора данных или члена PDS
  • Переименование набора данных или члена PDS
  • Каталогизация или декаталогизация набора данных
  • Поддержание паролей набора данных в системном наборе данных PASSWORD [c]

Для каталогизации:

// SYSIN DD *  CATLG DSNNAME=имя-набора-данных,  VOL=имя-устройства=номер-тома /* //

IFHSTATR

Выберите и отформатируйте записи SMF для обнаружения ошибок на ленте.

Независимые коммунальные службы

Эти программы не работают под управлением операционной системы.

IBCDASDI

Отформатируйте тома прямого доступа и назначьте альтернативные дорожки.

IBCDMPRS

Дамп и восстановление томов прямого доступа.

IBCRCVRP

Назначайте альтернативные дорожки, восстанавливайте и заменяйте данные.

ICAPRTBL

Загрузите буфер управления формами (FCB) и буфер универсального набора символов (UCS) на принтер.

Сервисные средства

Это утилиты, которые IBM документирует в руководствах по обслуживанию или диагностике [6] . Оригинальные сервисные средства OS/360 имели имена, начинающиеся с IFC и IM*, но IBM изменила соглашение об именах на HM* для OS/VS1 и на AM* для OS/VS2 . IBM не изменила соглашение об IFC.

IFCDIP00

Инициализирует набор данных SYS1.LOGREC.

IFCEREP0

Обобщает и печатает записи из набора данных регистрации ошибок SYS1.LOGREC.

GTF (Обобщенная система трассировки)

Отслеживает выбранные системные события, такие как SVC и прерывания ввода-вывода.

IMAPTFLE

Генерирует JCL, необходимый для применения к PTF и/или применяет PTF. Функции этой программы были включены в SMP .

ИМАСПЗАП

Проверяет и/или заменяет инструкции и/или данные в загрузочном модуле, программном объекте или файле на диске.

ИМБЛИСТ

Форматирует и печатает объектные модули, загрузочные модули, программные объекты и идентификационные записи CSECT.

IMBMDMAP

Карты загружают модули. Функции этой программы были включены в IMBLIST.

IMCJQDMP

Автономная программа для форматирования и печати очереди системных заданий. Не применимо к MVS .

IMCOSJQD

Форматировать и распечатать системную очередь заданий. Не применимо к MVS .

ИМДПРДМП

Форматирует и печатает дампы ядра , набор данных подкачки TSO и данные трассировки GTF.

IMDSADMP

Автономная программа для создания высокоскоростного или низкоскоростного дампа основного хранилища.

Различные вспомогательные программы

СОРТИРОВАТЬ

Утилита сортировки/слияния — это программа, которая сортирует записи в файле в указанном порядке или объединяет предварительно отсортированные файлы. Она очень часто используется; часто является наиболее часто используемой прикладной программой в магазине мэйнфреймов. Современные программы сортировки/слияния также могут выбирать или пропускать определенные записи, суммировать записи, удалять дубликаты, переформатировать записи и создавать простые отчеты. Сортировка/слияние настолько важны, что существует несколько компаний, каждая из которых продает свой собственный пакет сортировки/слияния для мэйнфреймов IBM.

Оригинальная программа сортировки/слияния OS/360 от IBM, 360S-SM-023, название программы IERRCO00 (псевдоним SORT), поддерживала только устройства хранения данных с прямым доступом (DASD) [d] и ленты (2400) от IBM первого поколения. Поддержка дисковых накопителей второго поколения обеспечивалась программными продуктами IBM , такими как 5734-SM1 и более поздним 5740-SM1 ( DFSORT , псевдоним ICEMAN, также SORT).

SORT часто выполняется как отдельная программа, где она обычно считывает входные данные из файла, идентифицированного DD SORTIN, и записывает отсортированные выходные данные в файл, идентифицированный DD SORTOUT. Она также часто вызывается из другого приложения с помощью глагола COBOL SORT или вызовов подпрограмм PL/I PLISRTx , где она может использовать либо SORTINфайлы SORTOUT, либо передавать записи для сортировки вызывающей стороной и/или передавать отсортированные записи обратно вызывающей стороне по одной за раз.

Работа SORT управляется управляющими операторами, которые в значительной степени совместимы между различными программами сортировки IBM и сторонних производителей. Оператор SORTor MERGEопределяет ключи сортировки — поля, по которым данные должны быть отсортированы или объединены. Этот оператор определяет положение, длину и тип данных каждого ключа. Оператор RECORDописывает формат и длину записей во входном файле. Другие операторы позволяют пользователю указывать, какие записи следует включить или исключить из сортировки, а также указывать другие преобразования, которые следует выполнить с данными.

Ключи могут быть любой комбинацией данных символов EBCDIC или ASCII , зонированных или упакованных десятичных, знаковых или беззнаковых двоичных с фиксированной точкой или шестнадцатеричных с плавающей точкой. Ключи могут быть расположены в любом месте записи и не обязательно должны быть смежными. Сортировка может быть указана для любой комбинации восходящей и нисходящей последовательности по ключу. [7]

Программа сортировки OS/360, IERRCO00, работает путем разделения входных данных на разделы, сортировки каждого раздела в основной памяти и записи отсортированного раздела в промежуточные наборы данных либо на устройствах хранения с прямым доступом (DASD), либо на магнитной ленте . Затем на заключительных этапах слияния разделы объединяются для получения отсортированного вывода. SORT использует один из нескольких методов распределения разделов между вторичными устройствами хранения. Обычно SORT может выбрать оптимальный метод, но он может быть переопределен пользователем. [8] SORT имеет три метода, которые можно использовать, если промежуточное хранилище — лента, и два, если диск. [9]

Методы тейпирования следующие:

  • Сбалансированный (BALN) — более эффективен, если для промежуточного хранения доступно больше ленточных накопителей.
  • Полифазный (POLY) — используется, если для промежуточного хранения доступно меньшее количество ленточных накопителей.
  • Oscillating (OSCL) — использует больше оперативной памяти. Размер входного набора данных должен быть известен или приблизительно определен.

Дисковые методы:

  • Сбалансированный прямой доступ (BALN) — использует от трех до шести промежуточных наборов данных для хранения.
  • Crisscross Direct Access (CRCX) — использует от шести до семнадцати промежуточных наборов данных для хранения, требует в два раза больше основного хранилища, чем метод Balanced Direct Access.

Линкеры

OS/360 имел только редактор Linkage, доступный в нескольких конфигурациях. DFSMSdfp добавил Binder в качестве альтернативы для загрузочных модулей и как единственный вариант для программных объектов.

Редактор ссылок

Редактор связей создает и заменяет модули нагрузки в секционированном наборе данных из комбинации контрольных карт, модулей объектов и других модулей нагрузки. Он может переименовывать или заменять секцию управления (CSECT) и выполнять несколько других разнообразных функций. Первоначально он был доступен в нескольких конфигурациях в зависимости от требований к хранению, но редактор связей уровня E больше не доступен, а редактор связей уровня F теперь известен просто как редактор связей. В z/OS редактор связей присутствует только для совместимости.

Связующее

Связующее, добавленное в DFSMS , выполняет те же функции, что и редактор связей. Кроме того, он поддерживает новый формат, программный объект, который является функциональным эквивалентом модуля загрузки в Partitioned Data Set Extended (PDSE), со многими дополнительными возможностями.

Сборщики

Один ассемблер обычно был стандартным, поскольку он требовался для генерации системы (SYSGEN) и настройки.

ИЕТАСМ

Ассемблер (E) был предназначен для OS/360, работающей на очень маленьких машинах.

ИЭУАСМ

Ассемблер (F) был предназначен для обычных установок OS/360.

IFOX00

Assembler (XF) был системным ассемблером для OS/VS1 и OS/VS2, заменив Assembler (E) и (F), хотя он не был полностью совместим с ними. IBM вскоре сделала Assembler (XF) системным ассемблером также для DOS и VM.

ИЭВ90

Assembler (H) и Assembler (H) версии 2 — это ассемблеры программных продуктов, которые в целом быстрее, чем Assembler E, F и XF, хотя и не полностью совместимы ни с одним из них.

ASMA90

IBM High Level Assembler (HLASM) по сути является новой версией Assembler (H) Version 2 и единственным ассемблером, который IBM поддерживает на z/OS и z/VM. Он заменяет все старые ассемблеры, хотя и не полностью совместим с ними.

Компиляторы

Каждый язык программирования, используемый в компьютерном магазине, будет иметь один или несколько связанных компиляторов , которые транслируют исходную программу в объектный модуль машинного языка. Затем объектный модуль из компилятора должен быть обработан редактором связей IEWL для создания исполняемого загрузочного модуля.

IGYCRCTL — это распространенный пример компилятора; это компилятор для текущего продукта IBM Enterprise COBOL для z/OS. (За эти годы было несколько предыдущих компиляторов IBM COBOL с разными названиями, хотя пользователи могут указать псевдоним COBOLдля текущей версии.) Существует много других компиляторов для различных языков программирования.

Компиляторы, доступные от IBM, включают ALGOL , COBOL, FORTRAN , PL/I и RPG .

Программа модификации системы (SMP)

Программа модификации системы (SMP) — это средство установки сервиса на OS/360 и ее последователях, заменяющее, например, автономную сборку, редактирование ссылок и задания IMAPTFLE. Первоначально это была необязательная возможность, но она обязательна для MVS/SP и более поздних версий, а версия программного продукта SMP/E включена в более поздние системы, например, z/OS.

Примечания

  1. ^ подразделяются на утилиты набора данных, системные утилиты и независимые утилиты.
  2. ^ Первоначально поддерживаемыми DASD были диски, барабаны и ячейки данных; в настоящее время это диски и SSD, имитирующие диски.
  3. ^ Набор данных PASSWORD устарел и был заменен подсистемами безопасности, работающими через средство авторизации системы ( SAF ), например, ACF2 , RACF .
  4. ^ В руководстве указана информация о емкости дисков 2311 и 2314 и барабана 2301, но не указано, что это единственные поддерживаемые DASD.

Ссылки

  1. ^ abc IBM System/360 Operating System: Utilities (PDF) (двенадцатое изд.), IBM Corporation, июнь 1970 г., GC28-6586-11
    Утилиты ОС - Номера программ 360S-UT-506 360S-UT-507 (PDF) (Шестнадцатое изд.), IBM Corporation, апрель 1973 г., GC28-6586-15
  2. ^ IBM System/360 Operating System: Service Aids OS Release 21 (PDF) (Третье изд.), IBM Corporation, март 1972 г., GC28-6719-2
  3. ^ MVS/Extended Architecture Conversion Notebook (PDF) (Третье изд.), май 1984 г., стр. 1-1, GC28-1143-2
  4. ^ OS/VS2 Planning Guide (PDF) . IBM Corporatopn. Июль 1972. стр. 79 . Получено 5 января 2024 г. .
  5. ^ IBM System/360 Operating System Utilities Program Logic Manual (PDF) . IBM Corporation. Ноябрь 1968 г. стр.  47–49 . Получено 4 января 2024 г.
  6. ^ z/OS MVS Diagnosis: Tools and Service Aids Version 2 Release 3 (PDF) , IBM Corporation, 20 июля 2018 г., GA32-0905-30
  7. ^ IBM Corporation. Руководство по программированию приложений DFSORT (PDF) . Получено 28 марта 2017 г.
  8. ^ Программа сортировки/слияния ОС Номер программы 360S-SM-023 OS~Release 21 (PDF) (Девятое изд.). Корпорация IBM. Февраль 1973 г. стр. 17. GC28-6543-8. Если вы обнаружите, что для конкретного приложения сортировки/слияния программа сортировки/слияния не выбирает наиболее эффективный метод, вы можете запросить сортировку использовать другой метод.
  9. ^ IBM Corporation (1973). Программа сортировки/слияния ОС Номер программы 360S-SM-023 OS~Release 21 (PDF) . Получено 2 апреля 2018 г.

Смотрите также

  • Утилиты DFSMSdfp
  • Методы доступа DFSMS для каталогов
  • Руководство по администрированию хранилища DFSMSdss
  • MVS КОММУНАЛЬНЫЕ УСЛУГИ
Взято с "https://en.wikipedia.org/w/index.php?title=Support_programs_for_OS/360_and_successors&oldid=1239758553#History.2FCommon_JCL"