Top Banner
1 Clock (Synchronization) All computers have a circuit for keeping track of time, this is know as Clock or Timer. When the system is booted, it usually asks for the user to enter the date and time, which is then converted to the number of ticks after same known starting date and stored in memory. In a distributed system, synchronized clock also enable one to measure the duration of distributed activities that start on one node and terminate on another node, for instance, calculating the time taken to transmit a message from one node to another at any arbitrary time.
51

Shoaib

Dec 13, 2014

Download

Education

Useful ppt of Distributed System
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Shoaib

1

Clock (Synchronization)

All computers have a circuit for keeping track of time, this is know as Clock or Timer.

When the system is booted, it usually asks for the user to enter the date and time, which is then converted to the number of ticks after same known starting date and stored in memory.

In a distributed system, synchronized clock also enable one to measure the duration of distributed activities that start on one node and terminate on another node, for instance, calculating the time taken to transmit a message from one node to another at any arbitrary time.

Page 2: Shoaib

2

How Computer Clock Are Implemented : A computer clock usually consist of three component :

1. A quartz crystal

- It is oscillates at a well defined frequency.

2. A Counter register

- It is used to keep track of the oscillation of the

quartz crystal.

3. A Constant register

- It is used to store a constant value that is decided

based on the frequency of oscillation of the quartz

crystal.

Page 3: Shoaib

3

The value in the counter register is determine by 1 for each oscillation of the quartz crystal. When the value of the counter register become zero, an interrupt is generated and its value is reinitialized to the value in the constant register, Each interrupt is called a clock tick.

The clock in the constant register is chosen so that 60 clock ticks occur in a second.

The computer clock is synchronized with real time. For this, two more values are stored in the system :

a) A fixed string date and time , and

b) The number of ticks

Page 4: Shoaib

4

A clock always runs at a constant rate. Let us suppose that when the real time is t, the time value of a clock p is Cp(t).

If all clock in the world were perfectly synchronized, we would have Cp(t)=t for all p and all t. That is, if C denotes that time value of a clock, in the ideal case dC/dt should be 1. Therefore, if the maximum drift rate allowable is p, a clock is said to be no-fault if the following condition hold for it :

For the slow clocks dC\dt <1 and for fast clock dC/dt>1.

A distributed system consist of several nodes, each with its own clock, running at its own speed. Because of non zero drift rates of all clocks, the set of clock of a distributed system do not remain well synchronizes without some periodic resynchronization.

1-p<=dC/dt<=1+p

Page 5: Shoaib

5

Real Time

Page 6: Shoaib

6

This means that the nodes of a distributed system must periodically resynchronize their local clock to maintain a global time base across the entire system. A distributed system require the following type of clock synchronized :

1. synchronization of the computer clock with real time or external clock.

2. Mutual or internal synchronization of the clocks of different nodes of the system.

* Externally synchronized clocks are also internally synchronized.

Page 7: Shoaib

7

Clock Synchronization Algorithms :

Clock Synchronization Algorithms may be broadly classified as ,

1. Centralized

2. Distributed

1. Centralized Algorithms:

In centralized clock Synchronization algorithm one node has a real time receiver. This node is usually called the time server node, and the clock time of this node is regarded as correct and used as the reference time. The goal of the algorithm is to keep the clocks of all other nodes Synchronized with the clock time of the time server node.

Page 8: Shoaib

8

Centralized clock synchronization algorithm are again of two types:

a) Passive Time Server Centralized Algorithm

b) Active Time Server Centralized Algorithm

a) Passive Time Server Centralized Algorithm : In this method each node periodically sends a message

to the time server. When the time server receives the message, it quickly responds with a message.

The best estimation of the time required for the propagation of the message “time=T” from the time server node to client’s node is (T1-T0)/2.Threrfore, when the reply is received at the client’s node, its clock is readjusted to T+ (T1-T0)/2.

Page 9: Shoaib

9

Here,

T= is the Current time in the clock of the time server node

