JES2¶
JES2 (Job Entry Subsystem 2) — это компонент операционной системы IBM z/OS (и её предшественников, начиная с OS/360), отвечающий за приём, обработку, планирование и вывод пакетных заданий (batch jobs) в среде мейнфреймов IBM. JES2 является подсистемой ввода-вывода заданий, которая управляет очередями, распределяет ресурсы и обеспечивает взаимодействие между пользователями, заданиями и операционной системой. В отличие от своего аналога JES3, JES2 использует децентрализованную архитектуру, где каждый процессор (в многопроцессорной системе) управляет собственными очередями.
¶История
JES2 был разработан компанией IBM в конце 1960-х годов как часть операционной системы OS/360. Первоначально он назывался HASP (Houston Automatic Spooling Priority System) — система автоматического спулинга и приоритетов, созданная в Хьюстонском университете для управления пакетными заданиями на мейнфреймах IBM System/360. В 1970-х годах HASP был интегрирован в OS/360 и переименован в JES2. С развитием операционных систем MVS, а затем z/OS, JES2 претерпел множество изменений, включая поддержку многопроцессорных систем, сетевых протоколов (например, NJE — Network Job Entry) и расширенные возможности управления заданиями.
В 1980-х годах JES2 стал стандартной подсистемой для большинства установок IBM, особенно в коммерческих и государственных организациях, где требовалась высокая надёжность и производительность. С переходом на 64-битную архитектуру z/Architecture в 2000-х годах, JES2 был адаптирован для работы с большими объёмами данных и современными требованиями безопасности.
¶Архитектура и принцип работы
JES2 функционирует как набор компонентов, работающих в адресном пространстве операционной системы. Основные компоненты включают:
- Конвертер (Converter) — преобразует исходный код задания (JCL — Job Control Language) во внутренний формат, понятный системе.
- Интерпретатор (Interpreter) — анализирует JCL и определяет шаги задания, ресурсы и зависимости.
- Диспетчер (Dispatcher) — управляет очередями заданий, назначает приоритеты и распределяет процессорное время.
- Спулер (Spooler) — управляет временным хранением входных и выходных данных на дисковых устройствах (спулинговых томах).
- Менеджер вывода (Output Manager) — обрабатывает вывод результатов (печать, запись на ленту, передача по сети).
¶Процесс обработки задания
- Приём — задание поступает через JES2-интерфейс (например, через INTRDR — внутренний считыватель, или через сеть NJE). JES2 присваивает заданию уникальный идентификатор (JOB ID).
- Конвертация и интерпретация — JCL преобразуется во внутренние структуры, проверяется синтаксис и наличие необходимых ресурсов (файлов, устройств, программ).
- Планирование — задание помещается в очередь в соответствии с приоритетом, классом задания и доступностью ресурсов. JES2 поддерживает несколько классов (A-Z, 0-9) для управления приоритетами.
- Выполнение — задание передаётся диспетчеру операционной системы для выполнения шагов. JES2 отслеживает состояние задания, обрабатывает ошибки и управляет выводом.
- Вывод — результаты (журналы, отчёты, данные) сохраняются в спуле и могут быть напечатаны, отправлены на внешние устройства или переданы по сети.
¶Классификация и типы заданий
JES2 поддерживает различные типы заданий:
- Пакетные задания (Batch Jobs) — стандартные задания, выполняемые без интерактивного взаимодействия. Они описываются с помощью JCL и могут включать программы на COBOL, PL/I, Assembler, C/C++ и других языках.
- Стартовые задания (Started Tasks) — системные задания, которые запускаются автоматически при старте операционной системы или по команде оператора. Они не требуют JCL и управляются через JES2.
- Транзакционные задания (Transaction Jobs) — задания, запускаемые через системы управления транзакциями (например, CICS или IMS). JES2 обрабатывает их как часть пакетного потока.
- Сетевые задания (Network Jobs) — задания, поступающие через протокол NJE от других мейнфреймов или систем. NJE позволяет передавать задания, данные и вывод между узлами сети.
¶Основные возможности
JES2 предоставляет ряд функций, критически важных для эксплуатации мейнфреймов:
- Управление очередями — поддержка множества очередей (входная, выходная, выполнения, удержания) с возможностью приоритезации и управления классами.
- Спулинг — временное хранение данных на дисках для оптимизации ввода-вывода. JES2 использует специальные спулинговые тома (SPOOL volumes), которые могут быть распределены по нескольким устройствам.
- Поддержка многопроцессорных систем — в конфигурациях с несколькими процессорами (LPAR — Logical Partition) JES2 работает на каждом процессоре независимо, но может обмениваться данными через общую очередь.
- Безопасность — интеграция с RACF (Resource Access Control Facility) и другими системами безопасности для контроля доступа к заданиям, данным и ресурсам.
- Мониторинг и отчётность — JES2 генерирует журналы (JES2 Log) и отчёты о выполнении заданий, которые могут быть проанализированы администраторами.
- Восстановление после сбоев — поддержка контрольных точек (checkpoints) для восстановления состояния очередей и заданий после аварийного завершения.
¶Применение
JES2 широко используется в организациях, эксплуатирующих мейнфреймы IBM, особенно в банковской сфере, страховании, государственном управлении, транспорте и телекоммуникациях. Основные области применения:
- Обработка транзакций — пакетная обработка финансовых транзакций, расчётов, отчётов.
- Управление данными — загрузка, выгрузка и преобразование больших объёмов данных (например, в системах DB2, IMS, VSAM).
- Автоматизация задач — выполнение регулярных заданий (резервное копирование, обновление баз данных, генерация отчётов) по расписанию.
- Интеграция с другими системами — через NJE JES2 может взаимодействовать с другими мейнфреймами, а также с системами на базе UNIX, Linux или Windows (например, через FTP или MQ Series).
¶Сравнение с JES3
JES2 и JES3 — две основные подсистемы ввода-вывода заданий для z/OS, различающиеся архитектурой:
- JES2 — децентрализованная: каждый процессор управляет собственными очередями и спулом. Это обеспечивает большую гибкость и независимость, но требует более сложного управления в многопроцессорных конфигурациях.
- JES3 — централизованная: один процессор (главный) управляет всеми очередями и распределяет задания между остальными. Это упрощает управление, но создаёт единую точку отказа.
Выбор между JES2 и JES3 зависит от требований к производительности, масштабируемости и сложности инфраструктуры. JES2 чаще используется в организациях с одним или несколькими мейнфреймами, где требуется высокая автономность.
¶Интересные факты
- JES2 является одной из старейших активно используемых подсистем в истории вычислительной техники — её код начал разрабатываться в 1960-х годах и до сих пор поддерживается IBM.
- В JES2 используется собственный язык управления (JCL), который, несмотря на свою сложность, остаётся стандартом для пакетной обработки на мейнфреймах.
- JES2 поддерживает до 999 классов заданий и до 999 приоритетов в каждом классе, что позволяет тонко настраивать планирование.
- В 2020-х годах IBM продолжает выпускать обновления для JES2, включая поддержку облачных сред и контейнеризации (например, через z/OS Container Extensions).
¶Критика
Основные недостатки JES2 связаны с его сложностью и устаревшей архитектурой. Критики отмечают:
- Сложность JCL — язык управления заданиями требует глубоких знаний и часто приводит к ошибкам при неправильном синтаксисе.
- Ограниченная поддержка современных языков — JES2 изначально ориентирован на COBOL и Assembler, хотя современные версии поддерживают Java, Python и другие языки через z/OS UNIX System Services.
- Зависимость от мейнфреймов — JES2 не может быть перенесён на другие платформы, что ограничивает его использование в гетерогенных средах.
- Высокие требования к ресурсам — спулинг и управление очередями требуют значительных дисковых и процессорных ресурсов, особенно при большом количестве заданий.
Несмотря на критику, JES2 остаётся ключевым компонентом для тысяч организаций по всему миру, обеспечивая надёжную и предсказуемую обработку пакетных заданий.
¶Источники
- IBM Corporation. z/OS JES2 Introduction. IBM Redbooks, 2021.
- IBM Corporation. z/OS JES2 Commands. IBM Knowledge Center, 2023.
- Gary R. McClain. MVS and JES2: A Guide for Programmers and System Administrators. McGraw-Hill, 1995.
- John K. O’Brien. The JES2 Handbook: A Practical Guide to Job Entry Subsystem 2. IBM Press, 2008.
- Материалы курса «IBM Mainframe: z/OS Fundamentals» (Учебный центр IBM, 2022).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


