Россия |
Управление заданиями и язык JCL
Понятие задания
В п. 5.1.1 мы определили задание (job) как внешнюю единицу работы z/OS. Это означает, что пользователь может запросить у системы выполнение какой-либо работы (конечно, связанной с запуском определенных приложений) с помощью специальным образом записанного и переданного системе текста. Это и есть задание. Задания составляются на языке управления заданиями JCL (Job Control Language) и направляются в систему пользователями через входные устройства и сетевые коммуникации, а также через ранее запущенные приложения. В задании зашифровано, какие программы, в какой последовательности и с какими данными должны быть исполнены, а также в какой форме и куда должны быть направлены результаты выполнения программ.
Все множество заданий в z/OS может быть представлено в виде трех групп:
- пакетные задания (batch job), формируемые пользователями на языке JCL и направляемые на обработку по команде сеанса TSO SUBMIT или через сетевые интерфейсы.
- STC-задания, инициируемые с помощью консольных команд START и MOUNT и получившие название запускаемые процедуры (started task);
- TSU-задания, формируемые в результате запуска пользовательских сеансов TSO/E по команде LOGON и предназначенные для поддержки диалога с пользователем.
Задания, поступающие в систему от различных источников, образуют поток заданий, обрабатываемый специальным системным компонентом JES.
При выполнении STC и TSU заданий z/OS создает отдельные адресные пространства для каждой запускаемой процедуры и каждого пользовательского сеанса TSO. Для пакетных заданий новые адресные пространства не создаются, поскольку их выполнение производится в системных адресных пространствах программ-инициаторов, входящих в состав JES.
Каждое задание характеризуется набором атрибутов, среди которых необходимо выделить:
- имя (jobname);
- идентификатор (jobID);
- класс выполнения или просто класс (class);
- приоритет (prty).
Имя задания - имя, присваиваемое заданию пользователем (для пакетных заданий) или формируемое автоматически (для STC/TSU-заданий). Идентификатор задания - уникальный код (номер) задания, устанавливаемый системой при вводе задания. Именно по идентификатору система отличает одно задание от другого.
Класс задания устанавливает принадлежность задания к определенной группе в зависимости от формы запуска, атрибутов пользователя и требований к ресурсам. В z/OS поддерживается два специальных класса для STC и TSU заданий и до 36 классов для пакетных заданий. Классы пакетных заданий обозначаются символами A, B, ..., Z и цифрами 0, 1, ..., 9 и могут назначаться по усмотрению пользователей с помощью JCL. Если пользователь не указал класс, система сформирует его в соответствии с настройками по умолчанию.
Приоритет задания (число в диапазоне 0-15) служит для определения очередности выполнения заданий. Обычно приоритет устанавливается системой автоматически на основе текущих атрибутов задания и может динамически изменяться в зависимости от времени ожидания в очереди. Наивысшему приоритету соответствует значение 15.
С каждым заданием система ассоциирует два специальных набора данных: SYSIN и SYSOUT. Входной набор данных SYSIN отражает исходные данные, используемые приложениями задания. Эти данные могут быть представлены непосредственно в тексте задания (в этом случае говорят, что исходные данные размещаются во входном потоке ) или содержаться в указанных наборах данных и/или устройствах. Выходной набор данных SYSOUT служит для размещения системных сообщений, а также сообщений и результатов работы, выполняемых в рамках задания программ. Система предоставляет возможность просмотреть и распечатать SYSOUT, который иногда называют отчетом или листингом задания.