IJRIT International Journal of Research in Information Technology, Volume 1, Issue 11, November, 2013, Pg. 73-78

International Journal of Research in Information Technology (IJRIT)

www.ijrit.com

ISSN 2001-5569

Methods to Reduce Deadlock Traffic Deepika, Rahul Mehta Abstract Definition:“The word “deadlock” means that it is a situation which occurs when a process or thread enters a waiting state because a resource requested is being held by another waiting process, which in turn is waiting for another resource. If a process is unable to change its state indefinitely because the resources requested by it are being used by another waiting process, then the system is said to be in a deadlock. Deadlock is a common problem in multiprocessing systems, parallel computing and distributed systems, where software and hardware locks are used to handle shared resources and implement process synchronization.” Distributed deadlocks can occur in distributed systems when distributed transactions or concurrency control is being used. Most operating systems cannot prevent a deadlock from occurring. When a deadlock occurs, different operating systems respond to them in different non-standard manners. In this paper, we describe a simple and efficient deadlock detection techniques and present approaches for detecting deadlocks along with their prevention and avoidance in resource sharing for Distributed Systems.

KEYWORDS: Deadlock Handling, Pass Pushing Algorithm.

1. Introduction A deadlock is a situation in which two or more competing actions are each waiting for the other to finish, and thus neither ever does. In a transactional database, a deadlock happens when two processes each within its own transaction updates two rows of information but in the opposite order. For example, process A updates row 1 then row 2 in the exact timeframe process B updates row 2 then row 1. Process A can't finish updating row 2 until process B is finished, but it cannot finish updating row 1 until process A finishes. No matter how much time is allowed to pass, this situation will never resolve itself and because of this database management systems will typically kill the transaction of the process that has done the least amount of work In an operating system, a deadlock is a situation which occurs when a process or thread enters a waiting state because a resource requested is being held by another waiting process, which in turn is waiting for another resource. If a process is unable to change its state indefinitely because the resources requested by it are being used by another waiting process, then the system is said to be in a deadlock.

Rahul Mehta, IJRIT

73

Deadlock is a common problem in multiprocessing systems, parallel computing and distributed systems, where software and hardware locks are used to handle shared resources and implement process synchronization A simple computer-based example is as follows. Suppose a computer has three CD drives and three processes. Each of the three processes holds one of the drives. If each process now requests another drive, the three processes will be in a deadlock. Each process will be waiting for the "CD drive released" event, which can be only caused by one of the other waiting processes. Thus, it results in a circular chain.

Fig 1. Showing deadlock between two process Both processes need resources to continue executing. P1 requires additional resource R1 and is in possession of resource R2, P2 requires additional resource R2 and is in possession of R1; neither process can continue. 1.1 Necessary condition for deadlock to occur :A deadlock situation can arise if all of the following conditions hold simultaneously in a system: 1. Mutual Exclusion: At least two resources must be non-shareable. Only one process can use the resource at any given instant of time. 2. Hold and Wait or Resource Holding: A process is currently holding at least one resource and requesting additional resources which are being held by other processes. 3. No Preemption: The operating system must not de-allocate resources once they have been allocated; they must be released by the holding process voluntarily. 4. Circular Wait: A process must be waiting for a resource which is being held by another process, which in turn is waiting for the first process to release the resource. In general, there is a set of waiting processes, P = {P1, P2, ..., PN}, such that P1 is waiting for a resource held by P2, P2 is waiting for a resource held by P3 and so on until PN is waiting for a resource held by P1. These four conditions are known as the Coffman conditions. Deadlock can be protection by avoiding all the four condition in a system.

2. Deadlock Handling Most current operating systems cannot prevent a deadlock from occurring. When a deadlock occurs, different operating systems respond to them in different non-standard manners. Most approaches work by preventing one of the four Coffman conditions from occurring, especially the fourth one. Major approaches are as follows.

Rahul Mehta, IJRIT

74

Ignoring deadlock Detection Prevention Avoidance

