SlideShare uma empresa Scribd logo
1 de 41
Chapter 8: Deadlocks 
 System Model 
 Deadlock Characterization 
 Methods for Handling Deadlocks 
 Deadlock Prevention 
 Deadlock Avoidance 
 Deadlock Detection 
 Recovery from Deadlock 
 Combined Approach to Deadlock Handling 
Silberschatz, Galvin 8.1 and Gagne Ó2002 Operating System
The Deadlock Problem 
 A set of blocked processes each holding a resource and 
waiting to acquire a resource held by another process in 
the set. 
 Example 
 System has 2 tape drives. 
 P1 and P2 each hold one tape drive and each needs another 
one. 
 Example 
 semaphores A and B, initialized to 1 
P0 P1 
wait (A); wait(B) 
wait (B); wait(A) 
Silberschatz, Galvin 8.2 and Gagne Ó2002 Operating System
Bridge Crossing Example 
 Traffic only in one direction. 
 Each section of a bridge can be viewed as a resource. 
 If a deadlock occurs, it can be resolved if one car backs 
up (preempt resources and rollback). 
 Several cars may have to be backed up if a deadlock 
occurs. 
 Starvation is possible. 
Silberschatz, Galvin 8.3 and Gagne Ó2002 Operating System
System Model 
 Resource types R1, R2, . . ., Rm 
CPU cycles, memory space, I/O devices 
 Each resource type Ri has Wi instances. 
 Each process utilizes a resource as follows: 
 request 
 use 
 release 
Silberschatz, Galvin 8.4 and Gagne Ó2002 Operating System
Deadlock Characterization 
Deadlock can arise if four conditions hold simultaneously. 
 Mutual exclusion: only one process at a time can use 
a resource. 
 Hold and wait: a process holding at least one resource 
is waiting to acquire additional resources held by other 
processes. 
 No preemption: a resource can be released only 
voluntarily by the process holding it, after that process 
has completed its task. 
 Circular wait: there exists a set {P0, P1, …, P0} 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 P0 is waiting for a resource that is held by P0. 
Silberschatz, Galvin 8.5 and Gagne Ó2002 Operating System
Resource-Allocation Graph 
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 the processes in 
the system. 
 R = {R1, R2, …, Rm}, the set consisting of all resource types in 
the system. 
 request edge – directed edge P1 ® Rj 
 assignment edge – directed edge Rj ® Pi 
Silberschatz, Galvin 8.6 and Gagne Ó2002 Operating System
Resource-Allocation Graph (Cont.) 
 Process 
 Resource Type with 4 instances 
 Pi requests instance of Rj 
Pi 
Rj 
 Pi is holding an instance of Rj 
Pi 
Rj 
Silberschatz, Galvin 8.7 and Gagne Ó2002 Operating System
Example of a Resource Allocation 
Graph 
Silberschatz, Galvin 8.8 and Gagne Ó2002 Operating System
Resource Allocation Graph With A 
Deadlock 
Silberschatz, Galvin 8.9 and Gagne Ó2002 Operating System
Resource Allocation Graph With A Cycle But No 
Deadlock 
Silberschatz, Galvin 8.10 and Gagne Ó2002 Operating System
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. 
Silberschatz, Galvin 8.11 and Gagne Ó2002 Operating System
Methods for Handling Deadlocks 
 Ensure that the system will never enter a deadlock state. 
 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, 
including UNIX. 
Silberschatz, Galvin 8.12 and Gagne Ó2002 Operating System
Deadlock Prevention 
Restrain the ways request can be made. 
 Mutual Exclusion – not required for sharable 
resources; must hold for nonsharable resources. 
 Hold and Wait – must guarantee that whenever a 
process requests a resource, it does not hold any other 
resources. 
 Require process to request and be allocated all its 
resources before it begins execution, or allow process to 
request resources only when the process has none. 
 Low resource utilization; starvation possible. 
Silberschatz, Galvin 8.13 and Gagne Ó2002 Operating System
Deadlock Prevention (Cont.) 
 No Preemption – 
 If a process that is holding some resources requests 
another resource that cannot be immediately allocated to it, 
then all resources currently being held are released. 
 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. 
 Circular Wait – impose a total ordering of all resource 
