Title: Chapter 5 : Process Management
1Chapter 5 Process Management
- Deadlock
- 7 Cases of Deadlock
- Conditions for Deadlock
- Modeling Deadlocks
- Strategies for Handling Deadlocks
- Avoidance
- Detection
- Recovery
- Starvation
- Process Synchronization
- Deadlock Starvation
- Management Management
2A Lack of Process Synchronization Causes Deadlock
or Starvation
- Deadlock (deadly embrace) -- a system-wide
tangle of resource requests that begins when 2
jobs are put on hold. -
- Each job is waiting for a vital resource to
become available. - Needed resources are held by other jobs also
waiting to run but cant because theyre waiting
for other unavailable resources. - The jobs come to a standstill.
- The deadlock is complete if remainder of system
comes to a standstill as well. - Resolved via external intervention.
3Deadlock
- Deadlock is more serious than indefinite
postponement or starvation because it affects
more than one job. - Because resources are being tied up, the entire
system (not just a few programs) is affected. - Requires outside intervention (e.g., operators or
users terminate a job).
4Seven Cases of Deadlocks
- 1. Deadlocks on file requests
- 2. Deadlocks in databases
- 3. Deadlocks in dedicated device allocation
- 4. Deadlocks in multiple device allocation
- 5. Deadlocks in spooling
- 6. Deadlocks in disk sharing
- 7. Deadlocks in a network
5Case 1 Deadlocks on File Requests
- If jobs can request and hold files for duration
of their execution, deadlock can occur. - Any other programs that require F1 or F2 are put
on hold as long as this situation continues. - Deadlock remains until a programs is withdrawn or
forcibly removed and its file is released.
6Case 2 Deadlocks in Databases
- 1. P1 accesses R1 and locks it.
- 2. P2 accesses R2 and locks it.
- 3. P1 requests R2, which is locked by P2.
- 4. P2 requests R1, which is locked by P1.
- Deadlock can occur if 2 processes access lock
records in database. - 3 different levels of locking
- entire database for duration of request
- a subsection of the database
- individual record until process is completed.
- If dont use locks, can lead to a race condition.
7Case 3 Deadlocks in Dedicated Device Allocation
- Deadlock can occur when there is a limited number
of dedicated devices. - E.g., printers, plotters or tape drives.
- 1. P1 requests tape drive 1 and gets it.
- 2. P2 requests tape drive 2 and gets it.
- 3. P1 requests tape drive 2 but is blocked.
- 4. P2 requests tape drive 1 but is blocked.
8Case 4 Deadlocks in Multiple Device Allocation
- Deadlocks can happen when several processes
request, and hold on to, dedicated devices while
other processes act in a similar manner.
9Case 5 Deadlocks in Spooling
- Most systems have transformed dedicated devices
such as a printer into a sharable device by
installing a high-speed device, a disk, between
it and the CPU. - Disk accepts output from several users and acts
as a temporary storage area for all output until
printer is ready to accept it (spooling). - If printer needs all of a job's output before it
will begin printing, but spooling system fills
available disk space with only partially
completed output, then a deadlock can occur.
10Case 6 Deadlocks in Disk Sharing
- Disks are designed to be shared, so its not
uncommon for 2 processes access different areas
of same disk. - Without controls to regulate use of disk drive,
competing processes could send conflicting
commands and deadlock the system.
11Case 7 Deadlocks in a Network
- A network thats congested (or filled large of
its I/O buffer space) can become deadlocked if it
doesnt have protocols to control flow of
messages through network.
12Four Conditions for Deadlock
- Deadlock preceded by simultaneous occurrence of
four conditions that operating system could have
recognized - Mutual exclusion
- Resource holding
- No preemption
- Circular wait
13- Mutual exclusion -- the act of allowing only one
process to have access to a dedicated resource. - Resource holding -- the act of holding a resource
and not releasing it waiting for the other job
to retreat. - No preemption -- the lack of temporary
reallocation of resources once a job gets a
resource it can hold on to it for as long as it
needs. - Circular wait -- each process involved in
impasse is waiting for another to voluntarily
release the resource so that at least one will be
able to continue.
14Modeling Deadlocks Using Directed Graphs (Holt,
1972)
- Processes represented by circles.
- Resources represented by squares.
- Solid line from a resource to a process means
that process is holding that resource. - Solid line from a process to a resource means
that process is waiting for that resource. - Direction of arrow indicates flow.
- If theres a cycle in the graph then theres a
deadlock involving the processes and the
resources in the cycle.
15Directed Graph Examples
Figure 5.7 (a) holding
Figure 5.7 (c) circular wait
Figure 5.7 (b) wants - waiting
16Figure 5.8
Figure 5.9
17Strategies for Handling Deadlocks
- Prevent one of the four conditions from
occurring. - Avoid the deadlock if it becomes probable.
- Detect the deadlock when it occurs and recover
from it gracefully.
18Prevention of Deadlock
- To prevent a deadlock OS must eliminate 1 out of
4 necessary conditions. - Same condition cant be eliminated from every
resource. - Mutual exclusion is necessary in any computer
system because some resources (memory, CPU,
dedicated devices) must be exclusively allocated
to 1 user at a time. - Might be able to use spooling for some devices.
- May trade 1 type of deadlock (Case 3) for another
(Case 5).
19Prevention of Resource Holding or No Preemption
- Resource holding can be avoided by forcing each
job to request, at creation time, every resource
it will need to run to completion. - Significantly decreases degree of
multiprogramming. - Peripheral devices would be idle because
allocated to a job even though they wouldn't be
used all the time. - No preemption could be bypassed by allowing OS to
deallocate resources from jobs. - OK if state of job can be easily saved and
restored. - Bad if preempt dedicated I/O device or files
during modification.
20Prevention of Circular Wait
- Circular wait can be bypassed if OS prevents
formation of a circle. - Havenders solution (1968) is based on a
numbering system for resources such as printer
1, disk 2, tape 3. - Forces each job to request its resources in
ascending order. - Any number one devices required by job
requested first any number two devices
requested next - Require that jobs anticipate order in which they
will request resources. - A best order is difficult to determine.
21Avoidance
- Even if OS cant remove 1 conditions for
deadlock, it can avoid one if system knows ahead
of time sequence of requests associated with each
of the active processes. - Dijkstras Bankers Algorithm (1965) used to
regulate resources allocation to avoid deadlock. - Safe state -- if there exists a safe sequence of
all processes where they can all get the
resources needed. - Unsafe state -- doesnt necessarily lead to
deadlock, but it does indicate that system is an
excellent candidate for one.
22Bankers Algorithm
- Based on a bank with a fixed amount of capital
that operates on the following principles - No customer will be granted a loan exceeding
banks total capital. - All customers will be given a maximum credit
limit when opening an account. - No customer will be allowed to borrow over the
limit. - The sum of all loans wont exceed the banks
total capital. - OS (bank) must be sure never to satisfy a request
that moves it from a safe state to an unsafe one. - Job with smallest number of remaining resources lt
number of available resources
23A Banks Safe and Unsafe States
Safe
Unsafe
24Problems with Bankers Algorithm
- 1. As they enter system, jobs must state in
advance the maximum number of resources needed. - 2. Number of total resources for each class must
remain constant. - 3. Number of jobs must remain fixed.
- 4. Overhead cost incurred by running the
avoidance algorithm can be quite high. - 5. Resources arent well utilized because the
algorithm assumes the worst case. - 6. Scheduling suffers as a result of the poor
utilization and jobs are kept waiting for
resource allocation.
25Detection
- Use directed graphs to show circular wait which
indicates a deadlock. - Algorithm used to detect circularity can be
executed whenever it is appropriate.
26Reducing Directed Resource Graphs
- 1. Find a process that is currently using a
resource and not waiting for one. Remove this
process from graph and return resource to
available list. - 2. Find a process thats waiting only for
resource classes that arent fully allocated. - Process isnt contributing to deadlock since
eventually gets resource its waiting for, finish
its work, and return resource to available
list. - 3. Go back to Step 1 and continue the loop until
all lines connecting resources to processes have
been removed.
27R1
R2
R3
Figure 5.12 (a)
Figure 5.12 (b)
R1
R1
R2
R3
R2
R3
Figure 5.12 (c)
Figure 5.12 (d)
28Tabular Version
29Tabular Version
30Example - four processthree resources - 3,2,2
- Process p1 holds 1 unit of R1 and wants 1 unit of
R2 - p2 holds 2 units of R2 and wants 1 unit of R1 and
R3 - p3 holds 1 unit of R1 and wants 1 unit of R2
- p4 holds 2 units of r3 and wants 1 unit of R1
31Recovery
- Once a deadlock has been detected it must be
untangled and system returned to normal as
quickly as possible. - There are several recovery algorithms, all
requiring at least one victim, an expendable job,
which, when removed from deadlock, frees system. - 1. Terminate every job thats active in system
and restart them from beginning. - 2. Terminate only the jobs involved in deadlock
and ask their users to resubmit them.
32Recovery Algorithms - 2
- 3. Terminate jobs involved in deadlock one at a
time, checking to see if deadlock is eliminated
after each removal, until it has been resolved. - 4. Have job keep record (snapshot) of its
progress so it can be interrupted and then
continued without starting again from the
beginning of its execution. - 5. Select a non-deadlocked job, preempt resources
its holding, and allocate them to a deadlocked
process so it can resume execution, thus breaking
the deadlock - 6. Stop new jobs from entering system, which
allows non-deadlocked jobs to run to completion
so theyll release their resources (no victim).
33Select Victim with Least-Negative Effect
- Priority of job under considerationhigh-priority
jobs are usually untouched. - CPU time used by jobjobs close to completion are
usually left alone. - Number of other jobs that would be affected if
this job were selected as the victim. - Programs working with databases deserve special
treatment.
34Starvation
- Starvation -- result of conservative allocation
of resources where a single job is prevented from
execution because its kept waiting for resources
that never become available. - The dining philosophers Dijkstra (1968).
- Avoid starvation via algorithm designed to detect
starving jobs which tracks how long each job has
been waiting for resources (aging).