HOME

TheInfoList



OR:

Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically be run at scheduled times as well as being run contingent on the availability of computer resources.


History

The term "batch processing" originates in the traditional classification of
methods of production Methods of production fall into three main categories: job (one-off production), batch (multiple items, one step at a time for all items), and flow. Job production Job production is used when a product is produced with the labor of one or few ...
as job production (one-off production),
batch production Batch production is a method of manufacturing in which products are made as specified groups or amounts, within a time frame. A batch can go through a series of steps in a large manufacturing process to make the final desired product. Batch produ ...
(production of a "batch" of multiple items at once, one stage at a time), and flow production (mass production, all stages in process at once).


Early history

Early computers were capable of running only one program at a time. Each user had sole control of the machine for a scheduled period of time. They would arrive at the computer with program and data, often on punched paper cards and magnetic or paper tape, and would load their program, run and debug it, and carry off their output when done. As computers became faster the setup and takedown time became a larger percentage of available computer time. Programs called ''monitors'', the forerunners of
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s, were developed which could process a series, or "batch", of programs, often from
magnetic tape Magnetic tape is a medium for magnetic storage made of a thin, magnetizable coating on a long, narrow strip of plastic film. It was developed in Germany in 1928, based on the earlier magnetic wire recording from Denmark. Devices that use magnetic ...
prepared offline. The monitor would be loaded into the computer and run the first job of the batch. At the end of the job it would regain control and load and run the next until the batch was complete. Often the output of the batch would be written to magnetic tape and printed or punched offline. Examples of monitors were IBM's ''Fortran Monitor System'', SOS (Share Operating System), and finally IBSYS for IBM's 709x systems in 1960.


Third-generation systems