types, and require that each process requests resources 
in an increasing order of enumeration. 
Silberschatz, Galvin 8.14 and Gagne Ó2002 Operating System
Deadlock Avoidance 
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. 
Silberschatz, Galvin 8.15 and Gagne Ó2002 Operating System
Safe State 
 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 safe sequence of all 
processes. 
 Sequence P1, P2, …, Pn is safe if for each Pi, the resources 
that Pi can still request can be satisfied by currently available 
resources + resources held by all the Pj, with jI. 
 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. 
Silberschatz, Galvin 8.16 and Gagne Ó2002 Operating System
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. 
Silberschatz, Galvin 8.17 and Gagne Ó2002 Operating System
Safe, Unsafe , Deadlock State 
Silberschatz, Galvin 8.18 and Gagne Ó2002 Operating System
Resource-Allocation Graph 
Algorithm 
 Claim edge Pi ® Rj indicated that process Pj may request 
resource Rj; represented by a dashed line. 
 Claim edge converts to request edge when a process 
requests a resource. 
 When a resource is released by a process, assignment 
edge reconverts to a claim edge. 
 Resources must be claimed a priori in the system. 
Silberschatz, Galvin 8.19 and Gagne Ó2002 Operating System
Resource-Allocation Graph For Deadlock 
Avoidance 
Silberschatz, Galvin 8.20 and Gagne Ó2002 Operating System
Unsafe State In Resource-Allocation Graph 
Silberschatz, Galvin 8.21 and Gagne Ó2002 Operating System
Banker’s Algorithm 
 Multiple instances. 
 Each process must a priori claim maximum use. 
 When a process requests a resource it may have to wait. 
 When a process gets all its resources it must return them 
in a finite amount of time. 
Silberschatz, Galvin 8.22 and Gagne Ó2002 Operating System
Data Structures for the Banker’s 
Algorithm 
Let n = number of processes, and m = number of resources types. 
 Available: Vector of length m. If available [j] = k, there are 
k instances of resource type Rjavailable. 
 Max: n x m matrix. If Max [i,j] = k, then process Pi may 
request at most k instances of resource type Rj. 
 Allocation: n x m matrix. If Allocation[i,j] = k then Pi is 
currently allocated k instances of Rj. 
 Need: n x m matrix. If Need[i,j] = k, then Pi may need k 
more instances of Rj to complete its task. 
Need [i,j] = Max[i,j] – Allocation [i,j]. 
Silberschatz, Galvin 8.23 and Gagne Ó2002 Operating System
Safety Algorithm 
1. Let Work and Finish be vectors of length m and n, 
respectively. Initialize: 
Work = Available 
Finish [i] = false for i - 1,3, …, n. 
2. Find and i such that both: 
(a) Finish [i] = false 
(b) Needi £ Work 
If no such i exists, go to step 4. 
3. Work = Work + Allocationi 
Finish[i] = true 
go to step 2. 
4. If Finish [i] == true for all i, then the system is in a safe 
state. 
Silberschatz, Galvin 8.24 and Gagne Ó2002 Operating System
Resource-Request Algorithm for Process 
Pi 
Request = request vector for process Pi. If Requesti [j] = k 
then process Pi wants k instances of resource type Rj. 
1. If Requesti £ Needi go to step 2. Otherwise, raise error 
condition, since process has exceeded its maximum claim. 
2. If Requesti £ Available, go to step 3. Otherwise Pi must 
wait, since resources are not available. 
3. Pretend to allocate requested resources to Pi by modifying 
the state as follows: 
Available = Available = Requesti; 
Allocationi= Allocationi + Requesti; 
Needi = Needi – Requesti;; 
• If safe Þ the resources are allocated to Pi. 
• If unsafe Þ Pi must wait, and the old resource-allocation 
state is restored 
Silberschatz, Galvin 8.25 and Gagne Ó2002 Operating System
Example of Banker’s Algorithm 
 5 processes P0 through P4; 3 resource types A 
