SlideShare una empresa de Scribd logo
1 de 36
Chapter 6 - Synchronization
2
Introduction
 apart from communication, how do processes cooperate and
synchronize
 cooperation is partly supported by naming; it allows
processes to at least share resources (entities)
 synchronization deals on how to ensure that processes do not
simultaneously access a shared resource; how events can be
ordered such as two processes sending messages to each
other
3
 we discuss
 the issue of synchronization based on time (actual time and
relative ordering)
 distributed mutual exclusion to protect shared resources
from simultaneous access by multiple processes
 how a group of processes can appoint a process as a
coordinator; can be done by means of election algorithms
Objectives of the Chapter
4
6.1 Clock Synchronization
 in centralized systems, time can be unambiguously decided
by a system call
 e.g., process A at time t1 gets the time, say tA, and process b
at time t2, where t1 < t2, gets the time, say tB
then tA is always less than (possibly equal to but never
greater than) tB
 achieving agreement on time in distributed systems is
difficult
 e.g., consider the make program on a UNIX machine; it
compiles only source files for which the time of their last
update was later than the existing object file
5
when each machine has its own clock, an event that occurred after
another event may nevertheless be assigned an earlier time
6
 Physical Clocks
 is it possible to synchronize all clocks in a distributed
system?
 no; even if all computers initially start at the same time,
they will get out of synch after some time due to crystals in
different computers running at different frequencies, a
phenomenon called clock skew
 how is time actually measured?
 earlier astronomically; based on the amount of time it
takes the earth to rotate the sun; 1 solar second =
1/86400th of a solar day (24*3600 = 86400)
 it was later discovered that the period of the earth’s
rotation is not constant; the earth is slowing down due to
tidal friction and atmospheric drag; geologists believe
that 300 million years ago there were about 400 days per
year; the length of the year is not affected, only the days
have become longer
 astronomical timekeeping was later replaced by counting
the transitions of the cesium 133 atom and led to what is
known as TAI - International Atomic Time
7
 TAI was also found to have a problem; 86,400 TAI seconds
are behind a solar day by 3 msec, as a result of the day
getting longer everyday
 UTC (Universal Coordinated Time) was introduced by
having leap seconds whenever the discrepancy between
TAI and solar time grows to 800 msec
 UTC replaced the astronomical GMT
 in some countries, UTC is broadcasted on shortwave radio
and satellites (as a short pulse at the start of each UTC
second) for those who need precise time; but one has to
compensate for the propagation delay
 Clock Synchronization Algorithms
 two situations:
 one machine has a receiver of UTC time, then how do we
synchronize all other machines to it
 no machine has a receiver, each machine keeps track of
its own time, then how to synchronize them
 many algorithms have been proposed
8
 a model for all algorithms
 each machine has a timer that ticks H times per second or
causes an interrupt; the interrupt handler adds 1 to the clock
 let the value of the clock that is obtained so be C
 when the UTC time is t, the value of the clock on machine p is
Cp(t); if everything is perfect, Cp(t) = t or dC/dt = 1
 but in practice there will be errors; either it ticks faster or
slower
 if  is a constant such that 1-   dC/dt  1+ , then the timer is
said to be working within its specification
  is set by the manufacturer and is called the maximum drift
rate
the relation between clock time and UTC when clocks tick at different rates
9
 if two clocks are drifting in the opposite direction, at a time
t after they were synchronized, they may be as much as
2t apart
 if no two clocks should ever differ by more than , then
clocks must be synchronized at least every /2 seconds
 how is it done?
 Network Time Protocol (originally by Cristian)
 suitable when one machine has a UTC receiver or a correct
clock; let us call this machine a time server
 then let clients (A) contact the time server (B)
 problem: message delays; how to estimate these delays
getting the current time from a time server
10
 assume that the propagation delays from A to B is the same
as from B to A, i.e., T2 - T1 ≈ T4 - T3
 then A can estimate its offset relative to B as
 problem: time must never run backward or  should not be
less than 0, i.e., A’s clock is faster than B’s
 solution: introduce change gradually; if a timer is set to
