Языки управления заданиями - WEBSITE X5 UNREGISTERED VERSION 12.0.5.22 - Электронный справочник по дисциплине Операционные системы и среды

Перейти к контенту

Главное меню:

Задания
Задания, поступающие в систему от различных источников, принимаются и обрабатываются специальным компонентом z/OS, который называется подсистемой управления заданиями JES (Job Entry Subsystem)

1. JES принимает задания, поступающие с входных устройств, регистрирует их, осуществляет анализ и формирует очереди заданий, а затем передает задания на выполнение базовой управляющей программе BCP. После завершения выполнения задания и получения результатов от BCP, JES формирует отчет по заданию (листинг), передает его пользователю или выводит на указанные устройства. Чаще всего в установленных конфигурациях z/OS используется базовый компонент управления заданиями JES2, который и будет рассмотрен в данной главе. Альтернативой JES2 является опциональный компонент JES3, который в отличие от JES2 может использоваться для централизованного управления заданиями в многомашинной системе. Отметим, что JES2 работает в собственном адресном пространстве и имеет статус подсистемы (использует специальный SSI-интерфейс для взаимодействия с базовой управляющей программой z/OS). Кроме того, JES2 поддерживает собственные языковые средства, которые можно включать в текст задания (так называемые операторы JECL - Job Entry Control Language) и применять в виде консольных команд (системные команды JES2).
На этапе ввода (entry phase) осуществляется прием заданий, поступающих в систему от различных источников. Пользователь может задействовать для этих целей терминальные устройства, консоли, сетевые рабочие станции и т.п., применяя консольные команды START, MOUNT, команды TSO/E LOGON и SUBMIT. Существует возможность формировать и направлять задания на обработку из ранее запущенных программ и заданий. Поддерживается возможность удаленного RJE (Remote Job Entry) и сетевого NJE (Network Job Entry) ввода заданий, поступающих от узлов распределенной вычислительной сети. JES2 контролирует все пути поступления заданий с помощью специальных встроенных программ ввода INTRDR (Internal Reader). Текст каждого поступившего задания (предложения JCL и JECL) и вложенные в него входные данные пользователя (обозначаемые как набор данных SYSIN) помещаются в специальный набор данных JES2, называемый "спул" (spool).
Спул используется для временного хранения данных, связанных с выполнением каждого поступившего в подсистему JES2 задания, и содержит:
  • JCL операторы задания и специальные операторы JES2 (JECL);
  • исходные данные, представленные во входном потоке (набор данных SYSIN);
  • выходные данные и сообщения, формируемые в процессе выполнения задания, и подготавливаемые для вывода в отчет (набор данных SYSOUT);
  • управляющая информация JES2;
  • сообщения для вывода в системный журнал SYSLOG.
На этапе ввода осуществляется регистрация задания, заключающаяся в присваивании заданию уникального идентификатора (JobID) и занесении учетной и статусной информации в специальный реестр JES2, получивший название очередь заданий (JOBQUEUE). Помимо идентификатора, JOBQUEUE содержит также значения класса, приоритета и текущего состояния задания. Фактически все множество очередей, представленных на рисунке, хранится в одной общей таблице JOBQUEUE. В этом случае выборка заданий производится по значению кода текущего состояния, показывающего, на каком этапе обработки задание находится в данный момент.
Все зарегистрированные задания поступают затем в очередь на следующий этап обработки.
На этапе преобразования (conversion phase) сначала производится анализ текста задания и трансляция его в специальный промежуточный код. Если обнаружены синтаксические ошибки, формируется отчет SYSOUT, включающий диагностические сообщения, и задание направляется на этап вывода, минуя стадию выполнения. В процессе анализа при необходимости происходит включение в текст задания и настройка параметров так называемых процедур JCL, вызываемых из внешних библиотек. Процедуры представляют собой готовые блоки предложений JCL, предназначенные для решения типовых пользовательских задач и хранящиеся в специальных наборах данных - библиотеках процедур(на рисунке обозначены как PROC). JES2 располагает настраиваемым списком используемых стандартных библиотек процедур (самая известная среди них - SYS1.PROCLIB). Пользователь также имеет возможность указать собственный набор библиотек процедур с помощью оператора JCLLIB.
Если ошибки не обнаружены, промежуточный код задания помещается в спул, и задание передается в очередь на стадию выполнения. Следует отметить, что для каждого класса заданий формируется отдельная очередь. Внутри очереди задания упорядочены по приоритетам, назначаемым JES2 на основе установленной политики администрирования.
На этапе выполнения (execution phase) ключевую роль играют системные программы, получившие название инициаторов (initiators). Обычно запускается несколько инициаторов одновременно, так чтобы один инициатор обслуживал одну или несколько конкретных очередей заданий (по значениям класса). Каждый инициатор работает в собственном виртуальном адресном пространстве в соответствии со следующим алгоритмом:
  • инициатор формирует запрос к JES2 на получение нового задания из очередей обслуживаемых им классов;
  • JES2 анализирует очередь заданий (JOBQUEUE) и передает инициатору сообщение о выбранном в соответствии с приоритетом задании;
  • инициатор считывает из спула промежуточный код задания и входные данные (SYSIN), определяет, какие ресурсы необходимы для выполнения, и открывает соответствующие наборы данных, а также копирует в свое адресное пространство загрузочные модули вызываемых в задании программ;
  • инициатор последовательно передает управление программам задания, контролируя ход их выполнения и поступающие сообщения; реальное управление выполнением программ реализуется базовой управляющей программой (BCP);
  • при завершении задания (нормальном или аварийном) результаты работы программ передаются инициатором в набор данных SYSOUT спула, а задания поступают в очередь на стадию вывода.
