Process ( computing ) - wikipedia 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. A computer program is a passive collection of instructions, while 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 means more than one process is 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 fast response 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. Contents 1 Representation 2 Multitasking and process management 2.1 Process states 3 Inter-process communication 4 History 5 See also 6 Notes 7 References 8 Further reading 9 External links Representation 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. 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 Main article : Process management ( computing ) 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 ). 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 ''. 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 Main article : Process state 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. 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. Inter-process communication Main article : 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. History See also : History of operating systems 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 Computing portal Child process Exit Fork Light - weight process Orphan process Parent process Process group Wait Zombie process Notes Jump up ^ 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. Jump up ^ 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 ). References ^ Jump up to : 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. Jump up ^ Vahalia, Uresh ( 1996 ). `` Chapter 2. The Process and the Kernel ''. UNIX Internals : The New Frontiers. Prentice - Hall Inc. ISBN 0 - 13 - 101908 - 2. Jump up ^ 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 Remzi H. Arpaci - Dusseau and Andrea C. Arpaci - Dusseau ( 2014 ). `` Operating Systems : Three Easy Pieces ''. Arpaci - Dusseau Books. Relevant chapters : Abstraction : The Process The Process API Gary D. Knott ( 1974 ) A proposal for certain process management and intercommunication primitives ACM SIGOPS Operating Systems Review. Volume 8, Issue 4 ( October 1974 ). pp. 7 -- 44 External links Wikiversity has learning resources about Processes and Threads at Operating Systems / Process and Thread Online Resources For Process Information Computer Process Information Database and Forum Parallel computing General Distributed computing Parallel computing Massively parallel Cloud computing High - performance computing Multiprocessing Manycore processor GPGPU Computer network Systolic array Levels Bit Instruction Thread Task Data Memory Loop Pipeline Multithreading Temporal Simultaneous ( SMT ) Speculative ( SpMT ) Preemptive Cooperative Clustered Multi-Thread ( CMT ) Hardware scout Theory PRAM model Analysis of parallel algorithms Amdahl 's law Gustafson 's law Cost efficiency Karp -- Flatt metric Slowdown Speedup Elements Process Thread Fiber Instruction window Coordination Multiprocessing Memory coherency Cache coherency Cache invalidation Barrier Synchronization Application checkpointing Programming Stream processing Dataflow programming Models Implicit parallelism Explicit parallelism Concurrency Non-blocking algorithm Hardware Flynn 's taxonomy SISD SIMD SIMT MISD MIMD Dataflow architecture Pipelined processor Superscalar processor Vector processor Multiprocessor symmetric asymmetric Memory shared distributed distributed shared UMA NUMA COMA Massively parallel computer Computer cluster Grid computer APIs Ateji PX Boost. Thread Chapel Charm++ Cilk Coarray Fortran CUDA Dryad C++ AMP Global Arrays MPI OpenMP OpenCL OpenHMPP OpenACC TPL PLINQ PVM POSIX Threads RaftLib UPC TBB ZPL Problems Deadlock Livelock Deterministic algorithm Embarrassingly parallel Parallel slowdown Race condition Software lockout Scalability Starvation Category : parallel computing Media related to Parallel computing at Wikimedia Commons Operating systems General Advocacy Comparison Forensic engineering History Hobbyist development List Timeline Usage share Kernel Architectures Exokernel Hybrid Microkernel Monolithic Rump kernel Unikernel Components Device driver Loadable kernel module Microkernel User space Process management Concepts Context switch Interrupt IPC Process Process control block Real - time Thread Time - sharing Scheduling algorithms Computer multitasking Fixed - priority preemptive Multilevel feedback queue Preemptive Round - robin Shortest job next Memory management and resource protection Bus error General protection fault Memory protection Paging Protection ring Segmentation fault Virtual memory Storage access and file systems Boot loader Defragmentation Device file File attribute Inode Journal Partition Virtual file system Virtual tape library List AmigaOS Android BeOS BSD Chrome OS CP / M DOS GNU Haiku illumos IncludeOS iOS Linux Macintosh Classic Mac OS macOS MINIX MorphOS MUSIC / SP Nemesis NOS OpenVMS ORVYL OS / 2 OSv Pick QNX ReactOS RISC OS RSTS / E RSX - 11 RT - 11 Solaris TOPS - 10 / TOPS - 20 TPF Unix Visi On VM / CMS VS / 9 Windows Xinu z / OS Miscellaneous concepts API Computer network HAL Live CD Live USB OS shell CLI GUI TUI VUI PXE GND : 4235427 - 4 Retrieved from `` https://en.wikipedia.org/w/index.php?title=Process_(computing)&oldid=806663522 '' Categories : Process ( computing ) Concurrent computing Operating system technology Hidden categories : Wikipedia articles with GND identifiers Talk Contents About Wikipedia Български Català Čeština Deutsch Ελληνικά Español Euskara فارسی Français 한국어 हिन्दी Hrvatski Bahasa Indonesia Interlingua Italiano עברית Lietuvių Nederlands 日本 語 Norsk Norsk nynorsk Polski Português Русский Simple English Slovenčina Slovenščina Српски / srpski Suomi Svenska தமிழ் Türkçe Українська اردو Tiếng Việt 中文 Edit links This page was last edited on 23 October 2017, at 12 : 32. Text is available under the Creative Commons Attribution - ShareAlike License ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia ® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. About Wikipedia

Question: which term means that an operating system can execute various processes simultaneously
Answer: Multitasking