z/OS concepts
Previous topic | Next topic | Contents | Glossary | Contact z/OS | PDF

What is batch processing?

z/OS concepts

Jobs that can run without end user interaction, or can be scheduled to run as resources permit, are called batch jobs. Batch processing is for those frequently used programs that can be executed with minimal human interaction.

A program that reads a large file and generates a report, for example, is considered to be a batch job.

The term batch job originated in the days when punched cards contained the directions for a computer to follow when running one or more programs. Multiple card decks representing multiple jobs would often be stacked on top of one another in the hopper of a card reader, and be run in batches.

As a historical note, Herman Hollerith (1860-1929) created the punched card in 1890 while he worked as a statistician for the United States Census Bureau. To help tabulate results for the 1890 U.S. census, Hollerith designed a paper card with 80 columns and 12 rows; he made it equal to the size of a U.S. dollar bill of that time. To represent a series of data values, he punched holes into the card at the appropriate row/column intersections. Hollerith also designed an electromechanical device to "read" the holes in the card, and the resulting electrical signal was sorted and tabulated by a computing device. (Mr. Hollerith later founded the Computing Tabulating Recording Company, which eventually became IBM®.)

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 command in UNIX, although the differences are significant. You might also consider batch processing as being somewhat analogous to the printer queue as it is typically managed on an Intel-based operating system. Users submit jobs to be printed, and the print jobs wait to be processed until each is selected by priority from a queue of work called a print spool.

To enable the processing of a batch job, z/OS professionals use job control language (JCL) to tell z/OS which programs are to be executed and which files will be needed by the executing programs. JCL allows the user to describe certain attributes of a batch job to z/OS, such as:
  • Who you are (the submitter of the batch job)
  • What program to run
  • Where input and output are located
  • When a job is to run

After the user submits the job to the system, there is normally no further human interaction with the job until it is complete.

Copyright IBM Corporation 1990, 2010