Mobile agent-enabled framework for structuring and building distributed systems on the internet

Size: px
Start display at page:

Download "Mobile agent-enabled framework for structuring and building distributed systems on the internet"

Transcription

1 Science in China Series F: Information Sciences 2006 Vol.49 No DOI: /s Mobile agent-enabled framework for structuring and building distributed systems on the internet CAO Jiannong 1, ZHOU Jingyang 2, ZHU Weiwei 1 & LI Xuhui 3 1. Internet and Mobile Computing Lab, Department of Computing, Hong Kong Polytechnic University, Hung Hom, KLW, Hong Kong, China; 2. State Key Lab of Novel Software Technologies, Nanjing University, Nanjing , China; 3. State Key Lab of Software Engineering, Wuhan University, Wuhan , China Correspondence should be addressed to Cao Jiannong ( csjcao@comp.polyu.edu.hk) Received May 8, 2006; accepted June 21, 2006 Abstract Mobile agent has shown its promise as a powerful means to complement and enhance existing technology in various application areas. In particular, existing work has demonstrated that MA can simplify the development and improve the performance of certain classes of distributed applications, especially for those running on a wide-area, heterogeneous, and dynamic networking environment like the Internet. In our previous work, we extended the application of MA to the design of distributed control functions, which require the maintenance of logical relationship among and/or coordination of processing entities in a distributed system. A novel framework is presented for structuring and building distributed systems, which use cooperating mobile agents as an aid to carry out coordination and cooperation tasks in distributed systems. The framework has been used for designing various distributed control functions such as load balancing and mutual exclusion in our previous work. In this paper, we use the framework to propose a novel approach to detecting deadlocks in distributed system by using mobile agents, which demonstrates the advantage of being adaptive and flexible of mobile agents. We first describe the MAEDD (Mobile Agent Enabled Deadlock Detection) scheme, in which mobile agents are dispatched to collect and analyze deadlock information distributed across the network sites and, based on the analysis, to detect and resolve deadlocks. Then the design of an adaptive hybrid algorithm derived from the framework is presented. The algorithm can dynamically adapt itself to the changes in system state by using different deadlock detection strategies. The performance of the proposed algorithm has been evaluated using simulations. The results show that the algorithm can outperform existing algorithms that use a fixed deadlock detection strategy.

2 886 Science in China Series F: Information Sciences Keywords: mobile agent, internet computing, distributed systems, deadlock detection. 1 Introduction Recent years have seen an explosion of interest in wide-area distributed applications running on a global network environment like the Internet. Due to its fast expansion, the Internet has become the platform of choice for many important applications that lead to commercial and social activities being available through various services provided on the Internet. Much work has been done on structuring and deploying distributed applications over the Internet, aiming at improving the performance and scalability of Web-based applications by employing a cluster of servers for efficiency, load balancing, and fault tolerance. Most of the work is based on traditional client-server technology and use message passing for coordination among the web servers. In this paper, we propose an alternative approach by using mobile agents. A mobile agent is a computer program that can autonomously migrate between network sites, i.e., it can execute at a host for a while, halts execution, dispatches itself (together with its data and execution state) to another host, and resumes execution there all under its own control [1,2]. Characteristics of mobile agents include mobility, autonomy, asynchronous execution, reduction in connectivity requirements, etc. Mobile agent is especially suitable for structuring and coordinating wide-area networking and distributed services that require intensive remote real-time interactions [3 5]. In a wide-area network environment like the Internet, there is a larger delay in message passing and greater variance of network topology. A pure message-passing based algorithm may not work well due to the following reasons. First, in order to exchange the dependency information of the servers for distributed coordination, many existing algorithms require several rounds of message exchanges, resulting in too many times of initialization and termination of communication between a set of sites, and thus a large overhead. Second, because of unpredictable delay of message propagation, especially when a message acknowledgement is required, there is a large possibility of inaccurate decisions resulting from the use of messages containing outdated information. As a result, timely and precise decision cannot be guaranteed. Furthermore, it is difficult for the message passing mechanism to accommodate the dynamic changes in the system that requires adaptive and scalable solutions. Compared with existing message passing based protocols, mobile agents offer several advantages. Taking the advantages of being in the same site as the peer process and autonomously making decisions, mobile agents lead to the reduction of remote communications and allow us to design algorithms that make use of the most up to date system state information for decision making. The algorithms can be made flexible and adaptive distributed coordination schemes according to the current system state due to mobile agent s ability to encapsulate policies and protocols. We present a novel framework for structuring and building distributed systems, which use cooperating mobile agents as an aid to carry out coordination and cooperation tasks

3 Mobile agent-enabled framework for structuring and building distributed systems on the internet 887 in distributed systems. The framework separates the policies of network services from their implementation, by encapsulating the underlying coordination and cooperation functionality for high availability, consistency and reliability in an easily re-configurable layer realized by cooperating mobile agents. The framework has been used for designing various distributed control functions such as load balancing and mutual exclusion in our previous work [4 6]. In this paper, we use the framework to propose a novel mobile agent-based approach to detecting deadlocks in distributed system, which demonstrates the advantage of being adaptive and flexible of mobile agents. Deadlock detection is an important problem in distributed systems [7]. Deadlock occurs due to the competition for shared resources, such as multiple database transactions requesting exclusive access to shared data items [8]. It causes the processes involved to be blocked indefinitely until the deadlock is resolved, thus degrades the system performance to an unbearable level. In a distributed system, deadlock handling becomes much more difficult because no site has the complete and current information about the system and resource dependencies. Many algorithms have been proposed to detect deadlocks in distributed systems [9 20]. There are also studies on the performance of different algorithms [21 25]. Using mobile agent to design distributed deadlock detection algorithms can help us overcome the above difficulties. For example, because mobile agent can package a conversation and dispatch itself to a remote host and interact with the peer locally, it allows us to design algorithms that make use of the up to date system state information for deadlock detection and reduce remote communications. Also, because mobile agents can embody the resource information and encapsulate the deadlock detection algorithms, a proactive and adaptive deadlock detection scheme could be employed according to the current system configuration and resource state. In addition, using the mobile agent technology allows us to provide clear and useful abstractions in distributed systems through the separation of different concerns the function of deadlock detection and network communication are filtered out from the server s logic and combined into one single layer, where mobile agents are used as a means to achieve the dual goals. In the proposed Mobile Agent Enabled Deadlock Detection (MAEDD) framework, cooperating mobile agents are used as an aid for distributed deadlock detection. Mobile agents are dispatched to collect and analyze the deadlock information distributed across the network sites and, based on the analysis, to detect and resolve the deadlocks. We present the design of an adaptive hybrid algorithm derived from the MAEDD framework. The algorithm can dynamically adapt itself to changes in the system state by using different deadlock detection strategies. The performance of the proposed algorithm has been evaluated using simulations. The results demonstrated that the algorithm could outperform existing algorithms that use a fixed deadlock detection strategy. The remainder of this paper is organized as follows. Section 2 describes the related work in distributed deadlock detection. Section 3 introduces the MAEDD framework for mobile agent enabled deadlock detection. A specific adaptive hybrid algorithm for distributed deadlock detection is introduced at section 4. We describe the performance

4 888 Science in China Series F: Information Sciences evaluation of the algorithm in section 5. Finally, section 6 concludes the paper. 2 Related work Recent years have seen an explosion of interest in wide-area distributed applications running on a global network environment like the Internet. Due to its fast expansion, the Internet has become the platform of choice for many important applications that lead to commercial and social activities being available through various services provided on the Internet. On the other hand, people have also seen the potential of the Internet on forming a supercomputing resource out of networked computers and research efforts have been made to develop wide area parallel computing infrastructure that provides access to high-end computational capabilities on the Internet [26 30]. Designing distributed control algorithms for distributed applications in such a wide-area computing environment faces challenging problems that have not appeared in traditional distributed systems based on local area networks. A wide area network environment like the Internet is characterized by its large scale, heterogeneity, long communication latency, unreliable network communication, and high variation of workload and network traffic. A distributed control algorithm that is to work well on the Internet must address these particular characteristics. As we mentioned earlier, most of existing works are based on the conventional message passing approach, which may encounter some difficulties. Mobile agents change the paradigm of distributed system design [31]. In traditional approach using message passing, the programmer is forced to have a global view of all the concurrent activities. In contrast, mobile agents can move through the network of sites to search for, filter and process information they need to accomplish their task. Using mobile agents, the programmer s point of view is that of a mobile agent, sitting in its driver s seat and guiding it on its way through the computation. The algorithm is designed from the point of view of the navigating mobile agents, rather than from the point of view of a stationary process communicating with other such processes [32]. We have developed a mobile agent-enabled framework with a group of mobile agent enabled servers in a distributed system. In traditional distributed client/server systems, the process interact with each other using message passing and the coordination functions are integrated into the server code. This mixes the application logic with the relatively independent operation for coordination or synchronization among the servers. Whenever a new resource is available or communication protocol is updated, the code on each site must be re-implemented. Using mobile agents allows us to provide clear and useful abstractions through the separation of different concerns, and develop flexible solution architecture for distributed systems among Internet server groups by having mobile agents carry out resource information collection and process coordination functions. In our framework, operations for maintaining the logical relationship between servers and mechanisms for providing the desired level of performance are functionally separated from the server application logic, and these mechanisms are operated by a collection of autonomous, cooperating mobile agents. Individual server has a well-defined interface with primitives that can be invoked by mobile agents to access the information about the server, such as the CPU statistics, the

