Job Entry Subsystem¶
Job Entry Subsystem (JES) — это компонент операционной системы z/OS (и её предшественников, таких как OS/360, MVS), предназначенный для управления пакетными заданиями (batch jobs), их приёмом, планированием, выполнением и выводом результатов. JES берёт на себя функции, связанные с обработкой входных и выходных потоков данных, обеспечивая эффективное использование ресурсов мейнфрейма.
¶История
Развитие JES неразрывно связано с эволюцией операционных систем для мейнфреймов IBM. В ранних версиях OS/360 (1960-е годы) управление заданиями осуществлялось компонентом Job Control (JC), который был тесно интегрирован с ядром системы. Однако по мере роста сложности и объёмов пакетной обработки возникла необходимость в специализированном подсистеме, которая могла бы работать независимо и параллельно с основной операционной системой.
В 1970-х годах, с появлением операционной системы MVS (Multiple Virtual Storage), была разработана первая версия JES — JES1 (Job Entry Subsystem 1). JES1 предназначался для однопроцессорных систем и обеспечивал базовую функциональность: приём заданий, их постановку в очередь, выполнение и вывод. Вскоре для многопроцессорных и кластерных конфигураций была создана более мощная версия — JES2 (Job Entry Subsystem 2), которая стала стандартом для большинства установок.
В 1980-х годах, с развитием сетевых технологий и распределённых вычислений, появилась JES3 (Job Entry Subsystem 3). JES3 была ориентирована на сложные многопроцессорные системы с общей памятью и обеспечивала более сложное управление зависимостями заданий и распределением ресурсов между несколькими процессорами. В отличие от JES2, где каждое задание обрабатывалось независимо, JES3 могла координировать выполнение заданий на разных процессорах, что требовало более сложного планирования.
С переходом на операционную систему z/OS в начале 2000-х годов JES2 и JES3 остались основными подсистемами управления заданиями, получив множество усовершенствований, связанных с поддержкой 64-битной адресации, улучшенной безопасностью, интеграцией с веб-интерфейсами и поддержкой современных протоколов (например, TCP/IP).
¶Основные функции
JES выполняет четыре ключевые функции, которые часто обозначаются аббревиатурой I/O (Input/Output) и Scheduling (Планирование), хотя в более детальном виде они включают:
- Приём заданий (Input): JES принимает задания от пользователей, поступающие через различные источники: локальные терминалы (например, через ISPF), удалённые системы (через протоколы FTP, SFTP, HTTP), а также от других мейнфреймов. Задание представляет собой текстовый файл на языке управления заданиями JCL (Job Control Language), который содержит инструкции для операционной системы: какие программы запускать, какие файлы использовать, какие ресурсы выделить.
- Преобразование (Conversion): Полученное задание преобразуется в формат, понятный операционной системе. JCL-код интерпретируется, проверяется на синтаксические ошибки, и создаётся внутреннее представление задания — JCT (Job Control Table) и JOT (Job Output Table). На этом этапе также могут быть выполнены подстановки переменных и проверки прав доступа.
- Планирование и выполнение (Scheduling & Execution): JES помещает задание в очередь на выполнение. Планировщик (scheduler) JES определяет, когда и на каком процессоре (или в каком адресном пространстве) задание может быть запущено, исходя из доступных ресурсов (память, процессорное время, устройства ввода-вывода) и приоритетов, заданных в JCL. После запуска JES отслеживает выполнение задания, управляя его состоянием (ожидание, выполнение, завершение).
- Вывод результатов (Output): После завершения задания JES обрабатывает выходные данные — отчёты, журналы, сообщения. Эти данные могут быть выведены на принтер, сохранены в файл (например, в формате PDF), отправлены по электронной почте или переданы на удалённую систему. JES также управляет очередями вывода, позволяя пользователям просматривать и распечатывать результаты.
¶Архитектура и компоненты
JES работает как отдельная подсистема, запускающаяся в собственном адресном пространстве. Её архитектура включает несколько ключевых компонентов:
- JES2 (или JES3) — основная программа, реализующая логику управления заданиями. Она состоит из нескольких модулей, каждый из которых отвечает за определённую фазу обработки (например, модуль ввода, модуль преобразования, модуль вывода).
- SPOOL (Simultaneous Peripheral Operations On-Line) — область на диске, где JES хранит все входные и выходные данные заданий. SPOOL представляет собой единую очередь, доступную всем процессорам в системе. Это позволяет отделить ввод/вывод от выполнения заданий, повышая общую производительность.
- JES-интерфейсы: JES предоставляет несколько интерфейсов для взаимодействия с пользователями и администраторами:
- ISPF (Interactive System Productivity Facility) — стандартный текстовый интерфейс для управления заданиями, просмотра очередей и вывода.
- JES-команды — командная строка (например,
$D JOB,$S JOB), позволяющая администраторам управлять заданиями в реальном времени. - Web-интерфейсы (например, IBM z/OS Management Facility) — современные веб-интерфейсы для удалённого управления.
¶JES2 и JES3: сравнение
Хотя обе подсистемы выполняют схожие функции, между ними есть принципиальные различия:
| Характеристика | JES2 | JES3 |
|---|---|---|
| Архитектура | Децентрализованная. Каждый процессор в кластере имеет свою копию JES2, которая управляет локальными заданиями. | Централизованная. Один экземпляр JES3 управляет всеми заданиями для всего кластера (или нескольких процессоров). |
| Управление зависимостями | Ограниченное. Задания выполняются независимо, если не указаны явные зависимости в JCL. | Расширенное. JES3 может координировать выполнение заданий на разных процессорах, управляя сложными зависимостями (например, задание B должно выполняться после задания A на другом процессоре). |
| Планирование | Простое, основанное на приоритетах и доступных ресурсах. | Сложное, с возможностью глобального планирования для всего кластера. |
| Сложность | Меньше. Проще в настройке и администрировании. | Больше. Требует более глубокого понимания архитектуры и более сложной настройки. |
| Применение | Стандарт для большинства установок, особенно для систем с одним или несколькими независимыми процессорами. | Используется в крупных, высоконагруженных системах с несколькими процессорами, где требуется централизованное управление и сложная координация. |
¶Применение и значение
JES является критически важным компонентом для мейнфреймов, которые по-прежнему широко используются в крупных корпорациях, банках, страховых компаниях, государственных учреждениях и других организациях, где требуется обработка огромных объёмов транзакций и пакетных данных. Основные области применения:
- Пакетная обработка данных: ежемесячные отчёты, расчёт заработной платы, обработка банковских транзакций, генерация выписок.
- Управление печатью: вывод на печать большого количества документов (счета, накладные, отчёты).
- Интеграция с другими системами: JES может взаимодействовать с другими подсистемами z/OS, такими как CICS (Customer Information Control System) для онлайн-транзакций и DB2 для управления базами данных.
- Автоматизация: JES позволяет автоматизировать выполнение заданий по расписанию, с использованием планировщиков (например, IBM Tivoli Workload Scheduler).
¶Интересные факты
- Название «Job Entry Subsystem» отражает его историческую роль — подсистема, которая «вводит» задания в систему. Однако современные версии JES выполняют гораздо более широкий спектр функций.
- JES использует язык управления заданиями JCL (Job Control Language), который, несмотря на свой возраст (более 50 лет), остаётся основным инструментом для написания пакетных заданий на мейнфреймах.
- В JES2 существует концепция «горячих» и «холодных» запусков. «Холодный» запуск очищает все очереди и SPOOL, что может быть необходимо при серьёзных сбоях, но приводит к потере всех невыполненных заданий.
- JES3 поддерживает функцию Global Resource Serialization (GRS), которая позволяет координировать доступ к общим ресурсам (например, файлам) между заданиями, выполняющимися на разных процессорах.
¶Источники
- IBM Corporation. z/OS JES2 Introduction. IBM Redbooks.
- IBM Corporation. z/OS JES3 Introduction. IBM Redbooks.
- IBM Corporation. z/OS MVS JCL Reference. IBM Knowledge Center.
- IBM Corporation. OS/360 Job Control Language. IBM Systems Reference Library.
- Корпорация IBM. z/OS: Основы.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


