Also found in: Dictionary, Thesaurus, Wikipedia.
concurrent processing[kən′kər·ənt ′präs‚əs·iŋ]
The simultaneous execution of several interrelated computer programs. A sequential computer program consists of a series of instructions to be executed one after another. A concurrent program consists of several sequential programs to be executed in parallel. Each of the concurrently executing sequential programs is called a process. Process execution, although concurrent, is usually not independent. Processes may affect each other's behavior through shared data, shared resources, communication, and synchronization.
Concurrent programs can be executed in several ways. Multiprogramming systems have one processing unit and one memory bank. Concurrent process execution is simulated by randomly interleaving instructions of the sequential programs. All processes have access to a common pool of data. In contrast, multiprocessing systems have several processing units and one memory bank. Processes are executed in parallel on the separate processing units while sharing common data. In distributed systems, or computer networks, each process is executed on its own processor with its own memory bank. Interaction between processes occurs by transmission of data from one process to another along a communication channel. See Distributed systems (computers), Multiprocessing
One of the first uses of concurrent processing was in operating systems. If the computer is to support a multiuser environment, the operating system must employ concurrent programming techniques to allow several users to access the computer simultaneously. The operating system should also permit several input/output devices to be used simultaneously, again utilizing concurrent processing. See Multiaccess computer, Operating system
Concurrent programming is also used when several computers are joined in a network. An airline reservation system is one example of concurrent processing on a distributed network of computers. See Local-area networks
A simple example of a task that can be performed more efficiently by concurrent processing is a program to calculate the sum of a large list of numbers. Several processes can simultaneously compute the sum of a subset of the list, after which these sums are added to produce the final total.
Concurrent programs can be created explicitly or implicitly. Explicit concurrent programs are written in a programming language designed for specifying processes to be executed concurrently. Implicit concurrent programs are created by a compiler that automatically translates programs written in a sequential programming language into programs with several components to be executed in parallel. See Programming languages