Академический Документы
Профессиональный Документы
Культура Документы
CUP 2008
1/1
A Distributed Program
A distributed program is composed of a set of n asynchronous processes, p1 ,
p2 , ..., pi , ..., pn .
The processes do not share a global memory and communicate solely by
passing messages.
The processes do not share a global clock that is instantaneously accessible
to these processes.
Process execution and message transfer are asynchronous.
Without loss of generality, we assume that each process is running on a
different processor.
Let Cij denote the channel from process pi to process pj and let mij denote a
message sent by pi to pj .
The message transmission delay is finite and unpredictable.
CUP 2008
2/1
CUP 2008
3/1
CUP 2008
4/1
The send and the receive events signify the flow of information between
processes and establish causal dependency from the sender process to the
receiver process.
A relation msg that captures the causal dependency due to message
exchange, is defined as follows. For every message m that is exchanged
between two processes, we have
send(m) msg rec(m).
Relation msg defines causal dependencies between the pairs of
corresponding send and receive events.
CUP 2008
5/1
CUP 2008
6/1
e14
e13
e12
e15
e22
e21
e23
e62
e42
e31
3
e52
e33
e32
e34
time
CUP 2008
7/1
or
y
y
x
x
eix msg ejy
ei , ej H, ei ej
or
CUP 2008
8/1
CUP 2008
9/1
CUP 2008
10 / 1
Concurrent events
For any two events ei and ej , if ei 6 ej and ej 6 ei ,
then events ei and ej are said to be concurrent (denoted as ei k ej ).
In the execution of Figure 2.1, e13 k e33 and e24 k e31 .
The relation k is not transitive; that is, (ei k ej ) (ej k ek ) 6 ei k ek .
For example, in Figure 2.1, e33 k e24 and e24 k e15 , however, e33 6k e15 .
For any two events ei and ej in a distributed execution,
ei ej or ej ei , or ei k ej .
CUP 2008
11 / 1
CUP 2008
12 / 1
CUP 2008
13 / 1
CUP 2008
14 / 1
CUP 2008
15 / 1
Notations
LSix denotes the state of process pi after the occurrence of event eix and
before the event eix+1 .
LSi0 denotes the initial state of process pi .
LSix is a result of the execution of all the events executed by process pi till eix .
Let send(m)LSix denote the fact that y :1y x :: eiy =send(m).
Let rec(m)6LSix denote the fact that y :1y x :: eiy 6=rec(m).
CUP 2008
16 / 1
A Channel State
The state of a channel depends upon the states of the processes it connects.
Let SCijx,y denote the state of a channel Cij .
The state of a channel is defined as follows:
SCijx,y ={mij | send(mij ) eix
rec(mij ) 6 ejy }
Thus, channel state SCijx,y denotes all messages that pi sent upto event eix and
which process pj had not received until event ejy .
CUP 2008
17 / 1
Global State
The global state of a distributed system is a collection of the local states of
the processes and the channels.
Notationally, global state GS is defined as,
S
S
y ,z
GS = { i LSixi , j,k SCjkj k }
For a global state to be meaningful, the states of all the components of the
distributed system must be recorded at the same instant.
This will be possible if the local clocks at processes were perfectly
synchronized or if there were a global system clock that can be
instantaneously read by the processes. (However, both are impossible.)
CUP 2008
18 / 1
That is, channel state SCijyi ,zk and process state LSjzk must not include any
message that process pi sent after executing event eixi .
CUP 2008
19 / 1
e11
e21
e13
e 14
p3
p4
e21
p2
12
e22
e 23
e3
e41
e2
e23
m 21
e34
e 33
e35
e42
time
CUP 2008
20 / 1
In Figure 2.2:
A global state GS1 = {LS11 , LS23 , LS33 , LS42 } is inconsistent
because the state of p2 has recorded the receipt of message m12 , however,
the state of p1 has not recorded its send.
A global state GS2 consisting of local states {LS12 , LS24 , LS34 , LS42 }
is consistent; all the channels are empty except C21 that
contains message m21 .
CUP 2008
21 / 1
CUP 2008
22 / 1
C1
e11
C2
e21
e3
1
e 14
p2
1
p3
p4
e22
e12
e 23
e3
e41
e2
e23
e34
e 33
e35
e2
4
time
CUP 2008
23 / 1
In a consistent cut, every message received in the PAST of the cut was sent
in the PAST of that cut. (In Figure 2.3, cut C2 is a consistent cut.)
All messages that cross the cut from the PAST to the FUTURE are in transit
in the corresponding consistent global state.
A cut is inconsistent if a message crosses the cut from the FUTURE to the
PAST. (In Figure 2.3, cut C1 is an inconsistent cut.)
CUP 2008
24 / 1
CUP 2008
25 / 1
max(Past (e ))
i j
min(Future (ej ))
i
FUTURE( e j )
PAST( ej )
e
j
CUP 2008
26 / 1
Let Pasti (ej ) be the set of all those events of Past(ej ) that are on process pi .
Pasti (ej ) is a totally ordered set, ordered by the relation i , whose maximal
element is denoted by max(Pasti (ej )).
max(Pasti (ej )) is the latest event at process pi that affected event ej (Figure
2.4).
CUP 2008
27 / 1
Max Past(ej ) consists of the latest event at every process that affected event
ej and is referred to as the surface of the past cone of ej .
Past(ej ) represents all events on the past light cone that affect ej .
Future Cone of an Event
The future of an event ej , denoted by Future(ej ), contains all events ei that
are causally affected by ej (see Figure 2.4).
In a computation (H, ), Future(ej ) is defined as:
Future(ej ) = {ei |ei H, ej ei }.
CUP 2008
28 / 1
Define Futurei (ej ) as the set of those events of Future(ej ) that are on process
pi .
define min(Futurei (ej )) as the first event on process pi that is affected by ej .
S
Define Min Future(ej ) as (i ) {min(Futurei (ej ))}, which consists of the first
event at every process that is causally affected by event ej .
Min Future(ej ) is referred to as the surface of the future cone of ej .
All events at a process pi that occurred after max(Pasti (ej )) but before
min(Futurei (ej )) are concurrent with ej .
Therefore, all and only those events of computation H that belong to the set
H Past(ej ) Future(ej ) are concurrent with event ej .
CUP 2008
29 / 1
CUP 2008
30 / 1
CUP 2008
31 / 1