Отметим, что в z/OS поддерживается два типа инициаторов: инициаторы JES и инициаторы WLM. Инициаторы JES2 обычно запускаются автоматически при инициализации системы в соответствии с настройками JES2 и назначаются на обслуживание определенных классов заданий. Инициаторы WLM запускаются динамически в зависимости от текущей нагрузки системы и в соответствии с установленной политикой управления нагрузкой в целевом режиме.
Важно подчеркнуть, что для большинства заданий не создаются новые адресные пространства z/OS, поскольку их выполнение происходит в адресных пространствах инициаторов. Исключение составляют задания классов STC и TSU, которые не обрабатываются инициаторами. Для этих классов JES2 самостоятельно создает отдельные адресные пространства для каждого пользовательского сеанса TSO и каждой запускаемой процедуры, а также обрабатывает поступающие сообщения.
На этапе вывода (output phase) JES2 формирует отчет о выполнении задания в наборе данных SYSOUT в соответствии с требованиями и характеристиками назначенного выходного класса и указанными в задании атрибутами вывода. Выходной класс задания (всего доступно 36 классов, кодируемых символами A-Z или цифрами 0-9) определяется пользователем с помощью параметра SYSOUT оператора DD или оператора OUTPUT либо назначается подсистемой JES2 по умолчанию. Классы служат для группирования заданий с целью использования общих ограничений по выводу отчетов и для целей управления, но никак не связаны с используемыми для вывода устройствами. Подготовленные отчеты направляются в очередь на стадию печати или задерживаются на этапе вывода, если для задания установлен статус HOLD. Данный статус задается пользователем или устанавливается JES2 для некоторого класса или группы заданий. Дальнейшая обработка задержанных заданий производится по специальному указанию оператора (пользователя).
На этапе печати (hardcopy phase) производится вывод подготовленного отчета из набора данных SYSOUT на указанное пользователем или установленное JES2 выходное устройство (принтер, узел сети и т.п.), и задание передается в очередь на стадию завершения.
На этапе завершения (purge phase) JES2 осуществляет "очистку" спула и очереди заданий от информации, связанной с выполненным заданием, и формирует соответствующее сообщение.
Следует напомнить, что в z/OS существует специальный опциональный компонент SDSF, предназначенный для просмотра параметров текущего состояния всех запущенных в системе заданий и отчетов о выполнении, а также предоставляющий возможность изменять некоторые параметры и управлять ходом выполнения заданий динамически.
Структура пакетного задания JCL
Итак, прежде чем передать пакетное задание системе, пользователь должен подготовить его текст на языке JCL. Обычно текст задания создается в некотором наборе данных с помощью текстового редактора, откуда специальными средствами пользовательского интерфейса его можно направить на обработку в подсистему JES2. z/OS требует, чтобы для представления заданий использовались только последовательные и библиотечные наборы данных с параметрами RECFM=FB и LRECL=80. Текст задания вводится, как правило, прописными буквами.
Задание состоит из последовательности управляющих предложений JCL (job control statement)2. Каждое предложение имеет следующую структуру:
//ИМЯ ОПЕРАТОР ОПЕРАНДЫ КОММЕНТАРИЙ
В первых двух позициях всегда (или почти всегда) указываются две косые черты (знак слэш / ), которые являются главным отличительным признаком предложений JCL.
Поле имя начинается с третьей позиции и служит для идентификации представленного в предложении оператора. Фактически это метка, на которую можно ссылаться из различных предложений задания или других заданий. Имя может содержать не более восьми символов, включающих латинские буквы, цифры и специальные знаки ( $ # @ ). Имя должно начинаться с буквы или специального знака, русские буквы и пробелы использовать нельзя. В некоторых специальных случаях применяют составные имена, использующие в качестве разделителя точку. Пробел в третьей позиции является признаком отсутствия имени.
Примеры правильных имен: STOUT1, SYSPRINT, IVANOV, IVAN#S
Примеры неправильных имен: 3DIAGNOZ (начинается с цифры), DIAGNOSTIKA (содержит более восьми символов), ТОМ+И (содержит недопустимый символ И ).
Вслед за полем имени следуют другие поля, отделяемые друг от друга одним или несколькими пробелами.
 
Назад к содержимому | Назад к главному меню