(10 instances), 
B (5instances, and C (7 instances). 
 Snapshot at time T0: 
Allocation Max Available 
A B C A B C A B C 
P0 0 1 0 7 5 3 3 3 2 
P1 2 0 0 3 2 2 
P2 3 0 2 9 0 2 
P3 2 1 1 2 2 2 
P4 0 0 2 4 3 3 
Silberschatz, Galvin 8.26 and Gagne Ó2002 Operating System
Example (Cont.) 
 The content of the matrix. Need is defined to be Max – 
Allocation. 
Need 
A B C 
P0 7 4 3 
P1 1 2 2 
P2 6 0 0 
P3 0 1 1 
P4 4 3 1 
 The system is in a safe state since the sequence  P1, P3, P4, 
P2, P0 satisfies safety criteria. 
Silberschatz, Galvin 8.27 and Gagne Ó2002 Operating System
Example P1 Request (1,0,2) (Cont.) 
 Check that Request £ Available (that is, (1,0,2) £ (3,3,2) Þ 
true. 
Allocation Need Available 
A B C A B C A B C 
P0 0 1 0 7 4 3 2 3 0 
P1 3 0 2 0 2 0 
P2 3 0 1 6 0 0 
P3 2 1 1 0 1 1 
P4 0 0 2 4 3 1 
 Executing safety algorithm shows that sequence P1, P3, P4, 
P0, P2 satisfies safety requirement. 
 Can request for (3,3,0) by P4 be granted? 
 Can request for (0,2,0) by P0 be granted? 
Silberschatz, Galvin 8.28 and Gagne Ó2002 Operating System
Deadlock Detection 
 Allow system to enter deadlock state 
 Detection algorithm 
 Recovery scheme 
Silberschatz, Galvin 8.29 and Gagne Ó2002 Operating System
Single Instance of Each Resource 
Type 
 Maintain wait-for graph 
 Nodes are processes. 
 Pi ® Pj if Pi is waiting for Pj. 
 Periodically invoke an algorithm that searches for a cycle 
in the graph. 
 An algorithm to detect a cycle in a graph requires an 
order of n2 operations, where n is the number of vertices 
in the graph. 
Silberschatz, Galvin 8.30 and Gagne Ó2002 Operating System
Resource-Allocation Graph and Wait-for 
Graph 
Resource-Allocation Graph Corresponding wait-for graph 
Silberschatz, Galvin 8.31 and Gagne Ó2002 Operating System
Several Instances of a Resource 
Type 
 Available: A vector of length m indicates the number of 
available resources of each type. 
 Allocation: An n x m matrix defines the number of 
resources of each type currently allocated to each 
process. 
 Request: An n x m matrix indicates the current request 
of each process. If Request [ij] = k, then process Pi is 
requesting k more instances of resource type. Rj. 
Silberschatz, Galvin 8.32 and Gagne Ó2002 Operating System
Detection Algorithm 
1. Let Work and Finish be vectors of length m and n, 
respectively Initialize: 
(a) Work = Available 
(b) For i = 1,2, …, n, if Allocationi ¹ 0, then 
Finish[i] = false;otherwise, Finish[i] = true. 
2. Find an index i such that both: 
(a) Finish[i] == false 
(b) Requesti £ Work 
If no such i exists, go to step 4. 
Silberschatz, Galvin 8.33 and Gagne Ó2002 Operating System
Detection Algorithm (Cont.) 
3. Work = Work + Allocationi 
Finish[i] = true 
go to step 2. 
4. If Finish[i] == false, for some i, 1 £ i £ n, then the system is in 
deadlock state. Moreover, if Finish[i] == false, then Pi is 
deadlocked. 
Algorithm requires an order of O(m x n2) operations to detect 
whether the system is in deadlocked state. 
Silberschatz, Galvin 8.34 and Gagne Ó2002 Operating System
Example of Detection Algorithm 
 Five processes P0 through P4; three resource types 
A (7 instances), B (2 instances), and C (6 instances). 
 Snapshot at time T0: 
Allocation Request Available 
A B C A B C A B C 
P0 0 1 0 0 0 0 0 0 0 
P1 2 0 0 2 0 2 
P2 3 0 3 0 0 0 
P3 2 1 1 1 0 0 
P4 0 0 2 0 0 2 
 Sequence P0, P2, P3, P1, P4 will result in Finish[i] = true 
for all i. 
Silberschatz, Galvin 8.35 and Gagne Ó2002 Operating System
Example (Cont.) 
 P2 requests an additional instance of type C. 
Request 
A B C 
P0 0 0 0 
P1 2 0 1 
P2 0 0 1 
P3 1 0 0 
P4 0 0 2 
 State of system? 
 Can reclaim resources held by process P0, but insufficient 
resources to fulfill other processes; requests. 
 Deadlock exists, consisting of processes P1, P2, P3, and P4. 
Silberschatz, Galvin 8.36 and Gagne Ó2002 Operating System
Detection-Algorithm Usage 
 When, and how often, to invoke depends on: 
 How often a deadlock is likely to occur? 
 How many processes will need to be rolled back? 
 one for each disjoint cycle 
 If detection algorithm is invoked arbitrarily, there may be 
many cycles in the resource graph and so we would not 
be able to tell which of the many deadlocked processes 
“caused” the deadlock. 
Silberschatz, Galvin 8.37 and Gagne Ó2002 Operating System
Recovery from Deadlock: Process Termination 
 Abort all deadlocked processes. 
 Abort one process at a time until the deadlock cycle is 
eliminated. 
 In which order should we choose to abort? 
 Priority of the process. 
 How long process has computed, and how much longer to 
completion. 
 Resources the process has used. 
 Resources process needs to complete. 
 How many processes will need to be terminated. 
 Is process interactive or batch? 
Silberschatz, Galvin 8.38 and Gagne Ó2002 Operating System
Recovery from Deadlock: Resource 
Preemption 
 Selecting a victim – minimize cost. 
 Rollback – return to some safe state, restart process for 
that state. 
 Starvation – same process may always be picked as 
victim, include number of rollback in cost factor. 
Silberschatz, Galvin 8.39 and Gagne Ó2002 Operating System
Combined Approach to Deadlock 
Handling 
 Combine the three basic approaches 
 prevention 
 avoidance 
 detection 
allowing the use of the optimal approach for each of 
resources in the system. 
 Partition resources into hierarchically ordered classes. 
 Use most appropriate technique for handling deadlocks 
within each class. 
Silberschatz, Galvin 8.40 and Gagne Ó2002 Operating System
Traffic Deadlock for Exercise 8.4 
Silberschatz, Galvin 8.41 and Gagne Ó2002 Operating System

Mais conteúdo relacionado

Mais procurados

Operating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzOperating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzGiulianoRanauro
 
Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process SynchronizationUnit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronizationcscarcas
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphoresanandammca
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationSyaiful Ahdan
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvinShubham Singh
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Ra'Fat Al-Msie'deen
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationWayne Jones Jnr
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating SystemsRitu Ranjan Shrivastwa
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksMukesh Chinta
 
Cyber-physical system with machine learning (Poster)
Cyber-physical system with machine learning (Poster)Cyber-physical system with machine learning (Poster)
Cyber-physical system with machine learning (Poster)wassim bouazza
 
Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )HimanshuSharma1389
 
Synchronization
SynchronizationSynchronization
SynchronizationMohd Arif
 
Operating System 5
Operating System 5Operating System 5
Operating System 5tech2click
 

Mais procurados (20)

Operating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzOperating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatz
 
Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process SynchronizationUnit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronization
 
Chapter 7
Chapter 7Chapter 7
Chapter 7
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphores
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvin
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
CPU Scheduling
CPU SchedulingCPU Scheduling
CPU Scheduling
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 
Cyber-physical system with machine learning (Poster)
Cyber-physical system with machine learning (Poster)Cyber-physical system with machine learning (Poster)
Cyber-physical system with machine learning (Poster)
 
Lecture#5
Lecture#5Lecture#5
Lecture#5
 
Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )
 
