Job (computing)
   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, ...
, 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 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 process A child process in computing is a process created by another process (the parent process). This technique pertains to multitasking operating systems, and is sometimes called a subprocess or traditionally a subtask. There are two major procedure ...
es; the process corresponding to the job being the
parent process In computing, a parent process is a process that has created one or more child processes. Unix-like systems In Unix-like operating systems, every process except (the swapper) is created when another process executes the fork() system call. T ...
) which perform the tasks or steps that comprise the work of the job; or with a
process group In a POSIX-conformant operating system, a process group denotes a collection of one or more processes. Among other things, a process group is used to control the distribution of a signal; when a signal is directed to a process group, the signal is ...
; 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 termina ...
. Jobs can be started interactively, such as from a
command line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
, or scheduled for non-interactive execution by a
job scheduler A job scheduler is a computer application for controlling unattended background program execution of job (computing), jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though tr ...
, 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 ...
"jobbe of work", and is used as such in manufacturing, in the phrase "
job production Job production, sometimes called jobbing or one-off production, involves producing custom work, such as a one-off product for a specific customer or a small batch of work in quantities usually less than those of mass-market products. Job producti ...
", meaning "custom production", where it is contrasted with
batch production Batch production is a method of manufacturing where the products are made as specified groups or amounts, within a time frame. A batch can go through a series of steps in a large manufacturing process to make the final desired product. Batch prod ...
(many items at once, one step at a time) and
flow production Flow may refer to: Science and technology * Fluid flow, the motion of a gas or liquid * Flow (geomorphology), a type of mass wasting or slope movement in geomorphology * Flow (mathematics), a group action of the real numbers on a set * Flow (psyc ...
(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 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 card A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
s). 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 decis ...
, predating its use in computing, in such uses as
job shop scheduling Job-shop scheduling, the job-shop problem (JSP) or job-shop scheduling problem (JSSP) is an optimization problem in computer science and operations research. It is a variant of optimal job scheduling. In a general job scheduling problem, we are give ...
(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 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 term continued in occasional use, such as for the
IBM 709 The IBM 709 was a computer system, initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific co ...
(1958), and in wider use by early 1960s, such as for the
IBM 7090 The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 se ...
, 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, ...
of
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
(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 *
Job scheduler A job scheduler is a computer application for controlling unattended background program execution of job (computing), jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though tr ...
* Remote job entry


Further reading

*


References

{{Reflist Computing terminology Job scheduling