Пакетная обработка - Batch processing

Компьютеризированная пакетная обработка - это выполнение «заданий, которые могут выполняться без взаимодействия с конечным пользователем или запускаться по расписанию, если позволяют ресурсы».

История

Термин «пакетная обработка» происходит от традиционной классификации методов производства на производство по заданию (разовое производство), серийное производство (производство «партии» нескольких изделий одновременно, по одной стадии за раз) и поточное производство. (серийное производство, все этапы сразу).

Ранняя история

Ранние компьютеры могли запускать только одну программу за раз. Каждый пользователь имел единоличное управление машиной в течение определенного периода времени. Они приходили к компьютеру с программой и данными, часто на перфокартах, магнитной или бумажной ленте, и загружали свою программу, запускали и отлаживали ее, а по завершении уносили свой вывод.

По мере того, как компьютеры становились все быстрее, время настройки и демонтажа становилось все больше и больше доступного компьютерного времени. Были разработаны программы, называемые мониторами , предшественники операционных систем , которые могли обрабатывать серию или «пакет» программ, часто с магнитной ленты, подготовленной в автономном режиме. Монитор загружается в компьютер и запускает первое задание пакета. В конце задания он восстанавливает контроль, загружается и запускается до тех пор, пока пакет не будет завершен. Часто выходные данные партии записывались на магнитную ленту и распечатывались или перфорировались в автономном режиме. Примерами мониторов были IBM Fortran Monitor System , SOS (Share Operating System) и, наконец, IBSYS для систем IBM 709x в 1960 году.

Системы третьего поколения

Компьютеры третьего поколения, способные к мультипрограммированию, начали появляться в 1960-х годах. Вместо одновременного выполнения одного пакетного задания в этих системах может одновременно выполняться несколько пакетных программ, чтобы обеспечить максимальную загрузку системы. Одна или несколько программ могут ожидать ввода, одна активно работает на ЦП, а другие генерируют вывод. Вместо автономного ввода и вывода программы, называемые спулерами, считывают задания с карт, дисков или удаленных терминалов и помещают их в очередь заданий для выполнения. В целях предотвращения тупиков планировщик заданий должно знать требования-память ресурсов каждого задания, в магнитных ленты, монтируемые диски так различные языки сценариев были разработаны, и т.д., чтобы предоставить эту информацию в структурированном виде. Вероятно, наиболее известным является язык управления заданиями IBM (JCL). Планировщики заданий выбирают задания для выполнения в соответствии с множеством критериев, включая приоритет, размер памяти и т. Д. Удаленная пакетная обработка - это процедура отправки пакетных заданий с удаленных терминалов, часто оснащенных устройством чтения перфокарт и линейным принтером . Иногда асимметричная многопроцессорная обработка используется для буферизации пакетного ввода и вывода для одного или нескольких больших компьютеров с помощью подключенной меньшей и менее дорогой системы, как в IBM System / 360 Attached Support Processor .

Более поздняя история

Пакетный файл CDC NOS, чтобы получить файл STARTRK и вывести его на перфоратор

С конца 1960-х годов стали распространены интерактивные вычисления, например, через текстовые компьютерные терминальные интерфейсы (как в оболочках Unix или циклы чтения-оценки-печати ), а позже и графические пользовательские интерфейсы . Неинтерактивное вычисление, как единовременный рабочие мест , такие как составление и обработка нескольких элементов в партии, стали задним числом называется пакетной обработкой , и срок пакетного задания (в начале использования часто «партия из рабочих мест») стала обычным явлением. Раннее использование особенно широко используется в Мичиганском университете , в районе Терминальной системы Мичигана (MTS).

Хотя разделение времени действительно существовало, его использование было недостаточно надежным для корпоративной обработки данных; Ничего из этого не было связано с более ранней записывающей аппаратурой , управляемой человеком.

Непрерывный

Неинтерактивные вычисления по-прежнему широко используются в вычислениях, как для общей обработки данных, так и для задач «домашнего хозяйства» системы (с использованием системного программного обеспечения ). Программа высокого уровня (выполняющая несколько программ с некоторой дополнительной «связующей» логикой) сегодня чаще всего называется сценарием и написана на языках сценариев , в частности сценариях оболочки для системных задач; в IBM PC DOS и MS-DOS это называется пакетным файлом . Сюда входят компьютеры на базе UNIX , Microsoft Windows , macOS (основой которой является ядро BSD Unix) и даже смартфоны . Запущенный сценарий, особенно тот, который выполняется из интерактивного сеанса входа в систему , часто называют заданием , но этот термин используется очень неоднозначно.

«Нет прямого аналога пакетной обработки z / OS в системах ПК или UNIX. Пакетные задания обычно выполняются в запланированное время или по мере необходимости. UNIX, хотя различия значительны ».

Современные системы