OS_Ch7
OS_Ch7OS_Ch7
OS_Ch7
 
5.CPU Scheduling
5.CPU Scheduling5.CPU Scheduling
5.CPU Scheduling
 
6 Synchronisation
6 Synchronisation6 Synchronisation
6 Synchronisation
 
Synchronization
SynchronizationSynchronization
Synchronization
 
Operating System 5
Operating System 5Operating System 5
Operating System 5
 

Destaque

Ch8 OS
Ch8 OSCh8 OS
Ch8 OSC.U
 
Operating System Deadlock Galvin
Operating System  Deadlock GalvinOperating System  Deadlock Galvin
Operating System Deadlock GalvinSonali Chauhan
 
Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)dsuyal1
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)dsuyal1
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)dsuyal1
 
thread-clustering
thread-clusteringthread-clustering
thread-clusteringdavidkftam
 
Lecture5
Lecture5Lecture5
Lecture5jntu
 
C++ Actor Model - You’ve Got Mail ...
C++ Actor Model - You’ve Got Mail ...C++ Actor Model - You’ve Got Mail ...
C++ Actor Model - You’ve Got Mail ...Gianluca Padovani
 
Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Shuo Chen
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6 Nadhiien Abraham
 
Threads (operating System)
Threads (operating System)Threads (operating System)
Threads (operating System)Prakhar Maurya
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System StructureAhmar Hashmi
 
