Process (computing)

A list of processes as displayed by htop

In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently.[1][2]

While a computer program is a passive collection of instructions, a process is the actual execution of those instructions. Several processes may be associated with the same program; for example, opening up several instances of the same program often results in more than one process being executed.

Multitasking is a method to allow multiple processes to share processors (CPUs) and other system resources. Each CPU (core) executes a single task at a time. However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish. Depending on the operating system implementation, switches could be performed when tasks perform input/output operations, when a task indicates that it can be switched, or on hardware interrupts.

A common form of multitasking is time-sharing. Time-sharing is a method to allow high responsiveness for interactive user applications. In time-sharing systems, context switches are performed rapidly, which makes it seem like multiple processes are being executed simultaneously on the same processor. This seeming execution of multiple processes simultaneously is called concurrency.

For security and reliability, most modern operating systems prevent direct communication between independent processes, providing strictly mediated and controlled inter-process communication functionality.


In general, a computer system process consists of (or is said to own) the following resources:

  • An image of the executable machine code associated with a program.
  • Memory (typically some region of virtual memory); which includes the executable code, process-specific data (input and output), a call stack (to keep track of active subroutines and/or other events), and a heap to hold intermediate computation data generated during run time.
  • Operating system descriptors of resources that are allocated to the process, such as file descriptors (Unix terminology) or handles (Windows), and data sources and sinks.
  • Security attributes, such as the process owner and the process' set of permissions (allowable operations).
  • Processor state (context), such as the content of registers and physical memory addressing. The state is typically stored in computer registers when the process is executing, and in memory otherwise.[1]

The operating system holds most of this information about active processes in data structures called process control blocks. Any subset of the resources, typically at least the processor state, may be associated with each of the process' threads in operating systems that support threads or child (daughter) processes.

The operating system keeps its processes separate and allocates the resources they need, so that they are less likely to interfere with each other and cause system failures (e.g., deadlock or thrashing). The operating system may also provide mechanisms for inter-process communication to enable processes to interact in safe and predictable ways.

Multitasking and process management

A multitasking operating system may just switch between processes to give the appearance of many processes executing simultaneously (that is, in parallel), though in fact only one process can be executing at any one time on a single CPU (unless the CPU has multiple cores, then multithreading or other similar technologies can be used).[a]

It is usual to associate a single process with a main program, and child processes with any spin-off, parallel processes, which behave like asynchronous subroutines. A process is said to own resources, of which an image of its program (in memory) is one such resource. However, in multiprocessing systems many processes may run off of, or share, the same reentrant program at the same location in memory, but each process is said to own its own image of the program.

Processes are often called "tasks" in embedded operating systems. The sense of "process" (or task) is "something that takes up time", as opposed to "memory", which is "something that takes up space".[b]

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

If a process requests something for which it must wait, it will be blocked. When the process is in the blocked state, it is eligible for swapping to disk, but this is transparent in a virtual memory system, where regions of a process's memory may be really on disk and not in main memory at any time. Note that even unused portions of active processes/tasks (executing programs) are eligible for swapping to disk. All parts of an executing program and its data do not have to be in physical memory for the associated process to be active.

Process states

The various process states, displayed in a state diagram, with arrows indicating possible transitions between states.

An operating system kernel that allows multitasking needs processes to have certain states. Names for these states are not standardised, but they have similar functionality.[1]

  • First, the process is "created" by being loaded from a secondary storage device (hard disk drive, CD-ROM, etc.) into main memory. After that the process scheduler assigns it the "waiting" state.
  • While the process is "waiting", it waits for the scheduler to do a so-called context switch and load the process into the processor. The process state then becomes "running", and the processor executes the process instructions.
  • If a process needs to wait for a resource (wait for user input or file to open, for example), it is assigned the "blocked" state. The process state is changed back to "waiting" when the process no longer needs to wait (in a blocked state).
  • Once the process finishes execution, or is terminated by the operating system, it is no longer needed. The process is removed instantly or is moved to the "terminated" state. When removed, it just waits to be removed from main memory.[1][3]

Inter-process communication

When processes communicate with each other it is called "Inter-process communication" (IPC). Processes frequently need to communicate, for instance in a shell pipeline, the output of the first process need to pass to the second one, and so on to the other process. It is preferred in a well-structured way not using interrupts.

It is even possible for the two processes to be running on different machines. The operating system (OS) may differ from one process to the other, therefore some mediator(s) (called protocols) are needed.


By the early 1960s, computer control software had evolved from monitor control software, for example IBSYS, to executive control software. Over time, computers got faster while computer time was still neither cheap nor fully utilized; such an environment made multiprogramming possible and necessary. Multiprogramming means that several programs run concurrently. At first, more than one program ran on a single processor, as a result of underlying uniprocessor computer architecture, and they shared scarce and limited hardware resources; consequently, the concurrency was of a serial nature. On later systems with multiple processors, multiple programs may run concurrently in parallel.

Programs consist of sequences of instructions for processors. A single processor can run only one instruction at a time: it is impossible to run more programs at the same time. A program might need some resource, such as an input device, which has a large delay, or a program might start some slow operation, such as sending output to a printer. This would lead to processor being "idle" (unused). To keep the processor busy at all times, the execution of such a program is halted and the operating system switches the processor to run another program. To the user, it will appear that the programs run at the same time (hence the term "parallel").