5 Mobile agent-enabled framework for structuring and building distributed systems on the internet 889 memory statistics, the number of requests served, the usage of resources etc, and to perform some local operations. Cooperating mobile agents encapsulate policies and algorithms for their interaction and coordination in order to implement various distributed control functions [4 6]. In this paper, we describe a novel approach to distributed deadlock handling based our proposed framework. Deadlock detection is a fundamental distributed control problem. Many algorithms have been published on deadlock detection in distributed systems. These algorithms can be classified into three major categories: centralized, distributed, and hierarchical algorithms. In the centralized approach, a central coordinator maintains the global state information of the whole system and is responsible of detecting deadlocks in the system. In the hierarchical approach, the sites are hierarchically arranged, and a site only detects the deadlock involving its descendant sites. In this paper, we are concerned with distributed algorithms. The algorithms in the distributed approach can be classified into four categories [8], they are Path-Pushing Algorithm (WFG-based), Edge-Chasing Algorithm (Probe-based), Diffusing Computation and Global State Detection. Path-pushing algorithms maintain an explicit Wait-for-Graph (WFG). A WFG consists of a set of processes {P 1, P 2,, P n } as the node set. An edge (P i, P j ) exists in the graph if and only if P i is waiting for a resource that is held by P j [33]. Each site periodically builds a local WFG by collecting its local wait dependencies, then searches for any cycle in it and tries to resolve the cycles. After that, every site sends its local WFG to its neighbouring sites. Each site updates its local WFG by inserting the wait dependency received, and detects the cycles in the updated WFG. Later, the updated WFG is passed along to the neighbouring sites again. This procedure will be repeated until some sites finally detect the deadlock or announce no deadlock. The most famous algorithm in this category is Obermarck s algorithm [18] which was implemented in System R *. Instead of explicitly building the WFG, Edge-chasing algorithms send a special message called probe to detect the deadlocks. A process (initiator) sends the probes to each of the processes holding the locks it is waiting for. Upon receiving such a probe message, a process forwards it to all the processes it is waiting for. It is assumed that the probe contains information to identify the initiator. If the initiator receives a probe sent by itself, it can then announce a deadlock detected because the probe must have travelled a cycle. In Mitchell and Merritt s Algorithm [17], a probe consists of a single number that uniquely identifies the initiator. The probe travels along the edges in the opposite direction of the global WFG, and when it returns to its initiator, a deadlock is detected. In diffusing computation algorithms, a process that suspects a deadlock starts a diffusing computation. When the algorithm starts, the initiator sends messages to all the processes it is waiting for. After receiving such a message, a process forwards it to all the processes it is waiting for. We say that diffusing computation grows by the message sending. Processes receive replies from their successors, and further send reply messages to their predecessor. We call diffusing computation shrink by the message receiving. When such a diffusing computation shrinks back to its initiator, it terminates. The initiator will then detect the deadlock. Chandy [10] implements this kind of algorithm under the

6 890 Science in China Series F: Information Sciences OR model (deadlock models will be introduced in the next section). Several processes may initiate the diffusing computations at the same time to detect the deadlock. The messages in the deadlock computation have the form query (i, j, k) or reply (i, j, k), which denotes that the message belongs to a deadlock detection session initiated by process i, being sent from process j to process k. If a blocked process k receives query (i, j, k), it propagates query (i, k, m) to all the processes in its dependent set and records the number of queries sent. Only if process k receives the replies of all the queries it sent, it send reply (i, k, j) to its predecessor j. If the initiator receives replies of all the queries sent, then the initiator is deadlocked, because there must exist a sequence of permanently blocked processes. Global state detection algorithms [9] attempt to obtain a consistent snapshot of the global WFG, and check for a cycle in it. The processes communicate by sending messages, through communication channels. Sending and receipt of messages are called events. The local state of a process consists of the history of all the events that occurred on it [34]. A consistent global state (snapshot) can be obtained by propagating the markers along the channels of the system. Deadlock detection then can be performed by using the snapshot. In section 4, we will describe an adaptive hybrid algorithm combining the different schemes described above and dynamically switching between them according to the current state of the system. 3 The MAEDD scheme of distributed deadlock detection Fig. 1 illustrates the MAEDD scheme based on our mobile agent-enabled framework. There are two types of agents: MDDA (Mobile Deadlock Detection Agent) and SA (Static Agent). A SA is responsible for managing resource location table which records where the available resource is. It can also interact with applications running on that server through a well-defined interface with simple and standard primitives. By invoking these primitives, the static agents are able to inform the application processes that the requests for some resource are involved in a deadlock cycle so that the processes must abort to release the occupied resource to other processes. At the same time, the applications can request the static agents to apply for a needed resource. The agent will look up for the Resource Location table to find out on which site the desired resource resides (if there are more than one resources available in the system, the agent will select one based on a certain scheme), and update an entry in the Request-Block Information table correspondingly. MDDAs are embedded with their own specified algorithms. They are capable of navigating through the underlying network and performing tasks at the sites they visit. MDDAs are initialised and dispatched by SAs. A MDDA can create new mobile agents by cloning itself, and can communicate with other agents via message exchange. A MDDA can adjust its deadlock detection strategy according to changes in the underlying environment, such as server status, network conditions, and network topology. Such change is either discovered by MDDA itself or notified by SA. SAs reside on the mobile

7 Mobile agent-enabled framework for structuring and building distributed systems on the internet 891 Fig. 1. The MAEDD Scheme. agent platforms, installed on each site of the system. When a SA suspects that a deadlock occurs, it can take two actions: 1) dispatch a MDDA which encapsulates the deadlock detection strategy/algorithm, together with necessary data, and then dispatch it to the network; or 2) send a message to an existing MDDA to report the potential deadlock, and let that MDDA to detect deadlock for it. The algorithm code can be carried by MDDA, or pre-installed on every system site so that it does not need to be transferred with a migrating MDDA. To make the framework more flexible, a caching mechanism can also be provided, which can ensure that the code of the algorithm, if not pre-installed in a site, will be transferred only at the first time being used. All these methods can greatly reduce the agent size and hence save network traffic. On performing the algorithm, mobile agents interact with the static agent on each server they visited for exchanging information specific for that server. If necessary, several cooperating mobile agents can be dispatched to work together to find the suspicious deadlock cycle. Once a deadlock cycle is detected by a mobile agent, it will select a victim process according the deadlock resolving algorithm embedded by informing the corresponding static agent to terminate the application process. From the framework presented above, we can see that some issues remain to be addressed in designing a specific solution and this makes our framework a flexible one. The issues include which distributed deadlock detection and resolve strategies will be employed, who and how to manage the resource location and request-block information table (the static agent or the application itself), and even the underlying communication protocol and other details. In the following section, we will describe a particular mobile agent enabled distributed deadlock detection algorithm under the proposed MAEDD framework.