Unit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - ThreadsUnit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - Threadscscarcas
 
Thread scheduling in Operating Systems
Thread scheduling in Operating SystemsThread scheduling in Operating Systems
Thread scheduling in Operating SystemsNitish Gulati
 

Destaque (20)

Ch8 OS
Ch8 OSCh8 OS
Ch8 OS
 
Operating System Deadlock Galvin
Operating System  Deadlock GalvinOperating System  Deadlock Galvin
Operating System Deadlock Galvin
 
Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)
 
4.Threads
4.Threads4.Threads
4.Threads
 
Deadlock
DeadlockDeadlock
Deadlock
 
Java Threading
Java ThreadingJava Threading
Java Threading
 
Operating System: Deadlock
Operating System: DeadlockOperating System: Deadlock
Operating System: Deadlock
 
thread-clustering
thread-clusteringthread-clustering
thread-clustering
 
Ch05
Ch05Ch05
Ch05
 
Threading
ThreadingThreading
Threading
 
Lecture5
Lecture5Lecture5
Lecture5
 
C++ Actor Model - You’ve Got Mail ...
C++ Actor Model - You’ve Got Mail ...C++ Actor Model - You’ve Got Mail ...
C++ Actor Model - You’ve Got Mail ...
 
Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6
 
Threads (operating System)
Threads (operating System)Threads (operating System)
Threads (operating System)
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System Structure
 
Unit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - ThreadsUnit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - Threads
 
Thread scheduling in Operating Systems
Thread scheduling in Operating SystemsThread scheduling in Operating Systems
Thread scheduling in Operating Systems
 

Semelhante a Galvin-operating System(Ch8)

Deadlock in OS
Deadlock in OSDeadlock in OS
Deadlock in OSKioRox
 
Chapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksChapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksGiulianoRanauro
 
Galvin Operating Systems of deadlock.ppt
Galvin Operating Systems of deadlock.pptGalvin Operating Systems of deadlock.ppt
Galvin Operating Systems of deadlock.pptranjithasr8
 
Lecture # 10-11 for deadlock operating system.ppt
Lecture # 10-11 for deadlock operating system.pptLecture # 10-11 for deadlock operating system.ppt
Lecture # 10-11 for deadlock operating system.pptRiaanSadiq
 
Mca ii os u-3 dead lock & io systems
Mca  ii  os u-3 dead lock & io systemsMca  ii  os u-3 dead lock & io systems
Mca ii os u-3 dead lock & io systemsRai University
 
An brief introduction to Deadlocks in OS
An brief introduction to Deadlocks in OSAn brief introduction to Deadlocks in OS
An brief introduction to Deadlocks in OSRaviKiranVarma4
 
Module-2Deadlock.ppt
Module-2Deadlock.pptModule-2Deadlock.ppt
Module-2Deadlock.pptKAnurag2
 

Semelhante a Galvin-operating System(Ch8) (20)

Ch8: Deadlocks
Ch8: DeadlocksCh8: Deadlocks
Ch8: Deadlocks
 
7.Dead Locks
7.Dead Locks7.Dead Locks
7.Dead Locks
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Deadlock in OS
Deadlock in OSDeadlock in OS
Deadlock in OS
 
deadlock.pptx
deadlock.pptxdeadlock.pptx
deadlock.pptx
 
Chapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksChapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocks
 
Operating System
Operating SystemOperating System
Operating System
 
Ch8
Ch8Ch8
Ch8
 
ch7.ppt
ch7.pptch7.ppt
ch7.ppt
 
ch7.ppt
ch7.pptch7.ppt
ch7.ppt
 
MPMC chapter
MPMC chapterMPMC chapter
MPMC chapter
 