generate 100 interrupts per second, it means 10 msec
must be added to the time; then make it say 9 (to slow it
down,  < 0) or 11 msec (to advance it gradually,  > 0)
2
)
(
)
(
2
)
(
)
( 4
3
1
2
4
3
4
1
2
3
T
T
T
T
T
T
T
T
T
T











11
 The Berkley Algorithm
 in the previous algorithm, the time server is passive; only
other machines ask it periodically
 in Berkley UNIX, a time daemon asks every machine from
time to time to ask the time
 it then calculates the average and sends messages to all
machines so that they will adjust their clocks accordingly
 suitable when no machine has a UTC receiver
 the time daemon’s time must be set periodically manually
12
a) the time daemon asks all the other machines for their clock values
b) the machines answer how far ahead or behind the time daemon they are
c) the time daemon tells everyone how to adjust their clock
 there are also other algorithms
 read about clock synchronization in wireless networks;
pages 242 - 243
13
 for some applications, it is sufficient if all machines agree
on the same time, rather than with the real time; we need
internal consistency of the clocks rather than being close
to the real time
 hence the concept of logical clocks
 what matters is the order in which events occur
 Lamport Timestamps
 Lamport defined a relation called happens before
 a  b read as “a happens before b”; means all processes
agree that first event a occurs, then event b occurs
 this relation can be observed in two situations
 if a and b are events in the same process, and a occurs
before b, then a  b is true
 if a is the event of a message being sent by one
process, and b is the event of the message being
received by another process, then a  b is also true
6.2 Logical Clocks
14
 happens before is a transitive relation
 if a  b and b  c, then a  c
 if two events, x and y, happen in different processes that do
not exchange messages, then both x  y and y  x are not
true; these events are said to be concurrent; it means that
nothing can be said about the order of these events
 for every event a, we can assign a time value C(a) on which
all processes agree; if a  b, then C(a) < C(b)
15
 Lamport’s proposed algorithm for assigning times for
processes
 consider three processes each running on a different
machine, each with its own clock
 the solution follows the happens before relation; each
message carries the sending time; if the receiver’s clock
shows a value prior to the time the message was sent, the
receiver fast forwards its clock to be one more than the
sending time
16
a) three processes, each with its own clock; the clocks run at different
rates
b) Lamport's algorithm corrects the clocks
17
 Implementation: Each process maintains a local
counter Ci. These counters are updated as follows:
 Before executing an event Pi executes
Ci ← Ci + 1.
 When process Pi sends a message m to Pj, it sets
m’s timestamp ts (m) equal to Ci after having
executed the previous step
 Upon the receipt of a message m, process Pj adjusts
its own local counter as
Cj ← max{Cj , ts (m)}, after which it then executes the
first step and delivers the message to the
application
18
 additional requirements
 between two events, the clock must tick at least once,
i.e., a process that sends or receives two messages in
succession must advance its clock by one tick
 no two events must occur at exactly the same time; if so
attach the number of the process; e,g., if events happen
in processes 1 and 2 at time 40, then we have 40.1 and
40.2
 with these requirements, assigning time to all events in a
distributed system is subject to the following conditions
1. if a  b in the same process, then C(a) < C(b)
2. if a and b represent the sending and receiving of a
message, respectively, then C(a) < C(b)
3. for all distinctive events a and b, C(a)  C(b)
19
 example: Totally-Ordered Multicasting
 assume a bank database replicated across several cities for
performance; a query is always forwarded to the nearest copy
 let us have a customer with $1000 in her account
 she is in city A and wants to add $100 to her account (update
1)
 a bank employee in city B initiates an update of increasing
accounts by 1 percent interest (update 2)
 both must be carried out at both copies of the database
 due to communication delays, if the updates are done in
different order, the database will be inconsistent (city A =
$1111, city B = $1110)
updating a replicated database and leaving it in an inconsistent state
20
 situations like these require a Totally-Ordered Multicast, i.e.,
all messages are delivered in the same order to each receiver
 Lamport timestamps can be used to implement totally-
ordered multicasts
 timestamp each message
 during multicasting, send a message also to the sender
 assume messages from the same sender are received in
the order they are sent and no message is lost
 all messages are put in a local queue ordered by
timestamp
 each receiver multicasts an acknowledgement
 then all processes will have the same copy of the local
queue
 a process can deliver a queued message to the application
