0% found this document useful (0 votes)
16 views59 pages

Deadlocks: Republic of Yemen Ministry of Higher Education and Scientific Research Al-Rasheed Smart University

Yes, this graph contains a cycle. P1 is waiting for a resource held by P2, P2 is waiting for a resource held by P3, and P3 is waiting for a resource held by P1, forming a cycle. 3. Yes, there is a deadlock. All four conditions for deadlock are met: - Mutual exclusion - Each resource can only be held by one process at a time. - Hold and wait - Each process is holding some resources and waiting for additional resources held by others. - No preemption - Resources cannot be preempted. - Circular wait - There is a cycle in the resource allocation graph. So this graph represents a

Uploaded by

محمد
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views59 pages

Deadlocks: Republic of Yemen Ministry of Higher Education and Scientific Research Al-Rasheed Smart University

Yes, this graph contains a cycle. P1 is waiting for a resource held by P2, P2 is waiting for a resource held by P3, and P3 is waiting for a resource held by P1, forming a cycle. 3. Yes, there is a deadlock. All four conditions for deadlock are met: - Mutual exclusion - Each resource can only be held by one process at a time. - Hold and wait - Each process is holding some resources and waiting for additional resources held by others. - No preemption - Resources cannot be preempted. - Circular wait - There is a cycle in the resource allocation graph. So this graph represents a

Uploaded by

محمد
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Republic of Yemen

Ministry of Higher Education


‫الجمهورية اليمنية‬
and Scientific Research ‫وزارة التعليم العالي والبحث العلمي‬
Al-Rasheed Smart University ‫جامعة الرشيد الذكية‬

Chapter 7.1: Deadlocks

Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Outline
• Introduction to Deadlock.
• Deadlock Characterization.
• Methods for Handling Deadlocks.
• Deadlocks Avoidance.
• Deadlocks Detection and Recovery.

Operating System Concepts – 10th Edition 7.2 Silberschatz, Galvin and Gagne ©2018
Introduction (1/3)

• Generally speaking, deadlock, involves conflicting needs for


resources by two or more request orders. A common example
is a traffic deadlock.
➢ If deadlock occurs, it can be resolved if one car backs up
(preempt resources and rollback).
➢ Several cars may have to back up if deadlock occurs.
➢ Starvation is possible.

Operating System Concepts – 10th Edition 7.3 Silberschatz, Galvin and Gagne ©2018
Introduction (2/3)

Deadlock in computer system (1/2)


• A computer system consists of a finite number of resources
to be distributed among a number of competing processes.
• An operating system is a resource allocator i.e., there are
many resources that can be allocated to only one process at a
time.
• Each process utilizes a resource as follows:
➢ request
➢ use
➢ release

Operating System Concepts – 10th Edition 7.4 Silberschatz, Galvin and Gagne ©2018
Introduction (2/3)

Deadlock in computer system (2/2)


• General example of deadlock in a computer system:

Operating System Concepts – 10th Edition 7.5 Silberschatz, Galvin and Gagne ©2018
Introduction (3/3)

Types of resources in computer (1/5)


• Resource types R1, R2, . . ., Rm
CPU cycles, memory space, I/O devices
• Each resource type Ri has Wi instances.

Operating System Concepts – 10th Edition 7.6 Silberschatz, Galvin and Gagne ©2018
Introduction (3/3)

Types of resources in computer (2/5)


• Sharable resources can be used by more than one process at
a time. A consumable resource can only be used by one
process.

Sharable resources Consumable resources

Operating System Concepts – 10th Edition 7.7 Silberschatz, Galvin and Gagne ©2018
Introduction (3/3)

Types of resources in computer (3/5)


• Resources can be pre-emptable or non pre-emptable.

➢ Memory is an example of a pre-emptable resource, but

➢ A printer is a non-preemptable one.

Operating System Concepts – 10th Edition 7.8 Silberschatz, Galvin and Gagne ©2018
Introduction (3/3)

Types of resources in computer (4/5)

• Reusable: used by one process at a time and then returned.


➢ Processors, I/O channels, main and secondary memory, files,
databases, and semaphores.
➢ Deadlock may occur if each process holds one resource and
requests another.

Operating System Concepts – 10th Edition 7.9 Silberschatz, Galvin and Gagne ©2018
Introduction (3/3)

Types of resources in computer (5/5)