2.1 Deadlock Prevention Deadlock prevention is commonly attained either by having a process acquired all the needed resources instantaneously before it begins executing or preempting a process that holds the needed resource. In the former method, a process requests (or releases) a remote resources by sending a request message (or release message) to the site where the resource is located. This has the following drawbacks: (1) It is incompetent because it decreases system concurrency. (2) A set of processes may get deadlocked in the resource-acquiring phase. (3) In many systems future resource necessities are unpredictable. In latter method, an active process forces a blocked process, which holds the needed resources, to abort. This method is inefficient because several processes may be aborted without any deadlock. 2.2 Deadlock Avoidance Deadlock can be dodged if certain information about processes is available to the operating system before allocation of resources, such as which resources a process will consume in its lifetime. For every resource request, the system sees whether yielding the request will mean that the system will enter an unsafe state, meaning a state that could result in deadlock. The system then only grants requests that will lead to safe states. In order for the system to be able to determine whether the next state will be safe or unsafe, it must know in advance at any time: •

resources currently available



resources currently allocated to each process



resources that will be required and released by these processes in the future

It is possible for a process to be in an unsafe state but for this not to result in a deadlock. The idea of safe/unsafe states only refers to the ability of the system to enter a deadlock state or not. For example, if a process ‘A’ requests which would result in an unsafe state, but releases B which would prevent circular wait, then the state is unsafe but the system is not in deadlock. 2.3 Banker’s Algorithm . The Banker's algorithm is a resource allocation and deadlock avoidance algorithm developed by Edsger Dijkstra that tests for safety by simulating the allocation of predetermined maximum possible amounts of all resources, and then makes a "s-state" check to test for possible deadlock conditions for all other pending activities, before deciding whether allocation should be allowed to continue. [2]

The Banker's algorithm is run by the operating system whenever a process requests resources. The algorithm avoids deadlock by denying or postponing the request if it determines that accepting the request could put the system in an unsafe state (one where deadlock could occur). When a new process enters a system, it must declare the maximum number of instances of each resource type that it may ever claim; clearly, that number may not exceed

Rahul Mehta, IJRIT

75

the total number of resources in the system. Also, when a process gets all its requested resources it must return them in a finite amount of time. Resources For the Banker's algorithm to work, it needs to know three things: • • •

How much of each resource each process could possibly request[CLAIMS] How much of each resource each process is currently holding[ALLOCATED] How much of each resource the system currently has available[AVAILABLE]

Resources may be allocated to a process only if it satisfies the following conditions: 1. Request ≤ max, else set error condition as process has crossed maximum claim made by it. 2. Request ≤ available, else process waits until resources are available. Basic data structures to be maintained to implement the Banker's Algorithm: Let n be the number of processes in the system and m be the number of resource types. Then we need the following data structures: • • • •

Available: A vector of length m indicates the number of available resources of each type. If Available[j] = k, there are k instances of resource type Rj available. Max: An n×m matrix defines the maximum demand of each process. If Max[i,j] = k, then Pi may request at most k instances of resource type Rj. Allocation: An n×m matrix defines the number of resources of each type currently allocated to each process. If Allocation[i,j] = k, then process Pi is currently allocated k instance of resource type Rj. Need: An n×m matrix indicates the remaining resource need of each process. If Need[i,j] = k, then Pi may need k more instances of resource type Rj to complete task.

Note: Need[i,j] = Max[i,j] - Allocation[i,j]. 2.4 Deadlock Detection Deadlock can occur whenever two or more processes are opposing for limited resources and the processes are allowable to acquire and hold a resource (obtain a lock) thus precluding others from using the resource while the process waits for other resources. Two common places where deadlocks may occur are with processes in an operating system (distributed or centralized) and with transactions in a database. Locking protocols such as the popular Two Phase Locking give rise to deadlock as follows: process A gets a lock on data item X while process B gets a lock on data item Y. Process A then tries to get a lock on Y. As Y is already locked, process A enters a blocked state. Process B now decides to get a lock on X, but is blocked. Both processes are now blocked, and, by the rules of Two Phase Locking, neither will relinquish their locks. This is a deadlock process A is waiting for a resource held by process B and process B is waiting for a resource held by process A. No progress will take place without outside intervention. Several processes can be involved in a deadlock when there exists a cycle of processes waiting for each other. Process A waits for B which waits for C which waits for A. 2.5 Four conditions must hold for deadlock to occur: 1. Exclusive use – when a process accesses a resource, it is granted exclusive use of that resource. 2. Hold and wait – a process is allowed to hold onto some resources while it is waiting for other resources.

