Chapter 5 : Process Management - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

Chapter 5 : Process Management

Description:

Unsafe state -- doesn't necessarily lead to deadlock, but it does indicate that system is ... sure never to satisfy a request that moves it from a safe state to an unsafe one. ... – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 45
Provided by: terril5
Category:

less

Transcript and Presenter's Notes

Title: Chapter 5 : Process Management


1
Chapter 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

2
A 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.

3
Deadlock
  • 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).

4
Seven 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

5
Case 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.

6
Case 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.

7
Race Condition
8
Case 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.

9
Case 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.

10
Case 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.

11
Case 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.

12
Case 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.

13
Four Conditions for Deadlock
  • Deadlock preceded by simultaneous occurrence of
    four conditions that operating system could have
    recognized
  • Mutual exclusion something cannot be shared
  • Resource holding hold and wait
  • No preemption resources cannot be relocated
  • Circular wait a cycle in the graph

14
  • 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.

15
Modeling 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.

16
Directed Graph Examples
Figure 5.7 (a)P1 is holding R1
Figure 5.7 (c)
Figure 5.7 (b)P1 is waiting for R1
17
  1. P1 requests and is allocated R1
  2. P1 releases R1
  3. P2 requests and is allocated R2
  4. P2 releases R2
  5. P3 requests and is allocated R3
  6. P3 releases R3
  7. P1 requests R2
  8. P2 requests R3
  9. P3 requests R1

Figure 5.8 free of deadlock if all resources are
released before theyre requested by the next
process
18
  1. P1 requests and is allocated R1
  2. P2 requests and is allocated R2
  3. P3 requests and is allocated R3
  4. P1 requests R2
  5. P2 requests R3
  6. P3 requests R1

Figure 5.9 deadlocked when P3 request R1
19
? ? ?
Figure 5.11 (a)
Cluster of resources
? ? ?
Figure 5.11 (b)
20
Strategies 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.

21
Prevention 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).

22
Prevention of Resource Holding
  • 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.

23
Prevention of No Preemption
  • 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.
  • Starvation if not well scheduled

24
Prevention 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.

25
Deadlock Avoidance
  • 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.

26
Bankers 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

27
A Banks Safe and Unsafe States
Safe
Unsafe
28
Data Structures for Bankers Algorithm
29
Safety Algorithm
30
Resource Allocation Algorithm for Pi
31
Example of Bankers Algorithm
32
Example of Bankers Algorithm (contd)
33
Example of Bankers Algorithm (contd)P1
requests (1,0,2)
34
Problems 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.

35
Deadlock Detection
  • Allow system to enter deadlock state
  • Use directed graphs to show circular wait which
    indicates a deadlock.
  • Algorithm used to detect circularity can be
    executed whenever it is appropriate.
  • Recovery scheme

36
Reducing 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.

37
R1
R2
R3
Figure 5.12 (a)
Figure 5.12 (b)
R1
R1
R2
R3
R2
R3
Figure 5.12 (c)
Figure 5.12 (d)
38
Example
  • Is the system deadlocked?
  • Are there any blocked process?
  • What is the resulting graph after reduction by
    P1?
  • What is the resulting graph after reduction by
    P2?
  • Both P1 and P2 have requested R2
  • What is the status of the system if P2s request
    is granted before P1s?
  • What is the status of the system if P1s request
    is granted before P2s?

39
Recovery from Deadlock
  • 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.

40
Recovery 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).

41
Select 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.
  • Jobs that are modifying data should not be
    selected for termination

42
Starvation
  • 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).

43
The Dining Philosophers Problem
44
Terminology
  • avoidance
  • circular wait
  • deadlock
  • deadly embrace
  • detection
  • directed graphs
  • locking
  • mutual exclusion
  • no preemption
  • prevention
  • process synchronization
  • race
  • resource holding
  • safe state
  • spooling
  • starvation
  • unsafe state
  • victim
Write a Comment
User Comments (0)
About PowerShow.com