capable of multiprogramming began to appear in the 1960s. Instead of running one batch job at a time, these systems can have multiple batch programs running at the same time in order to keep the system as busy as possible. One or more programs might be awaiting input, one actively running on the CPU, and others generating output. Instead of offline input and output, programs called spoolers read jobs from cards, disk, or remote terminals and place them in a
job queue In system software, a job queue ( batch queue, input queue), is a data structure maintained by job scheduler software containing jobs to run. Users submit their programs that they want executed, "jobs", to the queue for batch processing. The ...
to be run. In order to prevent deadlocks the
job scheduler A job scheduler is a computer application for controlling unattended background program execution of jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though traditional ''job ...
needs to know each job's resource requirements—memory, magnetic tapes, mountable disks, etc., so various scripting languages were developed to supply this information in a structured way. Probably the most well-known is IBM's ''
Job Control Language Job Control Language (JCL) is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch processing, batch job or start a subsystem. The purpose of JCL is to say which programs to run, using which fi ...
'' (JCL). Job schedulers select jobs to run according to a variety of criteria, including priority, memory size, etc.
Remote batch Remote job entry, or Remote Batch, is the procedure for sending requests for non-interactive data processing tasks ( jobs) to mainframe computers from remote workstations, and by extension the process of receiving the output from such jobs at a re ...
is a procedure for submitting batch jobs from remote terminals, often equipped with a punch card reader and a
line printer A line printer Printer (computing), prints one entire line of text before advancing to another line. Most early line printers were printer (computing)#Impact printers, impact printers. Line printers are mostly associated with unit record eq ...
. Sometimes
asymmetric multiprocessing An asymmetric multiprocessing (AMP or ASMP) system is a multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally. For example, a system might allow (either at the hardware or op ...
is used to spool batch input and output for one or more large computers using an attached smaller and less-expensive system, as in the IBM System/360 Attached Support Processor.


Later history

The first general purpose time sharing system,
Compatible Time-Sharing System The Compatible Time-Sharing System (CTSS) was the first general purpose time-sharing operating system. Compatible Time Sharing referred to time sharing which was compatible with batch processing; it could offer both time sharing and batch proce ...
(CTSS), was compatible with batch processing. This facilitated transitioning from batch processing to interactive computing. From the late 1960s onwards, interactive computing such as via text-based
computer terminal A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display ...
interfaces (as in
Unix shell A Unix shell is a Command-line_interface#Command-line_interpreter, command-line interpreter or shell (computing), shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command languag ...
s or read-eval-print loops), and later
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s became common. Non-interactive computation, both one-off jobs such as compilation, and processing of multiple items in batches, became retrospectively referred to as ''batch processing'', and the term ''batch job'' (in early use often "batch ''of'' jobs") became common. Early use is particularly found at the
University of Michigan The University of Michigan (U-M, U of M, or Michigan) is a public university, public research university in Ann Arbor, Michigan, United States. Founded in 1817, it is the oldest institution of higher education in the state. The University of Mi ...
, around the Michigan Terminal System (MTS). Although timesharing did exist, its use was not robust enough for corporate data processing; none of this was related to the earlier
unit record equipment Starting at the end of the nineteenth century, well before the advent of electronic computers, data processing was performed using Electromechanics, electromechanical machines collectively referred to as unit record equipment, electric accounting ...
, which was human-operated.


Ongoing

Non-interactive computation remains pervasive in computing, both for general data processing and for system "housekeeping" tasks (using
system software System software is software designed to provide a platform for other software. An example of system software is an operating system (OS) (like macOS, Linux, Android, and Microsoft Windows). Application software is software that allows users to d ...
). A high-level program (executing multiple programs, with some additional "glue" logic) is today most often called a ''script'', and written in
scripting language In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
s, particularly
shell script A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be command languages. Typical operations performed by shell scripts include file manipu ...
s for system tasks; in IBM PC DOS and
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few op ...
this is instead known as a
batch file A batch file is a Scripting language, script file in DOS, OS/2 and Microsoft Windows. It consists of a series of Command (computing), commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain a ...
. That includes
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
-based computers,
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
(whose foundation is the
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
Unix kernel), and even
smartphone A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
s. A running script, particularly one executed from an interactive login session, is often known as a job, but that term is used very ambiguously. "There is no direct counterpart to z/OS batch processing in PC or UNIX systems. Batch jobs are typically executed at a scheduled time or on an as-needed basis. Perhaps the closest comparison is with processes run by an at or
cron The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed t ...
command in UNIX, although the differences are significant."


Modern systems

Batch applications are still critical in most organizations in large part because many common business processes are amenable to batch processing. While online systems can also function when manual intervention is not desired, they are not typically optimized to perform high-volume, repetitive tasks. Therefore, even new systems usually contain one or more batch applications for updating information at the end of the day, generating reports, printing documents, and other non-interactive tasks that must complete reliably within certain business deadlines. Some applications are amenable to flow processing, namely those that only need data from a single input at once (not totals, for instance): start the next step for each input as it completes the previous step. In this case flow processing lowers latency for individual inputs, allowing them to be completed without waiting for the entire batch to finish. However, many applications require data from all records, notably computations such as totals. In this case the entire batch must be completed before one has a usable result: partial results are not usable. Modern batch applications make use of modern batch frameworks such as Jem The Bee, Spring Batch or implementations of JSR 352 written for
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and other frameworks for other programming languages, to provide the
fault tolerance Fault tolerance is the ability of a system to maintain proper operation despite failures or faults in one or more of its components. This capability is essential for high-availability, mission-critical, or even life-critical systems. Fault t ...
and
scalability Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system. In an economic context, a scalable business model implies that ...
required for high-volume processing. In order to ensure high-speed processing, batch applications are often integrated with
grid computing Grid computing is the use of widely distributed computer resources to reach a common goal. A computing grid can be thought of as a distributed system with non-interactive workloads that involve many files. Grid computing is distinguished fro ...
solutions to partition a batch job over a large number of processors, although there are significant programming challenges in doing so. High volume batch processing places particularly heavy demands on system and application architectures as well. Architectures that feature strong
input/output In computing, input/output (I/O, i/o, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs a ...
performance and vertical
scalability Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system. In an economic context, a scalable business model implies that ...
, including modern
mainframe computers A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
, tend to provide better batch performance than alternatives.
Scripting languages In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
became popular as they evolved along with batch processing.


Batch window

A ''batch window'' is "a period of less-intensive online activity", when the computer system is able to run batch jobs without interference from, or with, interactive online systems. A bank's ''end-of-day (EOD)'' jobs require the concept of ''cutover'', where transaction and data are cut off for a particular day's batch activity ("deposits after 3 PM will be processed the next day"). As requirements for online systems uptime expanded to support
globalization Globalization is the process of increasing interdependence and integration among the economies, markets, societies, and cultures of different countries worldwide. This is made possible by the reduction of barriers to international trade, th ...
, the
Internet The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
, and other business needs, the batch window shrank and increasing emphasis was placed on techniques that would require online data to be available for a maximum amount of time.


Batch size

The ''batch size'' refers to the number of work units to be processed within one batch operation. Some examples are: * The number of lines from a file to load into a database before committing the transaction. * The number of messages to dequeue from a queue. * The number of requests to send within one payload.


Common batch processing usage

* Efficient bulk database updates and automated
transaction processing In computer science, transaction processing is information processing that is divided into individual, indivisible operations called ''transactions''. Each transaction must succeed or fail as a complete unit; it can never be only partially c ...
, as contrasted to interactive
online transaction processing Online transaction processing (OLTP) is a type of database system used in transaction-oriented applications, such as many operational systems. "Online" refers to the fact that such systems are expected to respond to user requests and process them i ...
(OLTP) applications. The extract, transform, load (ETL) step in populating data warehouses is inherently a batch process in most implementations. * Performing bulk operations on
digital image A digital image is an image composed of picture elements, also known as pixels, each with '' finite'', '' discrete quantities'' of numeric representation for its intensity or gray level that is an output from its two-dimensional functions f ...
s such as resizing, conversion, watermarking, or otherwise editing a group of image files. * Converting computer files from one format to another. For example, a batch job may convert proprietary and legacy files to common standard formats for end-user queries and display. * Training
Machine Learning Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
models. For example, an
e-commerce E-commerce (electronic commerce) refers to commercial activities including the electronic buying or selling products and services which are conducted on online platforms or over the Internet. E-commerce draws on technologies such as mobile co ...
website might want to process customer transactions in a hourly batch to update the model that produces related product recommendations, in order to save computational resources.


Notable batch scheduling and execution environments

The IBM mainframe
z/OS z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest: ...
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
or platform has arguably the most highly refined and evolved set of batch processing facilities owing to its origins, long history, and continuing evolution. Today such systems commonly support hundreds or even thousands of concurrent online and batch tasks within a single
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
image. Technologies that aid concurrent batch and online processing include
Job Control Language Job Control Language (JCL) is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch processing, batch job or start a subsystem. The purpose of JCL is to say which programs to run, using which fi ...
(JCL), scripting languages such as
REXX Rexx (restructured extended executor) is a high-level programming language developed at IBM by Mike Cowlishaw. Both proprietary and open-source software, open source Rexx interpreter (computing), interpreters exist for a wide range of comput ...
, Job Entry Subsystem ( JES2 and JES3), Workload Manager (WLM), Automatic Restart Manager (ARM), Resource Recovery Services (RRS), IBM Db2 data sharing, Parallel Sysplex, unique performance optimizations such as HiperDispatch, I/O channel architecture, and several others. The Unix programs
cron The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed t ...
, at, and batch (today batch is a variant of at) allow for complex scheduling of jobs. Windows has a
job scheduler A job scheduler is a computer application for controlling unattended background program execution of jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though traditional ''job ...
. Most
high-performance computing High-performance computing (HPC) is the use of supercomputers and computer clusters to solve advanced computation problems. Overview HPC integrates systems administration (including network and security knowledge) and parallel programming into ...
clusters use batch processing to maximize cluster usage.


See also

* Background process *
Batch file A batch file is a Scripting language, script file in DOS, OS/2 and Microsoft Windows. It consists of a series of Command (computing), commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain a ...
* Batch renaming – to rename lots of files automatically without human intervention, in order to save time and effort * BatchPipes – for utility that increases batch performance * Processing modes * Production support – for batch job/schedule/stream support * High-throughput computing


Notes


References

{{Reflist Job scheduling