Job (software)
   HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, 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 In a non-interactive computer system, particularly IBM mainframes, a job stream, jobstream, or simply job is the sequence of job control language statements (JCL) and data (called ''instream data'') that comprise a single "unit of work for an o ...
). As a unit of execution, a job may be concretely identified with a single
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management *Business process, activities that produce a specific se ...
, 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 In Unix and Unix-like operating systems, job control refers to control of jobs by a shell, especially interactively, where a "job" is a shell's representation for a process group. Basic job control features are the suspending, resuming, or termi ...
. 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 Middle English (abbreviated to ME) is a form of the English language that was spoken after the Norman conquest of 1066, until the late 15th century. The English language underwent distinct variations and developments following the Old English p ...
"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 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 ...
" is found, and used either for a one-off job or for a round of "
batch processing 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 ...
" (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 Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve deci ...
, predating its use in computing, in such uses as job shop scheduling (see, for example 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 resource In computing, a system resource, or simple resource, is any physical or virtual component of limited availability within a computer system. All connected devices and internal system components are resources. Virtual system resources include fi ...
s are analogous to machines in a
job shop Job shops are typically small manufacturing systems that handle job production, that is, custom/bespoke or semi-custom/bespoke manufacturing processes such as small to medium-size customer orders or batch jobs. Job shops typically move on to diffe ...
, and the goal of scheduling is to minimize the total time from beginning to end (
makespan In operations research, the makespan of a project is the length of time that elapses from the start of work to the end. This type of multi-mode resource constrained project scheduling problem (MRCPSP) seeks to create the shortest logical project sc ...
). The term "job" for computing work dates to the mid 1950s, as in this use from 1955: ' 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 Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. More specifically, the purpose of JCL is to say which programs to run, us ...
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

*
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 s ...
* Job scheduler * Remote job entry


Further reading

*


References

{{Reflist Computing terminology Job scheduling