Distributed System
Distributed System
Distributed computing also refers to the use of distributed systems to solve computational
problems. In distributed computing, a problem is divided into many tasks, each of which
is solved by one computer.[2]
Introduction
• There are several autonomous computational entities, each of which has its own
local memory.[6]
• The entities communicate with each other by message passing.[7]
A distributed system may have a common goal, such as solving a large computational
problem.[8] Alternatively, each computer may have its own user with individual needs,
and the purpose of the distributed system is to coordinate the use of shared resources or
provide communication services to the users.[9]
The figure on the right illustrates the difference between distributed and parallel systems.
Figure (a) is a schematic view of a typical distributed system; as usual, the system is
represented as a graph in which each node (vertex) is a computer and each edge (line
between two nodes) is a communication link. Figure (b) shows the same distributed
system in more detail: each computer has its own local memory, and information can be
exchanged only by passing messages from one node to another by using the available
communication links. Figure (c) shows a parallel system in which each processor has a
direct access to a shared memory.
The situation is further complicated by the traditional uses of the terms parallel and
distributed algorithm that do not quite match the above definitions of parallel and
distributed systems; see the section Theoretical foundations below for more detailed
discussion. Nevertheless, as a rule of thumb, high-performance parallel computation in a
shared-memory multiprocessor uses parallel algorithms while the coordination of a large-
scale distributed system uses distributed algorithms.