Draw an event-graph of a distributed system of three concurrent processes which are communicating messages, and synchronized by their respective logical clocks. Use the information below and calculate the logical time difference between the first event and the last event among the three processes. Label your graph with the process IDs, the message-structures (containing the timestamps), and the progression of the logical times on the time-lines.
(Assume that the start time is 0 for all three processes, and that the clock ticks by increments of 2.)
Process Communication Patterns:
Process1: Begins transmitting a message/email, with timestamp of 3 and destination address of Process-3.
Process 2: Running on a server that services Process-1, it receives the email; which came in when process-2 was busy with other chores. Process-2 finally retrieved the email after the chores were completed at its local time 8. It then forwarded the email to Process-3's server.
Process 3: Receives the email from Process-2, but part of the email's body was corrupted, including part of the header-info. It, therefore, immediately requested Process-2 to resend the email, to which Process-2 immediately complied before losing a copy in its buffer. Process-3, shortly after, received a clean copy of the email from Process-2 and sent a reply to Process-1. Process-3 took 5 units of time to analyze the email before replying to it.
Process1: Had just come out of waiting in a local queue for 20 time units when the reply came in. It received the reply from Process-3 just in time.