Galvin Operating Systems of deadlock.ppt
Galvin Operating Systems of deadlock.pptGalvin Operating Systems of deadlock.ppt
Galvin Operating Systems of deadlock.ppt
 
Lecture # 10-11 for deadlock operating system.ppt
Lecture # 10-11 for deadlock operating system.pptLecture # 10-11 for deadlock operating system.ppt
Lecture # 10-11 for deadlock operating system.ppt
 
ch7Deadlock.ppt
ch7Deadlock.pptch7Deadlock.ppt
ch7Deadlock.ppt
 
ch7- Deadlock.ppt
ch7- Deadlock.pptch7- Deadlock.ppt
ch7- Deadlock.ppt
 
ch7.ppt
ch7.pptch7.ppt
ch7.ppt
 
Mca ii os u-3 dead lock & io systems
Mca  ii  os u-3 dead lock & io systemsMca  ii  os u-3 dead lock & io systems
Mca ii os u-3 dead lock & io systems
 
An brief introduction to Deadlocks in OS
An brief introduction to Deadlocks in OSAn brief introduction to Deadlocks in OS
An brief introduction to Deadlocks in OS
 
CH07.pdf
CH07.pdfCH07.pdf
CH07.pdf
 
Module-2Deadlock.ppt
Module-2Deadlock.pptModule-2Deadlock.ppt
Module-2Deadlock.ppt
 

