Job control (computing): Difference between revisions

Content deleted Content added
{{anchor}}Batch processing: Remove wordy, junky info
 
(One intermediate revision by the same user not shown)
Line 5:
{{More citations needed|date=August 2017}}
In [[computing]], '''job control''' refers to the automated control of [[Job (computing)|job]] execution; ensuring that each job has access to adequate resources to perform correctly, that competition for limited resources does not cause a [[Deadlock (computer science)|deadlock]], resolving such situations where they do occur, and terminating jobs that, for any reason, are not performing as expected. Even with sophisticated automation, most systems, such as [[Job control (Unix)|Unix-like systems]], permit manual operations such as interrupting, pausing and resuming jobs and to execute them in the foreground (interactively) instead of the usual background (batch) mode for fully automated execution.
 
Job control, a.k.a. [[batch processing]] mostly proceeds without human intervention.<ref>{{cite web
|url=http://publib.boulder.ibm.com/infocenter/zos/basics/index.jsp?topic=/com.ibm.zos.zmainframe/zconc_batchproc.htm
|title=Mainframe working after hours: Batch processing}}</ref> Job control is configured by [[programmer]]s who decide details including:
* When to run a job
* Under which conditions to skip a step
* Which files and/or devices to use for input/output
* Whether a file is to be retained or deleted
* The maximum amount of storage that can be used
 
== History ==
Line 15 ⟶ 24:
However, this scheduling has drawbacks. A process that seldom waits (i.e. does not use a peripheral) would hog the processor until it completed or was interrupted. Other processes would then be starved of processor resources and might become slow. This can be resolved via [[Preemption (computing)|preemptive]] multitasking, a.k.a. time slicing, in which each process is swapping out after it has had the processor for a period of time. Further, a process can be given a priority that allows it to be given more access to the process relative to lower priority processes.
 
==Language==
=={{anchor}}Batch processing==
Job control, a.k.a. [[batch processing]] mostly proceeds without human intervention.<ref>{{cite web
|url=http://publib.boulder.ibm.com/infocenter/zos/basics/index.jsp?topic=/com.ibm.zos.zmainframe/zconc_batchproc.htm
|title=Mainframe working after hours: Batch processing}}</ref> Job control is configured by [[programmer]]s who decide details including:
* When to run a job
* Which files and/or devices to use for input/output
* Whether a file is to be retained or deleted
* The maximum amount of storage that can be used
* Under which conditions to skip a step
 
==Job control languages==
===Batch===
Early computer [[resident monitor]]s and [[operating system]]s were relatively primitive and were not capable of sophisticated resource allocation. Typically such allocation decisions were made by the computer operator or the user who submitted a job. [[Batch processing]] was common, and interactive computer systems rare and expensive. Job control languages developed as primitive instructions, typically punched on cards at the head of a deck containing input data, requesting resources such as memory allocation, serial numbers or names of magnetic tape spools to be made available during execution, or assignment of filenames or devices to device numbers referenced by the job. A typical example of this kind of language, still in use on mainframes, is [[IBM]]'s [[Job Control Language]] (also known as JCL). Though the format of early JCLs was intended for [[punched card]] use, the format survived the transition to storage in computer files on disk.