T0=clock time of client node before receiving message

T1=clock time of client node after receiving message

b) Active Time Server Centralized Algorithm:

-In the active time server approach, the time server periodically broadcasts its clock (T). Other node received the broadcast message and use the clock time in the message of correcting their own clocks. Each node has a prior knowledge of the approximate time (Ta) required for the propagation of the message “time=T ” from the time server node to its own clock. Therefore, when the broadcast message is received at a node, the node’s clock is readjust to the time T+ Ta .

A major drawback of this method is that it is not fault Tolerant.

Page 10: Shoaib

10

Drawback of Centralized Algorithms:Centralized clock synchronization Algorithms suffer from two

major drawbacks :

They are subject to single point failure. If the server node fail, the clock synchronization operation cannot be performed.

From a scalability point of view it is generally not acceptable to get all the time request serviced by a single time server.

* These drawbacks overcome by distributed algorithms.

Page 11: Shoaib

11

2. Distributed Algorithms :

If each node’s clock independently synchronized with the real time , all the clocks of the system remain mutually synchronized.

Internal synchronization of clock is not required in this approach.

Following two approaches is usually used for internal synchronization :

1. Global Averaging Distributed Algorithms

2. Localized averaging Distributed Algorithms

Page 12: Shoaib

12

1. Global Averaging Distributed Algorithms :

In this approach, the clock process at each node broadcast its local clock time in the from of a special “ resync ” Message.

That “ resync ” Message is broadcast from each node at the beginning of every fixed length resynchronization interval.

For each “ resync ” Message, the clock process record the time, according to its own clock, when the message was received. At end of waiting period, the clock process estimate the skew of its clock with respect to each of the other nodes on the basis of the times at which it received resync message.

The global averaging algorithms do not scale well because they required the network to support broadcast facility and also because of the large amount of the message traffic generated.

Page 13: Shoaib

13

They are suitable for small network, especially for those that have fully connected topology.

2. Localized averaging Distributed Algorithms :

The localized averaging algorithms attempt to overcome the drawbacks of the a Global averaging algorithms.

In this approach, the node of a distributed system are logically arranged in some kind of pattern, such as a ring or a grid.

Periodically, each node exchange its clock time with its neighbors in the ring, grid or other structure and then sets its clock time to the average of its own clock time and the clock times of its neighbors.

Page 14: Shoaib

14

Lamport’s Logical Clock (Lamport’s Algorithms) :

Page 15: Shoaib

15

Page 16: Shoaib

16

Page 17: Shoaib

17

Page 18: Shoaib

18

Page 19: Shoaib

19

Message Ordering :

Page 20: Shoaib

20

Page 21: Shoaib

21

Page 22: Shoaib

22

Page 23: Shoaib

23

Mutual Exclusion : There are several resources in a system that must not be used

simultaneously by multiple process. If program operation is to correct . For example, a file must not be simultaneously updated by multiple processes. Similarly, printer must be restricted to a single process at a time.

Exclusive access to such a shared resource by a process must be ensured. This exclusiveness of access is called mutual exclusion between process. The section of a program that need exclusive access to shared resources are referred to as critical sections.

For Mutual Exclusion, means are introduced to prevent processes from executing concurrently within their associated critical section.

Page 24: Shoaib

24

An algorithm for implementing mutual exclusion must satisfy the following requirement :

a. Mutual Exclusion

b. No Starvation ( No Delay)

In single processor system, mutual exclusion is implemented using semaphores, monitors, and similar constructs. The three basic approaches used by different algorithms for implementing mutual exclusion in distributed systems are describe below.

1. Centralized Approach

2. Distributed Approach

3. Token Ring Passing

Page 25: Shoaib

25

1. Centralized Approach : In this approach, one of the process in the system is elected as the

coordinator and coordinates the entry to the critical sections. Each process that want to enter a critical section, must first seek permission from the coordinator. If no other process is currently in that critical section, the coordinator can immediately grant permission to the requesting process.

