Dmitry67 wrote:Ну если JCL это не шелл то для чего он нужен ?
Что он может дать ?
Это просто навороченная команда порождения процесса где задается куча параметров ?
JCL изначально был языком общения пользователя с системой, в условиях когда пользователь не имел непосредственного выхода на систему. Пользователь готовил задания, в рамках которых запускались различные программы, которым выделялись необходимые ресурсы, устанавливались параметры выполнения, формировался вывод и т.д.
Задания проходят три стадии: ввод, инициирование/завершение, и вывод. Соответственно в системе имелись три вида системных процессов (каждый мог иметь много активных имиджей в системе): системный ввод (так называемый READER или RDR), инициатор (INIT), и вывод (так называемый WRITER или WTR).
В современной z/OS (насамом деле давным давно, наверное в конце 70-х) те три вида системных процессов объединены в так называемую Job Entry System (JES2).
Для упорядочения выполнения заданий было введено понятие класса очередей ввода и вывода. Работают классы следующим образом. Каждое задание имеет характеристику - класс задания. По прочтении задания оно помещается в очередь соответствующего класса. По умолчанию класс А.
Если в системе имеется активный и свободный инициатор соответствующего класса, то он будет выбирать очередное задание из очереди своего класса(ов) и инициировать их, если таких инициаторов нет, то задание будет ждать в очереди пока такой инициатор не появится.
По завершении выполнения задания, кроме результирующих файлов может быть создан так называемый системный вывод. Это главным образом протоколы выполнения, листинги, отчеты. Так сказать результирующая "печать".
Каждый такой системный вывод так же имеет характеристику - класс вывода. Сначала вывод помещается в очередь. Если имеется свободный системный процесс соответствующего класса, то он начинает выводить задание на предписанное ему устройство вывода: в простейшем случае - это печатающее устройство.
Во многих случаях вывод остается в очередях где его можно просмотреть, удалить, изменить класс вывода и т.д. и т.п. Вывод отслеживаемых заданий может перемещаться из очереди в какие-либо долговременные хранилища и организуется в виде поколений вывода для ретроспективного просмотра.
Как задание, запускаются не только работы имеющие начало и конец, но и "постоянные" процессы, которые "живут" в системе "вечно". Часто такие задания образуют так называемые подсистемы. Одной из подсистем является DB2, представленная в виде нескольких "заданий" минимум 3: собственно RDBMS, менеджер блокировок, и машина ввода-вывода.
Примеры других - Work Load Manager (WLM), монитор транзакций CICS (где обычно выполняются онлайн программы Кобол), диалоговая среда для разработчиков и админов - Time Sharing Options (TSO) через которую можно запустить Unix сессию, TCP/IP, NFS, JES2, WebSphere и тд. и тп.
Все это многообразие процессов, адресных пространств и пакетных заданий так или иначе описанно на JCL (порой это всего несколько карт) и различными способами инициируется в системе. Управляет всем этим процессом инициирования оператор с консоли оператора, которых у системы как правило несколько, а точнее AutoOperator. Человек же, оператор, как правило лишь наблюдает и кричит "КАРАУЛ" (в смысле пэйджит мне когда что-нибудь не ладно с DB2, или другим парням). К счастью происходит это не часто.
Управление боксом в целом осуществляется с HCM (Hardware Console...), которая представляет собой ПК под OS/2, специальным интерфейсом соединеную с боксом. К этой ПК можно подсоединиться через Интернет (Интранет скорее всего) и управлять боксом удаленно.
А вообщем Вы правы, Дима, JCL вместе с JES - это очень навороченная возможность порождения и управления процессами в системе. Только процессами они в MVS не называются. Самым общим названием, наверное, будет Адрессное Пространство.