Transcript of "Shoaib"

1.
MOHD SHOAIB KHAN DISTRIBUTED SYSTEM 1

2.
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. 2

3.
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. 3

4.
 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 4

5.
 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 : 1-p<=dC/dt<=1+p For the slow clocks dCdt <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. 5

7.
 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. 7

8.
Clock Synchronization Algorithms : Clock Synchronization Algorithms may be broadly classified as , 1. Centralized 2. Distributed7. 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. 8

9.
Centralized clock synchronization algorithm are again of two types: a) Passive Time Server Centralized Algorithm b) Active Time Server Centralized Algorithmg) 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. 9

10.
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 messageb) 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. 10

11.
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. 11

12.
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 12

13.
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. 13

14.
 They are suitable for small network, especially for those that have fullyconnected 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. 14

24.
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. 24

25.
 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.7. Centralized Approach8. Distributed Approach9. Token Ring Passing 25

26.
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. 26

28.
 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 : 28

29.
a.) The process identifierb.) The name of the critical sectionc.) 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. 29

30.
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 : 30

32.
 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. 32

33.
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. 33

34.
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”) 34