Chapter 2 4 Deadlocks Process concept Process scheduling

  • Slides: 31
Download presentation
Chapter 2. 4 : Deadlocks • • • Process concept Process scheduling Interprocess communication

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

What is Deadlock? • Process Deadlock – A process is deadlocked when it is

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

Necessary Conditions for a Deadlock • Mutual Exclusion – Shared resources are used in

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 Ceng 334 - Operating Systems 3

Necessary Conditions for a Deadlock (Cont. ) • No Preemption – Resources can not

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 Ceng 334 - Operating Systems 4

No Deadlock Situation If you can prevent at least one of the necessary deadlock

No Deadlock Situation If you can prevent at least one of the necessary deadlock conditions then you won’t have a DEADLOCK Ceng 334 - Operating Systems 5

The Ostrich Algorithm • Pretend there is no problem • Reasonable if – deadlocks

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 Ceng 334 - Operating Systems 6

Ways of Handling Deadlock • Deadlock Prevention • Deadlock Detection • Deadlock Avoidance •

Ways of Handling Deadlock • Deadlock Prevention • Deadlock Detection • Deadlock Avoidance • Deadlock Recovery Ceng 334 - Operating Systems 7

Deadlock Prevention • Remove the possibility of deadlock occurring by denying one of the

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 (Can we share everything? ) 8

Denying the “Hold & Wait” • Implementation – A process is given its resources

Denying the “Hold & Wait” • 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 Ceng 334 - Operating Systems 9

 • Advantages – It works – Reasonably easy to code • Problems –

• Advantages – It works – Reasonably easy to code • Problems – Resource wastage – Possibility of starvation Ceng 334 - Operating Systems 10

Denying “No preemption” • Implementation – When a process is refused a resource request,

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 11

 • Advantages – It works – Possibly better resource utilisation • Problems –

• 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 12

Denying “Circular Wait” • Implementation – Resources are uniquely numbered – Processes can only

Denying “Circular Wait” • Implementation – Resources are uniquely numbered – Processes can only request resources in linear ascending order – Thus preventing the circular wait from occurring Ceng 334 - Operating Systems 13

 • Advantages – It works – Has been implemented in some OSes •

• 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 14

Deadlock Avoidance • Allow the chance of deadlock occur • But avoid it happening.

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 Ceng 334 - Operating Systems 15

Banker’s Problem Customer Max. Need Present Loan Claim c 1 800 410 390 c

Banker’s Problem Customer Max. Need Present Loan Claim c 1 800 410 390 c 2 600 210 390 • Suppose total bank capital is 1000 MTL • Current cash : 1000 - (410+210) = 380 MTL Ceng 334 - Operating Systems 16

Dijkstra's Banker's Algorithm • Definitions – Each process has a LOAN, CLAIM, MAXIMUM NEED

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) Ceng 334 - Operating Systems 17

Assumptions • Establish a LOAN ceiling (MAXIMUM NEED) for each process – MAXIMUM NEED

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 18

Algorithm 1. Search for a process with a claim that can satisfied using the

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 19

 • DO NOT GRANT THE CLAIM if at least one process can not

• 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 20

 • Advantages – It works – Allows jobs to proceed when a prevention

• 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 21

Safe and Unsafe States (1) (a) (b) (c) (d) (e) Demonstration that the state

Safe and Unsafe States (1) (a) (b) (c) (d) (e) Demonstration that the state in (a) is safe Ceng 334 - Operating Systems 22

Safe and Unsafe States (2) (a) (b) (c) (d) Demonstration that the sate in

Safe and Unsafe States (2) (a) (b) (c) (d) Demonstration that the sate in (b) is not safe Ceng 334 - Operating Systems 23

The Banker's Algorithm for a Single Resource (a) (b) (c) • Three resource allocation

The Banker's Algorithm for a Single Resource (a) (b) (c) • Three resource allocation states – safe – unsafe Ceng 334 - Operating Systems 24

Banker's Algorithm for Multiple Resources Example of banker's algorithm with multiple resources Ceng 334

Banker's Algorithm for Multiple Resources Example of banker's algorithm with multiple resources Ceng 334 - Operating Systems 25

Deadlock Detection • Methods by which the occurrence of deadlock, the processes and resources

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 26

Deadlock Recovery • Recover from the deadlock by removing the offending processes • The

Deadlock Recovery • Recover from the deadlock by removing the offending processes • The process being removed may lose work Ceng 334 - Operating Systems 27

A Resource Allocation Graph Example –resource R assigned to process A –process B is

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 Ceng 334 - Operating Systems 28

Problems • Most systems do not support the removal and then restarting of a

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 Ceng 334 - Operating Systems 29

 • Implementation – Processes are simply killed off (lost forever) – Usually some

• 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 Ceng 334 - Operating Systems 30

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

Question : What is the simplest and most used method to recover from a deadlock? Ceng 334 - Operating Systems 31