1 / 9

DEADLOCK AVOIDANCE

DEADLOCK AVOIDANCE. CLASS SCRIBE – 19.4.2013 Prepared by – shushman choudhury (11cs10061). AVOIDANCE WITH A SINGLE RESOURCE.

nhung
Télécharger la présentation

DEADLOCK AVOIDANCE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DEADLOCK AVOIDANCE CLASS SCRIBE – 19.4.2013 Prepared by – shushmanchoudhury (11cs10061)

  2. AVOIDANCE WITH A SINGLE RESOURCE The Resource Allocation Graph must be used. It will be similar to that shown previously, but with an additional edge called ‘Claim Edge’ that represents the potential requirements of the process. The process lets the system know what it may require right from the beginning. Resources must be claimed apriori. A cycle in this augmented resource allocation graph will imply the possibility of a deadlock in the near future.

  3. R1 The assignment edge shows that R1 has been assigned to P1, and the request edge shows that P2 has requested resource R1, as has been explained before. Furthermore, the claim edges (dotted lines) show that both P1 and P2 may request R2 in the near future. Assignment Edge Request Edge P1 P2 Claim Edge R2 THE RESOURCE ALLOCATION GRAPH WITH CLAIM EDGE

  4. CYCLES WITH CLAIM EDGES The claim edge will become the resource edge when the process requests that resource. This in turn becomes an assignment edge when the resource is granted to the process. Therefore, just as a cycle with request and assignment edges indicates a deadlock, the same with a claim edge indicates a possible deadlock, and consequently, an unsafe state. Thus, the request can be granted only if such a cycle does not exist, i.e the state is safe.

  5. EFFECT OF INCORRECT HANDLING R1 R1 P1 P2 P1 P2 R2 R2 ACTUAL DEADLOCK POTENTIAL DEADLOCK As can be observed here, this is what will happen if the cycles with claim edges are not taken care of. Over time, a deadlock may arise if the claim edge becomes a request edge before the other resource is let go.

  6. AVOIDANCE - MULTIPLE RESOURCES The Banker’s Algorithm is used for this purpose. The algorithm is principally similar to the previously studied deadlock detection method, albeit with a few modifications. Processes must inform the system of their maximum resource usage apriori. As soon as a set of resources is requested, the system must gauge the safety of the potential allocation. It will not proceed otherwise. Furthermore, resources must be returned in a finite time.

  7. DATA STRUCTURES Available Vector – A vector of length m where m is the number of resources, indicating the number of available resources of each type. Allocation Matrix – As described before. Maximum Matrix – An nXm matrix where Mij is the number of maximum instances of resource Rj needed by process Pi Need Matrix – An nXm matrix where Nij indicates that Pi may need Rjmore resources to complete its task.

  8. RESOURCE REQUEST ALGORITHM Request represents request vector for process Pi. If Requesti[j] = k then process Pi wants k instances of resource type Rj 1. If Requesti Needigo to step 2. Otherwise, an error is thrown, since the process has exceeded its maximum claim. 2. If Requesti Available, go to step 3. Otherwise Pi must wait, since its desired resources are not available at that moment. 3. Hypothetically allocate requested resources to Pi by modifying the state as follows: Available = Available –Requesti; Allocationi= Allocationi + Requesti; Needi=Needi – Requesti; • If safe  the resources are allocated to Pi • If unsafe  Pi must wait, and the old resource-allocation state is restored

  9. SAFETY ALGORITHM 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false fori = 0, 1, …, n- 1 2. Find an isuch that both: (a) Finish [i] = false (b) Needi Work If no such iexists, go to step 4 3. Work = Work + AllocationiFinish[i] = truego to step 2 4. If Finish [i] == true for all i, then the system is in a safe state

More Related