8 892 Science in China Series F: Information Sciences 4 A mobile agent enabled adaptive algorithm for distributed deadlock detection Although there are many traditional message-passing algorithms, it is difficult to choose an algorithm best suit all requirements. Researches show that different algorithms fit different system conditions [7, 23]. In terms of deadlock detection, a distributed system can be characterized by its scale and workload. The system scale is defined as the number of sites in a distributed system. The system load is represented by the number of concurrent processes in the system (called concurrency level) and the average number of resources requested by each process (called process size). System load indicates the deadlock probability of the system, since both theoretical analyses [24] and simulation results [25] show that deadlock frequency increases rapidly as concurrency level and process size increase. Different algorithms are designed to best suit different system scale and system load. For example, Bukhres [23] compared the centralized and distributed deadlock detection approaches. The results indicate that the former outperforms the latter when the number of concurrent processes is low, while opposite results rise when such number increases beyond a certain value. Singhal [7] pointed out that different deadlock handling approaches should be adopted in systems with different deadlock probabilities. As discussed early, one significant advantage of mobile agent paradigm is flexibility, by which we can develop an adaptive and efficient deadlock detection algorithm. If the system is highly dynamic, a dynamic and adaptable deadlock handling approach is demanded. Using the MAEDD framework we can provide such a solution, by encapsulating in MDDAs a set of deadlock detection algorithms and by enabling the MDDAs to be aware of the changes in the system conditions and autonomously switch to the most suitable algorithm. The adaptive hybrid algorithm described here consists of two components: (1) a suite of algorithms derived from traditional message-passing algorithms that best suit different system conditions, and (2) algorithm selection and switching strategies, which are used to determine when and how the MDDA switches from one algorithm to another. In section 4.1, we describe the system model and the data structures used by the adaptive hybrid algorithm. Section 4.2 introduces the components algorithms used in the hybrid algorithm. Section 4.3 describes the rules used for selecting and switching to a component algorithm based on the current system condition. Section 4.4 describes the activities of agents to resolve a deadlock once it is detected. 4.1 System model and data structures As illustrated in Fig. 1, each site in the distributed system has the mobile agent platform installed on it. The sites, inter-connected by a communication network, are identified as S i (i =1,, n), where n is the total number of the sites). On each site S i, one or more application processes reside, each has a global unique identifier, such as P i1, P i2, etc. The processes request resources according to their own requirements. The requested resource may be held by other processes, so the requesting process will be blocked until the requested resource is released. There are different deadlock models depending on the types of requests for accessing the resources. These models include the single-resource model, the AND model, the OR

9 Mobile agent-enabled framework for structuring and building distributed systems on the internet 893 model, and the p-out-of-q model [8]. The most widely adopted model is the AND model. In this model, processes are allowed to request more than one resource a time, and a process is blocked until it has acquired all the resources it requested. Deadlock detection under this model is complex because a node in the WFG may have an out degree larger than one, hence a process may be involved in multiply cycles simultaneously. In this paper, we will consider the AND model. We define four states for each process: active, blocked, terminate, and abort. At any time, a process can be in only one of the four states. A process is said to be active when it performs tasks normally or requests an idle resource. It becomes blocked if it requests resources currently held by others. After obtaining all the resources it required, the process changes its state back to active. At the end of the execution, the process enters the terminate state, by releasing all the resource it holds. If a process is chosen as a victim in a deadlock detection procedure, it enters the abort state. The set of processes that hold resource for which a process P is waiting for is denoted by Block(P). The set of processes that are waiting for resources hold by process P is denoted by Request(P). The processes in the same set can reside in one site or over several sites. The relationship among the processes with regard to resource-dependency is often represented by a directed graph, known as the Wait for Graph (WFG), where every node represents a process and an edge depicts the Request-Block relation between a pair of process. For each process P Ki in the set of Request (P K ), there is a corresponding edge initialised from P Ki to P K. Detecting a deadlock is equal to finding a cycle in WFG. Every site accommodates a static agent (SA) which maintains a data structure called Local Wait-For Graph (LWFG). LWFG is a list of entries representing the edges. The format of the LWFG is as below: Data structure of Local WFG (LWFG) Request Process ID Blocking Process ID Remote Host Flag Time Elapsed Each entry records the requesting and releasing information for a pair of processes. If the blocking process does not reside on the same site as the requesting process, the field Remote Host will contain the ID of the site on which the blocking process resides; otherwise, it is set to the local site s ID. A flag variable is used to mark the status of the entry. A value of 1 for Flag means that the entry records a newly formed edge, and has not been read by the MDDA; a value of 1 means that the entry records a newly erased edge, but has not been read by MDDA yet; a value of 0 means that the entery has been read by MDDA and should be cleared. In addition, a Time Elapsed variable is used to keep track of how long the edge has been formed by increasing its value at intervals. The SA may need to update its LWAG from time to time, by using the following algorithm. When a process P i becomes blocked, by another process P j Insert a new entry (P i, P j, P j s host, 1, 0) into LWFG When P j release the holding resource to P i

10 894 Science in China Series F: Information Sciences Insert a new entry (P i, P j, P j s host, 1, 0) into LWFG. For each time unit interval For each entry with flag = 1, increase Time Elapsed by one For each entry with flag = 0, delete it In our algorithm, one or more MDDAs can be used to detect and resolve deadlocks in the distributed system. When roaming over the network, the MDDA must carry a Global Wait-For Graph (GWFG), which is a data structure similar in format to LWFG. The data structure of the GWFG is shown as below: Data structure of Global WFG (GWFG) Request Process ID Request Host Blocking Process ID Blocking Host Another data structure carried by the MDDA is called probe, which is a tuple <Initiator PID, sender PID, receiver PID>, indicating that the agent is created by the process initiator, and sent from the process sender to the process receiver. The MDDA also carries a list of sites that either has been or will be visited, i.e., an itinerary, which is named S-List. The MDDA have two control variables for the purpose of selecting and switching to a component algorithm. One variable is Average Recent Sleeping Intervals (ARSI), which denotes how long the MDDA has been in the sleeping state. A small value of this variable implies that the MDDA has been frequently awoken. Another variable is S_list length (SLL), which represents the number of hosts that MDDA should visit. See section 4.3 for more details. 4.2 Component algorithms As mentioned before, our adaptive hybrid algorithm combines different deadlock detection schemes and dynamically switches between them. More specifically, the hybrid algorithm is composed of three different algorithms, namely, MA-enabled Centralized algorithm, MA-enabled Path Push algorithm and MA-Probe algorithm. (i) MA-enabled centralized algorithm (MA-centralized). The design of this algorithm is inspired by centralized deadlock detection algorithms. A single MDDA works as a single coordinator, maintaining the global system information and checking deadlocks in the system. Its distinction to a traditional message-passing algorithm is that, rather than let all sites report their status to the central coordinator, the central coordinator (a MDDA) actively migrates to these sites, collecting their local information to update the embedded GWFG. One advantage of this approach is that the MDDA can collect the most up-to-date information of a site. Different from the other two component algorithms that is trigged by a timeout approach, this algorithm is continuously executed by the MDDA. When initiated, the MDDA s itinerary consists of all the sites in the system in a random order. When arrived at a certain site, the MDDA will adjust its itinerary, by moving those requesting sites to the head of the S_list, and moving the current local host to the

11 Mobile agent-enabled framework for structuring and building distributed systems on the internet 895 end of the list. The pseudocode of the MA-Centralized algorithm is shown in Fig. 2. MDDA is created by a SA in a designated site On initiation: Merge LWFG with GWFG that is originally empty Create a S_list to contain all sites, in a random order Migrate to first site in S_list On arrival at a new site S i : Merge LWFG with GWFG Analyze GWFG If cycle is found Declare Deadlock, and resolve it End If For each S j which is in remote host field of an entry Move S j with site at the head of S_list. End for Move S i to the end of S_list. Migrate to the first site in S_list Fig. 2. Algorithm MA-Centralized. The operation of merging LWFG with GWFG is done using the following algorithm: For each entry (P i, P j, P j s host, 1, t) in LWFG with flag = 1, Set its flag = 0 Insert a new entry (P i, localhost, P j, P j s host) in GWFG For each entry (P i, P j, P j s host, 1, t) in LWFG with flag = 1, Set its flag = 0 Delete entry (P i, localhost, P j, P j s host) in GWFG Assuming that the deadlock frequency of the system is R per time unit, and the time MDDA takes to migrate from one site to another is T units. In a period of P time units, the MDDA should have P/T migrations, and detect R*P deadlocks. Hence the average number of MA migrations per deadlock is (P/T)/(R*P) =1/RT. This shows that in a giving time interval, the traffic overhead caused by the algorithm is a fixed value, and the more deadlocks, the less average traffic cost per deadlock. Since a heavily loaded system usually has a high deadlock frequency, this algorithm suits heavy loaded systems. Moreover, the worst case deadlock duration of algorithm is N*T (N is the number of sites in the system). If more sites join the system, a single MDDA will need a longer time to