it is running only when that message is at the top of the
queue and has been acknowledged by each other process
21
 Vector Clocks
 with Lamport timestamps a  b does not necessarily
mean a happens before b; only that all processes agree;
but they ensure total ordering
 it also doesn’t tell us causality of events
 vector timestamps are designed for this purpose
 read pages 248-252
22
 when a process has to read or update shared data (quite
often to use a shared resource such as a printer, a file, etc.), it
first enters a critical region to achieve mutual exclusion
 in single processor systems, critical regions are protected
using semaphores, monitors, and similar constructs
 how are critical regions and mutual exclusion implemented in
distributed systems?
 distributed mutual exclusion algorithms can be classified into
two:
a. Token-based solutions
 a token is passed between processes; if a process
wants to transmit, it waits for the token, transmits its
message and releases the token
 assume a bus network (e.g., Ethernet); no physical
ordering of processes required but a logical ring is
constructed by software
6.3 Mutual Exclusion
23
 an unordered group of processes on a network
 a logical ring constructed in software
24
 when the ring is initialized, process 0 is given a token
 the token circulates around the ring
 a process can enter into a critical region only when it has
access to the token
 it releases it when it leaves the critical region
 it should not enter into a second critical region with the
same token
 mutual exclusion is guaranteed
 no starvation
 problems
 if the token is lost, it has to be generated, but detecting
that it is lost is difficult
 if a process crashes
 can be modified to include acknowledging a token so
that the token can bypass a crashed process
 in this case every process has to maintain the current
ring configuration
25
b. Permission-based approach: based on getting permission
from other processes
 two algorithms: centralized and distributed
 A Centralized Algorithm
 a coordinator is appointed and is in charge of granting
permissions
 three messages are required: request, grant, release
a) process 1 asks the coordinator for permission to enter
a critical region (through a request message);
permission is granted (through a grant message)
b) process 2 then asks permission to enter the same
critical region; the coordinator does not reply (could
also send a no message; is implementation dependent),
but queues process 2; process 2 is blocked
c) when process 1 exits the critical region, it tells the
coordinator (through a release message), which then
replies to process 2
26
 the algorithm
 guarantees mutual exclusion
 is fair - first come first served
 no starvation
 easy to implement; requires only three messages:
request, grant, release
 shortcoming: a failure of the coordinator crashes the
system (specially if processes block after sending a
request); it also becomes a performance bottleneck; the
solution is a decentralized algorithm (pages 254 - 255)
27
 A Distributed Algorithm
 assume that there is a total ordering of all events in the
system, such as using Lamport timestamps
 when a process wants to enter a critical region it builds a
message (containing name of the critical region, its
process number, current time) and sends it to everyone
including itself
 the sending of a message is assumed to be reliable; i.e.,
every message is acknowledged
 when a process receives a request message
1. if the receiver is not in a critical region and does not
want to enter it, it sends back an OK message to the
sender
2. if the receiver is already in the critical region, it does not
reply; instead it queues the request
28
3. if the receiver wants to enter the critical region but has
not yet done so, it compares the timestamp of the
message it sent with the incoming one; the lowest wins;
if the incoming message is lower, it sends an OK
message; otherwise it queues the incoming message
and does not do anything
 when the sender gets a reply from all processes, it may
enter into the critical region
 when it finishes it sends an OK message to all processes
in its queue
 is it possible that two processes can enter into the critical
region at the same time if they initiate a message at the
same time? NO
a) two processes (0 and 2) want to enter the same critical
region at the same moment
b) process 0 has the lowest timestamp, so it wins
c) when process 0 is done, it sends an OK message, so
process 2 can now enter into its critical region
29
 mutual exclusion is guaranteed
 the total number of messages to enter a critical region is
increased to 2(n-1), where n is the number of processes
 no single point of failure; unfortunately n points of failure
 we also have n bottlenecks
 hence, it is slower, more complicated, more expensive, and
less robust than the previous one; but shows that a
distributed algorithm is possible
30
 A comparison of the three algorithms (assumes only point-
to-point communication channels are used)
Algorithm
Messages per
entry/exit
Delay before entry
(in message times)
Problems
Centralized 3 - efficient 2
Coordinator
crash
Distributed 2 ( n – 1 ) 2 ( n – 1 )
Crash of any
process
Token ring 1 to  0 to n – 1
Lost token,
process crash
31
 there are situations where one process must act as a