Shortly thereafter, the notion of a "program" was expanded to the notion of an "executing program and its context". The concept of a process was born, which also became necessary with the invention of re-entrant code. Threads came somewhat later. However, with the advent of concepts such as time-sharing, computer networks, and multiple-CPU shared memory computers, the old "multiprogramming" gave way to true multitasking, multiprocessing and, later, multithreading.

See also


  1. ^ Some modern CPUs combine two or more independent processors in a multi-core configuration and can execute several processes simultaneously. Another technique called simultaneous multithreading (used in Intel's Hyper-threading technology) can simulate simultaneous execution of multiple processes or threads.
  2. ^ Tasks and processes refer essentially to the same entity. And, although they have somewhat different terminological histories, they have come to be used as synonyms. Today, the term process is generally preferred over task, except when referring to "multitasking", since the alternative term, "multiprocessing", is too easy to confuse with multiprocessor (which is a computer with two or more CPUs).


  1. ^ a b c d Silberschatz, Abraham; Cagne, Greg; Galvin, Peter Baer (2004). "Chapter 4. Processes". Operating system concepts with Java (Sixth ed.). John Wiley & Sons. ISBN 0-471-48905-0. 
  2. ^ Vahalia, Uresh (1996). "Chapter 2. The Process and the Kernel". UNIX Internals: The New Frontiers. Prentice-Hall Inc. ISBN 0-13-101908-2. 
  3. ^ Stallings, William (2005). Operating Systems: internals and design principles (5th ed.). Prentice Hall. ISBN 0-13-127837-1.  (particularly chapter 3, section 3.2, "process states", including figure 3.9 "process state transition with suspend states")

Further reading

External links



English Wikipedia has articles on:

Etymology 1

Borrowed from Old French procés (journey), from Latin prōcessus, from prōcēdō.



process (plural processes)

  1. A series of events which produce a result, especially as contrasted to product.
    • 2011 September 27, Alistair Magowan, “Bayern Munich 2-0 Man City”, in BBC Sport:
      But they came up against an impressive force in Bayern, who extended their run to 10 wins on the trot, having scored 28 goals in the process and conceding none.
    • 2013 June 22, “T time”, in The Economist, volume 407, number 8841, page 68:
      Yet in “Through a Latte, Darkly”, a new study of how Starbucks has largely avoided paying tax in Britain, Edward Kleinbard […] shows that current tax rules make it easy for all sorts of firms to generate what he calls “stateless income”: […]. In Starbucks’s case, the firm has in effect turned the process of making an expensive cup of coffee into intellectual property.
    This product of last month's quality standards committee is quite good, even though the process was flawed.
  2. (manufacturing) A set of procedures used to produce a product, most commonly in the food and chemical industries.
    • 1960, Mack Tyner, Process Engineering Calculations: Material and Energy Balances – Ordinarily a process plant will use a steam boiler to supply its process heat requirements and to drive a steam-turbine generator.
    • 1987, J. R. Richards, Principles of control system design in Modelling and control of fermentation processes – The words plant or process infer generally any dynamic system, be it primarily mechanical, electrical, or chemical process in nature, and may extend also to include social or economic systems.
  3. A path of succession of states through which a system passes.
    • 2012 January 1, Robert L. Dorit, “Rereading Darwin”, in American Scientist[1], volume 100, number 1, page 23:
      We live our lives in three dimensions for our threescore and ten allotted years. Yet every branch of contemporary science, from statistics to cosmology, alludes to processes that operate on scales outside of human experience: the millisecond and the nanometer, the eon and the light-year.
  4. (anatomy) Successive physiological responses to keep or restore health.
  5. (law) Documents issued by a court in the course of a lawsuit or action at law, such as a summons, mandate, or writ.
  6. (biology) An outgrowth of tissue or cell.
  7. (anatomy) A structure that arises above a surface.
  8. (computing) A task or program that is or was executing.
Derived terms
Related terms
Related terms
The translations below need to be checked and inserted above into the appropriate translation tables, removing any numbers. Numbers do not necessarily match those in definitions. See instructions at Wiktionary:Entry layout#Translations.


process (third-person singular simple present processes, present participle processing, simple past and past participle processed)

  1. (transitive) to perform a particular process on a thing
  2. (transitive) to retrieve, store, classify, manipulate, transmit etc. (data, signals, etc.), especially using computer techniques.
    We have processed the data using our proven techniques, and have come to the following conclusions.
  3. (transitive) to think about a piece of information, or a concept, in order to assimilate it, and perhaps accept it in a modified state.
Derived terms
The translations below need to be checked and inserted above into the appropriate translation tables, removing any numbers. Numbers do not necessarily match those in definitions. See instructions at Wiktionary:Entry layout#Translations.

Etymology 2

Back-formation from procession.



process (third-person singular simple present processes, present participle processing, simple past and past participle processed)

  1. (chiefly Britain) To walk in a procession.





process c

  1. process


Declension of process 
Singular Plural
Indefinite Definite Indefinite Definite
Nominative process processen processer processerna
Genitive process processens processers processernas
Definitions by
Sorry is offline for a short while. Please check back after 5 minutes.