FACTOID # 30: If Alaska were its own country, it would be the 26th largest in total area, slightly larger than Iran.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Process (computing)

In computing, a process is an instance of a computer program that is being executed. While a program itself is just a passive collection of instructions, a process is something which actually executes those instructions. Several processes can be associated with the same program - each would execute independently. Modern computer systems allow multiple processes to be loaded into memory at the same time and, through time-sharing (or multitasking), give an appearance that they are being executed at the same time even if there is just one processor. Image File history File links Broom_icon. ... A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ... To meet Wikipedias quality standards, this article may require cleanup. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ...

Contents

Overview

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 and/or real memory), which contains the executable code and process-specific data, including a call stack (to keep track of active subroutines), and a heap holding 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).
  • Security attributes, such as the process owner and the process' set of permissions.
  • Processor state (context), such as the content of registers, physical memory addressing, etc. 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 (PCB). Machine code or machine language is a system of instructions and data directly understandable by a computers central processing unit. ... Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it is contiguous. ... In computer science, a call stack is a special stack which stores information about the active subroutines of a computer program. ... In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. ... In computer science, dynamic memory allocation is the allocation of memory storage for use in a computer program during the runtime of that program. ... A computer file is a collection of information that is stored in a computer system and can be identified by its full path name. ... This article describes how security can be achieved through design and engineering. ... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ... ConTeXt is a document preparation system based on the TeX typesetting system. ... In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to commonly used values—typically, the values being in the midst of a calculation at a given point in time. ... A Process Control Block (PCB, also called Task Control Block or Task Struct) is a data structure in the operating system kernel containing the information needed to manage a particular process. ...


Any subset of resources, but typically at least the processor state, may be associated with each of the process' threads in operating systems that support threads or 'daughter' processes. A thread in computer science is short for a thread of execution. ...


The operating system keeps its processes separated 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. It has been suggested that Circular wait be merged into this article or section. ... In computer science, thrash is the poor performance of a virtual memory (or paging) system, when the same pages are being loaded repeatedly due to a lack of main memory. ... Inter-Process Communication (IPC) is a set of techniques for the exchange of data between two or more threads in one or more processes. ...

Image File history File links Wiki_letter_w. ...

Threads

In modern operating systems, each process can have several threads of execution (or threads for short). Multiple threads share the same program code, operating system resources (such as memory and file access) and operating system permissions (for file access as the process they belong to). A process that has only one thread is referred to as a single-threaded process, while a process with multiple threads is referred to as a multi-threaded process. Multi-threaded processes have the advantage that they can perform several tasks concurrently without the extra overhead needed to create a new process and handle synchronised communication between these processes. For example a word processor could perform a spell check as the user types, without freezing the application - one thread could handle user input, while another runs the spell checking utility.[1] A thread in computer science is short for a thread of execution. ... A word processor (also more formally known as a document preparation system) is a computer application used for the production (including composition, editing, formatting, and possibly printing) of any sort of viewable or printed material. ...


Process states

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

Processes go through various process states which determine how the process is handled by the operating system kernel. The specific implementations of these states vary in different operating systems, and the names of these states are not standard, but the general high-level functionality is the same.[1] In a multitasking computer system, processes may occupy a variety of states. ... Image File history File links Process_states. ... Image File history File links Process_states. ... State diagrams are used to graphically represent finite state machines. ... In a multitasking computer system, processes may occupy a variety of states. ... In computer science, the kernel is the fundamental part of an operating system. ...


When a process is created, it needs to wait for the process scheduler (of the operating system) to set its status to "waiting" and load it into main memory from secondary storage device (such as a hard disk or a CD-ROM). Once the process has been assigned to a processor by a short-term scheduler, a context switch is performed (loading the process into the processor) and the process state is set to "running" - where the processor executes its instructions. If a process needs to wait for a resource (such as waiting for user input, or waiting for a file to become available), it is moved into the "blocked" state until it no longer needs to wait - then it is moved back into the "waiting" state. Once the process finishes execution, or is terminated by the operating system, it is moved to the "terminated" state where it waits to be removed from main memory.[1][2] Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. ... Primary storage is a category of computer storage, often called main memory. ... In computer storage, secondary storage, or external memory, is computer memory that is not directly accessible to the central processing unit of a computer, requiring the use of computers input/output channels. ... Typical hard drives of the mid-1990s. ... The CD-ROM (an abbreviation for Compact Disc Read-Only Memory (ROM)) is a non-volatile optical data storage medium using the same physical format as audio compact discs, readable by a computer with a CD-ROM drive. ... Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. ... A context switch is the computing process of storing and restoring the state (context) of a CPU such that multiple processes can share a single CPU resource. ...


Process management in multitasking operating systems

A multitasking operating system may just switch between processes to give the appearance of many processes executing concurrently or simultaneously, though in fact only one process can be executing at any one time on a single-core CPU (unless using multi-threading or other similar technology).[3] In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ... Wikiquote has a collection of quotations related to: Edsger Dijkstra The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems which consist of computations that execute overlapped in time, and which may permit the sharing of common resources between those... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ...


