1 / 37

Chapter 6 Concurrency: Deadlock and Starvation

Chapter 6 Concurrency: Deadlock and Starvation. Objectives. Topics to Cover…. Resources Deadlock Joint Process Diagrams Deadlock Conditions Circular Wait Resource Allocation Graph Handling Deadlock Avoidance Detection Recovery. Reusable Resources.

selia
Download Presentation

Chapter 6 Concurrency: Deadlock and Starvation

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. Chapter 6Concurrency:Deadlock and Starvation

  2. Objectives Topics to Cover… • Resources • Deadlock • Joint Process Diagrams • Deadlock Conditions • Circular Wait • Resource Allocation Graph • Handling Deadlock • Avoidance • Detection • Recovery Concurrency

  3. Reusable Resources Used by one process at a time and not depleted by that use Processes obtain resources that they later release for reuse by other processes Processor time, I/O channels, main and secondary memory, files, databases, and semaphores Deadlock occurs if each process holds one resource and requests the other Resources Concurrency

  4. Consumable Resources Created (produced) and destroyed (consumed) by a process Interrupts, signals, messages, and information in I/O buffers Deadlock may occur if a Receive message is blocking May take a rare combination of events to cause deadlock Resources Concurrency

  5. Deadlock System Model Process must request a resource before using Process must release the resource when done Deadlock A set of processes is in a deadlock state when every process in the set is waiting for an event that can only be caused by another process in the set. Deadlock Concurrency

  6. Quiz 6.1 Answer… Deadlock • How could deadlock occur when • 200K bytes of memory is available for allocation by the system • Process 1 needs 140K in 80K, 60K blocks • Process 2 needs 150k in 70K, 80K blocks Concurrency

  7. Quiz 6.2 Answer… Deadlock • How could deadlock occur when • Two processes need to communicate via send/receive messages • Process 1 waits to hear from process 2 before sending data • Process 2 proceeds after hearing from process 1 Concurrency

  8. Deadlock Quiz 6.3 • How is this deadlock?? Concurrency

  9. Joint Process Diagram 2 1 Both P and Q have A A Required B Required 5 Both P and Q have B P has B Q has A 4 6 3 A Required B Required Diagrams Progress of Q Release A Release B Get A ? Get B Fatal Region P has A, Q has B Deadlock! Progress of P Get A Get B Release A Release B Concurrency

  10. Joint Process Diagram 2 1 B Required Both P and Q have B A Required Both P and Q have A 4 3 A Required B Required Diagrams P has A Q has B Ok! Progress of Q P has A and B Q wants A Can’t get there! Release B Release A Get B ? Get A Progress of P Get A Get B Release A Release B Qhas A wants B, Pwants A? Can’t get there! Concurrency

  11. Joint Process Diagram Diagrams Progress of Q 2 1 3 Release A 6 Both P and Q have A A Required Release B Get A Both P and Q have B B Required 5 Get B 4 Progress of P Get A Release A Get B Release B A Required B Required Concurrency

  12. Necessary Conditions Mutual exclusion only one process may use a resource at a time. no process may access resource allocated to another. Hold-and-wait a process may hold allocated resources while awaiting assignment of other resources. No preemption no resource can be forcibly removed from a process holding it. Necessary Conditions Concurrency

  13. Conditions for Deadlock Circular wait a closed chain of processes exists, such that each process holds at least one resource needed by the next process in the chain consequence of the first three conditions Other conditions are necessary but not sufficient for deadlock - all four conditions must hold for deadlock Unresolvable circular wait is the definition of deadlock! Necessary Conditions Concurrency

  14. Circular Wait Held by Requests Resource A Process P1 Process P2 Held By Requests Resource B Circular Wait Concurrency

  15. Describing Deadlock Deadlocks can be described using resource allocation graph Vertices Active processes {P1, P2, … } Resources {R1, R2, … } Edges A directed edge from Pi to Rj Process Pi requested an instance of resource Rj A directed edge from Rj to Pi Resource Rj has been allocated to process Pi Process are circles, resources are rectangles Resource Allocation Graph Concurrency

  16. Resource Allocation Graph R1 R2 Process are circles, resources are rectangles A directed edge from Pi to Rj indicates process Pi has requested an instance of resource Rj P1 P2 P3 A directed edge from Rj to Pi indicates resource Rj has been allocated to process Pi R3 R4 Resource Allocation Graph Concurrency

  17. Resource Allocation Graph Resource Allocation Graph R1 R2 Is there a cycle? If a graph contains no cycles, then no process in the system is deadlocked P1 P2 P3 If the graph contains a cycle, deadlock MAY exist R3 Is there deadlock? R4 Concurrency

  18. Resource Allocation Graph Deadlock? P2 Is there a cycle? Yes R1 P1 P3 Is there deadlock? Maybe R2 P4 Concurrency

  19. Handling Deadlock Ensure the system will never deadlock deadlock prevention eliminate a condition avoidance algorithms Recover from deadlock detect deadlock and eliminate it Ignore deadlock system may hang so Handling Deadlock Concurrency

  20. Prevention by Elimination Mutual Exclusion non-sharable resources We can’t eliminate this condition Hold and wait guarantee that when a process requests a resource, it does not hold any other resources two protocols system calls requesting resources precede all others a process can only request resources when it has none low resource utilization? Handling Deadlock Concurrency

  21. Eliminate No Preemption If a process holds resources and requests more that cannot be allocated, all its other resources are preempted If you can’t hold all, you can’t hold any process is restarted only when it can have all This works for resources whose state can be easily saved and restored later registers memory Handling Deadlock Concurrency

  22. Eliminate Circular Wait Impose a total ordering of all resources Require that all processes request resources in increasing order. Whenever a process requests a resource, it must release all resources that are lower These two protocols eliminate circular wait Handling Deadlock Concurrency

  23. Deadlock Avoidance Allow general requests, but grant only when safe Assume we know the maximum requests (claims) for each process Process must state it needs Ie. max of 5 A objects, 3 B objects, 2 C objects. Do not need to use its max claims Ie. Ok to set max=5 and only use 3 Can make requests at any time and in any order Process Initiation Denial Track current allocations Assume all processes may make maximum requests at the same time Only start process if it can’t result in deadlock regardless of allocations Avoidance Concurrency

  24. Resource Allocation Denial Safe State – We can finish all processes by some scheduling sequence Example: Finish P1, P4, P2, P5, P3 Banker’s Algorithm (Dijkstra) Reject a request if it exceeds the processes’ declared maximum claims Grant a request if the new state would be safe Determining if a state is safe Find any process Pi for which we can meet it’s maximum requests Don't forget already allocated resources Mark Pi as “done”, add its resources to available resource pool State is safe if we can mark all processes as “done” Block a process if the resources are not currently available or the new state is not safe Avoidance Concurrency

  25. Avoidance Example Allocation Allocation C - A A B C A A B B C C P1 2 2 2 P1 P1 1 1 0 0 0 0 P2 1 0 2 P2 P2 5 5 1 1 1 1 P3 1 0 3 P3 P3 2 2 1 1 1 1 P4 4 2 0 P4 P4 0 0 0 0 2 2 Avoidance Claim Available Resource • Are we in a safe state? Yes! Concurrency

  26. Quiz 6.4a Avoidance Carpentry Company XYZ has 4 employees, 9 clamps, 2 drills, and 2 bottles of glue. Chair 4 clamps, 1 drill Desk 6 clamps, 1 drill, 1 glue Picture Frame 4 clamps, 1 drill, 1 glue Book Case 6 clamps, 1 drill, 1 glue Concurrency

  27. Quiz 6.4a Needed A B C P1 3 1 0 P2 4 1 0 P3 2 0 1 P4 4 1 1 Avoidance Claim Allotted Available Resource P1 needs a drill. Is it OK to give it to him (ie. would we still be in a safe state)? Yes! Concurrency

  28. Quiz 6.4b Needed A B C P1 3 0 0 P2 4 1 0 P3 2 0 1 P4 4 1 1 Avoidance Claim Allotted Available Resource P4 needs a glue. Would you give it to him (still safe state)? No! Concurrency

  29. Quiz 6.4c If you give P4the glue, are we then deadlocked? Needed A B C P1 3 0 0 P2 4 1 0 P3 2 0 1 P4 4 1 0 Avoidance Claim Allotted Available Resource No! Concurrency

  30. Deadlock Detection Avoidance methods tend to limit access to resources Instead, grant arbitrary requests and watch for deadlock Can vary how often we check Early detection vs. overhead of checks Algorithm (Stallings, Figure 6.9) Preparation: Create table of process requests, current allocations Note available resources Mark processes with no resources Mark any process whose requests can be met (requests £ available resources) Include resources from that process as ‘available’ (this process can finish) If multiple processes available, pick any If any processes cannot be marked, they are part of a deadlock Detection Concurrency

  31. Detection Example Mark P4 (not holding anything someone else wants) A B C D E Temporary Available 0 0 0 1 0 1 0 0 0 1 Detection Request Allocation Resource Available • Mark P3, new available: 0 0 0 1 1 • Cannot mark P1 or P2, so we are deadlocked Concurrency

  32. Quiz 6.4 Are we deadlocked? A B C Temporary Available 0 0 0 Detection Requests Allocation Resource Available Concurrency

  33. Deadlock Detection Questions? Does it really work? How often should you run a detection process? How often is deadlock likely to occur? How expensive is the detection process? Detection Concurrency

  34. Deadlock Recovery Several possible approaches Abort all deadlocked processes Simple but common Back up processes to a previously saved checkpoint, then restart Assumes we have checkpoints and a rollback mechanism Runs risk of repeating deadlock Assumes that the deadlock has enough timing dependencies it won’t happen Selectively abort processes until deadlock broken Preempt resources until deadlock broken Must roll back process to checkpoint prior to acquiring key resource Recovery Concurrency

  35. Deadlock Recovery Process Termination Kill them all One at a time Consider priority Time computing Who has most resources Resource Preemption Who gets preempted Do you consider process rollback and starvation Recovery Concurrency

  36. Mixed Strategy May group resources into classes, have a different deadlock strategy for each class Swap Space Prevent deadlocks by requiring all space to be allocated at once Avoidance also possible Tapes/Files Avoidance can be effective here Prevention by ordering resources also possible Main Memory Preemption a good approach Internal Resources (channels, etc.) Prevention by ordering resources Can use linear ordering between classes Recovery Concurrency

  37. Concurrency

More Related