Top Banner
Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks • Process concept • Process scheduling • Interprocess communication • Deadlocks • Threads
31

Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept Process scheduling Interprocess communication Deadlocks Threads.

Dec 18, 2015

Download

Documents

Kathlyn Parker
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-1

Chapter 2.4 : Deadlocks

• Process concept • Process scheduling • Interprocess communication • Deadlocks

• Threads

Page 2: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-2

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

Page 3: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-3

Necessary Conditions for a Deadlock

• Mutual Exclusion– Shared resources are used in a mutually

exclusive manner

• Hold & Wait– Processes hold onto resources they already

have while waiting for the allocation of other resources

Page 4: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-4

Necessary Conditions for a Deadlock (Cont.)

• No Preemption – Resources can not be preempted

until the process releases them

• Circular Wait – A circular chain of processes exists

in which each process holds resources wanted by the next process in the chain

Page 5: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-5

No Deadlock Situation

If you can prevent at least one of the necessary deadlock conditions then you won’t have a DEADLOCK

Page 6: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-6

The 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

Page 7: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-7

Ways of Handling Deadlock

• Deadlock Prevention

• Deadlock Detection

• Deadlock Avoidance

• Deadlock Recovery

Page 8: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-8

Deadlock Prevention

• Remove the possibility of deadlock occurring by denying one of the four necessary conditions:

– Mutual Exclusion (Can we share everything?)

– Hold & Wait

– No preemption

– Circular Wait

Page 9: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-9

• Implementation

– A process is given its resources on a

"ALL or NONE" basis

– Either a process gets ALL its required

resources and proceeds or it gets

NONE of them and waits until it can

Denying the “Hold & Wait”

Page 10: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-10

• Advantages– It works

– Reasonably easy to code

• Problems– Resource wastage

– Possibility of starvation

Page 11: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-11

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

Page 12: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-12

• 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

Page 13: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-13

Denying “Circular Wait”

• Implementation

– Resources are uniquely numbered

– Processes can only request resources in linear ascending order

– Thus preventing the circular wait from occurring

Page 14: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-14

• 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

Page 15: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-15

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

Page 16: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-16

Banker’s Problem

• Suppose total bank capital is 1000 MTL

• Current cash : 1000- (410+210) = 380 MTL

Customer

c1

c2

Max. Need

800

600

Present Loan

410

210

Claim

390

390

Page 17: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-17

Dijkstra's Banker's Algorithm

• Definitions

– Each process has a LOAN, CLAIM, MAXIMUM NEED• LOAN: current number of resources held• MAXIMUM NEED: total number resources

needed to complete• CLAIM: = (MAXIMUM - LOAN)

Page 18: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-18

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

Page 19: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-19

Algorithm1. 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

Page 20: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-20

• 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

Page 21: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-21

• 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

Page 22: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-22

Safe and Unsafe States (1)

Demonstration that the state in (a) is safe

(a) (b) (c) (d) (e)

Page 23: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-23

Safe and Unsafe States (2)

Demonstration that the sate in (b) is not safe

(a) (b) (c) (d)

Page 24: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-24

The Banker's Algorithm for a Single Resource

• Three resource allocation states– safe– safe– unsafe

(a) (b) (c)

Page 25: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-25

Banker's Algorithm for Multiple Resources

Example of banker's algorithm with multiple resources

Page 26: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-26

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

Page 27: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-27

Deadlock Recovery

• Recover from the deadlock by removing the offending processes

• The process being removed may lose work

Page 28: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-28

A Resource Allocation Graph Example

–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

Page 29: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-29

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

Page 30: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-30

• Implementation– Processes are simply killed off (lost forever)– Usually some sort of priority order exists for

killing• Support for suspend/resume (rollback)

– 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

Page 31: Ceng 334 - Operating Systems 2.4-1 Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.

Ceng 334 - Operating Systems 2.4-31

Question : What is the simplest and most used method to recover from a deadlock?