It is usual to associate a single process with a main program, and 'daughter' ('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. (Note, however, that 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.) Asynchrony is the state of not being synchronized. ... A computer program or routine is described as reentrant if it is designed in such a way that a single copy of the programs instructions in memory can be shared by multiple users or separate processes. ...


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'. (Historically, the terms 'task' and 'process' were used interchangeably, but the term 'task' seems to be dropping from the computer lexicon.) A router, an example of an embedded system. ...


The above description applies to both processes managed by an operating system, and processes as defined by process calculi. The process calculi (or process algebras) are a diverse family of related approaches to formally modelling concurrent systems. ...


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 blocks of memory values 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. In a multitasking computer system, processes may occupy a variety of states. ... Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it is contiguous. ... Primary storage is a category of computer storage, often called main memory. ...


Inter-process communication

Main article: Inter-process communication

Processes can communicate with each other via Inter-process communication (IPC). This is possible for both processes running on the same machine and on different machines. Inter-Process Communication (IPC) is a set of techniques for the exchange of data between two or more threads in one or more processes. ...

Image File history File links Wiki_letter_w. ...

History

See also: History of operating systems

By the early 60s computer control software had evolved from Monitor control software, e.g., IBSYS, to Executive control software, making it possible to do multiprogramming. Multiprogramming is a rudimentary form of multiprocessing in which several programs are run "at the same time" (i.e., concurrently) on a single uniprocessor. That is, several programs are allowed to share the CPU- a scarce resource. Since there was only one processor, there was no true simultaneous execution of different programs. Instead, the later computer 'monitor-type' control software (known by then also as 'Executive' systems), and early "operating systems," typically allowed execution of part of one program until it was halted by some missing resource (e.g., input), or until some slow operation (e.g., output) had completed. At that point, a second (or nth) program was started or restarted. To the user it appeared that all programs were executing "at the same time" (hence the term, concurrent). The history of computer operating systems recapitulates to a degree, the recent history of computing. ... IBSYS was the tape based operating system that IBM supplied with its IBM 7090 and IBM 7094 computers. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ... Wikiquote has a collection of quotations related to: Edsger Dijkstra The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems which consist of computations that execute overlapped in time, and which may permit the sharing of common resources between those...


Shortly thereafter, the notion of a 'program' was expanded to the notion of an 'executing program and its context,' i.e., the concept of a process was born. Threads came somewhat later. However, with the advent of time-sharing; computer networks; multiple-CPU, shared memory computers; etc., the old "multiprogramming" gave way to true multitasking, multiprocessing and, later, multithreading. A thread in computer science is short for a thread of execution. ... Alternate uses: see Timesharing Time-sharing is an approach to interactive computing in which a single computer is used to provide apparently simultaneous interactive general-purpose computing to multiple users by sharing processor time. ... A computer network is a system for communication among two or more computers. ... In computer hardware, shared memory refers to a (typically) large block of random access memory that can be accessed by several different central processing units (CPUs) in a multiple-processor computer system. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... Many programming languages, operating systems, and other software development environments support what are called threads of execution. ...


See also

A child process is a computer process created by another process (the parent process). ... An exit, when applied to computing, is when a process terminates execution. ... A fork, when applied to computing is when a process creates a copy of itself, which then acts as a child of the original process, now called the parent. More generally, a fork in a multithreading environment means that a thread of execution is duplicated. ... A orphan process is a computer process whose Parent process has finished or terminated. ... A parent process is a computer process that has created one or more child processes. ... In a multitasking computer system, processes may occupy a variety of states. ... A task is an execution path through address space. In other words, a set of program instructions that is loaded in memory. ... A thread in computer science is short for a thread of execution. ... In modern computer operating systems, a process (or task) may wait on another process to complete its execution. ... On Unix operating systems, a zombie process or defunct process is a process that has completed execution but still has an entry in the process table, allowing the process that started it to read its exit status. ...

References and notes

  1. ^ a b c d SILBERSCHATZ, Abraham; CAGNE, Greg, GALVIN, Peter Baer (2004). "Chapter 4", Operating system concepts with Java, Sixth Edition, John Wiley & Sons, Inc.. ISBN 0-471-48905-0. 
  2. ^ Stallings, William (2005). Operating Systems: internals and design principles (5th edition). 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"
  3. ^ Some modern CPUs combine two or more independent processors and can execute several processes simultaneously - see Multi-core for more information. Another technique called simultaneous multithreading (used in Intel's Hyper-threading technology) can simulate simultaneous execution of multiple processes or threads.

  Results from FactBites:
 
Process (computing) - Wikipedia, the free encyclopedia (788 words)
In computing, a process is a running instance of a program, including all variables and other states.
It is usual to associate a single process with a main program, and 'daughter' processes with any spin-off, parallel processes, which behave like asynchronous subroutines.
However, if the process attempts to access code or data on disk, then it will be suspended while that content is moved into physical memory through a process known as paging.
Process (general) - Wikipedia, the free encyclopedia (335 words)
Identification of a process is a subjective task, because whole Universe demostrates one continuous universal process.
A process may be identified by the changes it creates in the properties of one or more objects under its influence.
A process may be categorized as singular, recurrent, or periodic.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m