Пакетные приложения по-прежнему критически важны для большинства организаций в значительной степени потому, что многие обычные бизнес-процессы поддаются пакетной обработке. Хотя онлайн-системы также могут работать, когда ручное вмешательство нежелательно, они, как правило, не оптимизированы для выполнения повторяющихся задач большого объема. Поэтому даже новые системы обычно содержат одно или несколько пакетных приложений для обновления информации в конце дня, создания отчетов, печати документов и других неинтерактивных задач, которые должны надежно выполняться в определенные бизнес-сроки.

Некоторые приложения подходят для потоковой обработки, а именно те, которым требуются данные только из одного входа сразу (например, не итоги): начинайте следующий шаг для каждого входа, когда он завершает предыдущий шаг. В этом случае обработка потока снижает задержку для отдельных входных данных, позволяя завершить их, не дожидаясь завершения всего пакета. Однако многим приложениям требуются данные из всех записей, особенно такие вычисления, как итоги. В этом случае весь пакет должен быть завершен, прежде чем будет получен пригодный для использования результат: частичные результаты не могут быть использованы.

Современные пакетные приложения используют современные пакетные среды, такие как Jem The Bee , Spring Batch или реализации JSR 352, написанные для Java , и другие структуры для других языков программирования, чтобы обеспечить отказоустойчивость и масштабируемость, необходимые для обработки больших объемов данных. Чтобы обеспечить высокую скорость обработки, пакетные приложения часто интегрируются с решениями для распределенных вычислений, чтобы разделить пакетное задание на большое количество процессоров, хотя при этом возникают серьезные проблемы программирования. Пакетная обработка больших объемов данных предъявляет особенно высокие требования к архитектуре системы и приложений. Архитектуры с высокой производительностью ввода / вывода и вертикальной масштабируемостью , включая современные мэйнфреймы , обычно обеспечивают лучшую производительность пакетной обработки, чем альтернативы.

Языки сценариев стали популярными по мере их развития вместе с пакетной обработкой.

Пакетное окно

Партия окно является «периодом менее интенсивной деятельности в Интернете», когда компьютерная система находится в состоянии запуска пакетных заданий без вмешательства со стороны , или с интерактивными онлайновыми системами.

Работа банка в конце дня (EOD) требует концепции переключения , при которой транзакция и данные отключаются для пакетной активности определенного дня («депозиты после 15:00 будут обработаны на следующий день»).

Поскольку требования к времени безотказной работы онлайн-систем расширились для поддержки глобализации , Интернета и других потребностей бизнеса, окно пакетной обработки сократилось, и все больший упор стал делаться на методы, которые потребовали бы, чтобы онлайн-данные были доступны в течение максимального количества времени.

Размер партии

Размер пакета относится к количеству единиц работы, которые должны быть обработаны в рамках одной пакетной операции. Вот несколько примеров:

  • Количество строк из файла для загрузки в базу данных перед фиксацией транзакции.
  • Количество сообщений, которые нужно исключить из очереди.
  • Количество запросов для отправки в одной полезной нагрузке.

Обычное использование пакетной обработки

  • Эффективное массовое обновление базы данных и автоматическая обработка транзакций в отличие от приложений интерактивной онлайн-обработки транзакций (OLTP). Этап извлечения, преобразования, загрузки (ETL) при заполнении хранилищ данных по своей сути является пакетным процессом в большинстве реализаций.
  • Выполнение массовых операций с цифровыми изображениями, таких как изменение размера, преобразование, добавление водяных знаков или иное редактирование группы файлов изображений.
  • Преобразование компьютерных файлов из одного формата в другой. Например, пакетное задание может преобразовывать проприетарные и устаревшие файлы в общие стандартные форматы для запросов и отображения конечных пользователей.

Известные среды пакетного планирования и выполнения

IBM мэйнфреймов г / OS операционной системы или платформы имеет , пожалуй, наиболее изысканный и эволюционировали набор пакетной обработки объектов благодаря своему происхождению, долгой истории и продолжающейся эволюции. Сегодня такие системы обычно поддерживают сотни или даже тысячи одновременных интерактивных и пакетных задач в одном образе операционной системы . Технологии, которые помогают одновременной пакетной и онлайн-обработке, включают язык управления заданиями (JCL), языки сценариев, такие как REXX , подсистему ввода заданий ( JES2 и JES3 ), диспетчер рабочей нагрузки (WLM), диспетчер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS). , Совместное использование данных DB2 , Parallel Sysplex , уникальные оптимизации производительности, такие как HiperDispatch , архитектура каналов ввода-вывода и некоторые другие.

Программы для Unix cron, atи batch(сегодня batchпредставляет собой вариант at) позволяют для комплексного планирования рабочих мест. В Windows есть планировщик заданий . Большинство высокопроизводительных вычислительных кластеров используют пакетную обработку для максимального использования кластера.

Смотрите также

использованная литература