Пакетная обработка заданий¶
Пакетная обработка заданий (англ. batch processing) — это способ выполнения компьютерных программ, при котором задачи (задания) собираются в группу (пакет) и запускаются на выполнение последовательно или параллельно без непосредственного участия пользователя в процессе обработки. В отличие от интерактивного режима, где пользователь взаимодействует с системой в реальном времени, пакетная обработка предполагает, что задания готовятся заранее, передаются вычислительной системе, а результаты выдаются после завершения обработки всего пакета. Этот метод является одним из старейших в вычислительной технике и до сих пор широко применяется в различных областях, от научных расчётов до корпоративных информационных систем.
¶История
¶Ранние вычислительные системы
В 1940–1950-х годах, когда компьютеры были дорогими и медленными, единственным способом их использования была пакетная обработка. Программисты подготавливали перфокарты или перфоленты с кодом и данными, затем передавали их оператору ЭВМ. Оператор загружал задания в машину, запускал их и после завершения выдавал результат (например, распечатку на бумаге). Пользователь не имел доступа к компьютеру во время счёта — это и есть классический пакетный режим.
¶Развитие в 1960–1970-х годах
С появлением операционных систем, таких как OS/360 от IBM, пакетная обработка стала более структурированной. Системы управления заданиями (Job Control Language, JCL) позволяли описывать последовательность шагов, требования к ресурсам и условия завершения. В этот период пакетная обработка доминировала в крупных вычислительных центрах, обслуживающих научные и коммерческие организации.
¶Переход к интерактивным системам
В 1970–1980-х годах с развитием многозадачности и появлением персональных компьютеров (ПК) интерактивный режим стал более распространённым. Однако пакетная обработка не исчезла, а заняла свою нишу: она оказалась незаменима для задач, не требующих вмешательства человека, — например, для расчёта заработной платы, обработки банковских транзакций или научных симуляций.
¶Принципы работы
¶Основные этапы
- Подготовка заданий — пользователь или система формирует пакет, состоящий из одного или нескольких заданий. Каждое задание включает код, данные и инструкции по выполнению.
- Постановка в очередь — задания помещаются в очередь (batch queue), где ожидают освобождения ресурсов (процессора, памяти, ввода-вывода).
- Выполнение — планировщик (scheduler) запускает задания в соответствии с приоритетами, доступными ресурсами и правилами очереди.
- Вывод результатов — после завершения обработки результаты сохраняются в файл, базу данных или выводятся на печать. Пользователь получает уведомление (например, по электронной почте) или может самостоятельно проверить статус.
¶Управление заданиями
Для управления пакетной обработкой используются специальные системы — планировщики заданий (job schedulers). Примеры: IBM Tivoli Workload Scheduler, CA Workload Automation, Open Source PBS (Portable Batch System), Slurm, а также встроенные средства операционных систем (например, cron в Unix-подобных системах, Task Scheduler в Windows).
¶Классификация
¶По способу выполнения
- Последовательная обработка — задания выполняются одно за другим, без параллелизма. Простой и предсказуемый метод, но может быть медленным при большом количестве заданий.
- Параллельная обработка — несколько заданий или их частей выполняются одновременно на нескольких процессорах или ядрах. Используется в высокопроизводительных вычислениях (HPC) и кластерных системах.
- Пакетная обработка с разделением времени — задания выполняются в фоновом режиме, а ресурсы распределяются между несколькими пользователями или процессами.
¶По области применения
- Научные расчёты — симуляции, моделирование, обработка данных с экспериментов (например, в CERN или на суперкомпьютерах).
- Бизнес-приложения — обработка транзакций, генерация отчётов, расчёт зарплаты, обновление баз данных.
- Системное администрирование — резервное копирование, обновление программного обеспечения, очистка логов.
- Обработка больших данных — в системах Hadoop, Spark и других фреймворках для распределённой обработки данных.
¶Преимущества и недостатки
¶Преимущества
- Автоматизация — не требует участия человека в процессе выполнения, что позволяет запускать задания в нерабочее время (например, ночью).
- Эффективность использования ресурсов — система может оптимально распределять нагрузку, выполняя несколько заданий параллельно.
- Предсказуемость — время выполнения и результаты можно оценить заранее, что важно для планирования.
- Масштабируемость — пакетная обработка легко масштабируется на кластеры и распределённые системы.
¶Недостатки
- Задержка — пользователь не получает результат мгновенно, так как задания выполняются в очереди. Время ожидания может быть значительным.
- Сложность отладки — ошибки в задании могут быть обнаружены только после завершения обработки, что затрудняет диагностику.
- Требования к подготовке — необходимо заранее подготовить все данные и инструкции, что может быть трудоёмко.
- Отсутствие интерактивности — невозможно изменить задание в процессе выполнения.
¶Применение в современной вычислительной технике
¶Высокопроизводительные вычисления (HPC)
В суперкомпьютерных центрах, таких как Московский государственный университет имени М. В. Ломоносова (суперкомпьютер «Ломоносов»), пакетная обработка является основным режимом работы. Пользователи отправляют задания на расчёты (например, моделирование погоды, молекулярная динамика) через планировщик, который распределяет их по тысячам ядер.
¶Корпоративные информационные системы
В крупных российских компаниях, таких как Сбербанк, «Газпром» или «Росатом», пакетная обработка используется для ежедневной обработки транзакций, расчёта зарплаты, формирования отчётности. Например, в банковской системе ночью запускаются пакеты для расчёта процентов, начисления комиссий и сверки балансов.
¶Обработка больших данных
Фреймворки, такие как Apache Hadoop, Apache Spark и Apache Flink, реализуют пакетную обработку данных в распределённой среде. В России эти технологии применяются в «Яндексе», «ВКонтакте» (принадлежит компании VK) и других IT-компаниях для анализа логов, построения рекомендательных систем и обработки пользовательских данных.
¶Системное администрирование
В операционных системах Linux и Windows пакетная обработка реализована через cron (в Linux) и Task Scheduler (в Windows). Администраторы используют эти средства для автоматизации рутинных задач: резервного копирования, обновления антивирусных баз, очистки временных файлов.
¶Примеры систем пакетной обработки
¶IBM Job Control Language (JCL)
JCL — язык управления заданиями, используемый в мейнфреймах IBM. Позволяет описывать последовательность шагов, требования к ресурсам и обработку ошибок. До сих пор применяется в крупных корпорациях, в том числе в России (например, в Центральном банке).
¶PBS (Portable Batch System)
PBS — один из первых планировщиков для кластеров, разработанный в NASA. В России используется в некоторых суперкомпьютерных центрах, например, в Институте вычислительной математики РАН.
¶Slurm
Slurm (Simple Linux Utility for Resource Management) — популярный планировщик для HPC-кластеров. Применяется в МГУ, МФТИ и других научных центрах России.
¶Apache Hadoop
Hadoop — фреймворк для распределённой обработки больших данных, использующий модель MapReduce. В России используется в «Яндексе», «Сбербанке» и других компаниях для анализа данных.
¶Интересные факты
- Пакетная обработка была основным режимом работы на заре вычислительной техники, когда компьютеры занимали целые залы и требовали постоянного присутствия операторов.
- В 1960-х годах в СССР для пакетной обработки использовались ЭВМ серии «Урал», «Минск» и «БЭСМ». Программы вводились с перфолент, а результаты выводились на печать.
- С развитием облачных технологий пакетная обработка стала доступна как сервис (Batch as a Service). Например, Amazon Web Services предлагает AWS Batch, а Google Cloud — Cloud Batch.
- В России существует собственное решение для пакетной обработки — система «Квант» (разработка компании «РТСофт»), используемая в атомной энергетике и космической отрасли.
- Пакетная обработка считается одним из ключевых элементов концепции «автоматизации бизнес-процессов» (BPM) и широко применяется в ERP-системах, таких как SAP ERP и 1С:Предприятие.
¶Критика и ограничения
Несмотря на широкое распространение, пакетная обработка подвергается критике за недостаточную гибкость. В условиях, когда требуется быстрая реакция на изменения данных (например, в онлайн-торговле или финансовых операциях), пакетный режим может быть слишком медленным. В таких случаях предпочтение отдаётся потоковой обработке (stream processing), которая обрабатывает данные в реальном времени. Однако для многих задач, не требующих мгновенного ответа, пакетная обработка остаётся эффективным и экономичным решением.
¶Источники
- Таненбаум Э., Бос Х. «Современные операционные системы». — СПб.: Питер, 2015.
- Столлингс У. «Операционные системы: внутренняя структура и принципы проектирования». — М.: Вильямс, 2008.
- Документация IBM z/OS: Job Control Language Reference. — IBM Corporation, 2020.
- PBS Professional 19.2 User’s Guide. — Altair Engineering, 2019.
- Slurm Workload Manager Documentation. — SchedMD, 2023.
- «Большие данные: принципы и практика». — М.: ДМК Пресс, 2018.
- Материалы конференции «Суперкомпьютерные дни в России» (МГУ, 2021–2023).
- Официальная документация 1С:Предприятие 8.3. — Фирма «1С», 2022.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