12 896 Science in China Series F: Information Sciences travel though the network, which leads to the slow updating of the global information, and hence longer deadlock detection time. In summary, this algorithm works well in heavy loaded and small or medium sized system. (ii) MA-enabled path-push algorithm (MAPP). This algorithm adopts the idea of the Path-Push algorithm [18]. From time to time, the SA on a site checks the state of all local processes and resources, in order to maintain a local WFG based on the process-to-process relationship. When a process is blocked for a period that exceeds a predefined threshold value (so called timeout ), the SA will first analyze the local WFG to find cycles. If any cycle is found, the SA will directly resolve this deadlock using local deadlock resolution policy. If the suspicious deadlock cannot be solved locally, the SA will then initialise and dispatch a MDDA. The MDDA maintains a global WFG, which is formed by merging the local WFGs distributed among several sites. The MDDA travels to different sites, collecting their local WFGs and merging them to obtain the global WFG, until a cycle is found in the global WFG. Then MDDA will resolve the deadlock by using the global deadlock resolution policy and dispose itself afterwards. The sequence of sites to be visited is stored in a travelling list, S_List, carried along by the MDDA. The travelling list is initially empty, and at each site been visited (including the starting site), the MDDA will append all sites containing processes that blocking a local process to the end of the S_List, if not been appended yet. After travelling all the sites in the S_List and still not finding any deadlock, the MDDA announces no deadlock, and disposes itself. The pseudocode of the MAPP algorithm is shown in Fig. 3. On arrived at a site: Merge LWFG with GWFG Checking cycle on GWFG If cycle found Declare Deadlock, and resolve it Else For any pair of processes P i, P j, if P i is local process and P j is End If remote process, and P j Block(P i ), Append P j s Host to S_list If no unvisited site in S_List Declare NO deadlock Dispose itself Else Migrate to the last appended site in S_List End If Fig. 3. Algorithm MAPP.

13 Mobile agent-enabled framework for structuring and building distributed systems on the internet 897 Assuming only one MDDA is used during the algorithm lifecycle, the overhead of network traffic is relatively low. However, the single MDDA needs to travel through all the sites involved in deadlock sequentially. In a large and heavy-loaded system, a large number of sites may be involved in a deadlock; as a result, the detection time becomes too long. In summary, MAPP is more suitable for system with light load and/or small scale. (iii) MA-enabled probe algorithm (MA-probe). The probe algorithm is originally proposed by Chandy-Misra-Hass [10]. We redesigned it by using mobile agents, and with some optimization. When a process i waiting for a resource is timeout, its corresponding SA starts the deadlock detection. If a local cycle does not exist, SA creates and dispatches one or more MDDAs, each for a remote process waited by process i. When a MDDA arrives at such a remote site and finds that the process further waits for other processes in other m sites, the MDDA will clone itself m 1 times and sends them to the m 1 sites. These MDDAs carry the information of the initiator i, and record all the blocking processes at the sites visited. When a MDDA arrives a remote site, and finds that a process wait for process i or any other process being recorded, it announces a deadlock and disposes itself. When MDDA initiate probe algorithm at certain host For all process P a, P b such that P i is locally waiting for P a, and P a is remotely waiting for P b, Create a MA (i, a, b), and dispatch to remote host End For When MDDA with probe (i, j, k) come to a remote host: End If End If If P k is not idle, and P k is not in visited list Add P k to visited process list If k is blocking on i, or a process on visited list Else End For Declare that P i is deadlocked For all P a, P b such that P i is locally waiting for P a and P a is remotely waiting for P b, Create a MA (i, a, b), and dispatch to remote host Fig. 4. Algorithm MA-probe. The pseudocode of the MA-Probe algorithm is shown in Fig. 4. A MDDA carries a proble which is a tuple <i, j, k>, where i is initiator s PID, j is the PID of the local proc-

14 898 Science in China Series F: Information Sciences ess that waits for the remote process, and k is the remote blocking process s PID. When the MDDA visits the remote host, it checks the LWFG. If it finds process k waiting for i, or k is waiting for any process recorded, it detects a deadlock. If k is active, MDDA should also dispose itself. Otherwise, for each remote process k waiting for and not visited by the MDDA, the MDDA clones itself and sends the new MDDA there. The original Chandy s algorithm can only detect those deadlock cycles containing the initiator. The MA-Probe algorithm, however, can detect deadlocks where the initiator is not a part of the cycle. This is because MDDA carries not only the initiator s information but also all the sites visited. Moreover, MA-Probe can optimize the deadlock resolution easily since the MDDA has the knowledge of the entire cycle. The MA-Probe algorithm employs multiply MDDAs, hence consumes large network traffic, as well as other system resource. On the other hand, it detects deadlock fast since multiply agents detect deadlock in parallel. Its deadlock detection time is proportional to the deadlock length, which increases slowly as the system scale and load increase. Hence, this algorithm is suitable for large scale and heavily loaded system. 4.3 Algorithm selection and switching As we can see from the above discussion, the three components algorithms suit different system conditions. We want to integrate them to design a hybrid deadlock detection algorithm, which is self-adaptive to a dynamic environment. The idea is to encapsulate the component algorithms in the MDDA, and enable the MDDA to autonomously make decisions on how to choose the most appropriate algorithm for execution under a given condition. On initiation, a MDDA is created by a SA on a designated site, and it may perform deadlock detection or remain idle waiting for the next job. We define four states for a MDDA: sleeping, MA-Centralized, MA-Probe, and MAPP. The sleeping state means that the MDDA is staying in certain site without doing any job, until waken up by an external request. The latter three states mean that the MDDA is in execution of one of the three different algorithms, respectively. The state transfer follows six rules, as shown in Fig. 5. Fig. 5. State Transfer of MADD. The rules are defines as follows: Rules 1: A sleeping MDDA is awoken when it receives a timeout report from a SA. It

15 Mobile agent-enabled framework for structuring and building distributed systems on the internet 899 will migrate to that SA, and starts executing the MAPP algorithm there. (If the MDDA is awake when receiving such a timeout report, it appends the requesting host to the travelling plan.) Rules 2: After a MDDS finishes the execution of the MAPP algorithm, it returns to the sleeping state. Rules 3: If a MDDA executing MA-Centralized algorithm cannot find any deadlock for a period longer than the threshold T, which implies a low deadlock probability or a large-scale of the system, it will return to the sleeping state, and waits for a timeout request to wake it up. This is because, since the deadlock is unlikely to occur, letting the MDDA keep to be active for detecting deadlocks is a waste of system resource. Rules 4: If a sleeping MDDA is awoken very frequently by timeout reports, it switches to the MA-Centralized state. In this case, it is reasonable to let MDDA actively detect deadlock, rather than passively waiting for a timeout report. After entering the MA-Centralized state, all further timeout reports will be ignored. Rules 5: If a MDDA in execution of the MAPP algorithm finds out that the number of unvisited sites in S_list exceeds the threshold L, it enters the MA-Probe state. In this case, it is likely that many sites are involved in deadlocks, and if a single MDDA is used the deadlock detection will be very slow. That is why the MDDA switches to executing the MA-probe algorithm. To achieve this, the MDDA creates children agents by cloning itself and dispatches them to each unvisited site in the travelling plan. Rules 6: After finishing the execution of the MA-Probe algorithm, the parent MDDA will enter the sleeping state, and wait for the next deadlock detection request. Since the data structures used by the MA-Centralized, MAPP and MA-Probe algorithms are identical, switching between these algorithms is easy to achieve. Two control variables are used to determine when and how to do the the switching: one is Average Recent Sleeping Intervals (ARSI), which denotes how long the MDDA has been in the sleeping state, and another is S_list length (SLL), which represents the number of hosts that MDDA should visit. When a sleeping MDDA is awoken by a timeout alert, it will choose to perform MAPP or MA-Centralized, depending on the value of ARSI. If ARSI is less than a predefined threshold, indicating that the MDDA is frequented awoken, the MDDA will choose the MA-Centralized algorithm. Otherwise, the MDDA will choose the MA-Probe algorithm. When executing the MAPP algorithm, the MDDA monitors the value of SLL, and if SLL exceed a threshold L, MDDA will switch to the MA-probe algorithm. 4.4 Deadlock resolution As mentioned before, deadlocks can be detected by a SA (locally) or by a MDDA (globally). Once a deadlock is detected, it is resolved by using the following algorithms: Resolving a local deadlock by SA: If a cycle is found in LWFG