Rahul Mehta, IJRIT

76

3. 4.

No preemption – a process cannot preempt or take away the resources held by another process. Cyclical wait – there is a circular chain of waiting processes, each waiting for a resource held by the next process in the chain.

Distributed Database system: A distributed database management system ('DDBMS') is a software system that permits the management of a distributed database and makes the distribution transparent to the users.

3. Strategies for deadlock detection in case of distributed system Distributed deadlocks can occur in distributed systems when distributed transactions or concurrency Create the local wait for graph (WFG), Add possible edges obtained from other sites that may cause deadlock, The local WFG now also contains locks on remote objects and the sub transaction holding those lock. We will look for the cycles being formed if there occur any cycle then it would result in the deadlock.

This diagram above is showing a WFG(Wait For Graph) of distributed deadlock.

Approaches for deadlock detection for distributed systems Deadlock detection requires inspection of the status of process-resource connections for presence of cyclic wait. The basic algorithm for distributed deadlock detection is as follow: 3.1 Path-pushing algorithms: The basic idea behind this class of algorithms is to build some simplified form of global WFG at each site. For this purpose each site sends its local WFG to a number of adjacent sites every time a deadlock computation is performed. After the data structure of each site is updated, this updated WFG is then transferred to the main database of the system, and the procedure is repeated until some site has sufficiently complete picture of the global situation of the deadlock being occurred to establish that no deadlocks are present. This particular technique where WFG’s are being generated leads to a particular term path-pushing algorithms. 3.2 Edge-chasing algorithms: The presence of a cycle in a distributed graph structure can be verified by propagating special messages called probes along the edges of the graph. Probes are presumed to be discrete from resource request and grant messages. When the producer of such a probe computation receives a matching probe, it will indicate that there is any cycle in the graph.

4. Conclusion In computer science, deadlock refers to a specific condition when two or more processes request resources that are held by other processes in the set to be released, or they are waiting for resources in a circular chain. Deadlock is a common problem in multiprocessing where many processes share a specific type of mutually

Rahul Mehta, IJRIT

77

exclusive resource known as a software lock or soft lock.The problem of deadlock detection in distributed systems has undergone extensive study. In this paper we have tried to get rid of on distributed deadlock by studying various deadlock detection and their prevention techniques. We have discussed distributed deadlock, four major deadlock handling approaches and the various strategies for dealing with distributed deadlocks. “In this way, the communication overhead of the deadlock detection procedure is reducing.”[1] 5. Reference 1. Approaches for Deadlock Detection and Deadlock Prevention for Distributed systems Gupta Dhiraj and Gupta V.K. Vol. 1 (ISC-2011), 422-425 (2012). 2.www.wikipedia.com 3.G.M. Booth " systems systems," Proc. AFIPS National Computer Conference, 45, June 1976, pp. 789-794. Distributed information 4. P.H. Enslow, Jr., "What is a ' 'distributed' data processing system?" IEEE Computervol. 11, January 1978, 13-21 5. B.P. Lientz and I.R. Weiss, "Trade-offs of secure processing in centralized versusdistributed networks," Computer Networks, vol. 2, February 1978, 35—43

Rahul Mehta, IJRIT

78

Methods to Reduce Deadlock Traffic

Definition:“The word “deadlock” means that it is a situation which occurs when a ... Distributed deadlocks can occur in distributed systems when distributed ... will never resolve itself and because of this database management systems will.

406KB Sizes 2 Downloads 263 Views

Recommend Documents

