Deadlock Chapter 3 R 1 P 1 Allocated
- Slides: 32
Deadlock Chapter 3 R 1 P 1 Allocated Requested P 2 R 2
Resources • Processes compete for system resources – CPU cycles – I/O devices – Printers – Tape drives – Files – Tables – Database records
Resources: Preemptible vs. Nonpreemptible • Preemptible – Can be taken away from a process without ill effect • Examples? • Nonpreemptible – Taking it away from a process causes the process to fail • We are concerned with nonpreemptable resources
How a process relates to a (nonpreemptible) resource • It requests the resource – What can it do if it isn’t available? • It uses the resource • It releases the resource, making it available to another process
Using a semaphore to protect resources One resource Two resources
Using semaphores to protect resources Deadlock-free Deadlock-prone
The problem of deadlock • If a process is waiting for a resource that is held by another process that is waiting for another resource held by another process… – A set of processes is in a deadlocked state when every process is waiting for an event that can be caused only by another process in the set
The four necessary conditions for deadlock to occur • Mutual exclusion – the resource can be used by only one process at a time • Hold & wait or resource holding – processes are permitted to hold onto their current resources while they wait for others • No preemption – no process can bump another for its resource • Circular wait – can show that there is a cycle
Resource allocation graphs for deadlock modeling a) Resource R is assigned to Process A b) Process B is waiting for Resource S c) Processes C & D are in deadlock over Resources T & U
Creating deadlock A B C
Avoiding deadlock
Addressing the issue of deadlock • Ignorance – Ostrich algorithm • Detection & recovery – Scan the system looking for cycles of hold & wait – Implement recovery algorithms • Avoidance – If it seems that deadlock is a possibility, do something to keep it from happening • Prevention – negate one of the four necessary conditions
Ignorance: Ostrich Algorithm • Pretend there is no problem • Reasonable if – deadlocks occur very rarely – cost of prevention is high • UNIX and Windows takes this approach • It is a trade off between – convenience – correctness
Deadlock detection in a graph • Find a process not waiting for any resource. – Remove its allocation arrows & reallocate its resources • Find a process that is waiting only for resources that are not completely allocated. – Remove these allocation arrows & reallocate the resources • Repeat until all lines have been removed or you determine that they cannot all be removed.
Resource graph: detection with one resource of each type T A cycle can be found within the graph, denoting deadlock
Resource graph: detection with multiple resources of each type R 1 P 1 R 3 P 2 R 2 P 3 R 4
Data structures needed for detection with multiple resources of each type n Σ Cij + Aj = Ej i=1 Fig. 3 -6
Detection with multiple resources of each type Resources in existence Resources available See pp. 172 -173
Recovery from deadlock • Recovery through preemption – take a resource from some other process – depends on nature of the resource • Recovery through rollback – checkpoint a process periodically – use this saved state – restart the process if it is found deadlocked
Recovery from deadlock • Recovery through killing processes – crudest but simplest way to break a deadlock – kill one of the processes in the deadlock cycle – the other processes get its resources – choose process that can be rerun from the beginning
Avoidance – Banker’s algorithm • Use an algorithm similar to what a bank uses to ensure that it always has funds on hand to satisfy its customers’ eventual needs – Each process must state upfront what its maximum resource needs will be • Deal with safe and unsafe states – avoid unsafe states • Working with multiple instances of resources
Safe state We have a total of 10 instances of a given resource, with processes A, B, C holding & eventually needing what is indicated here: (a) (b) (c) (d) (e) State (a) is safe because • It is not deadlocked • There is a scheduling order for each process to run to completion
Unsafe states (a) (b) (c) State (b) is unsafe because • There is no way to satisfy all processes after it (d)
Banker's Algorithm for multiple instances of a single resource (a) (b) Are each of these states safe or unsafe? (c)
Banker's Algorithm for multiple resources
Prevention • • Don’t allow mutual exclusion Eliminate resource holding Allow preemption Modify circular wait
Preventing the “mutual exclusion” condition • Devices, such as printer, can be spooled – only the printer daemon uses printer resource – thus deadlock for printer eliminated • But not all devices can be spooled, so abide by the principle: – Allow as few processes as possible to actually claim the resource
Preventing the “hold and wait” condition • Require processes to request all resources before starting – Then, a process never has to wait for what it needs • Problems – Process may not know required resources at start – Ties up resources other processes could be using
Preventing the “no preemption” condition • This is not usually a viable option • Consider a process given the printer – halfway through its job – now forcibly take away printer – !!? ?
Preventing the “circular wait” condition Order resources Allocate in order
Summary of approaches to deadlock prevention
Related issues • Two-phase locking in databases • Deadlocking on semaphores • Starvation in CPU scheduling
- Pseudocode with functions
- Kernel dynamic memory
- Fully allocated cost
- Deadlock chapter 37
- Java deadlock detection
- Deadlock o que é
- Coffman deadlock
- Deadlock in operating system notes
- Deadlock solver
- Starvation vs deadlock
- Control organization for distributed deadlock detection
- Path pushing deadlock detection algorithm
- Deadlock prevention vs avoidance
- Deadlock prevention avoidance and detection
- Deadlock adalah
- Deadlock characterization in os
- Deadlock
- Deadlock characterization
- Deadlock and starvation
- Deadlocks
- Deadlock
- System model in deadlock in os
- What are the seven cases of deadlock
- Starvation vs deadlock
- Deadlock detection and recovery
- Traffic deadlock
- Method of handling deadlock
- Starvation deadlock
- Methods of handling deadlock in os
- Redshift deadlock detected
- Method of handling deadlock
- An edge from process pi to pj
- Kesimpulan deadlock