Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Batch processing
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== The term "batch processing" originates in the traditional classification of [[methods of production]] as [[job production]] (one-off production), [[batch production]] (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 [[punch card|punched paper card]]s 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]]s, were developed which could process a series, or "batch", of programs, often from [[magnetic-tape data storage|magnetic tape]] 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 [[IBM 7090/94 IBSYS|IBSYS]] for IBM's [[IBM 700/7000 series|709x]] systems in 1960.<ref>{{cite web |title=The Direct Couple for the IBM 7090 |website=SoftwarePreservationGroup.org |url=http://www.softwarepreservation.org/projects/os/dc.html |quote=IBSYS was an operating system for the 7090 that evolved from SOS (SHARE Operating System)}}</ref><ref>{{cite web |title=History of Operating Systems |url=https://courses.cs.washington.edu/courses/cse451/16wi/readings/lecture_readings/LCM_OperatingSystemsTimeline_Color_acd_newsize.pdf |archive-url=https://ghostarchive.org/archive/20221009/https://courses.cs.washington.edu/courses/cse451/16wi/readings/lecture_readings/LCM_OperatingSystemsTimeline_Color_acd_newsize.pdf |archive-date=2022-10-09}}</ref> ===Third-generation systems=== {{clarify|reason=Identify what became ubiquitous in the 3rd generation but originated in the 2nd.|text=[[Third-generation computer]]s|date=March 2022}}<ref>{{cite news |newspaper=[[The Register]] |url=https://www.theregister.co.uk/2014/04/07/ibm_s_360_50_anniversary |title=Why won't you DIE? IBM's S/360 and its legacy at 50 |date=April 7, 2014}}</ref> 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 [[spooler]]s read jobs from cards, disk, or remote terminals and place them in a [[batch queue|job queue]] to be run. In order to prevent [[deadlock (computer science)|deadlock]]s the [[job scheduler]] needs to know each job's resource requirements—memory, magnetic tapes, mountable [[disk storage|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]]'' (JCL). Job schedulers select jobs to run according to a variety of criteria, including priority, memory size, etc. [[Remote job entry|Remote batch]] is a procedure for submitting batch jobs from remote terminals, often equipped with a [[punch card reader]] and a [[line printer]].<ref>{{cite web |website=BitSavers |url=http://bitsavers.org/pdf/cdc/terminal/82128000_200_User_Terminal_Hardware_Reference_Jul68.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://bitsavers.org/pdf/cdc/terminal/82128000_200_User_Terminal_Hardware_Reference_Jul68.pdf |archive-date=2022-10-09 |url-status=live |title=CDC User Terminal Hardware Reference manual}}</ref> Sometimes [[asymmetric multiprocessing]] 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]].{{efn|Use of satellite computers for this purpose began earlier, e.g., in IBM [[IBM 7090#7094/7044 Direct Coupled System|7094/7044 Direct Coupled System]].}} ===Later history=== [[File:CDC NOS batch file.jpg|right|thumb|[[Control Data Corporation|CDC]] [[NOS (operating system)|NOS]] batch file to get the file STARTRK and output it to the card punch]] The first general purpose time sharing system, [[Compatible Time-Sharing System]] (CTSS), was compatible with batch processing. This facilitated transitioning from batch processing to [[interactive computing]].<ref>{{cite web |url=https://multicians.org/thvv/compatible-time-sharing-system.pdf |archive-url=https://ghostarchive.org/archive/20221009/https://multicians.org/thvv/compatible-time-sharing-system.pdf |archive-date=2022-10-09 |url-status=live |title=Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview |editor-last1=Walden |editor-first1=David |editor-last2=Van Vleck |editor-first2=Tom |editor2-link=Tom Van Vleck |date=2011 |publisher=IEEE Computer Society |access-date=February 20, 2022 |quote=CTSS was called “compatible” in the sense that [[History of IBM mainframe operating systems#FORTRAN Monitor System|FMS]] could be run in B-core as a “back-ground” user, nearly as efficiently as on a bare machine, and also because programs compiled for FMS batch could be loaded and executed in the “foreground” time-sharing environment (with some limitations). ... This feature allowed the Computation Center to make the transition from batch to timesharing gradually}}</ref> From the late 1960s onwards, interactive computing such as via text-based [[computer terminal]] interfaces (as in [[Unix shell]]s or [[read-eval-print loop]]s), and later [[graphical user interface]]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]], around the [[Michigan Terminal System]] (MTS). <ref>{{cite journal |journal=Research News |publisher=University of Michigan |title=The Computing Center: Coming to Terms with the IBM System/360 Model 67 |volume=20 |year=1969 |issue=Nov/Dec |page=[https://books.google.com/books?id=Qs9VAAAAMAAJ&pg=RA1-PA122&dq=%22batch+job%22 10] }}</ref> 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]], 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]]). A high-level program (executing multiple programs, with some additional "glue" logic) is today most often called a ''script'', and written in [[scripting language]]s, particularly [[shell script]]s for system tasks; in [[IBM PC DOS]] and [[MS-DOS]] this is instead known as a [[batch file]]. That includes [[Unix|UNIX]]-based computers, [[Microsoft Windows]], [[macOS]] (whose foundation is the [[Berkeley Software Distribution|BSD]] Unix kernel), and even [[smartphone]]s. A running script, particularly one executed from an interactive [[login session]], is often known as a [[job (Unix)|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 (command)|at]] or [[cron]] command in UNIX, although the differences are significant."<ref name="whatis">{{cite web|last1=IBM Corporation|title=What is batch processing?|url=https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatisbatch.htm|access-date=Oct 10, 2019|website=zOS Concepts}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)