Comparing Alternative Policies to Reduce Traffic ...
i f pgp +. )( pG is the consumer price of gasoline; to begin with we assume there are no fuel taxes.7. (.) is the quantity of gasoline required to drive a mile in vehicle j; 1/ is fuel efficiency or miles per gallon. because, over the long run, highe

Deadlock Detection & Deadlock Prevention of Distributed System
deadlock detection and prevention approaches for distributed database. ... aspects of distributed systems, they are harder to detect, avoid, and prevent.

DEADLOCK SIMULATOR.pdf
Whoops! There was a problem loading more pages. Retrying... DEADLOCK SIMULATOR.pdf. DEADLOCK SIMULATOR.pdf. Open. Extract. Open with. Sign In.

Modeling Disk Traffic with Bias Methods
Disk traffic modeling is useful in designing effective storage systems. One .... it's biased in favor of recently-accessed blocks.1 We define β as a factor to model.

Deadlock in Distributed Operating System
Examples are given to illustrate these methods for avoiding file .... of files, such communications are never required to handle processes using only local files.

Static Deadlock Detection for Asynchronous C# Programs
contents at url are received,. GetContentsAsync calls another asynchronous proce- dure CopyToAsync .... tions are scheduled, and use it to define and detect deadlocks. ...... work exposes procedures for asynchronous I/O, network op- erations ...

The deadlock of democracy revisited
Sep 3, 1998 - did in the Philippines… No country .... long debate in the field of comparative politics. .... which distance from the ideal point is considered. 13.

Some Tips to Reduce Your Exposure to Wireless Radiation2.pdf ...
orang yang bekerja dalam ruangan itu mendapat ruangan udara (cubic space). yang sedikit-sedikit 10 m3. sebaiknya 15 m3 . (2). ... There was a problem loading this page. Retrying... Some Tips to Reduce Your Exposure to Wireless Radiation2.pdf. Some Ti

Static Deadlock Detection for Asynchronous C# Programs
CCS Concepts • Software and its engineering → Dead- locks; Automated static ...... accounting software [9] and a number-tracking API [14]. Our focus was to find ...

Map/Reduce - Computer Science Center
Apr 27, 2014 - Page 1 ... GENERATE user, time, org.apache.pig.tutorial. ... Disco Technical Overview http://disco.readthedocs.org/en/latest/overview.html.

The English strategy to reduce health inequalities : The ...
Published Online: 12 November 2010. The English strategy to ... in infant mortality across social classes by 10% in 2010. The strategy was .... a Department of Public Health, Erasmus MC, 3000 CA Rotterdam, Netherlands. Privacy Policy ...

Applying Decay to Reduce Dynamic Power in Set ...
Power savings follow the trend of the total ways accessed and relative EDP improves with each doubling of the .... IEEE Micro, 24(6), 2004. 18. S. Velusamy et al.

Designing a Carbon Tax to Reduce US Greenhouse ...
higher estimate to its explicit treatment of risk and the newer evidence on which it relies. .... CO2 emissions account for just over one-half of the CO2-equivalent emissions ... carbon tax levied in 2003 would achieve the same percentage reduction i

Applying Decay to Reduce Dynamic Power in Set ...
The best way-prediction is MMRU index tag. Requested ... Compare with MMRU. ○ We modeled: 4 i. ( P ... Do not count leakage savings. • Simulation of Decay ...

CAL FIRE Announces Forest Health Grants to Reduce Greenhouse ...
Try one of the apps below to open or edit this item. CAL FIRE Announces Forest Health Grants to Reduce Greenhouse Gases.pdf. CAL FIRE Announces Forest ...

Application of stochastic programming to reduce uncertainty in quality ...
A process analysis of a large European pork processor revealed that in current ... [20] developed a discrete event simulation software package that incorporates.

Review;470* How To Reduce Fear PDF Download ...
The approach, developed by a. UCLA-led team ... Take my 7-DAY MARTIAL ARTS CHALLENGE! Whether ... Review How To Reduce Fear ebook download app.

Active EM to Reduce Noise in Activity Recognition
fying email to activities. For example, Kushmerick and Lau's activity management system [17] uses text classification and clustering to examine email activities ...

Wesleyan University chooses Google Apps to reduce data storage ...
single sign-on platform. • Activated other Apps services such as Docs,. Sites, and Calendar. What they accomplished: • Avoided major hardware expenses ...

Strategies to reduce the incidence of hospital-acquired infections A ...
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Strategies to ...

Wesleyan University chooses Google Apps to reduce data storage ...
Increased available IT resources for special projects. • Provided student groups easy-to-use web apps for site creation, collaborative work, and calendaring. Institution ... Because Google Apps is offered free of charge – and free of ads – for

BOTEC_A New Drug Court To Reduce Drug Demand In ...
COUNTY EXECUTIVE AND MAYOR. Page 1. Whoops! There was a problem loading this page. Retrying... Page 3 of 28. Table of Contents. SUMMARY .