В этой статье обсуждаются программы поддержки, включенные или доступные для OS / 360 и последующих версий . IBM классифицирует некоторые из этих программ как служебные программы [1] [a], а другие - как вспомогательные средства; [2] границы не всегда непротиворечивы или очевидны. Многие, но не все, из этих программ соответствуют типам в служебных программах .
В следующих списках описаны программы, связанные с OS / 360 и последующими версиями . Нет DOS , ТПФ или VM коммунальные услуги включены.
История / Common JCL
Многие из этих программ были разработаны пользователями IBM через группу SHARE , а затем изменены или расширены IBM по сравнению с версиями, изначально написанными пользователем.
Эти программы обычно вызываются через язык управления заданиями (JCL). Они, как правило, используют общие идентификаторы JCL DD (в ОС, теперь в операционных системах z / OS ) для своих наборов данных:
DDNAME | Обычная функция |
---|---|
SYSIN | входной файл для «команд» утилиты. Часто устанавливается в DUMMY, если требуется действие по умолчанию. |
SYSUT1 | входной файл |
SYSUT2 | выходной файл |
SYSUT3 | рабочий (проливной) файл для ввода (SYSUT1) (часто не используется) |
SYSUT4 | рабочий (проливной) файл для вывода (SYSUT2) (часто не используется) |
СИСПРИНТ | выходной файл для вывода на печать из утилиты |
SYSOUT | выходной файл для сообщений из утилиты |
SYSUDUMP | выходной файл для системного дампа в случае сбоя программы |
Утилиты набора данных
IDCAMS
IDCAMS («Службы методов доступа») генерирует и изменяет методы доступа к виртуальному хранилищу (VSAM) и наборы данных без VSAM. IDCAMS был введен вместе с VSAM в OS / VS ; Ссылка «Метод доступа» происходит от первоначального мышления 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) / * // ФАЙЛ01 DD DSN = PROD . ФАЙЛ1 . INPUT , disp = shr ..... // FILE02 DD DSN = PROD . ФАЙЛ2 . ВЫХОД , // 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 = * // *
В приведенном выше примере карты управления SYSIN поступают из файла в потоке, но вместо этого вы можете указать любой последовательный файл или член PDS, содержащий карты управления или временный набор данных, если хотите. Пример использования файлов SYSIN будет примерно таким:
// SYSIN DD DSN = PROD . MYFILE . REPRO , DISP = SHR
или это:
// SYSIN DD DSN = PROD . МИЛИБ . CNTLLIB ( REPRO ), // DISP = SHR
IEBCOMPR
IEBCOMPR сравнивает записи в последовательных или секционированных наборах данных .
Утилита IEBCOMPR используется для сравнения двух последовательных или секционированных наборов данных . Это сравнение наборов данных выполняется на уровне логической записи. Поэтому IEBCOMPR обычно используется для проверки правильности резервной копии набора данных (точного совпадения с оригиналом).
Во время обработки IEBCOMPR сравнивает каждую запись из каждого набора данных, одну за другой. Если записи не равны, IEBCOMPR перечисляет в SYSOUT следующую информацию:
- Номера записей и блоков, о которых идет речь.
- Названия заявлений DD, в которых возникло несоответствие.
- Неравные рекорды.
При сравнении последовательных наборов данных IEBCOMPR считает наборы данных равными, если выполняются следующие условия:
- Наборы данных содержат одинаковое количество записей.
- Соответствующие записи и ключи идентичны.
Для секционированных наборов данных IEBCOMPR считает наборы данных равными, если выполняются следующие условия:
- Записи каталога для двух секционированных наборов данных совпадают, то есть имена совпадают, а количество записей одинаково.
- Члены-корреспонденты содержат одинаковое количество записей.
- Соответствующие записи и ключи идентичны.
Если во время обработки встречаются десять неравных сравнений, IECOMPR завершает работу с соответствующим сообщением.
// XXXXXXXW РАБОТА XXXXXXX , AAAA . . A , CLASS = G , MSGCLASS = 1 , NOTIFY = XXXXX // STEP01 EXEC PGM = IEBCOMPR , ACCT = PJ00000000 // ВКЛЮЧИТЬ MEMBER = @ BATCHS // * SYSIN DD DUMMY // SYSIN DD * COMPARE TYPORG = PO / * // SYSUT1 DD DSN = XXXXXXX . СТАРЫЙ ФАЙЛ , 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 = 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)
Операторы DD MYDD1 и MYDD2 - это имена, выбранные пользователем для разделенных наборов входных и выходных данных соответственно; Значения по умолчанию - SYSUT1 и SYSUT2. Вы можете использовать любое допустимое DDNAME для этих двух операторов DD. Эти DDNAME указываются в операторах управления утилитой, чтобы сообщить IEBCOPY имя наборов входных и выходных данных. Вам нужен только один оператор DD для сжатия PDS.
IEBDG
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 ) // ************************************** ******************************* // * СОЗДАНИЕ ТЕСТОВЫХ ДАННЫХ // ********** ************************************************ ********** // ШАГ1 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 = 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 // *********** ************************************************ ********* // ШАГ2 EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1 DD DSN = * . ШАГ 1 . SEQOUT , DISP = SHR // SYSIN DD DUMMY // SYSUT2 DD SYSOUT = * // ******************************* ************************************** // * УДАЛИТЬ СОЗДАННЫЙ НАБОР ДАННЫХ, ДАЖЕ ЕСЛИ ПРЕДЫДУЩИЙ ШАГИ ОТЛОЖЕНЫ // ************************************************************************************************************************************************* *********************** // DLSTEP EXEC PGM = IEFBR14 , COND = EVEN // DDDEL DD DSN = & SYSUID .. MVSUT . SEQOUT , DISP = ( СТАРЫЙ , УДАЛИТЬ , УДАЛИТЬ ) //
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 . гггг . 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 = имя задания] [, TYPE = {POSITION | INCLUDE | EXCLUDE}] [, STEPNAME = (namelist)] [, NOPRINT]
START=jobname
указывает имя входного задания, к которому применяется оператор EDIT. Каждый оператор EDIT должен применяться к отдельному заданию. Если START указан без TYPE и STEPNAME, инструкция JOB и все шаги для указанного задания включаются в вывод.
По умолчанию: если START опущен и предоставлен только один оператор EDIT, обрабатывается первое задание, обнаруженное во входном наборе данных. Если START опущен в операторе EDIT, отличном от первого оператора, обработка продолжается со следующего оператора JOB, найденного во входном наборе данных.
TYPE={POSITION|INCLUDE|EXCLUDE}
определяет содержимое набора выходных данных. Эти значения можно закодировать:
POSITION
указывает, что выходные данные должны состоять из оператора JOB, шага задания, указанного в параметре STEPNAME, и всех шагов, следующих за этим шагом задания. Все этапы задания, предшествующие указанному этапу, не включаются в операцию. ПОЛОЖЕНИЕ по умолчанию.
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 . гггг . 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 MAIL FROM: RCPT TO: ДАННЫЕ От: Кому: Тема: Тестовое письмо ТЕСТОВАЯ ПОЧТА ИЗ ГЛАВНОЙ РАМКИ . ВЫЙТИ / *// SYSUT2 ДД SYSOUT = ( B , SMTP ), LRECL = 80 // SYSIN ДД МАНЕКЕН
Также можно прикреплять файлы при отправке электронной почты из мэйнфрейма.
IEBIMAGE
IEBIMAGE управляет несколькими типами определений ( изображениями AKA ) для подсистемы лазерной печати IBM 3800 и принтера IBM 4248. Обычно используются для буферов управления формами ( FCB ), таблиц расположения символов, определений символов и изображений форм, которые должны быть напечатаны на выходе вместе с текстом, для печати логотипов компаний на странице или просто для печати «серой полосы». страницы (чередование серого и белого горизонтального фона, чтобы соответствовать предыдущему листу с зеленой полосой ). С помощью этой утилиты можно сохранить множество различных форм или логотипов в виде изображений и при необходимости распечатать их, используя один и тот же стандартный чистый лист бумаги, что устраняет необходимость в хранении множества заранее напечатанных форм и необходимость для операторов останавливать принтер и заменять бумагу. .
IEBISAM
IEBISAM выгружает, загружает, копирует и печатает наборы данных ISAM .
Извлечено из руководства IBM SC26-7414-08 z / OS DFSMSdfp Utilities: Программа IEBISAM больше не распространяется. Начиная с z / OS V1R7, наборы данных ISAM больше не могут обрабатываться (создаваться, открываться, копироваться или выгружаться). Наборы данных ISAM, которые все еще используются, необходимо преобразовать в наборы данных VSAM с последовательностью ключей.
До z / OS V1R7 можно было использовать службы методов доступа для выделения набора данных VSAM с последовательностью ключей и копирования в него набора данных ISAM.
IEBPTPCH
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), ПОЛЕ = (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 («ОБНОВЛЕНИЕ») включает изменения в последовательные или секционированные наборы данных. patch
Утилита UNIX похожа на программу, но использует другие маркеры формата ввода ( например , "./ INSERT ..." в MVS становится "@@ ..." в Unix Patch).
Некоторые программисты произносят это как «обновленный IEB».
Утилита 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 использует следующие элементы управления заданиями:
// stepname EXEC PGM = IEUPDTE , PARM = NEW // SYSPRINT DD SYSOUT = класс // SYSUT1 DD ... // SYSUT2 DD ... // SYSIN DD ...
Утилиты планировщика
IEFBR14
IEFBR14 - это фиктивная программа, обычно вставляемая в JCL, когда единственное желаемое действие - это выделение или удаление наборов данных.
Пример шага IEFBR14 :
// IEFBR14 JOB ACCT , 'УДАЛИТЬ НАБОР ДАННЫХ' // STEP01 EXEC PGM = IEFBR14 // DELDD DD DSN = xxxxx . гггг . zzzzz , // DISP = ( MOD , УДАЛИТЬ , УДАЛИТЬ ), UNIT = DASD
Вызывающая последовательность для OS / 360 содержала адрес возврата в регистре 14. Таким образом, переход к регистру 14 немедленно выходил из программы. Однако до и после выполнения этой программы операционная система будет выделять и освобождать наборы данных, как указано в операторах DD, поэтому обычно используется как быстрый способ установки или удаления наборов данных.
Первоначально он состоял из одной инструкции «Branch to Register» 14. Мнемоника, использованная в IBM Assembler, была BR, отсюда и название: IEF BR 14. IEF - это, конечно, «префикс» управления заданиями OS / 360. "подсистема.
В этой программе с единственной инструкцией была ошибка - она не установила код возврата. Следовательно, нужно было добавить вторую инструкцию, чтобы очистить код возврата, чтобы он завершился с правильным статусом.
В этой программе с двумя командами появилась дополнительная ошибка, которая была исправлена IBM. Эта ошибка возникла из-за того, что программа IEFBR14 не редактировалась по ссылке как повторно вводимая (одновременно используемая более чем одним вызывающим абонентом).
Некоторые хакеры взяли IEFBR14 и изменили инструкцию BR 14 на BR 15, тем самым создав «самый короткий цикл в мире», поскольку регистр 15 содержит адрес самого модуля IEFBR14, а инструкция BR 15 просто повторно вызовет модуль. , навсегда.
Системные утилиты
Эти утилиты обычно используются системными программистами для поддержания работы системы, а не программистами при выполнении работы приложений в системе.
ICKDSF
ICKDSF («Средство поддержки устройств») устанавливает, инициализирует и поддерживает DASD либо в операционной системе, либо отдельно .
IEHATLAS
Назначьте альтернативные треки дефектным трекам.
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
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 для подпрограмм вызова супервизора (SVC) типа IV в SYS1.SVCLIB. Не применимо к OS / VS2 или новее.
IEHLIST
IEHLIST - это служебная программа, используемая для вывода списка записей в каталоге многораздельного набора данных (PDS) или для отображения содержимого таблицы содержания тома ( VTOC ).
Утилита IEHLIST используется для вывода списка записей, содержащихся в любом из следующих:
- Каталог PDS
- 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 . гггг . 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
IEHMOVE перемещает или копирует коллекции данных. Однако среды DFSMS ( System Managed Storage ) сейчас широко распространены, и IBM не рекомендует использовать в них утилиту IEHMOVE. Перемещение отличается от копии тем, что после перемещения исходный набор данных удаляется или царапается. IEHMOVE может выполнять следующие задачи:
- Перемещение или копирование последовательных и секционированных наборов данных
- Перемещение или копирование многотомных наборов данных
- Перемещение всего объема наборов данных
На первый взгляд IEHMOVE может показаться избыточным для утилит IEBGENER и IEBCOPY. Однако IEHMOVE более мощный. Основное преимущество использования IEHMOVE заключается в том, что вам не нужно указывать пространство или информацию DCB для новых наборов данных. Это связано с тем, что IEHMOVE распределяет эту информацию на основе существующих наборов данных.
Еще одно преимущество IEHMOVE заключается в том, что вы можете копировать или перемещать группы наборов данных, а также целые тома данных. Из-за простоты перемещения групп наборов данных или томов служебная программа IEHMOVE обычно предпочитается системными программистами .
Пример задания IEHMOVE:
// stepname EXEC PGM = IEHMOVE , PARM = 'LINECNT = хх, МОЩНОСТЬ = п' // SYSPRINT DD SYSOUT = класс // SYSUT1 DD БЛОКА = аааа , VOL = SER = BBBBBB , DISP = OLD // anyname1 DD БЛОК = сссс , 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.
// ПЕРЕМЕЩЕНИЕ ЗАДАНИЯ ... // 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, К = диск = 222444, ОТ = диск = 444444 / *
IEHPROGM
IEHPROGM создает и поддерживает данные управления системой. Он также используется для переименования и очистки (удаления) набора данных.
IEHPROGM может выполнять следующие задачи:
- Удаление (царапание) набора данных или члена PDS
- Переименование набора данных или члена PDS
- Каталогизация или удаление набора данных
- Ведение паролей набора данных в системном наборе данных PASSWORD [c]
Для каталогизации:
// SYSIN DD * CATLG DSNNAME = имя-набора-данных, VOL = имя-устройства = номер-тома / *//
IFHSTATR
Выберите и отформатируйте записи SMF для ошибок ленты.
Независимые коммунальные предприятия
Эти программы не работают под управлением операционной системы.
IBCDASD
Отформатируйте тома с прямым доступом и назначьте альтернативные треки.
ИБКДМПРС
Дамп и восстановление томов прямого доступа.
IBCRCVRP
Назначьте альтернативные треки, восстановите и замените данные.
ICAPRTBL
Загрузите буфер управления формами (FCB) и буфер универсального набора символов (UCS) на принтер.
Вспомогательные средства обслуживания
Это служебные программы, которые IBM документирует в руководствах по обслуживанию или диагностике [4] . Первоначальные вспомогательные средства OS / 360 имели имена, начинающиеся с IFC и IM *, но IBM изменила соглашение об именах на HM * для OS / VS1 и на AM * для OS / VS2 . IBM не изменила соглашение IFC.
IFCDIPOO
Инициализирует набор данных SYS1.LOGREC.
IFCEREPO
Суммирует и печатает записи из набора данных записи ошибок SYS1.LOGREC.
GTF (универсальное средство отслеживания)
Отслеживает выбранные системные события, такие как SVC и прерывания ввода-вывода.
IMAPTFLE
Создает JCL, необходимый для применения к PTF, и / или применяет PTF. Функции этой программы были включены в SMP .
IMASPZAP
Проверяет и / или заменяет инструкции и / или данные в загрузочном модуле или программном объекте
IMBLIST
Форматирует и печатает объектные модули, загрузочные модули, программные объекты и идентификационные записи CSECT.
IMBMDMAP
Карты загружают модули. Функции этой программы включены в IMBLIST.
IMCJQDMP
Автономная программа для форматирования и печати очереди системных заданий. Не применимо к MVS .
IMCOSJQD
Отформатируйте и распечатайте системную очередь заданий. Не применимо к MVS .
IMDPRDMP
Форматирует и печатает дампы, набор данных подкачки TSO и данные трассировки GTF.
IMDSADMP
Автономная программа для создания высокоскоростного или низкоскоростного дампа оперативной памяти.
Разные вспомогательные программы
СОРТИРОВАТЬ
Сортировка / Merge утилита представляет собой программу , которая сортирует записи в файл в указанном порядке, или слияния предварительно отсортированные файлы. Это очень часто используется; часто наиболее часто используемая прикладная программа в магазине мэйнфреймов. Современные программы сортировки / слияния также могут выбирать или пропускать определенные записи, суммировать записи, удалять дубликаты, переформатировать записи и создавать простые отчеты. Сортировка / слияние достаточно важно, чтобы было несколько компаний, каждая из которых продает свой собственный пакет сортировки / слияния для мэйнфреймов IBM.
Оригинальная программа IBM OS / 360 для сортировки / слияния, 360S-SM-023, название программы IERRCO00 (псевдоним SORT), поддерживала только устройства хранения с прямым доступом IBM первого поколения (DASD) [d] и ленты (2400). Поддержка дисководов второго поколения обеспечивалась программными продуктами IBM, такими как 5734-SM1 и более поздняя версия 5740-SM1 (DFSORT, псевдоним ICEMAN, также SORT).
SORT часто выполняется как отдельная программа, где обычно считывает ввод из файла, идентифицированного DD, SORTIN
и записывает отсортированный вывод в файл, идентифицированный DD SORTOUT
. Кроме того , часто вызывается из другого приложения, с помощью COBOL SORT
глаголом или вызовы PL / I PLISRTx
рутин, где он может использовать либо SORTIN
или SORTOUT
файлы или быть переданы записи будут отсортированы по вызывающему и / или передают отсортированные записи обратно вызывающему один в время.
Работа SORT управляется операторами управления, которые в значительной степени совместимы между различными программами сортировки IBM и сторонних производителей. Оператор SORT
or MERGE
определяет ключи сортировки - поля, по которым данные должны быть отсортированы или объединены. Этот оператор определяет позицию, длину и тип данных каждого ключа. RECORD
Утверждение описывает формат и длину записи в файле ввода. Другие операторы позволяют пользователю указать, какие записи следует включить или исключить из сортировки, а также указать другие преобразования, которые необходимо выполнить с данными.
Ключи могут представлять собой любую комбинацию символьных данных EBCDIC или ASCII , зонных или упакованных десятичных, знаковых или беззнаковых двоичных данных с фиксированной запятой или шестнадцатеричных чисел с плавающей запятой. Ключи могут быть расположены в любом месте записи и не обязательно должны быть смежными. Сортировка может быть указана по любой комбинации восходящей и нисходящей последовательности по ключу. [5]
Программа сортировки OS / 360, IERRCO00, работает путем разделения входных данных на разделы, сортировки каждого раздела в основной памяти и записи отсортированного раздела в промежуточные наборы данных на устройствах хранения с прямым доступом (DASD) или на магнитной ленте . Затем на финальных этапах слияния разделы объединяются для получения отсортированного вывода. SORT использует один из нескольких методов для распределения разделов между вторичными запоминающими устройствами. Обычно SORT может выбрать оптимальный метод, но пользователь может его изменить. [6] У SORT есть три метода, которые можно использовать, если промежуточным хранилищем является лента, и два, если это диск. [7]
Ленточные техники:
- Сбалансированный (BALN) - более эффективен, если для промежуточного хранения доступно больше ленточных накопителей.
- Полифазный (POLY) - используется, если для промежуточного хранения доступно меньшее количество ленточных накопителей.
- Осциллирующий (OSCL) - использует больше оперативной памяти. Размер входного набора данных должен быть известен или приближен к нему.
Дисковые методы:
- Сбалансированный прямой доступ (BALN) - использует от трех до шести наборов данных промежуточного хранилища.
- Crisscross Direct Access (CRCX) - использует от шести до семнадцати промежуточных наборов данных хранилища, требует вдвое больше основного хранилища, чем метод сбалансированного прямого доступа.
Линкеры
В OS / 360 был только редактор Linkage, доступный в нескольких конфигурациях. DFSMSdfp добавил Binder как альтернативу загрузочным модулям и как единственный вариант для программных объектов.
Редактор связей
Редактор связей создает и заменяет загрузочные модули в разделенном наборе данных из комбинации управляющих карт, объектных модулей и других загрузочных модулей. Он может переименовывать или заменять раздел управления (CSECT) и выполнять несколько других функций. Первоначально он был доступен в нескольких конфигурациях в зависимости от требований к хранилищу, но редактор связей уровня E больше не доступен, а редактор связей уровня F теперь известен просто как редактор связей. В z / OS редактор связей присутствует только для совместимости.
Связующее
Подшивка выполняет те же функции, что и редактор связей. Кроме того, он поддерживает новый формат, программный объект, который является функциональным эквивалентом загрузочного модуля в расширенном многораздельном наборе данных (PDSE), со многими дополнительными возможностями.
Компиляторы
Каждый язык программирования, используемый в компьютерном магазине, будет иметь один или несколько связанных компиляторов, которые переводят исходную программу в объектный модуль машинного языка. Затем объектный модуль из компилятора должен быть обработан редактором связей IEWL для создания исполняемого загрузочного модуля.
IGYCRCTL - распространенный пример компилятора; это компилятор для текущего продукта IBM Enterprise COBOL для z / OS. (На протяжении многих лет существовало несколько предыдущих компиляторов IBM COBOL с разными именами.) Существует множество других компиляторов для различных других языков программирования.
IETASM
Ассемблер (E) был разработан для OS / 360, работающей на очень маленьких машинах.
IEUASM
Ассемблер (F) был предназначен для обычных установок OS / 360.
IFOX00
Ассемблер (XF) был системным ассемблером для OS / VS1 и OS / VS2, заменив Assembler (E) и (F), хотя он не был полностью совместим с ними. Вскоре IBM сделала Assembler (XF) также системным ассемблером для DOS и VM.
IEV90
Ассемблер (H) и Ассемблер (H) версии 2 - это ассемблеры программных продуктов, которые, как правило, быстрее ассемблеров E, F и XF, хотя и не полностью совместимы ни с одним из них.
ASMA90
IBM High Level Assembler (HLASM) - это, по сути, новая версия Assembler (H) версии 2 и единственный ассемблер, который IBM поддерживает на z / OS и z / VM. Он заменяет все старые ассемблеры, хотя и не полностью с ними совместим.
Программа модификации системы (SMP)
Программа модификации системы (SMP) - это средство для установки службы в OS / 360 и последующих версиях, заменяя, например, автономную сборку, редактирование ссылок и задания IMAPTFLE. Первоначально необязательная функция, она является обязательной для MVS / SP и более поздних версий, а версия программного продукта SMP / E включена в более поздние системы, например z / OS.
Заметки
- ^ подразделяется на утилиты набора данных, системные утилиты и независимые утилиты.
- ^ Первоначально поддерживаемыми DASD были диски, барабаны и ячейки данных; в настоящее время это диски и твердотельные накопители, имитирующие диски.
- ^ Наборданных PASSWORD устарел и был заменен подсистемами безопасности, работающими через средство авторизации системы ( SAF ), например, ACF2 , RACF .
- ^ В руководстве приводится информация о емкости дисков 2311 и 2314 и барабана 2301, но не указывается, что это единственные поддерживаемые DASD.
Рекомендации
- ^ a b Операционная система IBM System / 360: служебные программы (PDF) (двенадцатое изд.), IBM Corporation, июнь 1970 г., GC28-6586-11
Утилиты ОС - номера программ 360S-UT-506 360S-UT-507 (PDF) (шестнадцатое изд.), IBM Corporation, апрель 1973 г., GC28-6586-15 - ^ Операционная система IBM System / 360: Service Aids OS Release 21 (PDF) (третье издание), IBM Corporation, март 1972 г., GC28-6719-2
- ^ Записная книжка по преобразованию MVS / расширенной архитектуры (PDF) (третье издание), май 1984 г., стр. 1-1, GC28-1143-2
- ^ Диагностика z / OS MVS: инструменты и вспомогательные средства, версия 2, выпуск 3 (PDF) , корпорация IBM, 20 июля 2018 г., GA32-0905-30
- ^ Корпорация IBM. Руководство по программированию приложений DFSORT (PDF) . Проверено 28 марта 2017 года .
- ^ Программа сортировки / слияния ОС Номер программы 360S-SM-023 OS ~ Выпуск 21 (PDF) (Девятое изд.). Корпорация IBM. Февраль 1973 г. с. 17. GC28-6543-8.
Если вы обнаружите, что для конкретного приложения сортировки / слияния программа сортировки / слияния не выбирает наиболее эффективный метод, вы можете запросить сортировку для использования другого метода.
- ^ Корпорация IBM (1973). Программа сортировки / слияния ОС Номер программы 360S-SM-023 ОС ~ выпуск 21 (PDF) . Проверено 2 апреля 2018 года .
Смотрите также
- Syncsort
- Easytrieve
Внешние ссылки
- Утилиты DFSMSdfp
- Службы методов доступа DFSMS для каталогов
- Руководство администратора хранилища DFSMSdss
- УТИЛИТЫ MVS