16 900 Science in China Series F: Information Sciences Select a process with lowest priority in the cycle as victim. Abort victim Delete all entries containing victim in LWFG Resolving a global deadlock by MDDA: If a cycle is found in GWFG Select a process with lowest priority in the cycle as victim. Send an abort message to victim s SA to abort it Delete all entries containing victim in GWFG Abort a victim process P i : If P i is selected as victim by SA, or been informed by MDDA as a victim Release and restore all the resource occupied by P i For each of the released resource Grant it to a process that has waited the longest time for it 5 Performance evaluation We have evaluated the performance of the proposed adaptive hybrid algorithm through simulations. The performance metrics used for the evaluation are deadlock duration and average number of MDDA migratios per deadlock. The former represents the time complexity for an algorithm to detect and resolve a deadlock, which is defined as the time interval between a deadlock s formation and resolution. It is equal to the sum of deadlock detection time and the deadlock resolution time. The latter represents the communication overhead for an algorithm, which is defined as the number of MDDA migrations divided by the number of deadlocks in a period. This metric considers traffic overhead not only when deadlock is present but also when no deadlock exists. Our simulation models a dynamic distributed system, in which hosts can join and leave dynamically. As the result, the total number of hosts and processes can change from time to time. The number of resources a process can request also varies. The parameters and their value setup are shown in Table 1. A distributed system consists of N hosts, and on which n processes equally distributed. There are totally R exclusively access and non-preempt resources in the system, which are equally distributed across the system sites. Each process can randomly request exactly L resources in arbitrary time, where L is called process size. These requested resources have probability P to be in remote host, where P is fixed to 0.5 in all simulations. A simulation is divided into time slice. During a time slice each active process can independently decide whether request one or more resource, by sending request message. If the requested resource is hold by another process, or being requested by a process with higher priory at the same time, the request will be put in the waiting queue

17 Mobile agent-enabled framework for structuring and building distributed systems on the internet 901 and the process will get a wait message; otherwise the requesting process will be granted the resource. If a process obtains all the resources, it will execute for a while and then terminate, releasing all the resources hold by it. After that a new process will be created immediately, hence the process number per host is fixed. Table 1 Parameters in Simulation Parameters Description Value N number of hosts in a distributed system 5 to 40 R number of resource in whole system 50 N n number of concurrent processes in whole system (multiprogramming level) 5 to 40 L number of resource requested by a process (process size) 2 to 10 P possibility of a request be remote fixed to 0.5 Figs. 6 and 7 compare the adaptive hybrid algorithm with the three component algorithms executed individually. The results show that the adaptive hybrid algorithm is able to adapt to the changes in the system environment and choose a best strategy for deadlock detection. Fig. 6. Performance of the algorithms with dynamic system workload. (a) (c) Deadlock duration; (d) (f) MA migrations per deadlock. MAPP, MA-centralized, MA-probe, Hybrid.

18 902 Science in China Series F: Information Sciences Fig. 7. Performance of the algorithms with dynamic changes to the system scale. (a), (b) Deadlock duration; (c), (d) MA migrations per deadlock. MAPP, MA-centralized, MA-probe, Hybrid. Fig. 6 shows the performance of the algorithms with dynamic system workload. Fig. 6(a) and (d) illustrate the deadlock duration and MA migration per deadlock, respectively, when the system starts with a light load and, as the time passes, changes to a heavy load. Fig. 6(b) (e) show the opposite situation. Fig. 6(e) and Fig. 7(c) display the results when the system changes back and forth between heavy load and light load conditions (Changes take place every 1000 time slice.) Fig. 6(a) (c) show the performance of the algorithms in terms of the deadlock duration as a function of the number of concurrent processes. As we can see, the adaptive hybrid algorithm outperforms MAPP and MA-probe at low concurrency level. This is because, for the latter two algorithms, deadlock detection is triggered after a timeout period, while the adaptive hybrid algorithm can choose to continual maintain the GWFG and detect deadlock at earliest stage. While at high concurrency level, the adaptive hybrid algorithm outperforms MAPP and MA-Centralized. This is because MA-Centralized and MAPP detect deadlock slowly when many processes are involved in deadlock. Fig. 6(d) (f) show the performance of the algorithms in terms of the number of mobile agent migration per deadlock, as the number of concurrent processes changes. We can observe that the adaptive hybrid algorithm greatly reduces the network traffic. The reason is that the adaptive hybrid algorithm turns to the timeout approach on infrequent deadlock condition, thus avoids a lot useless communication cost. Furthermore, it can avoid the multi-invocation problem where more than one process invokes a deadlock detection algorithm simultaneously. Fig. 7 compares the performance of the algorithms with dynamic changes to the sys-

19 Mobile agent-enabled framework for structuring and building distributed systems on the internet 903 tem scale. For Fig. 7(b) and (c), the system starts with a small number of sites, and after ever 1000 time slices, a certain number of sites will join the system. Fig. 7(c) and (d) show the opposite situation, on which the system periodically scales down. Fig. 7(a) and (c) show the results in terms of deadlock duration as a function of process size. We can see that the adaptive hybrid algorithm outperforms all the three component algorithms when they are executed individually. In the adaptive hybrid algorithm, a MDDA will clone itself for parallel searching when too many sites are involved in dead lock. Fig. 7(b) and (d) illustrate the total number of MA migrations as a function of process size. The results show that the adaptive hybrid algorithm reduces the network traffic. The MA-probe algorithm has more communication overhead with large process size since multiply MDDA is used, while the adaptive hybrid algorithm only use multiply MDDA when necessary. 6 Conclusions In this paper, we have proposed a novel approach and framework of designing distributed control functions for large-scale distributed systems such as the Internet. We focused on the distributed deadlock detection problem as an example to illustrate our approach. We developed MAEDD, a framework for distributed deadlock detection using mobile agent. The mobile agent paradigm has several advantages over the traditional message-passing algorithm, including providing abstraction with separation of concerns, overcoming network latency, reducing communication traffic, and more importantly, flexibility and adaptability to changes in the system. In particular, we have presented an adaptive hybrid algorithm derived under the MAEDD framework. Simulations have been carried out to evaluate the performance of the proposed algorithm. The results show that the proposed algorithm is able to adjust its deadlock detection strategy adaptively according to the current system condition. In a dynamic environment, it outperforms the existing algorithms when they are executed alone. Our future work includes the optimization of the adaptive hybrid algorithm. We will investigate how to incorporate more component algorithms into the hybrid algorithm, and how to design the rules for selecting and switching between them. We will also conduct more simulations to further evaluate the performance of the adaptive algorithm. Acknowledgements This work was partly supported by University Grant Council of Hong Kong (CERG Grant PolyU 5183/04E), the Hong Kong Polytechnic University (ICRG Grant G-YD63), and the 973 Program of China (Grant No. 2002CB312002). References 1 Lange D B, Oshima M. Seven good reasons for mobile agents. Communication of the ACM, 1999, 42(3): 88 89[DOI] 2 Pham V A, Karmouch A. Mobile software agents: An overview. IEEE Communications, 1998, 36(7): 26 37[DOI]

Distributed Deadlock

Distributed Deadlock Distributed Deadlock 9.55 DS Deadlock Topics Prevention Too expensive in time and network traffic in a distributed system Avoidance Determining safe and unsafe states would require a huge number of messages

More information

Distributed Deadlock Detection

Distributed Deadlock Detection Distributed Deadlock Detection COMP 512 Spring 2018 Slide material adapted from Dist. Systems (Couloris, et. al) and papers/lectures from Kshemkalyani, Singhal, 1 Distributed Deadlock What is deadlock?

More information

Assignment 5. Georgia Koloniari

Assignment 5. Georgia Koloniari Assignment 5 Georgia Koloniari 2. "Peer-to-Peer Computing" 1. What is the definition of a p2p system given by the authors in sec 1? Compare it with at least one of the definitions surveyed in the last

More information

An agent-based peer-to-peer grid computing architecture

An agent-based peer-to-peer grid computing architecture University of Wollongong Research Online Faculty of Informatics - Papers (Archive) Faculty of Engineering and Information Sciences 2005 An agent-based peer-to-peer grid computing architecture J. Tang University

More information

UNIT 02 DISTRIBUTED DEADLOCKS UNIT-02/LECTURE-01