If two or more processes concurrently ask for permission to enter the same critical section, the coordinator grant permission to only one processes at a time in accordance with some algorithms.

After executing a critical section, when a process exits the critical section, it must notify the coordinator so that the coordinator can grant permission to another process that has also asked for permission to enter the same critical section.

Page 26: Shoaib

26

Page 27: Shoaib

27

The main advantages of this algorithm is that it is simple to implement and require only three message per critical section entry : a request, a reply, and a release.

However, it suffer from the usual drawback of centralized schemes, That is, a single coordinator is subject to single point of failure and can become a performance bottleneck in a large system.

2. Distributed Approach: In this approach, all process that want to enter the same critical section

cooperate with each other before reaching a decision on which process will enter the critical section next.

When a process wants to enter a critical section, it sends a request message to all other process. The message contain the following information :

Page 28: Shoaib

28

a.) The process identifier

b.) The name of the critical section

c.) A unique Timestamp

On receiving a request message, a process either immediately sends back a reply message to the sender or defers sending a reply based on the following:

a.) If the receiver process is itself currently executing in the critical section, it simply queues the request message and defers sending a reply.

b.) If the receiver process is currently not executing in the critical section but is waiting for its turn to enter the critical section, it compare the timestamp in the receiving request message with the timestamp in its own request message that it has sent to other processes.

Page 29: Shoaib

29

c.) If the receiver process neither is in the critical section nor is waiting for its turn to enter the critical section, it immediately sends back a reply message.

A process that sends out a request message keeps waiting for reply message from other processes. It enters the critical section as soon as it has received reply message from all processes. After it finishes executing in the critical section, it sends reply message to all processes in its queue and deletes them its queue.

To illustrate how the algorithm works, let us consider the following example of figure :

Page 30: Shoaib

30

Page 31: Shoaib

31

If there are n processes, the algorithm required n-1 request message and n-1 reply message, giving a total of 2(n-1) message per critical section entry.

This algorithm suffers from the following drawback:

1. The algorithm is liable to n point of failure.

2. All requirements makes implementation of the algorithm complex.

3. The waiting time may be large if there are too many processes. Therefore, the algorithm is suitable only for a small group of

cooperating processes.

Page 32: Shoaib

32

3. Token Ring Passing:

In this method, mutual exclusion is achieved by a single token that is circulated among the processes in the system. A token is a special type of message that entitle its holder to enter a critical section. For fairness, the processes in the system are logically organized in a ring structure, and the token is circulated from one process to another around the ring always in the same direction.

When a process receives the token, it checks if it wants to enter a critical section and acts as follows:

1. If it wants to enter a critical section, it keeps the token, enters the critical section, and exits from the critical section after finishing its work in the critical section. It then passes the token along the ring to its neighbor process.

Page 33: Shoaib

33

2. If it does not want to enter a critical section, it just passes the token along the ring to its neighbor process.

The algorithm, however, requires the handling of the following types of

failure :

I. Process Failure : A process failure in the system cause the logical

ring to break.

II. Lost Token : If the token is lost, a new token must be

generated. (Passed “ Who Has the Token”)

Page 34: Shoaib

34

ELECTION ALGORITHMS:

Page 35: Shoaib

35

Traditional Election Algorithms:

1. The Bully Algorithm

2. A Ring Algorithm

Page 36: Shoaib

36

Page 37: Shoaib

37

Page 38: Shoaib

38

Page 39: Shoaib

39

Page 40: Shoaib

40

Page 41: Shoaib

41

FAULT TOLERANCE:

Page 42: Shoaib

42

Page 43: Shoaib

43

Page 44: Shoaib

44

Page 45: Shoaib

45

Failure Masking by Redundancy:

Page 46: Shoaib

46

Page 47: Shoaib

47

Page 48: Shoaib

48

Page 49: Shoaib

49

Page 50: Shoaib

50

Page 51: Shoaib

51