100% found this document useful (2 votes)
274 views32 pages

Operting System Book

This document discusses deadlock and starvation in concurrent systems. It defines deadlock as the permanent blocking of processes that compete for resources. Four conditions must be met for deadlock to occur: mutual exclusion, hold and wait, no preemption, and circular wait. Approaches to avoid deadlock include deadlock avoidance and detection. Avoidance prevents deadlock by analyzing resource requests, while detection detects deadlock after the fact and requires breaking the cycle.

Uploaded by

basit qamar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
274 views32 pages

Operting System Book

This document discusses deadlock and starvation in concurrent systems. It defines deadlock as the permanent blocking of processes that compete for resources. Four conditions must be met for deadlock to occur: mutual exclusion, hold and wait, no preemption, and circular wait. Approaches to avoid deadlock include deadlock avoidance and detection. Avoidance prevents deadlock by analyzing resource requests, while detection detects deadlock after the fact and requires breaking the cycle.

Uploaded by

basit qamar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

Concurrency: Deadlock and

Starvation
Chapter 6
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
Reusable Resources
• Used by one process at a time and not
depleted by that use
• Processes obtain resources that they later
release for reuse by other processes
• Processors, I/O channels, main and
secondary memory, files, databases, and
semaphores
• Deadlock occurs if each process holds
one resource and requests the other
Example of Deadlock
Another Example of Deadlock
• Space is available for allocation of 200K
bytes, and the following sequence of
events occur
P1 P2
... ...
Request 80K bytes; Request 70K bytes;
... ...
Request 60K bytes; Request 80K bytes;

• Deadlock occurs if both processes


progress to their second request
Consumable Resources
• Created (produced) and destroyed
(consumed) by a process
• Interrupts, signals, messages, and
information in I/O buffers
• Deadlock may occur if a Receive
message is blocking
• May take a rare combination of events to
cause deadlock
Example of Deadlock
• Deadlock occurs if receive is blocking

P1 P2
... ...
Receive(P2); Receive(P1);
... ...
Send(P2, M1); Send(P1, M2);
Conditions for Deadlock
• Mutual exclusion
– only one process may use a resource at a
time
• Hold-and-wait
– A process request all of its required
resources at one time
Conditions for Deadlock
• No preemption
– If a process holding certain resources is
denied a further request, that process must
release its original resources
– If a process requests a resource that is
currently held by another process, the
operating system may preempt the second
process and require it to release its
resources
Conditions for Deadlock
• Circular wait
– Prevented by defining 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
request
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
Initial State
Determination of a Safe State
P2 Runs to Completion
Determination of a Safe State
P1 Runs to Completion
Determination of a Safe State
P3 Runs to Completion
Determination of an
Unsafe State
Determination of an
Unsafe State
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
• Successively abort deadlocked processes
until deadlock no longer exists
• Successively preempt resources until
deadlock no longer exists
Selection Criteria Deadlocked
Processes
• Least amount of processor time
consumed so far
• Least number of lines of output
produced so far
• Most estimated time remaining
• Least total resources allocated so far
• Lowest priority
Dining Philosophers Problem
UNIX Concurrency
Mechanisms
• Pipes
• Messages
• Shared memory
• Semaphores
• Signals
Solaris Thread
Synchronization Primitives
• Mutual exclusion (mutex) locks
• Semaphores
• Multiple readers, single writer
(readers/writer) locks
• Condition variables
Windows 2000 Concurrency
Mechanisms
• Process
• Thread
• File
• Console input
• File change notification
• Mutex
• Semaphore
• Event
• Waitable timer

You might also like