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

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

История

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

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

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

По мере того, как компьютеры становились все быстрее, время настройки и демонтажа становилось все больше и больше доступного компьютерного времени. Программы называются мониторы, предшественники операционные системы, были разработаны, которые могли обрабатывать серию или "пакет" программ, часто из магнитная лента подготовлен офлайн. Монитор загружается в компьютер и запускает первое задание пакета. В конце задания он восстанавливает контроль, загружается и запускается следующим, пока пакет не будет завершен. Часто выходные данные партии записывались на магнитную ленту и распечатывались или перфорировались в автономном режиме. Примеры мониторов были IBM Система мониторинга Fortran, SOS (Совместная операционная система) и, наконец, IBSYS для IBM 709x систем в 1960 году.[2][3]

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

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

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

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

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

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

Непрерывный

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

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

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

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

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

Современные пакетные приложения используют современные пакетные фреймворки, такие как Джем пчела, Весенняя партия или реализации JSR 352[7] написано для Ява, и другие платформы для других языков программирования, чтобы обеспечить Отказоустойчивость и масштабируемость требуется для обработки больших объемов. Для обеспечения высокой скорости обработки пакетные приложения часто интегрируются с сеточные вычисления решения для раздел пакетное задание на большом количестве процессоров, хотя при этом возникают серьезные проблемы программирования. Пакетная обработка больших объемов данных предъявляет особенно высокие требования к архитектуре системы и приложений. Архитектуры с сильными ввод, вывод производительность и вертикаль масштабируемость, в том числе современные мэйнфреймы, как правило, обеспечивают лучшую производительность партии, чем альтернативы.

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

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

А пакетное окно «период менее интенсивной онлайн-активности»,[9] когда компьютерная система может выполнять пакетные задания без вмешательства в интерактивные онлайн-системы или с ними.

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

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

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

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

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

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

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

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

В Мэйнфрейм IBM z / OS Операционная система или платформа, возможно, имеет наиболее усовершенствованный и развитый набор средств пакетной обработки благодаря своему происхождению, долгой истории и продолжающейся эволюции. Сегодня такие системы обычно поддерживают сотни или даже тысячи одновременных интерактивных и пакетных задач в рамках одного Операционная система изображение. Технологии, которые помогают одновременной пакетной и онлайн-обработке, включают: Язык управления заданиями (JCL), языки сценариев, такие как REXX, Подсистема ввода вакансий (JES2 и JES3 ), Диспетчер рабочей нагрузки (WLM), диспетчер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS), DB2 обмен данными, Параллельный сисплекс, уникальные оптимизации производительности, такие как HiperDispatch, Архитектура канала ввода / вывода, и несколько других.

Программы Unix cron, в, и партия (сегодня партия это вариант в) позволяют осуществлять сложное планирование работ. Windows имеет планировщик заданий. Наиболее высокопроизводительные вычисления кластеры используйте пакетную обработку для максимального использования кластера.[12]

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

Рекомендации

  1. ^ а б Корпорация IBM. "Что такое пакетная обработка?". Концепции zOS. Получено 10 октября, 2019.
  2. ^ «Прямая пара для IBM 7090». SoftwarePreservationGroup.org. IBSYS была операционной системой для 7090, которая произошла от SOS (SHARE Operating System).
  3. ^ «История операционных систем» (PDF). Вашингтонский университет. Получено 10 октября, 2019.
  4. ^ "Почему вы не УМЕРЕТЕ? IBM S / 360 и ее наследие в 50". Реестр. 7 апреля 2014 г.
  5. ^ "Справочное руководство по аппаратному обеспечению пользовательского терминала CDC" (PDF). BitSavers.
  6. ^ «Вычислительный центр: достижение соглашения с IBM System / 360 Model 67». Новости исследований. Университет Мичигана. 20 (Ноябрь / декабрь): 10. 1969.
  7. ^ «Пакетные приложения для платформы Java». Процесс сообщества Java. Получено 2015-08-03.
  8. ^ "JSR352 null". IBM.com. JSR 352, открытая стандартная спецификация для пакетной обработки Java. ... Используемые языки программирования со временем развивались в зависимости от того, что было доступно
  9. ^ «Мэйнфреймы, работающие в нерабочее время: пакетная обработка». Концепции мэйнфреймов. Корпорация IBM. Получено 20 июня, 2013.
  10. ^ Пакетная обработка: проектирование - сборка - запуск: прикладные методы и принципы. Орейли. 2009-02-24. ISBN  9780470257630.
  11. ^ «Традиционно пакетная обработка выполнялась в одночасье, когда обрабатывались миллионы заданий ... Сегодня пакетное окно постоянно сокращается из-за требований доступности 24/7».
  12. ^ «Учебник по высокопроизводительным вычислениям с контрольным списком и советами по оптимизации». 25 января 2018. многопользовательская, совместно используемая и интеллектуальная система пакетной обработки улучшает масштаб ..... Большинство HPC кластеры в Linux