Galvin-operating System(Ch8)

  • 1. Chapter 8: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock Handling Silberschatz, Galvin 8.1 and Gagne Ó2002 Operating System
  • 2. The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Example System has 2 tape drives. P1 and P2 each hold one tape drive and each needs another one. Example semaphores A and B, initialized to 1 P0 P1 wait (A); wait(B) wait (B); wait(A) Silberschatz, Galvin 8.2 and Gagne Ó2002 Operating System
  • 3. Bridge Crossing Example Traffic only in one direction. Each section of a bridge can be viewed as a resource. If a deadlock occurs, it can be resolved if one car backs up (preempt resources and rollback). Several cars may have to be backed up if a deadlock occurs. Starvation is possible. Silberschatz, Galvin 8.3 and Gagne Ó2002 Operating System
  • 4. System Model Resource types R1, R2, . . ., Rm CPU cycles, memory space, I/O devices Each resource type Ri has Wi instances. Each process utilizes a resource as follows: request use release Silberschatz, Galvin 8.4 and Gagne Ó2002 Operating System
  • 5. Deadlock Characterization Deadlock can arise if four conditions hold simultaneously. Mutual exclusion: only one process at a time can use a resource. Hold and wait: a process holding at least one resource is waiting to acquire additional resources held by other processes. No preemption: a resource can be released only voluntarily by the process holding it, after that process has completed its task. Circular wait: there exists a set {P0, P1, …, P0} 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 P0 is waiting for a resource that is held by P0. Silberschatz, Galvin 8.5 and Gagne Ó2002 Operating System
  • 6. Resource-Allocation Graph 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 the processes in the system. R = {R1, R2, …, Rm}, the set consisting of all resource types in the system. request edge – directed edge P1 ® Rj assignment edge – directed edge Rj ® Pi Silberschatz, Galvin 8.6 and Gagne Ó2002 Operating System
  • 7. Resource-Allocation Graph (Cont.) Process Resource Type with 4 instances Pi requests instance of Rj Pi Rj Pi is holding an instance of Rj Pi Rj Silberschatz, Galvin 8.7 and Gagne Ó2002 Operating System
  • 8. Example of a Resource Allocation Graph Silberschatz, Galvin 8.8 and Gagne Ó2002 Operating System
  • 9. Resource Allocation Graph With A Deadlock Silberschatz, Galvin 8.9 and Gagne Ó2002 Operating System
  • 10. Resource Allocation Graph With A Cycle But No Deadlock Silberschatz, Galvin 8.10 and Gagne Ó2002 Operating System
  • 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. Silberschatz, Galvin 8.11 and Gagne Ó2002 Operating System
  • 12. Methods for Handling Deadlocks Ensure that the system will never enter a deadlock state. 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, including UNIX. Silberschatz, Galvin 8.12 and Gagne Ó2002 Operating System
  • 13. Deadlock Prevention Restrain the ways request can be made. Mutual Exclusion – not required for sharable resources; must hold for nonsharable resources. Hold and Wait – must guarantee that whenever a process requests a resource, it does not hold any other resources. Require process to request and be allocated all its resources before it begins execution, or allow process to request resources only when the process has none. Low resource utilization; starvation possible. Silberschatz, Galvin 8.13 and Gagne Ó2002 Operating System
  • 14. Deadlock Prevention (Cont.) No Preemption – If a process that is holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released. 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. Circular Wait – impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration. Silberschatz, Galvin 8.14 and Gagne Ó2002 Operating System
  • 15. Deadlock Avoidance 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. Silberschatz, Galvin 8.15 and Gagne Ó2002 Operating System
  • 16. Safe State 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 safe sequence of all processes. Sequence P1, P2, …, Pn is safe if for each Pi, the resources that Pi can still request can be satisfied by currently available resources + resources held by all the Pj, with jI. 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. Silberschatz, Galvin 8.16 and Gagne Ó2002 Operating System
  • 17. 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. Silberschatz, Galvin 8.17 and Gagne Ó2002 Operating System
  • 18. Safe, Unsafe , Deadlock State Silberschatz, Galvin 8.18 and Gagne Ó2002 Operating System
  • 19. Resource-Allocation Graph Algorithm Claim edge Pi ® Rj indicated that process Pj may request resource Rj; represented by a dashed line. Claim edge converts to request edge when a process requests a resource. When a resource is released by a process, assignment edge reconverts to a claim edge. Resources must be claimed a priori in the system. Silberschatz, Galvin 8.19 and Gagne Ó2002 Operating System
  • 20. Resource-Allocation Graph For Deadlock Avoidance Silberschatz, Galvin 8.20 and Gagne Ó2002 Operating System
  • 21. Unsafe State In Resource-Allocation Graph Silberschatz, Galvin 8.21 and Gagne Ó2002 Operating System
  • 22. Banker’s Algorithm Multiple instances. Each process must a priori claim maximum use. When a process requests a resource it may have to wait. When a process gets all its resources it must return them in a finite amount of time. Silberschatz, Galvin 8.22 and Gagne Ó2002 Operating System
  • 23. Data Structures for the Banker’s Algorithm Let n = number of processes, and m = number of resources types. Available: Vector of length m. If available [j] = k, there are k instances of resource type Rjavailable. Max: n x m matrix. If Max [i,j] = k, then process Pi may request at most k instances of resource type Rj. Allocation: n x m matrix. If Allocation[i,j] = k then Pi is currently allocated k instances of Rj. Need: n x m matrix. If Need[i,j] = k, then Pi may need k more instances of Rj to complete its task. Need [i,j] = Max[i,j] – Allocation [i,j]. Silberschatz, Galvin 8.23 and Gagne Ó2002 Operating System
  • 24. Safety Algorithm 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i - 1,3, …, n. 2. Find and i such that both: (a) Finish [i] = false (b) Needi £ Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish[i] = true go to step 2. 4. If Finish [i] == true for all i, then the system is in a safe state. Silberschatz, Galvin 8.24 and Gagne Ó2002 Operating System
  • 25. Resource-Request Algorithm for Process Pi Request = request vector for process Pi. If Requesti [j] = k then process Pi wants k instances of resource type Rj. 1. If Requesti £ Needi go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim. 2. If Requesti £ Available, go to step 3. Otherwise Pi must wait, since resources are not available. 3. Pretend to allocate requested resources to Pi by modifying the state as follows: Available = Available = Requesti; Allocationi= Allocationi + Requesti; Needi = Needi – Requesti;; • If safe Þ the resources are allocated to Pi. • If unsafe Þ Pi must wait, and the old resource-allocation state is restored Silberschatz, Galvin 8.25 and Gagne Ó2002 Operating System
  • 26. Example of Banker’s Algorithm 5 processes P0 through P4; 3 resource types A (10 instances), B (5instances, and C (7 instances). Snapshot at time T0: Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 Silberschatz, Galvin 8.26 and Gagne Ó2002 Operating System
  • 27. Example (Cont.) The content of the matrix. Need is defined to be Max – Allocation. Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 The system is in a safe state since the sequence P1, P3, P4, P2, P0 satisfies safety criteria. Silberschatz, Galvin 8.27 and Gagne Ó2002 Operating System
  • 28. Example P1 Request (1,0,2) (Cont.) Check that Request £ Available (that is, (1,0,2) £ (3,3,2) Þ true. Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 Executing safety algorithm shows that sequence P1, P3, P4, P0, P2 satisfies safety requirement. Can request for (3,3,0) by P4 be granted? Can request for (0,2,0) by P0 be granted? Silberschatz, Galvin 8.28 and Gagne Ó2002 Operating System
  • 29. Deadlock Detection Allow system to enter deadlock state Detection algorithm Recovery scheme Silberschatz, Galvin 8.29 and Gagne Ó2002 Operating System
  • 30. Single Instance of Each Resource Type Maintain wait-for graph Nodes are processes. Pi ® Pj if Pi is waiting for Pj. Periodically invoke an algorithm that searches for a cycle in the graph. An algorithm to detect a cycle in a graph requires an order of n2 operations, where n is the number of vertices in the graph. Silberschatz, Galvin 8.30 and Gagne Ó2002 Operating System
  • 31. Resource-Allocation Graph and Wait-for Graph Resource-Allocation Graph Corresponding wait-for graph Silberschatz, Galvin 8.31 and Gagne Ó2002 Operating System
  • 32. Several Instances of a Resource Type Available: A vector of length m indicates the number of available resources of each type. Allocation: An n x m matrix defines the number of resources of each type currently allocated to each process. Request: An n x m matrix indicates the current request of each process. If Request [ij] = k, then process Pi is requesting k more instances of resource type. Rj. Silberschatz, Galvin 8.32 and Gagne Ó2002 Operating System
  • 33. Detection Algorithm 1. Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi ¹ 0, then Finish[i] = false;otherwise, Finish[i] = true. 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti £ Work If no such i exists, go to step 4. Silberschatz, Galvin 8.33 and Gagne Ó2002 Operating System
  • 34. Detection Algorithm (Cont.) 3. Work = Work + Allocationi Finish[i] = true go to step 2. 4. If Finish[i] == false, for some i, 1 £ i £ n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked. Algorithm requires an order of O(m x n2) operations to detect whether the system is in deadlocked state. Silberschatz, Galvin 8.34 and Gagne Ó2002 Operating System
  • 35. Example of Detection Algorithm Five processes P0 through P4; three resource types A (7 instances), B (2 instances), and C (6 instances). Snapshot at time T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 Sequence P0, P2, P3, P1, P4 will result in Finish[i] = true for all i. Silberschatz, Galvin 8.35 and Gagne Ó2002 Operating System
  • 36. Example (Cont.) P2 requests an additional instance of type C. Request A B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 State of system? Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests. Deadlock exists, consisting of processes P1, P2, P3, and P4. Silberschatz, Galvin 8.36 and Gagne Ó2002 Operating System
  • 37. Detection-Algorithm Usage When, and how often, to invoke depends on: How often a deadlock is likely to occur? How many processes will need to be rolled back? one for each disjoint cycle If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes “caused” the deadlock. Silberschatz, Galvin 8.37 and Gagne Ó2002 Operating System
  • 38. Recovery from Deadlock: Process Termination Abort all deadlocked processes. Abort one process at a time until the deadlock cycle is eliminated. In which order should we choose to abort? Priority of the process. How long process has computed, and how much longer to completion. Resources the process has used. Resources process needs to complete. How many processes will need to be terminated. Is process interactive or batch? Silberschatz, Galvin 8.38 and Gagne Ó2002 Operating System
  • 39. Recovery from Deadlock: Resource Preemption Selecting a victim – minimize cost. Rollback – return to some safe state, restart process for that state. Starvation – same process may always be picked as victim, include number of rollback in cost factor. Silberschatz, Galvin 8.39 and Gagne Ó2002 Operating System
  • 40. Combined Approach to Deadlock Handling Combine the three basic approaches prevention avoidance detection allowing the use of the optimal approach for each of resources in the system. Partition resources into hierarchically ordered classes. Use most appropriate technique for handling deadlocks within each class. Silberschatz, Galvin 8.40 and Gagne Ó2002 Operating System
  • 41. Traffic Deadlock for Exercise 8.4 Silberschatz, Galvin 8.41 and Gagne Ó2002 Operating System