ArticleslgStudy

computer science

Job control (computing)

Job control (computing) is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Job control (computing) rather than just read about it. In short: In computing, job control refers to the automated control of job execution – ensuring that each job has access to adequate resources to perform correctly, that competition for limited resources does not cause a 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 Unix-like systems…

Key takeaways

  • Job control (computing) belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Job control (computing) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Job control (computing) from memory before moving on to harder problems.

Reference excerpt

In computing, job control refers to the automated control of job execution – ensuring that each job has access to adequate resources to perform correctly, that competition for limited resources does not cause a 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 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. Job control is configured by programmers 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 Job control has developed from the early days of computers when operators were responsible for setting up, monitoring and controlling jobs, to modern systems which take on the bulk of the work. Early computer developers realized that computers spent most of their time idle because the software had to wait while a relatively slow peripheral completed an operation such as reading or writing data. Buffering provided a partial solution, but eventually an output buffer would occupy all available memory or an input buffer would be empty, and the system would then wait for a relatively slow device to complete its task. A more general solution is multitasking. A computer executes multiple programs, concurrently by loading a program into a process that can be paused when the processor time can better be used for a process that is not waiting. The process's context is cached in memory and another process's context is used to resume execution of that process. The software responsible for context swapping is called the scheduler works with peripheral device drivers to suspend execution of the active process if the device is unable to complete an operation immediately, and the scheduler places the process on its queue of inactive jobs. When the peripheral completes the operation, the process available to be resumed by the scheduler. Similar suspension and resumption applies to any operation that may involve waiting, including asynchronous inter-process communication. 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 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

Batch Early computer resident monitors and operating systems 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.

BANG and other non-IBM JCLs Non-IBM mainframe batch systems had some form of job control language, whether called that or not; their syntax was completely different from IBM versions, but they usually provided similar capabilities. Interactive systems include "command languages"—command files (such as PCDOS ".bat" files) can be run non-interactively, but these usually do not provide as robust an environment for running unattended jobs as JCL. On some computer systems the job control language and the interactive command language may be different. For example, TSO on z/OS systems uses CLIST or Rexx as command languages along with JCL for batch work. On other systems these may be the same. The Non-IBM JCL of what at one time was known as the BUNCH (Burroughs, Univac/Unisys, NCR, Control Data, Honeywell), except for Unisys, are part of the BANG that has been quieted.

Interactive As time sharing systems developed, interactive job control emerged. An end-user in a time sharing system could submit a job interactively from his remote terminal (remote job entry), communicate with the operators to warn them of special requirements, and query the system as to its progress. He could assign a priority to the job, and terminate (kill) it if desired. He could also, naturally, run a job in the foreground, where he would be able to communicate directly with the executing program. During interactive execution he could interrupt the job and let it continue in the background or kill it. This development of interactive computing in a multitasking environment led to the development of the modern shell.

File systems and device independence The ability to not have to specify part or all of the information about a file or device to be used by a given program is called device independence.

Real-time computing

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Job control (computing)

Start with the simplest possible case. Write down what Job control (computing) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Job control (computing) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Job control (computing) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Job control (computing)

In research
Job control (computing) appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Job control (computing) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Job control (computing) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computing terminology, so understanding it makes those chapters shorter.
In everyday life
Look for Job control (computing) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Job control (computing) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Job control (computing) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Job control (computing) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Job control (computing) in simple terms?

In computing, job control refers to the automated control of job execution – ensuring that each job has access to adequate resources to perform correctly, that competition for limited resources does not cause a deadlock, resolving such situations where they do occur, and terminating jobs that, for…

Why does Job control (computing) matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Job control (computing)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Job control (computing).

Tags

  • Computing terminology

Keep exploring