• Consumable: created (produced) and destroyed (consumed)


by a process.
➢ Interrupts, signals, messages, data in I/O buffers.
➢ Deadlock may occur if receive_message() is blocking.

Operating System Concepts – 10th Edition 7.10 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (1/11)

Deadlock can arise if four conditions hold simultaneously.

• Mutual exclusion.
• Hold and wait.
• No preemption.
• Circular wait.

Operating System Concepts – 10th Edition 7.11 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (2/11)

Deadlock can arise if four conditions hold simultaneously.

1. Mutual exclusion: only one process at a time can use a


resource.
2. Hold and wait: a process holding at least one resource is
waiting to acquire additional resources held by other
processes.

Operating System Concepts – 10th Edition 7.12 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (3/11)

Deadlock can arise if four conditions hold simultaneously.

3. No preemption: a resource can be released only willingly


by the process holding it, after that process has completed
its task.

4. Circular wait: there exists a set {P0, P1, …, Pn} of waiting


processes such that P0 is waiting for a resource that is held
by P1, P1 is waiting for a resource that is held by P2, …, Pn–1
is waiting for a resource that is held by Pn, and Pn is waiting
for a resource that is held by P0.

Operating System Concepts – 10th Edition 7.13 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (4/11)

Resource-Allocation Graph (1/2)

• A set of vertices V and a set of edges E.


• V is partitioned into two types:
➢ P = {P1, P2, …, Pn}, the set consisting of all processes in the
system.
➢ R = {R1, R2, …, Rm}, the set consisting of all resource types in
the system.
• Request edge – directed edge Pi Rj
• Assignment edge – directed edge Rj Pi

Operating System Concepts – 10th Edition 7.14 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (4/11)

Resource-Allocation Graph (2/2)

• Process

• Resource Type with 4 instances

• Pi requests instance of Rj Pi
Rj

• Pi is holding an instance of Rj Pi
Rj

Operating System Concepts – 10th Edition 7.15 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (5/11)

Example of a Resource Allocation Graph

Operating System Concepts – 10th Edition 7.16 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (6/11)

Resource Allocation Graph With A Deadlock

Operating System Concepts – 10th Edition 7.17 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (6/11)

Resource Allocation Graph With A Deadlock

©Ahmed Hagag Operating Systems 18


Operating System Concepts – 10th Edition 7.18 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (7/11)

Graph With A Cycle But No Deadlock

Operating System Concepts – 10th Edition 7.19 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (7/11)

Graph With A Cycle But No Deadlock

Operating System Concepts – 10th Edition 7.20 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (8/11)

Basic Facts

If graph contains no cycles  no deadlock.

If graph contains a cycle 

• if only one instance per resource type, then deadlock.


• if several instances per resource type, possibility of
deadlock.

Operating System Concepts – 10th Edition 7.21 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (9/11)

With a Deadlock or Without ?

Operating System Concepts – 10th Edition 7.22 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (10/11)

With a Deadlock or Without ?

Operating System Concepts – 10th Edition 7.23 Silberschatz, Galvin and Gagne ©2018
Deadlock Characterization (11/11)

With a Deadlock or Without ?

Operating System Concepts – 10th Edition 7.24 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (1/10)

1. Describe the following Resource-Allocation Graph.


2. Is this graph contain a cycle ?
3. Is there a deadlock? Why?

Operating System Concepts – 10th Edition 7.25 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (2/10)

1. Describe the following Resource-Allocation Graph.


• There are 3 processes 𝑃1, 𝑃2, 𝑃3
• There are 4 resources:
➢ 𝑅1 1 instance ,
➢ 𝑅2 2 instances ,
➢ 𝑅3 1 instance ,
➢ 𝑅4 3 instances .
• 𝑃1 holding 1 instance from 𝑅2
• 𝑃1 request 1 instance from 𝑅1
• 𝑃2 holding 1 instance from 𝑅2
• 𝑃2 holding 1 instance from 𝑅1
• 𝑃2 request 1 instance from 𝑅3
• 𝑃3 holding 1 instance from 𝑅3

Operating System Concepts – 10th Edition 7.26 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (3/10)

2. Is this graph contain a cycle ?


• No cycle.

3. Is there a deadlock? Why?

• No deadlock. Because there is no cycle.

Operating System Concepts – 10th Edition 7.27 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (4/10)

