OS-Chap6-2021 01 22
OS-Chap6-2021 01 22
OS-Chap6-2021 01 22
Resource
Introduction to deadlocks
The ostrich algorithm
Deadlock detection and recovery
Deadlock avoidance
Deadlock prevention
Other issues
Chapter Objectives
To develop a description of deadlocks, which prevent sets of concurrent
processes from completing their tasks
To present a number of different methods for preventing or avoiding
deadlocks in a computer system.
2
Resources(1)
Examples of computer resources
• CPU • Printer
• Memory • Speaker
• Disk drive • Plotter
Processes need access to resources in reasonable order
Suppose a process holds resource X and requests resource Y
at same time another process holds Y and requests X
both are blocked and remain so
3
Resources (2)
Active resource
Provides a service
E.g.,, CPU, network adaptor
Passive resource
System capabilities that are required by active resources
E.g.,, memory, network bandwidth
Exclusive resource
Only one process at a time can use it
E.g.,, loudspeaker, processor
Shared resource
Can be used by multiple processes
E.g.,, memory, bandwidth
4
Resources (3)
Single resource
Exists only once in the system
E.g., loudspeaker
Multiple resource
Exists several times in the system
E.g., processor in a multiprocessor system
Preemptable resource
Resource that can be taken away from a process
E.g., CPU can be taken away from processes in user space
Non-preemptable resource
Taking it away will cause processes to fail
E.g., Disk, files
5
Resources (4)
Must wait if request is denied
requesting process may be blocked
may fail with error code
Sequence of events required to use a resource
1. request the resource
2. use the resource
3. release the resource
6
Resources (5)
Deadlocks
Occur only when processes are granted exclusive access
to resources
Example request/release as system call
request/release device
open/close file
allocate/free memory
wait/signal
7
Introduction to Deadlocks
Formal definition :
A set of processes is deadlocked if each process in the set is waiting for an event that
only another process in the set can cause
Usually the event is release of a currently held resource
None of the processes can …
run
release resources
be awakened
8
Four Conditions for Deadlock
1. Mutual exclusion condition
Each resource assigned to 1 process or is available
2. Hold and wait condition
Process holding resources can request additional
3. No preemption conditions
Previously granted resources cannot forcibly taken away
4. Circular wait condition
Must be a circular chain of 2 or more processes
Each is waiting for resource held by next member of the chain
9
Deadlock Modeling (1)
Modeled with directed graphs
Resource-Allocation Graph (RAG)
11
Deadlock Modeling (3)
How deadlock can be avoided
12
Deadlock Example
• A utility program • A deadlock
• Copies a file from a tape to disk
• Prints the file to a printer
• Resources
• Tape
• Disk
• Printer
13
Strategies for dealing with Deadlocks
14
The Ostrich Algorithm
Pretend there is no problem
Reasonable if
deadlocks occur very rarely
cost of prevention is high
UNIX and Windows take this approach
It is a trade off between
convenience
correctness
15
Detection with Multiple Resource of Each Type (1)
16
Detection with Multiple Resource of Each Type (2)
17
Detection with Multiple Resource of Each Type (3)
An example for the deadlock detection algorithm
After first cycle A=(2 2 2 0),
After second cycle A=(4 2 2 1)
18
Recovery from Deadlock (1)
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
19
Recovery from Deadlock (2)
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
20
Deadlock Avoidance
Resource Trajectories
Two process resource trajectories
21
Deadlock Avoidance
Basic Facts
At any instant of time, current state of system consisting of E (Resources in
Existance), A (Resource Available), C (Current allocation matrix), R (Request
matrix)
If a system is in safe state no deadlocks.
If a system is in unsafe state possibility of deadlock.
Avoidance ensure that a system will never enter an unsafe state.
22
Deadlock Avoidance
Safe, Unsafe , Deadlock State
23
Deadlock Avoidance
Safe and Unsafe States (1)
- Example: 3 processses A, B, C using one resource with total 10 instances, 7
already allocated, 3 available
- Demonstration that the state in (a) is safe
24
Deadlock Avoidance
Safe and Unsafe States (2)
Demonstration that the state in b is not safe
25
Deadlock Avoidance
The Banker's Algorithm for a Single Resource (1)
Three resource allocation states
(a) safe
(b) safe
(c) unsafe
26
Deadlock Avoidance
The Banker's Algorithm for a Single Resource (2)
The banker’s algorithm considers each request as it occurs, and see if granting it leads
to a safe state.
If it does, the request is granted; otherwise, it is postponed until later.
To see if a state is safe, the banker checks to see if he has enough resources to satisfy
some customer.
If so, those loans are assumed to be repaid, and the customer now closest to the limit is
checked, and so on. If all loans can eventually be repaid, the state is safe and the initial
request can be granted.
27
Deadlock Avoidance
Banker's Algorithm for Multiple Resources (1)
Example of banker's algorithm with multiple resources
If order is D, E, A, B, C, Vector A will be (2121), (2121), (5132), (5232), (6342)
28
Deadlock Avoidance
Banker's Algorithm for Multiple Resources (2)
The algorithm for checking to see if a state is safe can be stated.
1. Look for a row, R, whose unmet resource needs are all smaller than or equal to A. If no
such row exists, the system will eventually deadlock since no process can run to
completion.
2. Assume the process of the row chosen requests all the resources it needs and finishes.
Mark that process as terminated and add all its resources to the A vector.
3. Repeat steps 1 and 2 until either all processes are marked terminated, in which case
the initial state was safe, or until a deadlock occurs, in which case it was not.
29
Deadlock Prevention
Attacking the Mutual Exclusion Condition
Some devices (such as printer) can be spooled
only the printer daemon uses printer resource
thus deadlock for printer eliminated
Not all devices can be spooled
Principle:
avoid assigning resource when not absolutely necessary
as few processes as possible actually claim the resource
30
Deadlock Prevention
Attacking the Hold and Wait Condition
Require processes to request resources before starting
a process never has to wait for what it needs
Problems
may not know required resources at start of run
also ties up resources other processes could be using
Variation:
process must give up all resources
then request all immediately needed
31
Deadlock Prevention
Attacking the No Preemption Condition
This is not a viable option
Consider a process given the printer
halfway through its job
now forcibly take away printer
!!??
32
Deadlock Prevention
Attacking the Circular Wait Condition (1)
Normally ordered resources
A resource graph
(a) (b)
33
Deadlock Prevention
Summary of approaches to deadlock prevention
34
Other Issues
Two-Phase Locking
Phase One
process tries to lock all records it needs, one at a time
if needed record found locked, start over
(no real work done in phase one)
If phase one succeeds, it starts second phase,
performing updates
releasing locks
Note similarity to requesting all resources at once
Algorithm works where programmer can arrange
program can be stopped, restarted
35
Nonresource Deadlocks
Possible for two processes to deadlock
each is waiting for the other to do some task
Can happen with semaphores
each process required to do a down() on two semaphores (mutex and another)
if done in wrong order, deadlock results
36
Starvation
Algorithm to allocate a resource
may be to give to shortest job first
Works great for multiple short jobs in a system
May cause long job to be postponed indefinitely
even though not blocked
Solution:
First-come, first-serve policy
37
SUMMARY
Resource
Introduction to deadlocks
The ostrich algorithm
Deadlock detection and recovery
Deadlock avoidance
Deadlock prevention
Other issues
38