coordinator, initiator, or perform some special task
 assume that
 each process has a unique number (say its network
address provided there is one process per machine)
 every process knows the process number of every other
process, but not the state of each process (which ones are
currently running and which ones are down)
 election algorithms attempt to locate the process with the
highest process number
 two traditional algorithms: the Bully algorithm and the Ring
algorithm
 for elections in wireless environments and large-scale
systems, read pages 267 - 270
6.4 Election Algorithms
32
 The Bully Algorithm (the biggest person wins)
 when a process (say P4) notices that the coordinator is no
longer responding to requests, it initiates an election as
follows
1. P4 sends an ELECTION message to all processes with
higher numbers (P5, P6, P7)
 if a process gets an ELECTION message from one of
its lower-numbered colleagues, it sends an OK
message to the sender and holds an election
2. if no one responds, P4 wins the election and becomes a
coordinator
3. if one of the higher-ups answers, this new process takes
over
33
a) Process 4 holds an election
b) Process 5 and 6 respond, telling 4 to stop
c) Now 5 and 6 each hold an election
34
d) Process 6 tells 5 to stop
e) Process 6 wins and tells everyone
 the last one will send a message to all processes telling
them that it is a boss
 if a process that was previously down comes back, it holds
an election
35
 The Ring Algorithm
 based on the use of a ring
 assume that processes are physically or logically ordered,
so that each process knows who its successor is
 when a process notices that the coordinator is not
functioning,
 it builds an ELECTION message containing its own
process number and sends it to its successor
 if the successor is down, the sender goes to the next
number, or the next until a running process is found
 at each step, the sender adds its own process number to
the list in the message making itself a candidate
 eventually the message gets back to the originating
process; the process with the highest number is elected
as coordinator, the message type is changed to
COORDINATOR and circulated once again to announce
the coordinator and who the members of the ring are
36
election algorithm using a ring
 e.g., processes 2 and 5 simultaneously discover that the
previous coordinator has crashed
 they build an ELECTION message and a coordinator is
chosen
 although the process is done twice, there is no problem,
only a little bandwidth is consumed

Más contenido relacionado

Similar a Chapter 6-Synchronozation2.ppt

Clock Synchronization (Distributed computing)
Clock Synchronization (Distributed computing)Clock Synchronization (Distributed computing)
Clock Synchronization (Distributed computing)
Sri Prasanna
 

Similar a Chapter 6-Synchronozation2.ppt (20)

Clock Synchronization (Distributed computing)
Clock Synchronization (Distributed computing)Clock Synchronization (Distributed computing)
Clock Synchronization (Distributed computing)
 
Chapter 10
Chapter 10Chapter 10
Chapter 10
 
Unit iii-Synchronization
Unit iii-SynchronizationUnit iii-Synchronization
Unit iii-Synchronization
 
Physical and Logical Clocks
Physical and Logical ClocksPhysical and Logical Clocks
Physical and Logical Clocks
 
Synchronization in distributed systems
Synchronization in distributed systems Synchronization in distributed systems
Synchronization in distributed systems
 
CS6601-Unit 4 Distributed Systems
CS6601-Unit 4 Distributed SystemsCS6601-Unit 4 Distributed Systems
CS6601-Unit 4 Distributed Systems
 
Distributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.pptDistributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.ppt
 
Time in distributed systmes
Time in distributed systmesTime in distributed systmes
Time in distributed systmes
 
time-clocks.pdf
time-clocks.pdftime-clocks.pdf
time-clocks.pdf
 
Chap 5
Chap 5Chap 5
Chap 5
 
Clocks
ClocksClocks
Clocks
 
Synchronization in distributed computing
Synchronization in distributed computingSynchronization in distributed computing
Synchronization in distributed computing
 
Distributed computing time
Distributed computing timeDistributed computing time
Distributed computing time
 
Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
 
09-time+synch.ppt
09-time+synch.ppt09-time+synch.ppt
09-time+synch.ppt
 
Vector clock algorithm
Vector clock algorithmVector clock algorithm
Vector clock algorithm
 
