Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Ch 7: Deadlock Dr. Mohamed Hefeeda.

Similar presentations


Presentation on theme: "1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Ch 7: Deadlock Dr. Mohamed Hefeeda."— Presentation transcript:

1 1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Ch 7: Deadlock Dr. Mohamed Hefeeda

2 2 Objectives  Understand the Deadlock Problem  And the methods of  preventing,  avoiding, and  detecting deadlocks

3 3 The Deadlock Problem  A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set  Example  System has 2 disk drives.  P 1 and P 2 each holds one disk drive and each needs another one.  Example  semaphores A and B, initialized to 1 P 0 P 1 wait (A);wait(B) wait (B);wait(A)

4 4 Bridge Crossing Example  Traffic only in one direction  Each section of bridge can be viewed as a resource  If deadlock occurs, it can be resolved if one car backs up (preempt resources and rollback)  Several cars may have to back up if deadlock occurs  Starvation is possible

5 5 Deadlock Characterization  Mutual exclusion: only one process at a time can use a resource  Hold and wait: a process holding at least one resource and is waiting to acquire additional resources held by other processes  No preemption: a resource can be released only voluntarily by the process holding it, after that process has completed its task  Circular wait: there exists a set {P 0, P 1, …, P n } of waiting processes such that P 0 is waiting for a resource that is held by P 1, P 1 is waiting for P 2, …, P n–1 is waiting P n, and P n is waiting for P 0 These are necessary (but not sufficient) conditions Deadlock may arise if four conditions hold simultaneously.

6 6 System Model: Resources  Resource types R 1, R 2,..., R m CPU cycles, memory space, I/O devices  Each resource type R i has W i instances  Each process utilizes a resource as follows:  request  use  release

7 7 System Model: Resource-Allocation Graph  V is partitioned into two types:  P = {P 1, P 2, …, P n }, the set consisting of all processes in the system.  R = {R 1, R 2, …, R m }, the set consisting of all resource types in the system.  request edge – directed edge P i  R j  assignment edge – directed edge R j  P i A set of vertices V and a set of edges E.

8 8 Resource-Allocation Graph  Process  Resource Type with 4 instances  P i requests an instance of R j  P i is holding an instance of R j PiPi RjRj PiPi RjRj

9 9 Example of a Resource Allocation Graph

10 10 Resource Allocation Graph With A Deadlock

11 11 Graph With A Cycle But No Deadlock

12 12 Basic Facts  If graph contains no cycles  no deadlock  If graph contains a cycle   if only one instance per resource type, then deadlock  if several instances per resource type, possibility of deadlock

13 13 Methods of Handling Deadlocks  Ensure system will never enter a deadlock state  Deadlock Prevention  Deadlock Avoidance  Allow system to enter deadlock state, then recover  Deadlock Detection and Recovery  Third method? Hint: it is practical!  Ignore the problem and pretend that deadlocks never occur in the system;  Used by most OSes, including UNIX and Windows

14 14 Deadlock Prevention  Ensure that at least one of the necessary conditions cannot hold  Restrain the ways resource requests can be made  Mutual Exclusion – cannot be broken  We cannot prevent deadlocks by denying mutual exclusion because some resources are non-sharable  Sharable resources (e.g., read-only files) can be accessed concurrently  Hold and Wait – can be broken if  A process requests a resource only if it does not hold any other resources  A process requests and is allocated all its resources before it begins execution  Disadvantages: Low resource utilization; starvation possible

15 15 Deadlock Prevention (cont’d)  No Preemption – can be broken if we use the following protocol  If a process holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released  Preempted resources are added to the list of resources for which the process is waiting  Process will be restarted only when it can regain its old resources as well as the new ones that it is requesting  Problems?  difficult to use with resources whose state are not easily saved, e.g., printers and tape drives. (In contrast to CPU registers and memory space)

16 16 Deadlock Prevention (cont’d)  Circular Wait – Can be broken if we can:  Impose a total ordering on all resource types, and  Require that each process requests resources in an increasing order of enumeration  Exercise: prove that if we follow the above protocol, no circular wait can occur. (Hint: use proof by contradiction)

17 17 Deadlock Avoidance  Requires the system to have some information on how resources will be requested  Each process declares the maximum number of resources of each type that it may need  Deadlock-avoidance algorithm:  When a process requests an available resource, system decides if allocation leaves the system in a safe state  If yes, grant the resource. Otherwise, process must wait  System state is defined by the number of available and allocated resources, and the maximum demands of the processes

18 18 Safe State  Safety Condition:  System is in safe state if there exists a sequence of ALL processes such that for each P i, the resources that P i can still request can be satisfied by currently available resources plus resources held by all P j with j < i.  Why is this condition enough to avoid deadlocks?  If P i resource needs are not immediately available, then P i can wait until all P j have finished.  When P j is finished, P i can obtain needed resources, execute, return allocated resources, and terminate.  When P i terminates, P i +1 can obtain its needed resources, and so on.

19 19 Basic Facts  If system is in safe state  no deadlocks  If system is in unsafe state  possibility of deadlock  Avoidance  ensure system will never enter unsafe state

