Process (computing)

In computing, a process is a running instance of a program, including all variables and other state. A multitasking operating system switches between processes to give the appearance of simultaneous execution, though in fact only one process can be executing at once per CPU core.

Roughly speaking, process is a task being run by a computer, often simultaneously with many other tasks. Many processes may exist simultaneously, each taking turns on a CPU.

Processes are often called tasks in embedded operating systems. The sense of 'process' is 'something that takes up time', as opposed to 'memory', which is 'something that takes up space'.

The above description applies to both processes managed by an operating system, and processes as defined by process calculi.

In the former case, the operating system keeps processes separated and allocates the resources they need so that they are less likely to interfere with each other and cause system failures. The operating system may also provide mechanisms for inter-process communication to enable processes to interact in safe and predictable ways.

In general, an operating system process consists of:

The last item, the processor state, is associated with each of the process's threads in operating systems that support threads.

At this level of programming, the registers are the lowest-level resource, and the program values must be loaded from memory into the registers, which are first re-set, and then loaded. These steps occur at the clock rate of the CPU and depend on the processor architecture.

If a task is suspended, then it is eligible for swapping to disk, similarly to residence in virtual memory, where blocks of memory values are really on disk and not in physical memory. The block sizes depend on the operating system.

See also

See also: Process (computing), Central processing unit, Child process, Computer file, Computer multitasking, Computer security, Computing, Context, Embedded system, Inter-process communication