CS231           Lab 4             

                                                                                    Out date :  11/11/02
                                                                                    In date :  11/29/02

                Distributed Clock Synchronization
                       
 Object : Distributed Clock Synchronization Using Vector Clocks and
            Casual Message Ordering by Birman et all Protocol

 Procedure : You will implement first the Vector Clocks and then the
 Birman Protocol . The nodes will be simulated by threads communicating
 via FIFOs and managing buffer space by buffer pools.


 A. Vector Clocks

 A.1. Construct the implementation rules for Vector Clocks (Section 5.4.
      of the text book)
 A.2. Provide  3 Solaris kernel threads T1,T2,T3  such that :

            T1 : Performs four events and sends a message to T3
            T2 : Sends a message to T1, performs two events then sends a
                 message to T3
            T3 : Sends a message to T2, sends a message to T1, performs an
                 event, then sends a message to T2

 A.3. Show the operation of the threads and log the vector clocks in a
      file for processing.
 A.4. Repeat for other random message passing

 B. Casual Ordering Of Messages

 B.1. Construct Birman-Schiper-Stephenson Protocol for each thread
 B.2. For the A.2. example, provide a broadcast FIFO for all or use
      each thread FIFO to implement Birman et all protocol.
 B.3. Show that the protocol works for random messages order of which is
            entered from the keyboard.
    

Grading :        Correctness                20 %

                        Completeness                        20 %

                        Documentation           10 %