Wednesday, June 28, 2006 - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Wednesday, June 28, 2006

Description:

Mutual exclusion: only one process at a time can use a resource. ... Deadlock avoidance requires additional information about about how resources are ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 37
Provided by: Erud
Category:
Tags: june | manner | wednesday

less

Transcript and Presenter's Notes

Title: Wednesday, June 28, 2006


1
Wednesday, June 28, 2006
  • Command, n.
  • Statement presented by a human and accepted by a
    computer in such a manner as to make the human
    feel that he is in control.
  • - Anonymous

2
  • Deadlock
  • A set of processes is deadlocked if each
    processes in the set is waiting for an event that
    only another process in the set can cause.

3
  • Starvation means there exists a path to making
    progress but the scheduler is not choosing it.
  • Deadlock means there is no such path.

4
System Model
  • Resource types R1, R2, . . ., Rm
  • CPU cycles, memory space, I/O devices
  • Each resource type Ri has Wi instances.
  • Resources may be logical as well as physical.

5
Mode of operation
  • Process may utilize a resource in only the
    following sequence.
  • Request
  • Use
  • Release
  • Request and release are system calls e.g system
    calls for allocation and freeing of memory,
    open and close file system calls, wait and signal
    on semaphores etc.

6
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)

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

8
Deadlock Characterization
Deadlock can arise if four conditions hold
simultaneously.
  • 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, , Pn1 is
    waiting for a resource that is held by Pn, and Pn
    is waiting for a resource that is held by P0.

9
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

10
Example of a Resource Allocation Graph
11
(No Transcript)
12
(No Transcript)
13
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.

14
Mode of operation
  • System table records whether each resource is
    free or allocated, and if allocated, to which
    process
  • If a process requests a resource that is
    currently allocated to another process, it can be
    added to a queue of processes waiting for this
    resource

15
Handling Deadlocks
  • Use a protocol to prevent or avoid deadlocks.
  • Allow a system to enter deadlock state, detect it
    and recover.
  • Ignore the problem altogether.

16
Handling Deadlocks
  • What can happen if processes in the system are in
    state of undetected deadlock?

17
Deadlock Prevention
  • Mutual Exclusion
  • Hold and Wait
  • No pre-emption
  • Circular Wait

18
Deadlock Prevention
Side effects of deadlock prevention Low
resource utilization and throughput
19
Deadlock Avoidance
  • Deadlock avoidance requires additional
    information about about how resources are to be
    requested. It decides whether the current request
    is to be satisfied or not.
  • Decision is based on currently available
    resources and currently allocated resources and
    future requests of processes.

20
Deadlock Avoidance
  • Deadlock Avoidance algorithm requires each
    process declare the maximum number of resources
    of each type it might need.
  • It dynamically examines the resource allocation
    state to ensure circular wait condition can never
    exist.
  • Resource allocation state is defined by
  • number of available resources
  • number of allocated resources
  • maximum demands of processes

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

22
Safe State
  • Sequence ltP1, P2, , Pngt 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 jlti.
  • If Pi resource needs are not immediately
    available, then Pi can wait until all Pj have
    finished.

23
Safe State
  • When Pj is finished, Pi can obtain needed
    resources, execute, return allocated resources,
    and terminate.
  • When Pi terminates, Pi1 can obtain its needed
    resources, and so on.
  • If no such sequence exists, then system state in
    unsafe.

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

25
Safe, Unsafe , Deadlock State
26
  • Example.

27
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.
  • Resources must be claimed a priori in the system.

28
Resource-Allocation Graph For Deadlock Avoidance
29
Unsafe State In Resource-Allocation Graph
30
Bankers 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.

31
Bankers Algorithm
  • Resources requested by process must not exceed
    the total available in the system.
  • Algorithm allocates resources if allocation
    leaves system in a safe state

32
Data Structures for the Bankers 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 Rj
    available.
  • Max n x m matrix. If Max i,j k, then
    process Pi may request at most k instances of
    resource type Rj.

33
Data Structures for the Bankers Algorithm
Let n number of processes, and m number of
resources types.
  • Allocation n x m matrix. If Allocationi,j
    k then Pi is currently allocated k instances of
    Rj.
  • Need n x m matrix. If Needi,j k, then Pi
    may need k more instances of Rj to complete its
    task.
  • Need i,j Maxi,j Allocation i,j.

34
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 AllocationiFinishi truego
    to step 2.
  • 4. If Finish i true for all i, then the
    system is in a safe state.

35
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.
36
Resource-Request Algorithm for Process Pi
  • 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
Write a Comment
User Comments (0)
About PowerShow.com