Введение
Компонент операционной системы z/OS
Подсистема ввода заданий (JES) является компонентом операционных систем IBM MVS, отвечающим за управление пакетными рабочими нагрузками. В настоящее время существует две различные реализации системы ввода заданий – JES2 и JES3. Они предназначены для обеспечения эффективного выполнения пакетных заданий. Обработка заданий разделена на несколько фаз для обеспечения параллелизма посредством конвейерной обработки. Эти фазы включают обработку входных данных, где задания считываются и интерпретируются, фазу выполнения, когда задания выполняются, и обработку выходных данных, где результаты заданий печатаются или сохраняются на DASD. Задания, находящиеся на одной фазе выполнения, обычно считаются находящимися в определенной очереди; например, задания, которые в данный момент выполняются, находятся в очереди выполнения. Для повышения эффективности ввода-вывода JES выполняет спулинг, который обеспечивает множеству заданий одновременный доступ к общему тому хранения. JES использует структуру, называемую контрольной точкой, для резервного копирования информации о выполняемых заданиях и связанных с ними выходных данных. Контрольную точку можно использовать для восстановления заданий и выходных данных в случае неожиданных аппаратных или программных сбоев. Хотя JES2 и JES3 предоставляют одинаковую основную функциональность, некоторые функции могут присутствовать в одной JES, но отсутствовать в другой. Из-за этих различий одна JES может быть предпочтительнее другой в определенных установках заказчика. JCL используется для определения заданий как для JES2, так и для JES3, но обычно требуется внести небольшие изменения в JCL, чтобы запустить задание, написанное для одной JES, на другой. Распространенной проблемой было то, что JES3 проверял существование всех наборов данных, перечисленных в JCL, перед выполнением, или наличие предыдущего шага, на котором набор данных был определен как NEW,CATLG. JES2 не требовал этого, позволяя заданию выполняться, даже если оно завершится неудачей, когда шаг, использующий его, не сможет найти набор данных.
Прекурсоры
Пакетная обработка заданий в OS/360 обладала ограниченной гибкостью и производительностью, что было решено с помощью двух разработанных пользователями пакетов: Houston Automatic Spooling Priority (HASP) и Attached Support Processor (ASP).
HASP
HASP был разработан подрядчиками IBM Federal Systems Division в Космическом центре имени Джонсона в Хьюстоне. Подключив IBM 7040 в качестве периферийного устройства, пропускная способность процессора была увеличена более чем вдвое. В типичной конфигурации ASP небольшой мейнфрейм, такой как 360/40, называемый системой поддержки, управлял одним или несколькими процессорами 360/65 или более мощными, называемыми основными системами. Компьютеры соединялись через селекторные каналы на каждом хосте, подключенные к адаптерам каналов, представляющим собой раннюю форму компьютерной сети ближнего действия типа «точка-точка». ASP требовало приобретения дополнительного компьютера для управления вводом-выводом хостов, выполняющих рабочую нагрузку, что было экономически оправдано высокой стоимостью автономных байтовых мультиплексоров, необходимых для работы с принтерами и устройствами для чтения перфокарт; системы 360/50 и меньше имели встроенный байтовый мультиплексорный канал, в то время как более быстрые системы 360/65 и мощнее требовали относительно дорогостоящего автономного устройства. Использование ASP позволяло избежать затрат на байтовый мультиплексорный канал, а перенос задач планирования, печати и обработки карт также освобождал от этих функций более мощные машины. Повышенная надежность была еще одним преимуществом, компенсирующим дополнительные затраты на оборудование. Одна или несколько основных систем могли выйти из строя или быть отключены для обслуживания без остановки всего комплекса. ASP был ориентирован в первую очередь на крупные государственные учреждения и оборонные предприятия, которые могли использовать до шести 360/65, все из которых планировались и управлялись отдельной машиной ASP. Необычным вариантом был локальный ASP (LASP) – одна большая машина, на которой функции ASP работали на той же машине. В 1970-х годах заметная установка ASP была в Принстонском университете, управлявшая мейнфреймом IBM 360/91. В 1973 году IBM переписала ASP и переименовала ее в JES3, поддерживая только MVS. Изначально JCL для подсистемы Master находился в загрузочных модулях, предоставляемых IBM, но в текущих версиях MVS через z/OS он может быть предоставлен как член библиотеки системных параметров (PARMLIB).
Настройка
Исходный код был предоставлен клиентам IBM как для ASP, так и для HASP, и многие клиенты внесли значительные улучшения в эти программы, часть которых была включена в официальную версию продукта. HASP использовался значительно больше, чем ASP, и в современных z/OS системах количество установок JES2 намного превышает количество установок JES3. В силу их уникальной истории, IBM продолжает поставлять исходный код JES2 и JES3 вместо объектного кода, в отличие от большинства компонентов операционной системы. Для повышения удобства сопровождения и обслуживания пользовательских улучшений, JES предоставляет набор точек выхода, которые передают управление от JES пользовательским программам в ключевых точках обработки. Эти расширения могут обеспечивать пользовательскую функциональность, такую как специальные команды, пользовательские заголовки страниц печати и нестандартную обработку заданий.
Современное развитие
В 2017 году IBM опубликовала заявление о стратегическом направлении развития JES2, обозначив его как "стратегический" JES, что означает, что все будущие разработки будут сосредоточены на JES2, а не на JES3. В октябре 2019 года компания Phoenix Software International объявила о получении лицензии на исходный код JES3 от IBM и о принятии на себя его поддержки и дальнейшего развития.