Открыть сервис

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 (Планирование), хотя в более детальном виде они включают:

  1. Приём заданий (Input): JES принимает задания от пользователей, поступающие через различные источники: локальные терминалы (например, через ISPF), удалённые системы (через протоколы FTP, SFTP, HTTP), а также от других мейнфреймов. Задание представляет собой текстовый файл на языке управления заданиями JCL (Job Control Language), который содержит инструкции для операционной системы: какие программы запускать, какие файлы использовать, какие ресурсы выделить.
  2. Преобразование (Conversion): Полученное задание преобразуется в формат, понятный операционной системе. JCL-код интерпретируется, проверяется на синтаксические ошибки, и создаётся внутреннее представление задания — JCT (Job Control Table) и JOT (Job Output Table). На этом этапе также могут быть выполнены подстановки переменных и проверки прав доступа.
  3. Планирование и выполнение (Scheduling & Execution): JES помещает задание в очередь на выполнение. Планировщик (scheduler) JES определяет, когда и на каком процессоре (или в каком адресном пространстве) задание может быть запущено, исходя из доступных ресурсов (память, процессорное время, устройства ввода-вывода) и приоритетов, заданных в JCL. После запуска JES отслеживает выполнение задания, управляя его состоянием (ожидание, выполнение, завершение).
  4. Вывод результатов (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: сравнение

Хотя обе подсистемы выполняют схожие функции, между ними есть принципиальные различия:

ХарактеристикаJES2JES3
АрхитектураДецентрализованная. Каждый процессор в кластере имеет свою копию 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), которая позволяет координировать доступ к общим ресурсам (например, файлам) между заданиями, выполняющимися на разных процессорах.

Источники

  1. IBM Corporation. z/OS JES2 Introduction. IBM Redbooks.
  2. IBM Corporation. z/OS JES3 Introduction. IBM Redbooks.
  3. IBM Corporation. z/OS MVS JCL Reference. IBM Knowledge Center.
  4. IBM Corporation. OS/360 Job Control Language. IBM Systems Reference Library.
  5. Корпорация IBM. z/OS: Основы.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →