Компьютеризированная пакетная обработка — это метод автоматического запуска программ, называемых заданиями , в пакетном режиме. Хотя пользователям необходимо отправлять задания, для обработки пакета никаких других действий со стороны пользователя не требуется. Пакеты могут запускаться автоматически в запланированное время, а также в зависимости от доступности компьютерных ресурсов.
Термин «партийная обработка» происходит от традиционной классификации методов производства на поштучное производство (разовое производство), серийное производство (производство «партии» нескольких изделий одновременно, по одному этапу за раз) и поточное производство . (массовое производство, все этапы в процессе одновременно).
Ранние компьютеры могли запускать одновременно только одну программу. Каждый пользователь имел единоличный контроль над машиной в течение запланированного периода времени. Они приходили к компьютеру с программой и данными, часто на перфокартах , магнитной или бумажной ленте, загружали свою программу, запускали и отлаживали ее, а по завершении уносили вывод.
По мере того, как компьютеры становились быстрее, время установки и отключения стало увеличиваться в процентах от доступного компьютерного времени. Были разработаны программы, называемые мониторами , предшественники операционных систем , которые могли обрабатывать серию или «пакет» программ, часто с магнитной ленты , подготовленной в автономном режиме. Монитор загружался в компьютер и запускал первое задание пакета. В конце задания он восстанавливал контроль, загружал и запускал следующее, пока пакет не был завершен. Часто выходные данные пакета записываются на магнитную ленту и распечатываются или перфорируются в автономном режиме. Примерами мониторов были IBM Fortran Monitor System , SOS (Share Operating System) и, наконец, IBSYS для систем IBM 709x в 1960 году. [1] [2]
Компьютеры третьего поколения [ нужны разъяснения ] [3] , способные к мультипрограммированию, начали появляться в 1960-х годах. Вместо одновременного запуска одного пакетного задания в этих системах может одновременно выполняться несколько пакетных программ, чтобы обеспечить максимальную занятость системы. Одна или несколько программ могут ожидать ввода, одна активно работает на ЦП, а другие генерируют выходные данные. Вместо автономного ввода и вывода программы, называемые спулерами, считывают задания с карт, дисков или удаленных терминалов и помещают их в очередь заданий для запуска. Чтобы предотвратить взаимоблокировки, планировщику заданий необходимо знать требования к ресурсам каждого задания — памяти, магнитных лент, подключаемых дисков и т. д., поэтому были разработаны различные языки сценариев для структурированного предоставления этой информации. Вероятно, наиболее известным из них является язык управления заданиями IBM (JCL). Планировщики заданий выбирают задания для запуска по множеству критериев, включая приоритет, размер памяти и т. д. Удаленная пакетная обработка — это процедура отправки пакетных заданий с удаленных терминалов, часто оснащенных устройством считывания перфокарт и построчным принтером . [4] Иногда асимметричная многопроцессорная обработка используется для буферизации пакетного ввода и вывода для одного или нескольких больших компьютеров с использованием подключенной меньшей и менее дорогой системы, как в IBM System/360 Attached Support Processor . [а]
Первая система разделения времени общего назначения, совместимая система разделения времени (CTSS), была совместима с пакетной обработкой. Это облегчило переход от пакетной обработки к интерактивным вычислениям . [5]
С конца 1960-х годов стали обычным явлением интерактивные вычисления, такие как текстовые интерфейсы компьютерных терминалов (как в оболочках Unix или циклах чтения-оценки-печати ), а позже и графические пользовательские интерфейсы . Неинтерактивные вычисления, как разовые задания, такие как компиляция, так и обработка нескольких элементов в пакетах, стали ретроспективно называться пакетной обработкой , а термин «пакетное задание» (в раннем использовании часто «пакет заданий ») стал обычным явлением. Раннее использование особенно встречается в Мичиганском университете , вокруг терминальной системы Мичигана (MTS). [6]
Хотя разделение времени действительно существовало, его использование было недостаточно надежным для обработки корпоративных данных; ничто из этого не было связано с более ранним записывающим оборудованием , которым управлял человек.
Неинтерактивные вычисления по-прежнему широко распространены в вычислениях, как для общей обработки данных, так и для задач «обслуживания» системы (с использованием системного программного обеспечения ). Программа высокого уровня (выполняющая несколько программ с некоторой дополнительной «связующей» логикой) сегодня чаще всего называется сценарием и пишется на языках сценариев , особенно на сценариях оболочки для системных задач; в IBM PC DOS и MS-DOS это называется пакетным файлом . Сюда входят компьютеры на базе UNIX , Microsoft Windows , macOS (основанной на ядре BSD Unix) и даже смартфоны . Запущенный сценарий, особенно тот, который выполняется из интерактивного сеанса входа в систему , часто называют заданием , но этот термин используется очень неоднозначно.
«Не существует прямого аналога пакетной обработки z/OS в системах ПК или UNIX. Пакетные задания обычно выполняются в запланированное время или по мере необходимости. Возможно, самое близкое сравнение — с процессами, запускаемыми командой at или cron в UNIX, хотя различия значительны». [7]
Пакетные приложения по-прежнему имеют решающее значение в большинстве организаций, во многом потому, что многие распространенные бизнес-процессы поддаются пакетной обработке. Хотя онлайн-системы также могут функционировать, когда ручное вмешательство нежелательно, они обычно не оптимизированы для выполнения крупномасштабных повторяющихся задач. Поэтому даже новые системы обычно содержат одно или несколько пакетных приложений для обновления информации в конце дня, создания отчетов, печати документов и других неинтерактивных задач, которые должны быть надежно выполнены в определенные бизнес-сроки.
Некоторые приложения поддерживают потоковую обработку, а именно те, которым нужны данные только из одного входа одновременно (например, не итоговые данные): запускайте следующий шаг для каждого входа по мере завершения предыдущего шага. В этом случае обработка потока снижает задержку для отдельных входных данных, позволяя завершить их, не дожидаясь завершения всего пакета. Однако многим приложениям требуются данные из всех записей, особенно такие вычисления, как итоговые значения. В этом случае вся партия должна быть завершена, прежде чем будет получен пригодный для использования результат: частичные результаты непригодны для использования.
Современные пакетные приложения используют современные пакетные платформы, такие как Jem The Bee, Spring Batch [8] или реализации JSR 352 [9] , написанные для Java , а также другие среды для других языков программирования, чтобы обеспечить отказоустойчивость и масштабируемость , необходимые для высокой производительности. -объемная обработка. Чтобы обеспечить высокоскоростную обработку, пакетные приложения часто интегрируются с решениями для распределенных вычислений , чтобы разделить пакетное задание на большое количество процессоров, хотя при этом возникают серьезные проблемы с программированием. Пакетная обработка больших объемов также предъявляет особенно высокие требования к архитектуре систем и приложений. Архитектуры, которые обеспечивают высокую производительность ввода-вывода и вертикальную масштабируемость , включая современные мейнфреймы , как правило, обеспечивают более высокую производительность пакетной обработки, чем альтернативы.
Языки сценариев стали популярными по мере их развития вместе с пакетной обработкой. [10]
Пакетное окно — это «период менее интенсивной онлайн-активности», [11] когда компьютерная система может выполнять пакетные задания без вмешательства интерактивных онлайн-систем или с ними.
Задания банка в конце дня (EOD) требуют концепции переключения , при которой транзакции и данные отключаются для пакетной активности конкретного дня («депозиты после 15:00 будут обработаны на следующий день»).
Поскольку требования к времени безотказной работы онлайн-систем расширились для поддержки глобализации , Интернета и других потребностей бизнеса, пакетное окно сузилось [12] [13] и все большее внимание стало уделяться методам, которые требуют, чтобы онлайн-данные были доступны в течение максимального периода времени. .
Размер пакета относится к количеству рабочих единиц, которые будут обработаны в рамках одной пакетной операции. Некоторые примеры:
Операционная система или платформа z/OS для мэйнфреймов IBM, возможно, имеет наиболее усовершенствованный и развитый набор средств пакетной обработки благодаря своему происхождению, долгой истории и продолжающемуся развитию. Сегодня такие системы обычно поддерживают сотни или даже тысячи одновременных онлайн- и пакетных задач в одном образе операционной системы . Технологии, которые помогают одновременной пакетной и онлайн-обработке, включают язык управления заданиями (JCL), языки сценариев, такие как REXX , подсистему ввода заданий ( JES2 и JES3 ), диспетчер рабочей нагрузки (WLM), диспетчер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS). , совместное использование данных IBM Db2 , Parallel Sysplex , уникальные оптимизации производительности, такие как HiperDispatch , архитектура каналов ввода-вывода и некоторые другие.
Программы Unix cron
, at
и batch
(сегодня batch
это вариант at
) позволяют выполнять сложное планирование заданий. В Windows есть планировщик заданий . Большинство высокопроизводительных вычислительных кластеров используют пакетную обработку для максимального использования кластера. [15]
IBSYS была операционной системой для 7090, которая произошла от SOS (операционная система SHARE).
CTSS назывался «совместимым» в том смысле, что
FMS
можно было запускать в B-ядре от имени «фонового» пользователя, почти так же эффективно, как на голой машине, а также потому, что программы, скомпилированные для пакетной обработки FMS, могли загружаться и выполняться в среда разделения времени «переднего плана» (с некоторыми ограничениями). ...Эта функция позволила Вычислительному центру осуществить переход от пакетной обработки к разделению времени постепенно.
JSR 352, открытая стандартная спецификация для пакетной обработки Java. ... Используемые языки программирования со временем развивались в зависимости от того, что было доступно.
Многопользовательская, общая и интеллектуальная система пакетной обработки повышает масштабируемость..... Большинство
кластеров
HPC работают на Linux.