1 / 15

Concurrency: Deadlock Detection

Concurrency: Deadlock Detection. Fred Kuhns (fredk@arl.wustl.edu, http://www.arl.wustl.edu/~fredk) Department of Computer Science and Engineering Washington University in St. Louis. Deadlock Detection. Allow system to enter deadlock state Detection algorithm Recovery scheme.

reece
Download Presentation

Concurrency: Deadlock Detection

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. Concurrency: Deadlock Detection Fred Kuhns (fredk@arl.wustl.edu, http://www.arl.wustl.edu/~fredk) Department of Computer Science and Engineering Washington University in St. Louis

  2. Deadlock Detection • Allow system to enter deadlock state • Detection algorithm • Recovery scheme Cs422 – Operating Systems Organization

  3. 1 Instance of each Resource Type • Maintain wait-for graph • Nodes are processes. • Pi Pj if Piis waiting for Pj to release some resource Rk • Periodically invoke an algorithm that searches for a cycle in the graph. • An algorithm to detect a cycle in a graph requires an order of n2 operations, where n is the number of vertices in the graph. Cs422 – Operating Systems Organization

  4. P0 P0 R1 R2 P3 P2 P1 P1 P2 P3 R3 R4 P4 P4 Wait-For Graph Resource Allocation Graph Wait-for Graph Cs422 – Operating Systems Organization

  5. >1 Instance of each Resource Type • Assume m resource types and n processes • Available[i]: A vector of length m indicates the number of available resources of each type. • Allocation[i,j]: An n x m matrix defines the number of resources of each type currently allocated to each process. • Allocation[i, j] = number of resources of type j currently allocated to Process i. • Allocationi = allocation vector for Process i • Request[i,j]: An n x m matrix indicates the current per process requist vector. • Request[i,j] = number of resources of type j requested by Process i. • Requesti = request vector for Process i Cs422 – Operating Systems Organization

  6. Detection Algorithm 0. Work and Finish are vectors of length m and n, respectively. Initialize: (a) Work = Available (b) if Allocationi 0, then Finish[i] = false; else Finish[i] = true. 1. Find an index i such that both: • Finish[i] == false // has allocated resources • Requesti Work// request can be filled If no such i exists, go to step 4. 2. Work = Work + Allocationi; Finish[i] = true; go to step 1 3. If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Piis deadlocked. Cs422 – Operating Systems Organization

  7. Detection Algorithm (Cont.) • Algorithm requires an order of O(m x n2) operations to detect whether the system is in deadlocked state. Cs422 – Operating Systems Organization

  8. Example of Detection Algorithm • Five processes P0 through P4 • three resource types A (7), B (2), and C (6). • Snapshot at time T0: AllocationRequestAvailable A B C A B C A B C P0 0 1 0 0 0 00 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 • Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i. Cs422 – Operating Systems Organization

  9. Step 0 • Total Resource {A = 7, B = 2, C = 6} AllocationRequestAvailable A B C A B C A B C P0 0 1 0 0 0 00 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 • Step 0: • Work = Available = {0, 0, 0} • Finish = {false, false, false, false, false} Cs422 – Operating Systems Organization

  10. Steps 1, 2 and 3 Steps 1 & 2: • Request0 < work // {0 0 0}Work = {0 1 0}Finish = {true, false, false, false, false} • Request2 < work // {0 1 0}Work = {3 1 3}Finish = {true, false, true, false, false} • Request1 < work // {3 1 3}Work = {5 1 3}Finish = {true, true, true, false, false} • Request3 < work // {5 1 3}Work = {7 2 4}Finish = {true, true, true, true, false} • Request4 < work // {7 2 4}Work = {7 2 6}Finish = {true, true, true, true, true} AllocationRequest A B C A B C P0 0 1 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 Step 3: • No deadlock since all elements of Finish = true Cs422 – Operating Systems Organization

  11. New Request from P2 • P2 requests an additional instance of type C • AllocationRequestAvailable • A B C A B C A B C • P0 0 1 0 0 0 00 0 0 • P1 2 0 0 2 0 2 • P2 3 0 3 0 0 1 • P3 2 1 1 1 0 0 • P4 0 0 2 0 0 2 • State of system? • Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests. • Deadlock exists, consisting of processes P1, P2, P3, and P4. Cs422 – Operating Systems Organization

  12. Detection-Algorithm Usage • When, and how often, to invoke depends on: • How often a deadlock is likely to occur? • How many processes will need to be rolled back? • one process for each disjoint cycle • If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes “caused” the deadlock. Cs422 – Operating Systems Organization

  13. Recovery: Process Termination • Abort all deadlocked processes. • Abort one process at a time until the deadlock cycle is eliminated. • In which order should we choose to abort? • Priority of the process. • How long process has computed, and how much longer to completion. • Resources the process has used. • Resources process needs to complete. • How many processes will need to be terminated. • Is process interactive or batch? Cs422 – Operating Systems Organization

  14. Recovery: Resource Preemption • Selecting a victim – minimize cost. • Rollback – return to some safe state, restart process for that state. • Starvation – same process may always be picked as victim, include number of rollback in cost factor. Cs422 – Operating Systems Organization

  15. Combined Approach • Combine the three basic approaches • prevention • avoidance • detection allowing the use of the optimal approach for each resource type in the system. • Partition resources into hierarchically ordered classes. • Use most appropriate technique for handling deadlocks within each class. Cs422 – Operating Systems Organization

More Related