Title: Deadlock
1Deadlock
- Chapter 3
- Thursday, February 22, 2007
2Todays Schedule
- Assignment 4 from Chapter 3 posted
- Deadlock - Chapter 3
- Skip multiple resources (3.4.2 3.5.4)
3Todays Objectives
- You will be able to describe
- Several causes of system deadlock
- The difference between preventing and avoiding
deadlocks - How to detect and recover from deadlocks
- How to prevent deadlock
4Overview
- A lack of process synchronization results in
deadlock or starvation - Deadlock
- A system-wide tangle of resource requests that
begins when two or more jobs are put on hold - Each job waiting for a vital resource to become
available - The jobs come to a standstill
- Resolved via external intervention
- Starvation Infinite postponement of a job
5Starvation
- Which of the following scheduling algorithms
could result in starvation? If so, how? - First-come, First-served
- Shortest job first
- Round robin
- Priority
6Deadlock
- Affects more than one job, hence more serious
than starvation - System (not just a few programs) is affected as
resources are being tied up - e.g., Traffic jam
7Deadlock in Spooling
- Virtual device Sharable devicee.g., a printer
transformed by installing a high-speed device, a
disk, between it and the CPU - Spooling Disk accepts output from several users
and acts as a temporary storage area for all
output until printer is ready to accept it - Deadlock in spooling If printer needs all of a
job's output before it will begin printing, but
spooling system fills available disk space with
only partially completed output
8Deadlock Defined
- From our more playful days
- Ive got the ball and want the bat
- Youve got the bat and want the ball
- 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.
9Modeling DeadlocksResource Allocation Graphs
Process P1 requests Resource R1
Process P1 holds Resource R1
10How deadlock occurs
A B
C
Cycle formed!!
11How deadlock can be avoided
(o) (p)
(q)
12Conditions Required for Deadlock
- Mutual exclusion conditioneach resource assigned
to 1 process or is available - Hold and wait conditionprocess holding resources
can request additional - No preemption conditionpreviously granted
resources cannot forcibly taken away - Circular wait conditionmust be a circular chain
of 2 or more processeseach is waiting for
resource held by next member of the chain
13Dealing with Deadlock
- Ostrich Algorithm Ignore deadlock possibility!
- Detection Recovery
- Dynamic Avoidance
- careful resource allocation
- Prevention
- negating one of the four necessary conditions
14Ostrich Algorithm
- Stick your head in the sand and pretend there is
no problem at all - Reasonable if
- deadlocks occur very rarely
- cost of prevention is high
- UNIX and Windows takes this approach
- Trade off between
- convenience
- correctness
- What is the typical use of the system?
- What is the probability of deadlock?
- Do the costs associated with dealing w/ deadlock
outweigh the benefits?
15Detecting Deadlock Find Cycle
- Note the resource ownership and requests
- A cycle can be found within the graph, denoting
deadlock
16How to Recover 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 through killing processes
- crudest but simplest way to break a deadlock
- kill one of the processes in the deadlock cycle
17Avoid Deadlock Resource Trajectories Show
B
Impossible
Printer
I9
I8
I7
I6
Plotter
t
u
Unsafe
r
s
A
p
q
I1
I2
I3
I5
I4
Printer
Plotter
18Safe/Unsafe States
- Safe State
- Not in deadlock
- There is some scheduling order with which all
processes can finish - Unsafe State
- Not necessarily deadlock
- Doesnt guarantee deadlock
- But cant guarantee deadlock will be avoided
19Avoid Deadlock
Unsafe State
deadlock
Safe State
20Bankers Algorithm Avoid Deadlock
- Regulate resource allocation
- No loan exceeding banks total capital
- Customers have a pre-set maximum credit
- May not borrow over the limit
- Total of all loans may not exceed banks capital
21Avoidance (continued)
Safe state Bank still has enough money left
after loans to satisfy the maximum requests of
C1, C2, or C3
The bank started with 10,000 and has remaining
capital of 4,000 after these loans
22Avoidance (continued)
Unsafe state Bank does not have enough money
left after loans to satisfy the maximum requests
of C1, C2, or C3
Table 5.5 The bank has remaining capital of only
1,000 after these loans and therefore is
in an unsafe state
23Avoidance (continued)
Same banking principles can be applied to an
operating system
Table 5.6 A safe state six devices are
allocated and four units are still
available
24Avoidance (continued)
An unsafe state only one unit is available but
every job requires at least two to complete its
execution
25Deadlock Avoidance
- To avoid deadlock, OS must make sure
- Never satisfy a request that moves it from a safe
state to an unsafe one - Must identify the job with the smallest number of
remaining resources - Number of available resources is always equal to,
or greater than, the number needed for the
selected job to run to completion
26Attack Deadlock Conditions
- Attack Mutual Exclusion
- Attack Hold and Wait
- Require all process to request all resources
before starting execution - Resource must temporarily release all the
resources it currently holds - Attack No preemption
- Just take away resource, does not work
- Attack Circular Wait condition
- Process is entitled to single resource at any
moment - Use of global numbering
- All requests made in numerical order
27Summary
- Resources can be preemptable nonpreemptable
- Deadlock can cause processes to halt (stop making
progress) - We can detect deadlock
- RAGs are quite useful to detect deadlock
- Ostrich algorithm quite popular
28Summary (cont)
- Trajectories can help in process scheduling to
avoid deadlock - Avoid unsafe states
- Prevent Deadlock by attack one of four necessary
conditions - Ordering resources avoids circular wait
- Keep processes from starving all processes must
make some progress
29Tuesday, Feb 27, Memory
- Complete Assignment 4
- Begin reading Chapter 4 Memory Management