Wikipedia

Job (computing)

(redirected from Job (software))

In computing, a job is a unit of work or unit of execution (that performs said work). A component of a job (as a unit of work) is called a task or a step (if sequential, as in a job stream). As a unit of execution, a job may be concretely identified with a single process, which may in turn have subprocesses (child processes; the process corresponding to the job being the parent process) which perform the tasks or steps that comprise the work of the job; or with a process group; or with an abstract reference to a process or process group, as in Unix job control.

Jobs can be started interactively, such as from a command line, or scheduled for non-interactive execution by a job scheduler, and then controlled via automatic or manual job control. Jobs that have finite input can complete, successfully or unsuccessfully, or fail to complete and eventually be terminated. By contrast, online processing such as by servers has open-ended input (they service requests as long as they run), and thus never complete, only stopping when terminated (sometimes called "canceled"): a server's job is never done.

History

The term "job" has a traditional meaning as "piece of work", from Middle English "jobbe of work", and is used as such in manufacturing, in the phrase "job production", meaning "custom production", where it is contrasted with batch production (many items at once, one step at a time) and flow production (many items at once, all steps at the same time, by item). Note that these distinctions have become blurred in computing, where the oxymoronic term "batch job" is found, and used either for a one-off job or for a round of "batch processing" (same processing step applied to many items at once, originally punch cards).

In this sense of "job", a programmable computer performs "jobs", as each one can be different from the last. The term "job" is also common in operations research, predating its use in computing, in such uses as job shop scheduling (see, for example Baker & Dzielinski (1960) and references thereof from throughout the 1950s, including several "System Research Department Reports" from IBM Research Center). This analogy is applied to computer systems, where the system resources are analogous to machines in a job shop, and the goal of scheduling is to minimize the total time from beginning to end (makespan). The term "job" for computing work dates to the mid 1950s, as in this use from 1955:

"The program for an individual job is then written, calling up these subroutines by name wherever required, thus avoiding rewriting them for individual problems".[1]

The term continued in occasional use, such as for the IBM 709 (1958), and in wider use by early 1960s, such as for the IBM 7090, with widespread use from the Job Control Language of OS/360 (announced 1964). A standard early use of "job" is for compiling a program from source code, as this is a one-off task. The compiled program can then be run on batches of data.

See also

Further reading

  • Baker; Dzielinski (1960). "Simulation of a Simplified Job Shop". doi:10.1287/mnsc.6.3.311.

References

  1. ^ Armour Research Foundation, ed. (1955). (Unknown title). Computer Applications. 2. Macmillan. p. 68.
This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.