A model of distributed computations
Ajay D. Kshemkalyani, Mukesh Kumar Singhal · Distributed Computing · 2008
A distributed system consists of a set of processors that are connected by a communication network. The communication network provides the facility of information exchange among processors. The communication delay is finite but unpredictable. The processors do not share a common global memory and communicate solely by passing messages over the communication network. There is no physical global clock in the system to which processes have instantaneous access. The communication medium may deliver messages out of order, messages may be lost, garbled, or duplicated due to timeout and retransmission, processors may fail, and communication links may go down. The system can be modeled as a directed graph in which vertices represent the processes and edges represent unidirectional communication channels. A distributed application runs as a collection of processes on a distributed system. This chapter presents a model of a distributed computation and introduces several terms, concepts, and notations that will be used in the subsequent chapters. A distributed program A distributed program is composed of a set of n asynchronous processes p 1 , p 2 , …, p i , …, p n that communicate by message passing over the communication network. Without loss of generality, we assume that each process is running on a different processor. The processes do not share a global memory and communicate solely by passing messages. Let C ij denote the channel from process p i to process p j and let m ij denote a message sent by p i to p j . The communication delay is finite and unpredictable.