Пакетная обработка
Компьютеризированная пакетная обработка — это метод автоматического запуска программ, называемых заданиями, в пакетном режиме. Хотя пользователям необходимо отправлять задания, для обработки пакета никаких других действий со стороны пользователя не требуется. Пакеты могут запускаться автоматически в запланированное время, а также в зависимости от доступности компьютерных ресурсов.
История
[ редактировать ]Термин «партийная обработка» происходит от традиционной классификации методов производства на поштучное производство (разовое производство), серийное производство (производство «партии» нескольких изделий одновременно, по одному этапу за раз) и поточное производство. (массовое производство, все этапы в процессе одновременно).
Ранняя история
[ редактировать ]Ранние компьютеры могли запускать одновременно только одну программу. Каждый пользователь имел единоличный контроль над машиной в течение запланированного периода времени. Они приходили к компьютеру с программой и данными, часто на перфокартах , магнитной или бумажной ленте, загружали свою программу, запускали и отлаживали ее, а по завершении уносили вывод.
По мере того, как компьютеры становились быстрее, время установки и отключения стало увеличиваться в процентах от доступного компьютерного времени. Были разработаны программы, называемые мониторами , предшественники операционных систем , которые могли обрабатывать серию или «пакет» программ, часто с магнитной ленты, подготовленной в автономном режиме. Монитор загружался в компьютер и запускал первое задание пакета. В конце задания он восстанавливал контроль, загружал и запускал следующее, пока пакет не был завершен. Часто выходные данные пакета записываются на магнитную ленту и распечатываются или перфорируются в автономном режиме. Примерами мониторов были 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] и все большее внимание уделялось методам, которые требуют доступности онлайн-данных в течение максимального периода времени.
Размер партии
[ редактировать ]Размер пакета относится к количеству рабочих единиц, которые должны быть обработаны в рамках одной пакетной операции. Некоторые примеры:
- Количество строк из файла, которые необходимо загрузить в базу данных перед фиксацией транзакции.
- Количество сообщений, которые необходимо исключить из очереди.
- Количество запросов для отправки в пределах одной полезной нагрузки.
Обычное использование пакетной обработки
[ редактировать ]- Эффективное массовое обновление базы данных и автоматическая обработка транзакций в отличие от интерактивной онлайн-обработки транзакций приложений (OLTP). Этап «извлечение, преобразование, загрузка » (ETL) при заполнении хранилищ данных по своей сути является пакетным процессом в большинстве реализаций.
- Выполнение массовых операций с цифровыми изображениями, таких как изменение размера, преобразование, нанесение водяных знаков или иное редактирование группы файлов изображений.
- Преобразование компьютерных файлов из одного формата в другой. Например, пакетное задание может конвертировать проприетарные и устаревшие файлы в распространенные стандартные форматы для запросов и отображения конечных пользователей.
- Обучение машинного обучения моделей . Например, веб-сайт электронной коммерции может захотеть обрабатывать транзакции клиентов ежечасно, чтобы обновить модель, которая выдает соответствующие рекомендации по продуктам , и сэкономить вычислительные ресурсы . [14]
Известные среды пакетного планирования и выполнения
[ редактировать ]возможно для мэйнфреймов IBM, или платформа z/OS Операционная система , имеет наиболее усовершенствованный и развитый набор средств пакетной обработки благодаря своему происхождению, долгой истории и продолжающемуся развитию. Сегодня такие системы обычно поддерживают сотни или даже тысячи одновременных онлайн- и пакетных задач в одном образе операционной системы . Технологии, которые помогают одновременной пакетной и онлайн-обработке, включают язык управления заданиями (JCL), языки сценариев, такие как REXX , подсистему ввода заданий ( JES2 и JES3 ), диспетчер рабочей нагрузки (WLM), диспетчер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS). , IBM Db2 совместное использование данных , Parallel Sysplex , уникальные оптимизации производительности, такие как HiperDispatch , архитектура каналов ввода-вывода и некоторые другие.
Программы Unix cron
, at
, и batch
(сегодня batch
это вариант at
) позволяют сложное планирование заданий. В Windows есть планировщик заданий . Большинство высокопроизводительных вычислительных кластеров используют пакетную обработку для максимального использования кластера. [15]
См. также
[ редактировать ]- Фоновый процесс
- Пакетный файл
- Пакетное переименование — автоматическое переименование большого количества файлов без вмешательства человека для экономии времени и усилий.
- BatchPipes — для утилиты, повышающей производительность пакетной обработки.
- Режимы обработки
- Поддержка производства — для поддержки пакетных заданий/расписания/потоков
- Высокопроизводительные вычисления
Примечания
[ редактировать ]- ^ Использование спутниковых компьютеров для этой цели началось раньше, например, в IBM 7094/7044 Direct Connection System .
Ссылки
[ редактировать ]- ^ «Прямая пара для IBM 7090» . SoftwarePreservationGroup.org .
IBSYS была операционной системой для 7090, которая произошла от SOS (операционная система SHARE).
- ^ «История операционных систем» (PDF) . Университет Вашингтона . Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 10 октября 2019 г.
- ^ «Почему вы не умрете? IBM S/360 и ее наследие в 50 лет» . Регистр . 7 апреля 2014 г.
- ^ «Справочное руководство по оборудованию пользовательского терминала CDC» (PDF) . БитСейверы . Архивировано (PDF) из оригинала 9 октября 2022 г.
- ^ Уолден, Дэвид; Ван Флек, Том , ред. (2011). «Совместимая система разделения времени (1961–1973): обзор, посвященный пятидесятой годовщине» (PDF) . Компьютерное общество IEEE. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 20 февраля 2022 г.
CTSS назывался «совместимым» в том смысле, что FMS можно было запускать в B-ядре от имени «фонового» пользователя, почти так же эффективно, как на голой машине, а также потому, что программы, скомпилированные для пакетной обработки FMS, можно было загружать и выполнять в среда разделения времени «переднего плана» (с некоторыми ограничениями). ...Эта функция позволила Вычислительному центру осуществить переход от пакетной обработки к разделению времени постепенно.
- ^ «Вычислительный центр: переход к IBM System/360 Model 67». Новости исследований . 20 (ноябрь/декабрь). Мичиганский университет: 10 . 1969.
- ^ Корпорация IBM. «Что такое пакетная обработка?» . Концепции zOS . Проверено 10 октября 2019 г.
- ^ Минелла, Майкл (13 октября 2011 г.). Про весеннюю партию . Торопиться. ISBN 978-1-4302-3453-1 .
- ^ «Пакетные приложения для платформы Java» . Процесс сообщества Java . Проверено 3 августа 2015 г.
- ^ «JSR352 ноль» . IBM.com. Архивировано из оригинала 20 октября 2018 г. Проверено 19 октября 2018 г.
JSR 352, открытая стандартная спецификация для пакетной обработки Java. ... Используемые языки программирования со временем развивались в зависимости от того, что было доступно.
- ^ «Мэйнфреймы, работающие в нерабочее время: пакетная обработка» . Концепции мейнфреймов . Корпорация IBM . Проверено 20 июня 2013 г.
- ^ Пакетная обработка: проектирование – сборка – запуск: прикладные практики и принципы . Орейли. 24 февраля 2009 г. ISBN 9780470257630 .
- ^ «Традиционно пакетная обработка выполнялась в ночное время, при этом обрабатывались миллионы заданий… Сегодня пакетное окно постоянно сокращается из-за требований к доступности 24 часа в сутки, 7 дней в неделю».
- ^ Гуткович, Бен (10 февраля 2023 г.). «Почему машинное обучение в реальном времени станет модным словом 2023 года» . Суперссылка . Проверено 11 апреля 2023 г.
- ^ «Учебное пособие по высокопроизводительным вычислениям с контрольным списком и советами по оптимизации» . 25 января 2018 г.
Многопользовательская, общая и интеллектуальная система пакетной обработки повышает масштабируемость..... Большинство кластеров HPC работают на Linux.