1. Describe the following Resource-Allocation Graph.


2. Is this graph contain a cycle ?
3. Is there a deadlock? Why?

Operating System Concepts – 10th Edition 7.28 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (5/10)

1. Describe the following Resource-Allocation Graph.


• There are 4 processes 𝑃1, 𝑃2, 𝑃3, 𝑃4
• There are 2 resources:
➢ 𝑅1 2 instances ,
➢ 𝑅2 2 instances .
• 𝑃1 holding 1 instance from 𝑅2
• 𝑃1 request 1 instance from 𝑅1
• 𝑃2 holding 1 instance from 𝑅1
• 𝑃3 holding 1 instance from 𝑅1
• 𝑃3 request 1 instance from 𝑅2
• 𝑃4 holding 1 instance from 𝑅2

Operating System Concepts – 10th Edition 7.29 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (6/10)

2. Is this graph contain a cycle ?


• There is one cycle < 𝑅2, 𝑃1, 𝑅1, 𝑃3, 𝑅2 >.

3. Is there a deadlock? Why?

• No deadlock.
• Because 𝑃2 and 𝑃4 will finish their jobs
over time.
• Then, 1 instance from 𝑅1 and 1 instance
from 𝑅2 will be free for 𝑃1 and 𝑃3.

Operating System Concepts – 10th Edition 7.30 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (7/10)

1. Describe the following Resource-Allocation Graph.


2. Is this graph contain a cycle ?
3. Is there a deadlock? Why?

Operating System Concepts – 10th Edition 7.31 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (8/10)

1. Describe the following Resource-Allocation Graph.


• There are 3 processes 𝑃1, 𝑃2, 𝑃3
• There are 4 resources:
➢ 𝑅1 1 instance ,
➢ 𝑅2 2 instances ,
➢ 𝑅3 1 instance ,
➢ 𝑅4 3 instances .
• 𝑃1 holding 1 instance from 𝑅2
• 𝑃1 request 1 instance from 𝑅1
• 𝑃2 holding 1 instance from 𝑅2
• 𝑃2 holding 1 instance from 𝑅1
• 𝑃2 request 1 instance from 𝑅3
• 𝑃3 holding 1 instance from 𝑅3
• 𝑃3 request 1 instance from 𝑅2

Operating System Concepts – 10th Edition 7.32 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (9/10)

2. Is this graph contain a cycle ?


• There is one cycle < 𝑅2, 𝑃1, 𝑅1, 𝑃2, 𝑅3, 𝑃3, 𝑅2 >.

3. Is there a deadlock? Why?

• Yes there is a deadlock.


• Because 𝑃1 is waiting for 𝑃2 and,
• 𝑃2 is waiting for 𝑃3 and,
• 𝑃3 is waiting for 𝑃1 and 𝑃2. Over time.

Operating System Concepts – 10th Edition 7.33 Silberschatz, Galvin and Gagne ©2018
Example Deadlocks (10/10)

Operating System Concepts – 10th Edition 7.34 Silberschatz, Galvin and Gagne ©2018
Methods for Handling Deadlocks

• Ensure that the system will never enter a deadlock state:


➢ Deadlock prevention.
➢ Deadlock avoidance.

• Allow the system to enter a deadlock state and then


recover.
• Ignore the problem and pretend that deadlocks never
occur in the system; used by most operating systems.

Operating System Concepts – 10th Edition 7.35 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (1/8)

Mutual Exclusion – cannot be broken


• We cannot prevent deadlocks by denying mutual
exclusion because some resources are non-sharable.
• Sharable resources (e.g., read-only files) can be
accessed concurrently.

non-sharable
sharable

©Ahmed Hagag Operating Systems 36


