Professional Documents
Culture Documents
4 : Deadlocks
Process concept Process scheduling Interprocess communication Deadlocks Threads
2.4-1
What is Deadlock?
Process Deadlock
A process is deadlocked when it is waiting on an event which will never happen
System Deadlock
A system is deadlocked when one or more processes are deadlocked
Ceng 334 - Operating Systems
2.4-2
Circular Wait
A circular chain of processes exists in which each process holds resources wanted by the next process in the chain
2.4-4
No Deadlock Situation
If you can prevent at least one of the necessary deadlock conditions then you wont have a DEADLOCK
Ceng 334 - Operating Systems
2.4-5
Deadlock Avoidance
Deadlock Recovery
2.4-7
Deadlock Prevention
Remove the possibility of deadlock occurring by denying one of the four necessary conditions: Mutual Exclusion Hold & Wait No preemption Circular Wait
Ceng 334 - Operating Systems
2.4-8
Either a process gets ALL its required resources and proceeds or it gets NONE of them and waits until it can
Ceng 334 - Operating Systems
2.4-9
Advantages
It works Reasonably easy to code
Problems
Resource wastage Possibility of starvation
2.4-10
Denying No preemption
Implementation When a process is refused a resource request, it MUST release all other resources it holds Resources can be removed from a process before it is finished with them
Ceng 334 - Operating Systems
2.4-11
Advantages
It works Possibly better resource utilisation
Problems
The cost of removing a process's resources The process is likely to lose work it has done. (How often does this occur?) Possibility of starvation
Ceng 334 - Operating Systems
2.4-12
Resources are uniquely numbered Processes can only request resources in linear ascending order Thus preventing the circular wait from occurring
Ceng 334 - Operating Systems
2.4-13
Advantages
It works Has been implemented in some OSes
Problems
Resources must be requested in ascending order of resource number rather than as needed Resource numbering must be maintained by someone and must reflect every addition to the OS Difficult to sit down and write just write code
Ceng 334 - Operating Systems
2.4-14
Deadlock Avoidance
Allow the chance of deadlock occur But avoid it happening.. Check whether the next state (change in system) may end up in a deadlock situation
2.4-15
Bankers Problem
Customer
c1
Max. Need
800
Present Loan
410
Claim
390
c2
600
210
390
Suppose total bank capital is 1000 MTL Current cash : 1000- (410+210) = 380 MTL
Ceng 334 - Operating Systems
2.4-16
2.4-17
Assumptions
Establish a LOAN ceiling (MAXIMUM NEED) for each process
MAXIMUM NEED < total number of resources available (ie., capital)
Total loans for a process must be less than or equal to MAXIMUM NEED Loaned resources must be returned back in finite time
Ceng 334 - Operating Systems
2.4-18
Algorithm
1. Search for a process with a claim that can satisfied using the current number of remaining resources (ie., tentatively grant the claim) 2. If such a process is found then assume that it will return the loaned resources. 3. Update the number of remaining resources 4. Repeat steps 1-3 for all processes and mark them
Ceng 334 - Operating Systems
2.4-19
DO NOT GRANT THE CLAIM if at least one process can not be marked.
Implementation A resource request is only allowed if it results in a SAFE state The system is always maintained in a SAFE state so eventually all requests will be filled
Ceng 334 - Operating Systems
2.4-20
Advantages
It works Allows jobs to proceed when a prevention algorithm wouldn't
Problems
Requires there to be a fixed number of resources What happens if a resource goes down? Does not allow the process to change its Maximum need while processing
Ceng 334 - Operating Systems
2.4-21
(a)
(b)
(c)
(d)
(e)
2.4-22
(a)
(b)
(c)
(d)
(a)
(b)
(c)
Deadlock Detection
Methods by which the occurrence of deadlock, the processes and resources involved are detected. Generally work by detecting a circular wait
The cost of detection must be considered One method is resource allocation graphs
Ceng 334 - Operating Systems
2.4-26
Deadlock Recovery
Recover from the deadlock by removing the offending processes
The process being removed may lose work
2.4-27
resource R assigned to process A process B is requesting/waiting for resource S process C and D are in deadlock over resources T and U
Ceng 334 - Operating Systems
2.4-28
Problems
Most systems do not support the removal and then restarting of a process. Some processes should NOT be removed. It is possible to have deadlock involving tens or even hundreds of processes
2.4-29
Implementation
Processes are simply killed off (lost forever) Usually some sort of priority order exists for killing Some systems come with checkpoint/restart features Developers indicate a series of checkpoints when designing a software application So a process only need be rolled back to the last checkpoint, rather than back to the beginning
2.4-30
Question : What is the simplest and most used method to recover from a deadlock?
2.4-31