UNIT 02 DISTRIBUTED DEADLOCKS UNIT-02/LECTURE-01 UNIT 02 DISTRIBUTED DEADLOCKS UNIT-02/LECTURE-01 Deadlock ([RGPV/ Dec 2011 (5)] In an operating system, a deadlock is a situation which occurs when a process or thread enters a waiting state because a

More information

Multiprocessor and Real- Time Scheduling. Chapter 10

Multiprocessor and Real- Time Scheduling. Chapter 10 Multiprocessor and Real- Time Scheduling Chapter 10 Classifications of Multiprocessor Loosely coupled multiprocessor each processor has its own memory and I/O channels Functionally specialized processors

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

CHAPTER 7 CONCLUSION AND FUTURE SCOPE

CHAPTER 7 CONCLUSION AND FUTURE SCOPE 121 CHAPTER 7 CONCLUSION AND FUTURE SCOPE This research has addressed the issues of grid scheduling, load balancing and fault tolerance for large scale computational grids. To investigate the solution

More information

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to:

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to: F2007/Unit5/1 UNIT 5 OBJECTIVES General Objectives: To understand the process management in operating system Specific Objectives: At the end of the unit you should be able to: define program, process and

More information

Course: Operating Systems Instructor: M Umair. M Umair

Course: Operating Systems Instructor: M Umair. M Umair Course: Operating Systems Instructor: M Umair Process The Process A process is a program in execution. A program is a passive entity, such as a file containing a list of instructions stored on disk (often

More information

An Analysis and Improvement of Probe-Based Algorithm for Distributed Deadlock Detection

An Analysis and Improvement of Probe-Based Algorithm for Distributed Deadlock Detection An Analysis and Improvement of Probe-Based Algorithm for Distributed Deadlock Detection Kunal Chakma, Anupam Jamatia, and Tribid Debbarma Abstract In this paper we have performed an analysis of existing

More information

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Donald S. Miller Department of Computer Science and Engineering Arizona State University Tempe, AZ, USA Alan C.

More information

Multiprocessor and Real-Time Scheduling. Chapter 10

Multiprocessor and Real-Time Scheduling. Chapter 10 Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems

More information

A Concurrent Distributed Deadlock Detection/Resolution Algorithm for Distributed Systems

A Concurrent Distributed Deadlock Detection/Resolution Algorithm for Distributed Systems A Concurrent Distributed Deadlock Detection/Resolution Algorithm for Distributed Systems CHENG XIN, YANG XIAOZONG School of Computer Science and Engineering Harbin Institute of Technology Harbin, Xidazhi

More information

Distributed Deadlock Detection

Distributed Deadlock Detection Distributed Deadlock Detection Slides are based on the book chapter from Distributed Computing: Principles, Algorithms and Systems (Chapter 10) by Kshemkalyani and Singhal Pradipta De pradipta.de@sunykorea.ac.kr

More information

AN EFFICIENT DEADLOCK DETECTION AND RESOLUTION ALGORITHM FOR GENERALIZED DEADLOCKS. Wei Lu, Chengkai Yu, Weiwei Xing, Xiaoping Che and Yong Yang

AN EFFICIENT DEADLOCK DETECTION AND RESOLUTION ALGORITHM FOR GENERALIZED DEADLOCKS. Wei Lu, Chengkai Yu, Weiwei Xing, Xiaoping Che and Yong Yang International Journal of Innovative Computing, Information and Control ICIC International c 2017 ISSN 1349-4198 Volume 13, Number 2, April 2017 pp. 703 710 AN EFFICIENT DEADLOCK DETECTION AND RESOLUTION

More information

Load Balancing in Distributed System through Task Migration

Load Balancing in Distributed System through Task Migration Load Balancing in Distributed System through Task Migration Santosh Kumar Maurya 1 Subharti Institute of Technology & Engineering Meerut India Email- santoshranu@yahoo.com Khaleel Ahmad 2 Assistant Professor

More information

Interprocess Communication By: Kaushik Vaghani

Interprocess Communication By: Kaushik Vaghani Interprocess Communication By: Kaushik Vaghani Background Race Condition: A situation where several processes access and manipulate the same data concurrently and the outcome of execution depends on the

More information

Multi-cycle Deadlock Detection Algorithm for Distributed Systems

Multi-cycle Deadlock Detection Algorithm for Distributed Systems Asian Journal of Applied Science and Engineering, Volume 5, No 2/2016 ISSN 2305-915X(p); 2307-9584(e) Multi-cycle Deadlock Detection Algorithm for Distributed Systems Mohammad Ariful Islam 1*, Md. Serajul

More information

Distributed Fault-Tolerant Channel Allocation for Cellular Networks

Distributed Fault-Tolerant Channel Allocation for Cellular Networks 1326 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 18, NO. 7, JULY 2000 Distributed Fault-Tolerant Channel Allocation for Cellular Networks Guohong Cao, Associate Member, IEEE, and Mukesh Singhal,

More information

Process Management And Synchronization

Process Management And Synchronization Process Management And Synchronization In a single processor multiprogramming system the processor switches between the various jobs until to finish the execution of all jobs. These jobs will share the

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part II: Data Center Software Architecture: Topic 3: Programming Models Piccolo: Building Fast, Distributed Programs

More information

Load Balancing Algorithm over a Distributed Cloud Network

Load Balancing Algorithm over a Distributed Cloud Network Load Balancing Algorithm over a Distributed Cloud Network Priyank Singhal Student, Computer Department Sumiran Shah Student, Computer Department Pranit Kalantri Student, Electronics Department Abstract

More information

Implementation and modeling of two-phase locking concurrency control a performance study

Implementation and modeling of two-phase locking concurrency control a performance study INFSOF 4047 Information and Software Technology 42 (2000) 257 273 www.elsevier.nl/locate/infsof Implementation and modeling of two-phase locking concurrency control a performance study N.B. Al-Jumah a,

More information

Module 15: Network Structures

Module 15: Network Structures Module 15: Network Structures Background Topology Network Types Communication Communication Protocol Robustness Design Strategies 15.1 A Distributed System 15.2 Motivation Resource sharing sharing and

More information

A Resource Discovery Algorithm in Mobile Grid Computing Based on IP-Paging Scheme

A Resource Discovery Algorithm in Mobile Grid Computing Based on IP-Paging Scheme A Resource Discovery Algorithm in Mobile Grid Computing Based on IP-Paging Scheme Yue Zhang 1 and Yunxia Pei 2 1 Department of Math and Computer Science Center of Network, Henan Police College, Zhengzhou,

More information

Chapter 3: Processes. Operating System Concepts 8 th Edition,

Chapter 3: Processes. Operating System Concepts 8 th Edition, Chapter 3: Processes, Silberschatz, Galvin and Gagne 2009 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Silberschatz, Galvin and Gagne 2009

More information

Distributed System Chapter 16 Issues in ch 17, ch 18

Distributed System Chapter 16 Issues in ch 17, ch 18 Distributed System Chapter 16 Issues in ch 17, ch 18 1 Chapter 16: Distributed System Structures! Motivation! Types of Network-Based Operating Systems! Network Structure! Network Topology! Communication

More information

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date:

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date: Subject Name: OPERATING SYSTEMS Subject Code: 10EC65 Prepared By: Kala H S and Remya R Department: ECE Date: Unit 7 SCHEDULING TOPICS TO BE COVERED Preliminaries Non-preemptive scheduling policies Preemptive

More information

Processes, PCB, Context Switch

Processes, PCB, Context Switch THE HONG KONG POLYTECHNIC UNIVERSITY Department of Electronic and Information Engineering EIE 272 CAOS Operating Systems Part II Processes, PCB, Context Switch Instructor Dr. M. Sakalli enmsaka@eie.polyu.edu.hk

More information

Chapter 9: Concurrency Control

Chapter 9: Concurrency Control Chapter 9: Concurrency Control Concurrency, Conflicts, and Schedules Locking Based Algorithms Timestamp Ordering Algorithms Deadlock Management Acknowledgements: I am indebted to Arturas Mazeika for providing

More information

Synchronization. Chapter 5

Synchronization. Chapter 5 Synchronization Chapter 5 Clock Synchronization In a centralized system time is unambiguous. (each computer has its own clock) In a distributed system achieving agreement on time is not trivial. (it is

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

Module 1. Introduction:

Module 1. Introduction: Module 1 Introduction: Operating system is the most fundamental of all the system programs. It is a layer of software on top of the hardware which constitutes the system and manages all parts of the system.

More information

PROCESS SYNCHRONIZATION

PROCESS SYNCHRONIZATION DISTRIBUTED COMPUTER SYSTEMS PROCESS SYNCHRONIZATION Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Process Synchronization Mutual Exclusion Algorithms Permission Based Centralized

More information

Distributed Deadlocks. Prof. Ananthanarayana V.S. Dept. of Information Technology N.I.T.K., Surathkal

Distributed Deadlocks. Prof. Ananthanarayana V.S. Dept. of Information Technology N.I.T.K., Surathkal Distributed Deadlocks Prof. Ananthanarayana V.S. Dept. of Information Technology N.I.T.K., Surathkal Objectives of This Module In this module different kind of resources, different kind of resource request

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

Module 16: Distributed System Structures

Module 16: Distributed System Structures Chapter 16: Distributed System Structures Module 16: Distributed System Structures Motivation Types of Network-Based Operating Systems Network Structure Network Topology Communication Structure Communication

More information

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2 Introduction :- Today single CPU based architecture is not capable enough for the modern database that are required to handle more demanding and complex requirements of the users, for example, high performance,

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

Protocol for Tetherless Computing

Protocol for Tetherless Computing Protocol for Tetherless Computing S. Keshav P. Darragh A. Seth S. Fung School of Computer Science University of Waterloo Waterloo, Canada, N2L 3G1 1. Introduction Tetherless computing involves asynchronous

More information

Peer-to-Peer Systems. Chapter General Characteristics

Peer-to-Peer Systems. Chapter General Characteristics Chapter 2 Peer-to-Peer Systems Abstract In this chapter, a basic overview is given of P2P systems, architectures, and search strategies in P2P systems. More specific concepts that are outlined include

More information

Multiprocessor scheduling

Multiprocessor scheduling Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.

More information

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008.

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008. CSC 4103 - Operating Systems Spring 2008 Lecture - XII Midterm Review Tevfik Ko!ar Louisiana State University March 4 th, 2008 1 I/O Structure After I/O starts, control returns to user program only upon

More information

Ch 4 : CPU scheduling

Ch 4 : CPU scheduling Ch 4 : CPU scheduling It's the basis of multiprogramming operating systems. By switching the CPU among processes, the operating system can make the computer more productive In a single-processor system,

More information

A Comparative Study of Load Balancing Algorithms: A Review Paper

A Comparative Study of Load Balancing Algorithms: A Review Paper Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology ISSN 2320 088X IMPACT FACTOR: 5.258 IJCSMC,

More information

Adaptive Mobile Agents: Modeling and a Case Study

Adaptive Mobile Agents: Modeling and a Case Study Adaptive Mobile Agents: Modeling and a Case Study Supranamaya Ranjan Department of Electrical & Computer Engineering Rice University Houston, Texas - 77005 Arobinda Gupta Anupam Basu Anand Meka Abhishek

More information

Module 16: Distributed System Structures. Operating System Concepts 8 th Edition,

Module 16: Distributed System Structures. Operating System Concepts 8 th Edition, Module 16: Distributed System Structures, Silberschatz, Galvin and Gagne 2009 Chapter 16: Distributed System Structures Motivation Types of Network-Based Operating Systems Network Structure Network Topology

More information

PROXIMITY AWARE LOAD BALANCING FOR HETEROGENEOUS NODES Mrs. Yogita A. Dalvi Dr. R. Shankar Mr. Atesh Kumar

PROXIMITY AWARE LOAD BALANCING FOR HETEROGENEOUS NODES Mrs. Yogita A. Dalvi Dr. R. Shankar Mr. Atesh Kumar ISSN 2320-9194 1 International Journal of Advance Research, IJOAR.org Volume 1, Issue 9, September 2013, Online: ISSN 2320-9194 PROXIMITY AWARE LOAD BALANCING FOR HETEROGENEOUS NODES Mrs. Yogita A. Dalvi

More information

Introduction to Mobile Ad hoc Networks (MANETs)

Introduction to Mobile Ad hoc Networks (MANETs) Introduction to Mobile Ad hoc Networks (MANETs) 1 Overview of Ad hoc Network Communication between various devices makes it possible to provide unique and innovative services. Although this inter-device

More information

Chapter 17: Distributed Systems (DS)

Chapter 17: Distributed Systems (DS) Chapter 17: Distributed Systems (DS) Silberschatz, Galvin and Gagne 2013 Chapter 17: Distributed Systems Advantages of Distributed Systems Types of Network-Based Operating Systems Network Structure Communication

More information

1 PROCESSES PROCESS CONCEPT The Process Process State Process Control Block 5

1 PROCESSES PROCESS CONCEPT The Process Process State Process Control Block 5 Process Management A process can be thought of as a program in execution. A process will need certain resources such as CPU time, memory, files, and I/O devices to accomplish its task. These resources

More information

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE for for March 10, 2006 Agenda for Peer-to-Peer Sytems Initial approaches to Their Limitations CAN - Applications of CAN Design Details Benefits for Distributed and a decentralized architecture No centralized

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.) Process Concept Chapter 3 Processes Computers can do several activities at a time Executing user programs, reading from disks writing to a printer, etc. In multiprogramming: CPU switches from program to

More information

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Malaysian Journal of Computer Science, Vol. 9 No. 1, June 1996, pp. 12-17 REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Mohammed Samaka School of Computer Science Universiti Sains Malaysia

More information

ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT

ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT PhD Summary DOCTORATE OF PHILOSOPHY IN COMPUTER SCIENCE & ENGINEERING By Sandip Kumar Goyal (09-PhD-052) Under the Supervision

More information

Distributed Databases Systems

Distributed Databases Systems Distributed Databases Systems Lecture No. 07 Concurrency Control Naeem Ahmed Email: naeemmahoto@gmail.com Department of Software Engineering Mehran Univeristy of Engineering and Technology Jamshoro Outline

More information

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics System Models Nicola Dragoni Embedded Systems Engineering DTU Informatics 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models Architectural vs Fundamental Models Systems that are intended

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2

More information

WSN Routing Protocols

WSN Routing Protocols WSN Routing Protocols 1 Routing Challenges and Design Issues in WSNs 2 Overview The design of routing protocols in WSNs is influenced by many challenging factors. These factors must be overcome before

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

Process- Concept &Process Scheduling OPERATING SYSTEMS

Process- Concept &Process Scheduling OPERATING SYSTEMS OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne PROCESS MANAGEMENT Current day computer systems allow multiple

More information

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Multiple Processes OS design is concerned with the management of processes and threads: Multiprogramming Multiprocessing Distributed processing

More information

The Google File System

The Google File System October 13, 2010 Based on: S. Ghemawat, H. Gobioff, and S.-T. Leung: The Google file system, in Proceedings ACM SOSP 2003, Lake George, NY, USA, October 2003. 1 Assumptions Interface Architecture Single

More information

A Location-based Directional Route Discovery (LDRD) Protocol in Mobile Ad-hoc Networks

A Location-based Directional Route Discovery (LDRD) Protocol in Mobile Ad-hoc Networks A Location-based Directional Route Discovery (LDRD) Protocol in Mobile Ad-hoc Networks Stephen S. Yau, Wei Gao, and Dazhi Huang Dept. of Computer Science and Engineering Arizona State University Tempe,

More information

An Efficient Distributed Mutual Exclusion Algorithm Based on Relative Consensus Voting

An Efficient Distributed Mutual Exclusion Algorithm Based on Relative Consensus Voting An Efficient Distributed Mutual Exclusion Algorithm Based on Relative Consensus Voting Jiannong Cao Hong Kong Polytechnic University Kowloon, Hong Kong csjcao@comp.polyu.edu.hk Jingyang Zhou Nanjing University

More information

Management of Protocol State

Management of Protocol State Management of Protocol State Ibrahim Matta December 2012 1 Introduction These notes highlight the main issues related to synchronizing the data at both sender and receiver of a protocol. For example, in

More information

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne 1 DEADLOCKS In a multi programming environment, several processes

More information

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University CS 571 Operating Systems Midterm Review Angelos Stavrou, George Mason University Class Midterm: Grading 2 Grading Midterm: 25% Theory Part 60% (1h 30m) Programming Part 40% (1h) Theory Part (Closed Books):

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept Silberschatz, Galvin and Gagne 2013! Chapter 3: Process Concept Process Concept" Process Scheduling" Operations on Processes" Inter-Process Communication (IPC)" Communication

More information

Table of Contents. Cisco Introduction to EIGRP

Table of Contents. Cisco Introduction to EIGRP Table of Contents Introduction to EIGRP...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1 Components Used...1 What is IGRP?...2 What is EIGRP?...2 How Does EIGRP Work?...2 EIGRP

More information

Mobile host protocols support host

Mobile host protocols support host INTERNATIONAL JOURNAL OF NETWORK MANAGEMENT Int. J. Network Mgmt 2000; 10:191 214 Location update and routing scheme for a mobile computing environment By Anna Hać Ł and Yujing Huang We present a new hierarchical

More information

OUTLINE. Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems

OUTLINE. Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems Chapter 5 Synchronization OUTLINE Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems Concurrent Processes Cooperating processes

More information

Lecture 2 Process Management

Lecture 2 Process Management Lecture 2 Process Management Process Concept An operating system executes a variety of programs: Batch system jobs Time-shared systems user programs or tasks The terms job and process may be interchangeable

More information

Mobile Agent-Based Load Monitoring System for the Safety Web Server Environment

Mobile Agent-Based Load Monitoring System for the Safety Web Server Environment Mobile -Based Load Monitoring System for the Safety Web Server Environment H.J. Park 1, K.J. Jyung 2, and S.S. Kim 3 1 School of Computer Information and Communication Engineering, Sangji University, Woosandong,

More information

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou (  Zhejiang University Operating Systems (Fall/Winter 2018) CPU Scheduling Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review Motivation to use threads

More information

Part V. Process Management. Sadeghi, Cubaleska RUB Course Operating System Security Memory Management and Protection

Part V. Process Management. Sadeghi, Cubaleska RUB Course Operating System Security Memory Management and Protection Part V Process Management Sadeghi, Cubaleska RUB 2008-09 Course Operating System Security Memory Management and Protection Roadmap of Chapter 5 Notion of Process and Thread Data Structures Used to Manage

More information

Master s Thesis. A Construction Method of an Overlay Network for Scalable P2P Video Conferencing Systems

Master s Thesis. A Construction Method of an Overlay Network for Scalable P2P Video Conferencing Systems Master s Thesis Title A Construction Method of an Overlay Network for Scalable P2P Video Conferencing Systems Supervisor Professor Masayuki Murata Author Hideto Horiuchi February 14th, 2007 Department

More information

TESTING MULTI-AGENT SYSTEMS FOR DEADLOCK DETECTION BASED ON UML MODELS

TESTING MULTI-AGENT SYSTEMS FOR DEADLOCK DETECTION BASED ON UML MODELS TESTING MULTI-AGENT SYSTEMS FOR DEADLOCK DETECTION BASED ON UML MODELS Nariman Mani Vahid Garousi Behrouz H. Far Department of Electrical and Computer Engineering Schulich School of Engineering, University

More information

4. Data Transmitting Agent based strategy for

4. Data Transmitting Agent based strategy for 120 Chapter 4 4. Data Transmitting Agent based strategy for Effective Cache Consistency 4.1 Architecture of Multicast-Data Dissemination Model Using Data Transmitting Agent The architecture of a mobile

More information

Chapter 3. Design of Grid Scheduler. 3.1 Introduction

Chapter 3. Design of Grid Scheduler. 3.1 Introduction Chapter 3 Design of Grid Scheduler The scheduler component of the grid is responsible to prepare the job ques for grid resources. The research in design of grid schedulers has given various topologies

More information

Evaluating the Performance of Mobile Agent-Based Message Communication among Mobile Hosts in Large Ad Hoc Wireless Network

Evaluating the Performance of Mobile Agent-Based Message Communication among Mobile Hosts in Large Ad Hoc Wireless Network Evaluating the Performance of Mobile Agent-Based Communication among Mobile Hosts in Large Ad Hoc Wireless Network S. Bandyopadhyay Krishna Paul PricewaterhouseCoopers Limited Techna Digital Systems Sector

More information

Precedence Graphs Revisited (Again)

Precedence Graphs Revisited (Again) Precedence Graphs Revisited (Again) [i,i+6) [i+6,i+12) T 2 [i,i+6) [i+6,i+12) T 3 [i,i+2) [i+2,i+4) [i+4,i+6) [i+6,i+8) T 4 [i,i+1) [i+1,i+2) [i+2,i+3) [i+3,i+4) [i+4,i+5) [i+5,i+6) [i+6,i+7) T 5 [i,i+1)

More information

Best Practices. Deploying Optim Performance Manager in large scale environments. IBM Optim Performance Manager Extended Edition V4.1.0.

Best Practices. Deploying Optim Performance Manager in large scale environments. IBM Optim Performance Manager Extended Edition V4.1.0. IBM Optim Performance Manager Extended Edition V4.1.0.1 Best Practices Deploying Optim Performance Manager in large scale environments Ute Baumbach (bmb@de.ibm.com) Optim Performance Manager Development

More information

System Models for Distributed Systems

System Models for Distributed Systems System Models for Distributed Systems INF5040/9040 Autumn 2015 Lecturer: Amir Taherkordi (ifi/uio) August 31, 2015 Outline 1. Introduction 2. Physical Models 4. Fundamental Models 2 INF5040 1 System Models

More information

An Efficient Method for Constructing a Distributed Depth-First Search Tree

An Efficient Method for Constructing a Distributed Depth-First Search Tree An Efficient Method for Constructing a Distributed Depth-First Search Tree S. A. M. Makki and George Havas School of Information Technology The University of Queensland Queensland 4072 Australia sam@it.uq.oz.au

More information

A tutorial report for SENG Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far. Mobile Agents.

A tutorial report for SENG Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far. Mobile Agents. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far Mobile Agents Samuel Lee Department of Electrical Engineering University of Calgary Abstract With

More information

CHAPTER 2: PROCESS MANAGEMENT

CHAPTER 2: PROCESS MANAGEMENT 1 CHAPTER 2: PROCESS MANAGEMENT Slides by: Ms. Shree Jaswal TOPICS TO BE COVERED Process description: Process, Process States, Process Control Block (PCB), Threads, Thread management. Process Scheduling:

More information

Coordination and Agreement

Coordination and Agreement Coordination and Agreement Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Introduction 2. Distributed Mutual Exclusion 3. Elections 4. Multicast Communication 5. Consensus and related problems

More information

Enhanced IGRP. Chapter Goals. Enhanced IGRP Capabilities and Attributes CHAPTER

Enhanced IGRP. Chapter Goals. Enhanced IGRP Capabilities and Attributes CHAPTER 40 CHAPTER Chapter Goals Identify the four key technologies employed by (EIGRP). Understand the Diffusing Update Algorithm (DUAL), and describe how it improves the operational efficiency of EIGRP. Learn

More information

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA M. GAUS, G. R. JOUBERT, O. KAO, S. RIEDEL AND S. STAPEL Technical University of Clausthal, Department of Computer Science Julius-Albert-Str. 4, 38678

More information

OPERATING SYSTEMS. UNIT II Sections A, B & D. An operating system executes a variety of programs:

OPERATING SYSTEMS. UNIT II Sections A, B & D. An operating system executes a variety of programs: OPERATING SYSTEMS UNIT II Sections A, B & D PREPARED BY ANIL KUMAR PRATHIPATI, ASST. PROF., DEPARTMENT OF CSE. PROCESS CONCEPT An operating system executes a variety of programs: Batch system jobs Time-shared

More information

Study of Load Balancing Schemes over a Video on Demand System

Study of Load Balancing Schemes over a Video on Demand System Study of Load Balancing Schemes over a Video on Demand System Priyank Singhal Ashish Chhabria Nupur Bansal Nataasha Raul Research Scholar, Computer Department Abstract: Load balancing algorithms on Video

More information

A Hybrid Load Balance Mechanism for Distributed Home Agents in Mobile IPv6

A Hybrid Load Balance Mechanism for Distributed Home Agents in Mobile IPv6 A Hybrid Load Balance Mechanism for Distributed Home Agents in Mobile IPv6 1 Hui Deng 2Xiaolong Huang 3Kai Zhang 3 Zhisheng Niu 1Masahiro Ojima 1R&D Center Hitachi (China) Ltd. Beijing 100004, China 2Dept.

More information

ROUTING ALGORITHMS Part 2: Data centric and hierarchical protocols

ROUTING ALGORITHMS Part 2: Data centric and hierarchical protocols ROUTING ALGORITHMS Part 2: Data centric and hierarchical protocols 1 Negative Reinforcement Time out Explicitly degrade the path by re-sending interest with lower data rate. Source Gradient New Data Path

More information

Distributed Operating Systems

Distributed Operating Systems 2 Distributed Operating Systems System Models, Processor Allocation, Distributed Scheduling, and Fault Tolerance Steve Goddard goddard@cse.unl.edu http://www.cse.unl.edu/~goddard/courses/csce855 System

More information

Bull. HACMP 4.4 Programming Locking Applications AIX ORDER REFERENCE 86 A2 59KX 02

Bull. HACMP 4.4 Programming Locking Applications AIX ORDER REFERENCE 86 A2 59KX 02 Bull HACMP 4.4 Programming Locking Applications AIX ORDER REFERENCE 86 A2 59KX 02 Bull HACMP 4.4 Programming Locking Applications AIX Software August 2000 BULL CEDOC 357 AVENUE PATTON B.P.20845 49008

More information