Batch Processing

 

バッチ処理

バッチ処理とは、コンピュータで1つの流れのプログラム群(ジョブ)を順次に実行すること。
あらかじめ定めた処理を一度に行うことを示すコンピュータ用語。
反対語は対話処理・インタラクティブ処理またはリアルタイム処理。

「バッチ (batch)」という言葉は、プログラマがプログラミングをする際、紙にコードを書き、紙テープか80カラム仕様のパンチカードにパンチしていった時代の言葉。カードまたは紙テープはシステムオペレーターに渡され、オペレーターはタスクのスケジューリングをし、コンピュータにカードまたは紙テープを投入していった。スケジューリングされたタスクは直ちにシステムに入れられたのではなく、一緒にまとめて投入されたので *1 、これらのタスクの集まりを「バッチジョブ」と呼ぶようになった。

バッチジョブは一度設定されると人間の手を煩わせることなく動作する。そのため入力データもスクリプトやコマンド行パラメータを通して予め用意される。この点でユーザーの入力を必要とする対話型プログラムとは対極にある。

バッチジョブは相互対話式の思想に基づく処理の仕組みではないが、IBM の CICS のようなトランザクション処理システムもテクニカルな視点から見ればバッチジョブとして動いている。もっとも、その部分はユーザーから隠れて見えない部分である。

バッチ処理は歴史的にはメインフレームと同義だった。このクラスのコンピュータは非常に高価であるため、上述したような理由でバッチ処理が行われた。また、初期のコンピュータでは端末からの対話的利用はほとんど行われなかった。

MS-DOS の バッチファイル の 由来 は ここ

NECの情報管理ソフトの中にDataBooster(データブースター)という製品がある。これは通常夜間行われる日次月次のバッチ処理を高速化しようというもので、数十GB単位の大量のメモリーと専用の処理アルゴリズムによって、時間のかかる中間ファイルの生成を行わないところに特徴がある。

システム利用者が少ない・あるいはサービス提供時間外でシステム負荷が低い夜間に実行されるバッチ処理は「夜間バッチ」と呼ばれる。何らかの事情で夜間バッチが事前の想定時刻までに処理を完了できなかった場合は「突き抜け」と呼ばれる場合がある。

利点

バッチ処理には以下のような利点がある。

多くのユーザーがコンピュータのリソースを共有できる。
処理をコンピュータのリソースがあまり忙しくない時間帯(多くは夜間、休日)にシフトできる。
人間がついていなくてもコンピュータのリソースが暇にならないように最大限有効活用できる。
高価なコンピュータをフルに活用することで費用対効果の効率向上に寄与する。




*1:  バッチとは、複数の似ているものを1つのグループとして生産、処理すること、または一緒に集めて1つのユニットとして扱うこと。en:Batch processingより