Operating System Concepts – 10th Edition 7.36 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (2/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

©Ahmed Hagag Operating Systems 37


Operating System Concepts – 10th Edition 7.37 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (2/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

Operating System Concepts – 10th Edition 7.38 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (2/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

Operating System Concepts – 10th Edition 7.39 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (3/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

Operating System Concepts – 10th Edition 7.40 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (3/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

Operating System Concepts – 10th Edition 7.41 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (3/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

Operating System Concepts – 10th Edition 7.42 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (3/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.

1 2

©Ahmed Hagag Operating Systems 43


Operating System Concepts – 10th Edition 7.43 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (4/8)

Hold and Wait – can be broken if


• A process requests a resource only if it does not hold any
other resources.
• A process requests and is allocated all its resources
before it begins execution.
• Disadvantages:
➢ Low resource utilization; starvation possible.

Operating System Concepts – 10th Edition 7.44 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (5/8)

No Preemption – can be broken if


• If a process holding some resources requests another
resource that cannot be immediately allocated to it, then
all resources currently being held are released.

Operating System Concepts – 10th Edition 7.45 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (6/8)

No Preemption – can be broken if


• Preempted resources are added to the list of resources for
which the process is waiting.
• Process will be restarted only when it can regain its old
resources, as well as the new ones that it is requesting.

Operating System Concepts – 10th Edition 7.46 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (7/8)

No Preemption – can be broken if


• Problems?
• Difficult to use with resources whose state are not easily
saved, e.g., printers and tape drives. (In contrast to CPU
registers and memory space).

Operating System Concepts – 10th Edition 7.47 Silberschatz, Galvin and Gagne ©2018
Deadlock Prevention (8/8)

Circular Wait – can be broken if


• Impose a total ordering on all resource types, and
• Require that each process requests resources
in an increasing order of enumeration.

Operating System Concepts – 10th Edition 7.48 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (1/29)

Requires that the system has some additional a priori


information available.
• Simplest and most useful model requires that each process
declare the maximum number of resources of each type
that it may need.
• The deadlock-avoidance algorithm dynamically examines
the resource-allocation state to ensure that there can never
be a circular-wait condition.
• Resource-allocation state is defined by the number of
available and allocated resources, and the maximum
demands of the processes.

Operating System Concepts – 10th Edition 7.49 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (2/29)

• When a process requests an available resource, system must


decide if immediate allocation leaves the system in a safe
state.
• System is in safe state if there exists a sequence <P1, P2, …,
Pn> of ALL the processes in the systems such that for each
Pi, the resources that Pi can still request can be satisfied by
currently available resources + resources held by all the Pj,
with j < i.

Operating System Concepts – 10th Edition 7.50 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (3/29)

That is:
• If Pi resource needs are not immediately available, then
Pi can wait until all Pj have finished.
• When Pj is finished, Pi can obtain needed resources,
execute, return allocated resources, and terminate.
• When Pi terminates, Pi +1 can obtain its needed resources,
and so on.

Operating System Concepts – 10th Edition 7.51 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (4/29)

Basic Facts
• 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.

Operating System Concepts – 10th Edition 7.52 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (5/29)

Avoidance Algorithms:

• Single instance of a resource type 


➢ Use a resource-allocation graph.
• Multiple instances of a resource type 
➢ Use the banker’s algorithm.

Operating System Concepts – 10th Edition 7.53 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (6/29)

Resource-Allocation Graph:
• Claim edge Pi Rj indicated that process Pi may request
resource Rj; represented by a dashed line.

Claim edge
𝑃𝑖 𝑅𝑗

• Claim edge converts to request edge when a process


requests a resource.
Request edge
𝑃𝑖 𝑅𝑗

Operating System Concepts – 10th Edition 7.54 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (7/29)

• Request edge converted to an assignment edge when the


resource is allocated to the process.
• When a resource is released by a process, assignment edge
reconverts to a claim edge.

Operating System Concepts – 10th Edition 7.55 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (8/29)

Resource-Allocation Graph:

Assignment edge Request edge

Claim edge Claim edge

Operating System Concepts – 10th Edition 7.56 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (9/29)

Unsafe State In Resource-Allocation Graph:

Assignment edge Request edge

Claim edge Assignment edge

A cycle, as mentioned, indicates that the system is in an unsafe state.


If P1 requests R2, and P2 holding R2, then a deadlock will occur.

Operating System Concepts – 10th Edition 7.57 Silberschatz, Galvin and Gagne ©2018
Deadlocks Avoidance (10/29)

Resource-Allocation Graph Algorithm:


• Suppose that process Pi requests resource Rj
• The request can be granted only if converting the request
edge to assignment edge does not create a cycle in the
resource allocation graph.

Assignment edge Request edge

Assignment edge Claim edge

Operating System Concepts – 10th Edition 7.58 Silberschatz, Galvin and Gagne ©2018
End of Chapter 7.1

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018

You might also like