Chapter 6 synchronization
Chapter 6 synchronizationChapter 6 synchronization
Chapter 6 synchronization
 
L12.FA20.ppt
L12.FA20.pptL12.FA20.ppt
L12.FA20.ppt
 
Ds practical file
Ds practical fileDs practical file
Ds practical file
 
logical clocks
logical clockslogical clocks
logical clocks
 

Más de MeymunaMohammed1 (11)

Distributed system.pptx
Distributed system.pptxDistributed system.pptx
Distributed system.pptx
 
ANS_Ch_05_Handouts.pdf
ANS_Ch_05_Handouts.pdfANS_Ch_05_Handouts.pdf
ANS_Ch_05_Handouts.pdf
 
Seminar Course instruction .ppt
Seminar Course instruction .pptSeminar Course instruction .ppt
Seminar Course instruction .ppt
 
M.Sc Mobile computing.pptx
M.Sc Mobile computing.pptxM.Sc Mobile computing.pptx
M.Sc Mobile computing.pptx
 
Cloud_Ch_01_Handouts(1).pdf
Cloud_Ch_01_Handouts(1).pdfCloud_Ch_01_Handouts(1).pdf
Cloud_Ch_01_Handouts(1).pdf
 
ANS_Ch_06_Handouts.pdf
ANS_Ch_06_Handouts.pdfANS_Ch_06_Handouts.pdf
ANS_Ch_06_Handouts.pdf
 
ANS_Ch_05_Handouts.pdf
ANS_Ch_05_Handouts.pdfANS_Ch_05_Handouts.pdf
ANS_Ch_05_Handouts.pdf
 
ANS_Ch_04_Handouts.pdf
ANS_Ch_04_Handouts.pdfANS_Ch_04_Handouts.pdf
ANS_Ch_04_Handouts.pdf
 
Chapter 3-Processes2.pptx
Chapter 3-Processes2.pptxChapter 3-Processes2.pptx
Chapter 3-Processes2.pptx
 
Chapter 2-Architectures23.ppt
Chapter 2-Architectures23.pptChapter 2-Architectures23.ppt
Chapter 2-Architectures23.ppt
 
