Chapter06 - Concurrency Deadlock and Starvation
Chapter06 - Concurrency Deadlock and Starvation
Chapter06 - Concurrency Deadlock and Starvation
Chapter 6
Concurrency: Deadlock and
Starvation
Patricia Roy
Manatee Community College, Venice, FL
©2008, Prentice Hall
LEARNING OBJECTIVES
• List and explain the conditions for deadlock.
• Define deadlock prevention and its strategies related to each of the
conditions for deadlock.
• Explain the difference between deadlock prevention and deadlock
avoidance.
• Understand two approaches to deadlock avoidance.
• Explain the fundamental difference in approach between deadlock
detection and deadlock prevention or avoidance.
• Understand how an integrated deadlock strategy can be designed.
• Analyze the dining philosophers problem.
• Explain the concurrency and synchronization methods used in
UNIX, Linux, Solaris, and Windows 7.
Deadlock
• Permanent blocking of a set of processes
that either compete for system resources
or communicate with each other
• No efficient solution
• Involve conflicting needs for resources by
two or more processes
Deadlock (illustration)
Example of Deadlock
Two processes, P and Q, have the following
general form:
Deadlock
Example of No Deadlock
• Changing the dynamics of the execution
Deadlock
Reusable Resources
• Used by only one process at a time and
not depleted by that use
• Processes obtain resources that they later
release for reuse by other processes
Reusable Resources
• Processors, I/O channels, main and
secondary memory, devices, and data
structures such as files, databases, and
semaphores
• Deadlock occurs if each process holds
one resource and requests the other
Reusable Resources
Reusable Resources
• Space is available for allocation of
200Kbytes, and the following sequence of
events occur
P1 P2
... ...
Request 80 Kbytes; Request 70 Kbytes;
... ...
Request 60 Kbytes; Request 80 Kbytes;
P1 P2
... ...
Receive(P2); Receive(P1);
... ...
Send(P2, M1); Send(P1, M2);
Resource Allocation Graphs
• Directed graph that depicts a state of the
system of resources and processes
Conditions for Deadlock
• Mutual exclusion
– Only one process may use a resource at a
time
• Hold-and-wait
– A process may hold allocated resources while
awaiting assignment of others
Conditions for Deadlock
• No preemption
– No resource can be forcibly removed form a
process holding it
• Circular wait
– A closed chain of processes exists, such that
each process holds at least one resource
needed by the next process in the chain
Resource Allocation Graphs
Resource Allocation Graphs
Deadlock Prevention
• Mutual Exclusion
– Must be supported by the OS
• Hold and Wait
– Require a process request all of its required
resources at one time
Deadlock Prevention
• No Preemption
– Process must release resource and request
again
– OS may preempt a process to require it
releases its resources
• Circular Wait
– Define a linear ordering of resource types
Deadlock Avoidance
• A decision is made dynamically whether
the current resource allocation request
will, if granted, potentially lead to a
deadlock
• Requires knowledge of future process
requests
Two Approaches to
Deadlock Avoidance
• Do not start a process if its demands might
lead to deadlock
• Do not grant an incremental resource
request to a process if this allocation might
lead to deadlock
Resource Allocation Denial
• Referred to as the banker’s algorithm
• State of the system is the current
allocation of resources to process
• Safe state is where there is at least one
sequence that does not result in deadlock
• Unsafe state is a state that is not safe
Determination of a Safe State
Determination of a Safe State
Determination of a Safe State
Determination of a Safe State
Determination of an Unsafe
State
Deadlock Avoidance Logic
Deadlock Avoidance Logic
Deadlock Avoidance
• Maximum resource requirement must be
stated in advance
• Processes under consideration must be
independent; no synchronization
requirements
• There must be a fixed number of
resources to allocate
• No process may exit while holding
resources
Deadlock Detection
Strategies Once Deadlock
Detected
• Abort all deadlocked processes
• Back up each deadlocked process to
some previously defined checkpoint, and
restart all process
– Original deadlock may occur
Strategies Once Deadlock
Detected
• Successively abort deadlocked processes
until deadlock no longer exists
• Successively preempt resources until
deadlock no longer exists
Advantages and Disadvantages
Dining Philosophers Problem
Dining Philosophers Problem
Dining Philosophers Problem
Dining Philosophers Problem
Dining Philosophers Problem
UNIX Concurrency Mechanisms
• Pipes
• Messages
• Shared memory
• Semaphores
• Signals
UNIX Signals
Linux Kernel Concurrency
Mechanism
• Includes all the mechanisms found in
UNIX
• Atomic operations execute without
interruption and without interference
Linux Atomic Operations
Linux Atomic Operations
Linux Spinlocks
Linux Semaphores
Linux Memory Barrier
Operations
Solaris Thread Synchronization
Primitives
• Mutual exclusion (mutex) locks
• Semaphores
• Multiple readers, single writer
(readers/writer) locks
• Condition variables
Solaris Synchronization Data
Structures
Windows Synchronization
Objects