What are the possible orders of message delivery to each process if the multicast is (i) FIFO, (ii) causal, and (iii) atomic?
Suppose a multicast group currently is participated by two processes: P1 and P2. Suppose P1 multicasts m11 then m12, P2 multicasts m21 then m22.
The two partial orders (i) m11 then m12 and (ii) m21 then m22 must be preserved for FIFO, and the messages must be delivered to each process in the same order, which can be any one of the 4!/ (2! * 2!) = 24/4 = 6.
Another way to think about this:
m11 must be delivered before m12, and m21 must be delivered before m22. The two series can interleave with each other, however. Hence the possible orders are:
m11, m12, m21, m21
m11, m21, m12, m21
m11, m21, m21, , m12
m21, m11, m12, m21,
m21, m11, m21, , m12
m21, m21, m11, m12
You might also like to view...
What is the output of the following code given the function definition that follows:
cout << myFunction (7, 5, 2); // code in main int myFunction (int a, int b, int c) // function definition { int p = a + 2 * b + c; return p + 3; }
The following statement will declare an array. What is the index value for the first element?Dim lakes(5)
A. 0 B. 1 C. 4 D. 5