Note: This one IP is worth 200 points. Parts 1 and 2 together are worth 100 points. Part 3, which is “summative” is worth 100 points. Part 1: In a two-phase, total-order multicast system, messages are sent in the following sequence from node S to G1 and G2. G1 and G2 are the members of the group. 1. S sends m1 to G1 2. S sends m1 to G2 3. S sends m2 to G2 4. S sends m2 to G1 Use the basic implementation of the Lamport clock. The clock s at each node start at: S: 4, G1: 6, G2: 1 Show the exchange of messages and their acknowledgments in a clock diagram using the basic implementation of Lamport’s clock. In which order and at what times are m1 and m2 delivered? Part 2. Draw a state diagram of Maekawa’s voting algorithm on the slide “Maekawa’s algorithm” in the “Distributed mutual exclusion” slide set. Note that the state diagram is from the point of view of any one of the nodes, called “this” node below. The state diagram cannot show the states of other nodes. i) Start with the basic case where “this” node wants the lock, gets it, and then releases it, and no other node wants the lock at the same time. In this case, “this” node goes through all the states in this order: Released and not voted Wanted and not voted Wanted and voted Held and voted Released and voted (Back to) Released and not voted Events are: acquire for when “this” node wants the lock release for when “this” node gives up the lock. 8/7/20 3:01 PM 15 request_received, reply_received, and release_received when a message from any node arrives at “this” node. The state diagram is similar the one of Ricart and Agrawala’s state machine (in the Distributed Mutual Exclusion PowerPoint deck) but has more states. *** If you do part i) more or less correctly, you will earn most of the points. *** ii) The complete solution includes the situations where “this” node votes on requests from other nodes. The states are the same as above, but there are additional transitions and actions. Use the “Maekawa scenario” slide in the Distributed Mutual Exclusion slide set, or Fig. D-10 in the Study Guide. Warning: There is an incorrect solution for this problem on the Web. It has extra, incorrect states. Part 3 (100 points): Summarize the course in your own words in an essay of 5-6 pages or so. Feel free to reuse any relevant DB posts as well as Unit 3 IP, but please correct any errors found. Edit it all into one paper that reads nicely from top to bottom and is styled according to APA. Include at a minimum: • How threads and safe objects interact. This can be in general or based on Ada or Java. • Entity-life modeling: the idea of finding event-sequence models of the domain and map them onto thread architectures in the software. Deadlock prevention. • The use of logical clocks for communication and/or for distributed mutual exclusion.