Chapter 2-Architectures2.ppt
Chapter 2-Architectures2.pptChapter 2-Architectures2.ppt
Chapter 2-Architectures2.ppt
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Chapter 6-Synchronozation2.ppt

  • 1. Chapter 6 - Synchronization
  • 2. 2 Introduction  apart from communication, how do processes cooperate and synchronize  cooperation is partly supported by naming; it allows processes to at least share resources (entities)  synchronization deals on how to ensure that processes do not simultaneously access a shared resource; how events can be ordered such as two processes sending messages to each other
  • 3. 3  we discuss  the issue of synchronization based on time (actual time and relative ordering)  distributed mutual exclusion to protect shared resources from simultaneous access by multiple processes  how a group of processes can appoint a process as a coordinator; can be done by means of election algorithms Objectives of the Chapter
  • 4. 4 6.1 Clock Synchronization  in centralized systems, time can be unambiguously decided by a system call  e.g., process A at time t1 gets the time, say tA, and process b at time t2, where t1 < t2, gets the time, say tB then tA is always less than (possibly equal to but never greater than) tB  achieving agreement on time in distributed systems is difficult  e.g., consider the make program on a UNIX machine; it compiles only source files for which the time of their last update was later than the existing object file
  • 5. 5 when each machine has its own clock, an event that occurred after another event may nevertheless be assigned an earlier time
  • 6. 6  Physical Clocks  is it possible to synchronize all clocks in a distributed system?  no; even if all computers initially start at the same time, they will get out of synch after some time due to crystals in different computers running at different frequencies, a phenomenon called clock skew  how is time actually measured?  earlier astronomically; based on the amount of time it takes the earth to rotate the sun; 1 solar second = 1/86400th of a solar day (24*3600 = 86400)  it was later discovered that the period of the earth’s rotation is not constant; the earth is slowing down due to tidal friction and atmospheric drag; geologists believe that 300 million years ago there were about 400 days per year; the length of the year is not affected, only the days have become longer  astronomical timekeeping was later replaced by counting the transitions of the cesium 133 atom and led to what is known as TAI - International Atomic Time
  • 7. 7  TAI was also found to have a problem; 86,400 TAI seconds are behind a solar day by 3 msec, as a result of the day getting longer everyday  UTC (Universal Coordinated Time) was introduced by having leap seconds whenever the discrepancy between TAI and solar time grows to 800 msec  UTC replaced the astronomical GMT  in some countries, UTC is broadcasted on shortwave radio and satellites (as a short pulse at the start of each UTC second) for those who need precise time; but one has to compensate for the propagation delay  Clock Synchronization Algorithms  two situations:  one machine has a receiver of UTC time, then how do we synchronize all other machines to it  no machine has a receiver, each machine keeps track of its own time, then how to synchronize them  many algorithms have been proposed
  • 8. 8  a model for all algorithms  each machine has a timer that ticks H times per second or causes an interrupt; the interrupt handler adds 1 to the clock  let the value of the clock that is obtained so be C  when the UTC time is t, the value of the clock on machine p is Cp(t); if everything is perfect, Cp(t) = t or dC/dt = 1  but in practice there will be errors; either it ticks faster or slower  if  is a constant such that 1-   dC/dt  1+ , then the timer is said to be working within its specification   is set by the manufacturer and is called the maximum drift rate the relation between clock time and UTC when clocks tick at different rates
  • 9. 9  if two clocks are drifting in the opposite direction, at a time t after they were synchronized, they may be as much as 2t apart  if no two clocks should ever differ by more than , then clocks must be synchronized at least every /2 seconds  how is it done?  Network Time Protocol (originally by Cristian)  suitable when one machine has a UTC receiver or a correct clock; let us call this machine a time server  then let clients (A) contact the time server (B)  problem: message delays; how to estimate these delays getting the current time from a time server
  • 10. 10  assume that the propagation delays from A to B is the same as from B to A, i.e., T2 - T1 ≈ T4 - T3  then A can estimate its offset relative to B as  problem: time must never run backward or  should not be less than 0, i.e., A’s clock is faster than B’s  solution: introduce change gradually; if a timer is set to generate 100 interrupts per second, it means 10 msec must be added to the time; then make it say 9 (to slow it down,  < 0) or 11 msec (to advance it gradually,  > 0) 2 ) ( ) ( 2 ) ( ) ( 4 3 1 2 4 3 4 1 2 3 T T T T T T T T T T           
  • 11. 11  The Berkley Algorithm  in the previous algorithm, the time server is passive; only other machines ask it periodically  in Berkley UNIX, a time daemon asks every machine from time to time to ask the time  it then calculates the average and sends messages to all machines so that they will adjust their clocks accordingly  suitable when no machine has a UTC receiver  the time daemon’s time must be set periodically manually
  • 12. 12 a) the time daemon asks all the other machines for their clock values b) the machines answer how far ahead or behind the time daemon they are c) the time daemon tells everyone how to adjust their clock  there are also other algorithms  read about clock synchronization in wireless networks; pages 242 - 243
  • 13. 13  for some applications, it is sufficient if all machines agree on the same time, rather than with the real time; we need internal consistency of the clocks rather than being close to the real time  hence the concept of logical clocks  what matters is the order in which events occur  Lamport Timestamps  Lamport defined a relation called happens before  a  b read as “a happens before b”; means all processes agree that first event a occurs, then event b occurs  this relation can be observed in two situations  if a and b are events in the same process, and a occurs before b, then a  b is true  if a is the event of a message being sent by one process, and b is the event of the message being received by another process, then a  b is also true 6.2 Logical Clocks
  • 14. 14  happens before is a transitive relation  if a  b and b  c, then a  c  if two events, x and y, happen in different processes that do not exchange messages, then both x  y and y  x are not true; these events are said to be concurrent; it means that nothing can be said about the order of these events  for every event a, we can assign a time value C(a) on which all processes agree; if a  b, then C(a) < C(b)
  • 15. 15  Lamport’s proposed algorithm for assigning times for processes  consider three processes each running on a different machine, each with its own clock  the solution follows the happens before relation; each message carries the sending time; if the receiver’s clock shows a value prior to the time the message was sent, the receiver fast forwards its clock to be one more than the sending time
  • 16. 16 a) three processes, each with its own clock; the clocks run at different rates b) Lamport's algorithm corrects the clocks
  • 17. 17  Implementation: Each process maintains a local counter Ci. These counters are updated as follows:  Before executing an event Pi executes Ci ← Ci + 1.  When process Pi sends a message m to Pj, it sets m’s timestamp ts (m) equal to Ci after having executed the previous step  Upon the receipt of a message m, process Pj adjusts its own local counter as Cj ← max{Cj , ts (m)}, after which it then executes the first step and delivers the message to the application
  • 18. 18  additional requirements  between two events, the clock must tick at least once, i.e., a process that sends or receives two messages in succession must advance its clock by one tick  no two events must occur at exactly the same time; if so attach the number of the process; e,g., if events happen in processes 1 and 2 at time 40, then we have 40.1 and 40.2  with these requirements, assigning time to all events in a distributed system is subject to the following conditions 1. if a  b in the same process, then C(a) < C(b) 2. if a and b represent the sending and receiving of a message, respectively, then C(a) < C(b) 3. for all distinctive events a and b, C(a)  C(b)
  • 19. 19  example: Totally-Ordered Multicasting  assume a bank database replicated across several cities for performance; a query is always forwarded to the nearest copy  let us have a customer with $1000 in her account  she is in city A and wants to add $100 to her account (update 1)  a bank employee in city B initiates an update of increasing accounts by 1 percent interest (update 2)  both must be carried out at both copies of the database  due to communication delays, if the updates are done in different order, the database will be inconsistent (city A = $1111, city B = $1110) updating a replicated database and leaving it in an inconsistent state
  • 20. 20  situations like these require a Totally-Ordered Multicast, i.e., all messages are delivered in the same order to each receiver  Lamport timestamps can be used to implement totally- ordered multicasts  timestamp each message  during multicasting, send a message also to the sender  assume messages from the same sender are received in the order they are sent and no message is lost  all messages are put in a local queue ordered by timestamp  each receiver multicasts an acknowledgement  then all processes will have the same copy of the local queue  a process can deliver a queued message to the application it is running only when that message is at the top of the queue and has been acknowledged by each other process
  • 21. 21  Vector Clocks  with Lamport timestamps a  b does not necessarily mean a happens before b; only that all processes agree; but they ensure total ordering  it also doesn’t tell us causality of events  vector timestamps are designed for this purpose  read pages 248-252
  • 22. 22  when a process has to read or update shared data (quite often to use a shared resource such as a printer, a file, etc.), it first enters a critical region to achieve mutual exclusion  in single processor systems, critical regions are protected using semaphores, monitors, and similar constructs  how are critical regions and mutual exclusion implemented in distributed systems?  distributed mutual exclusion algorithms can be classified into two: a. Token-based solutions  a token is passed between processes; if a process wants to transmit, it waits for the token, transmits its message and releases the token  assume a bus network (e.g., Ethernet); no physical ordering of processes required but a logical ring is constructed by software 6.3 Mutual Exclusion
  • 23. 23  an unordered group of processes on a network  a logical ring constructed in software
  • 24. 24  when the ring is initialized, process 0 is given a token  the token circulates around the ring  a process can enter into a critical region only when it has access to the token  it releases it when it leaves the critical region  it should not enter into a second critical region with the same token  mutual exclusion is guaranteed  no starvation  problems  if the token is lost, it has to be generated, but detecting that it is lost is difficult  if a process crashes  can be modified to include acknowledging a token so that the token can bypass a crashed process  in this case every process has to maintain the current ring configuration
  • 25. 25 b. Permission-based approach: based on getting permission from other processes  two algorithms: centralized and distributed  A Centralized Algorithm  a coordinator is appointed and is in charge of granting permissions  three messages are required: request, grant, release a) process 1 asks the coordinator for permission to enter a critical region (through a request message); permission is granted (through a grant message) b) process 2 then asks permission to enter the same critical region; the coordinator does not reply (could also send a no message; is implementation dependent), but queues process 2; process 2 is blocked c) when process 1 exits the critical region, it tells the coordinator (through a release message), which then replies to process 2
  • 26. 26  the algorithm  guarantees mutual exclusion  is fair - first come first served  no starvation  easy to implement; requires only three messages: request, grant, release  shortcoming: a failure of the coordinator crashes the system (specially if processes block after sending a request); it also becomes a performance bottleneck; the solution is a decentralized algorithm (pages 254 - 255)
  • 27. 27  A Distributed Algorithm  assume that there is a total ordering of all events in the system, such as using Lamport timestamps  when a process wants to enter a critical region it builds a message (containing name of the critical region, its process number, current time) and sends it to everyone including itself  the sending of a message is assumed to be reliable; i.e., every message is acknowledged  when a process receives a request message 1. if the receiver is not in a critical region and does not want to enter it, it sends back an OK message to the sender 2. if the receiver is already in the critical region, it does not reply; instead it queues the request
  • 28. 28 3. if the receiver wants to enter the critical region but has not yet done so, it compares the timestamp of the message it sent with the incoming one; the lowest wins; if the incoming message is lower, it sends an OK message; otherwise it queues the incoming message and does not do anything  when the sender gets a reply from all processes, it may enter into the critical region  when it finishes it sends an OK message to all processes in its queue  is it possible that two processes can enter into the critical region at the same time if they initiate a message at the same time? NO a) two processes (0 and 2) want to enter the same critical region at the same moment b) process 0 has the lowest timestamp, so it wins c) when process 0 is done, it sends an OK message, so process 2 can now enter into its critical region
  • 29. 29  mutual exclusion is guaranteed  the total number of messages to enter a critical region is increased to 2(n-1), where n is the number of processes  no single point of failure; unfortunately n points of failure  we also have n bottlenecks  hence, it is slower, more complicated, more expensive, and less robust than the previous one; but shows that a distributed algorithm is possible
  • 30. 30  A comparison of the three algorithms (assumes only point- to-point communication channels are used) Algorithm Messages per entry/exit Delay before entry (in message times) Problems Centralized 3 - efficient 2 Coordinator crash Distributed 2 ( n – 1 ) 2 ( n – 1 ) Crash of any process Token ring 1 to  0 to n – 1 Lost token, process crash
  • 31. 31  there are situations where one process must act as a coordinator, initiator, or perform some special task  assume that  each process has a unique number (say its network address provided there is one process per machine)  every process knows the process number of every other process, but not the state of each process (which ones are currently running and which ones are down)  election algorithms attempt to locate the process with the highest process number  two traditional algorithms: the Bully algorithm and the Ring algorithm  for elections in wireless environments and large-scale systems, read pages 267 - 270 6.4 Election Algorithms
  • 32. 32  The Bully Algorithm (the biggest person wins)  when a process (say P4) notices that the coordinator is no longer responding to requests, it initiates an election as follows 1. P4 sends an ELECTION message to all processes with higher numbers (P5, P6, P7)  if a process gets an ELECTION message from one of its lower-numbered colleagues, it sends an OK message to the sender and holds an election 2. if no one responds, P4 wins the election and becomes a coordinator 3. if one of the higher-ups answers, this new process takes over
  • 33. 33 a) Process 4 holds an election b) Process 5 and 6 respond, telling 4 to stop c) Now 5 and 6 each hold an election
  • 34. 34 d) Process 6 tells 5 to stop e) Process 6 wins and tells everyone  the last one will send a message to all processes telling them that it is a boss  if a process that was previously down comes back, it holds an election
  • 35. 35  The Ring Algorithm  based on the use of a ring  assume that processes are physically or logically ordered, so that each process knows who its successor is  when a process notices that the coordinator is not functioning,  it builds an ELECTION message containing its own process number and sends it to its successor  if the successor is down, the sender goes to the next number, or the next until a running process is found  at each step, the sender adds its own process number to the list in the message making itself a candidate  eventually the message gets back to the originating process; the process with the highest number is elected as coordinator, the message type is changed to COORDINATOR and circulated once again to announce the coordinator and who the members of the ring are
  • 36. 36 election algorithm using a ring  e.g., processes 2 and 5 simultaneously discover that the previous coordinator has crashed  they build an ELECTION message and a coordinator is chosen  although the process is done twice, there is no problem, only a little bandwidth is consumed