The partial ordering of the events in this system are defined by a "happened before" relation.pic.twitter.com/fp4J4XrHaO
You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more
The partial ordering of the events in this system are defined by a "happened before" relation.pic.twitter.com/fp4J4XrHaO
The "happened before" relation can't be defined using real clocks because they do not keep precise physical time.
Processes in this system consist of a sequence of events. a → b → cpic.twitter.com/k2Xq2Hrp4A
Where (a) occurs before (b) if (a) "happened before" (b).
These events can be thought of as sending and receiving messages in a process.
The "happened before" relation is denoted by "→". There are 3 conditions to satisfy this relation on two events.pic.twitter.com/KPWVLIDPjm
Vertical lines: processes. Wavy lines: messages exchanged.pic.twitter.com/jygR7YZ1Aq
According to the definition we can see the following is true from Fig. 1. p1 → r4
Also p3 and q3 are concurrent as P won't know what Q did until p4 is received. p3 ↛ q3 and q3 ↛ p3
Time for clocks. Logical ones that is. A clock is defined as a function that assigns a number to an event.pic.twitter.com/SxhyJtKTZS
The definition of this clock is based on the order in which events occur. (a) occurs before (b) if (a) happens at an earlier time than (b)
Clock Condition: if a → b then C(a) < C(b)
The clock condition is satisfied by the following 2 conditions.pic.twitter.com/6JgE0LjuoM
Ticks on a processes' clock happen between the process' events. They're denoted by the dashed lines.pic.twitter.com/9XWlq7QVP8
So if (a) and (b) are consecutive events in process Pi with: Ci(a) = 4 and Ci(b) = 7 Then the clock ticks 5, 6, 7 occurred between a & b.
The tick lines can be straightened for an easier to read representation.pic.twitter.com/TPDpmrHIBl
Following the clock conditions we can see: C1) there is a tick line between any two process events C2) every message crosses a tick line
These process lines can be thought of as algorithms with the events representing some action of execution.
Each process has a clock represented by a register Ci: Ci(a) is the value contained by Ci during event a. Ci will change between events.
In the system of clocks there are 2 implementation rules that must be obeyed to satisfy the Clock Condition.pic.twitter.com/DHGYtD1LzT
takeaways on IRs:
Ci++ between successive Pi events
&
timestamp = Tm = Ci(a)
When Pj receives (m) it must set Cj >= Tm
Total Ordering ⇒ Use arbitrary total ordering of processes to break event ties. ≺ a ⇒ b if: Ci(a) < Cj(b) || Ci(a) = Cj(b) && Pi ≺ Pj
Problem: Only one process can use a single resource at a time. -- Need algorithm to find the total ordering of events to solve the mutex.
The algorithm must satisfy the following 3 conditions:pic.twitter.com/dmZ7Na7Dyf
Note: using a central scheduling process which requests grants won't work.pic.twitter.com/BdC2BTCSSZ
This is a distributed algorithm. Each process independently follows these rules with no central synchronization process or central storage.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.