20 20 Avoidance algorithms  Single instance of a resource type  Use a resource-allocation graph  Multiple instances of a resource type  Use the banker’s algorithm

21 21 Resource-Allocation Graph Scheme  Definition: A Claim edge from P i to R j indicates that process P i may request resource R j  represented by a dashed line in the graph  Claim edge converts to request edge when a process requests a resource  Request edge converted to an assignment edge when the resource is allocated to the process  When a resource is released by a process, assignment edge reconverts to a claim edge  Resources must be claimed a priori in the system

22 22 Resource-Allocation Graph Request edge Claim edge Assignment edge

23 23 Unsafe State In Resource-Allocation Graph

24 24 Resource-Allocation Graph Algorithm  Suppose that process P i requests resource R j  The request can be granted only if converting the request edge to assignment edge does not create a cycle in the resource allocation graph

25 25 Banker’s Algorithm  Multiple instances of resources  Each process must a priori claim maximum use  Basic idea of the algorithm:  If P i requests resource(s) AND it is available  Pretend to allocate requested resource(s) to P i by modifying the state  Check whether the resulting state is safe by finding any execution sequence of processes that satisfies safety condition  If state is safe, the resource(s) are assigned to P i

26 26 Data Structures for the Banker’s Algorithm  Available: Vector of length m. If available [j] = k, there are k instances of resource type R j available.  Max: n x m matrix. If Max [i,j] = k, then process P i may request at most k instances of resource type R j.  Allocation: n x m matrix. If Allocation[i,j] = k then P i is currently allocated k instances of R j.  Need: n x m matrix. If Need[i,j] = k, then P i may need k more instances of R j to complete its task. Need [i,j] = Max[i,j] – Allocation [i,j]. Let n = number of processes, and m = number of resources types.

27 27 Safety Algorithm 1.Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i = 0, 1, …, n- 1. 2.Find and i such that both: (a) Finish [i] = false (b) Need i  Work If no such i exists, go to step 4. 3.Work = Work + Allocation i Finish[i] = true go to step 2. 4.If Finish [i] == true for all i, then the system is in a safe state.

28 28 Resource-Request Algorithm for Process P i Request = request vector for process P i. If Request i [j] = k then process P i wants k instances of resource type R j. 1.If Request i  Need i go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim. 2.If Request i  Available, go to step 3. Otherwise P i must wait, since resources are not available. 3.Pretend to allocate requested resources to P i by modifying the state as follows: Available = Available – Request; Allocation i = Allocation i + Request i ; Need i = Need i – Request i ; l If safe  the resources are allocated to Pi. l If unsafe  Pi must wait, and the old resource-allocation state is restored

29 29 Example of Banker’s Algorithm  5 processes P 0 through P 4 ; 3 resource types: A (10 instances), B (5instances), and C (7 instances).  Snapshot at time T 0 : AllocationMaxAvailable A B CA B C A B C P 0 0 1 07 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 24 3 3

30 30 Example (cont’d)  The content of the matrix Need is defined to be Max – Allocation Need A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1  The system is in a safe state since the sequence satisfies safety criteria

31 31 Example: P 1 Request (1,0,2)  Check that Request  Available (that is, (1,0,2)  (3,3,2)  true. AllocationNeedAvailable A B CA B CA B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 20 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1  Executing safety algorithm shows that sequence satisfies safety condition.  Can request for (3,3,0) by P 4 be granted?  Can request for (0,2,0) by P 0 be granted?

32 32 Deadlock Detection  Allow system to enter deadlock state  Detection algorithm  Recovery scheme

33 33 Single Instance of Each Resource Type  Maintain wait-for graph  Nodes are processes  P i  P j if P i is waiting for P j  Periodically invoke an algorithm that searches for a cycle in the graph. If there is a cycle, there exists a deadlock  An algorithm to detect a cycle in a graph requires an order of n 2 operations, where n is the number of vertices in the graph

34 34 Resource-Allocation Graph and Wait-for Graph Resource-Allocation GraphCorresponding wait-for graph

35 35 Several Instances of a Resource Type  The algorithm is similar to the Banker’s Algorithm  See textbook

36 36 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 for each disjoint cycle

37 37 Recovery from Deadlock: 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?

38 38 Recovery from Deadlock: Resource Preemption  Selecting a victim – minimize cost  Rollback – return to some safe state, restart process from that state  Starvation – same process may always be picked as victim, include number of rollback in cost factor

39 39 Summary  Deadlock: A set of processes each holding a resource and waiting for a resource held by another process in the set  Four necessary conditions  Mutual exclusive, no preemption, hold and wait, circular wait  If they all hold, deadlock may (or may not) occur  Deadlock handling  Prevention: ensure that at least one of the necessary conditions does not hold  Avoidance: decide for each request whether or not the issuing process should wait to avoid leaving the system in unsafe state Resource-allocation graph: single instance of a resource type Banker’s algorithm: multiple instances of a resource type  Detection and Recovery Detection algorithm Recovery: process termination or resource preemption


Download ppt "1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Ch 7: Deadlock Dr. Mohamed Hefeeda."

Similar presentations


Ads by Google