Ch 7 Deadlock

Embed Size (px)

Citation preview

  • 8/4/2019 Ch 7 Deadlock

    1/36

    Chapter 7

    Deadlock

  • 8/4/2019 Ch 7 Deadlock

    2/36

    Deadlock

    A waiting process is never again able to

    change state, because the resources it has

    requested are held by other waiting processes

    called as deadlock

  • 8/4/2019 Ch 7 Deadlock

    3/36

    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 eachneeds another one.

  • 8/4/2019 Ch 7 Deadlock

    4/36

    Bridge Crossing Example

    Traffic only in one direction.

    Each section of a bridge can be viewed as a resource.

    If a deadlock occurs, it can be resolved if one car backs

    up (preempt resources and rollback). Several cars may have to be backed up if a deadlock

    occurs.

    Starvation is possible.

  • 8/4/2019 Ch 7 Deadlock

    5/36

    System Model

    Resource typesR1,R2, . . .,Rm

    CPU cycles, memory space, I/O devices

    Each resource typeRi has Wi instances.

    Each process utilizes a resource as follows:

    request

    userelease

  • 8/4/2019 Ch 7 Deadlock

    6/36

    System Model

    RequestIf the request cannot be granted

    immediately, then requesting process must wait

    until it can acquire the resource.UseThe process can operate on resource

    Release- The process releases the resource

  • 8/4/2019 Ch 7 Deadlock

    7/36

    Deadlock Characterization

    Deadlock can arise if four conditions hold

    Simultaneously

    Mutual exclusion: only one process at a time

    can use a resource. If another process requeststhat resource, the requesting process must bedelayed until the resource has been released.

    Hold and wait: a process must be holding atleast one resource and waiting to acquireadditional resources held by other processes.

  • 8/4/2019 Ch 7 Deadlock

    8/36

    Deadlock Characterization Cont.

    No preemption: Resources cant be preempted,i.e. a resource can be released only voluntarily

    by the process holding it, after that process has

    completed its task.

    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 P0 is waiting

    for a resource that is held by P0.

  • 8/4/2019 Ch 7 Deadlock

    9/36

    Resource-Allocation Graph

    A set of vertices Vand a set of edgesE.

    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 edgedirected edge P1Rj

    assignment edgedirected edgeRjPi

  • 8/4/2019 Ch 7 Deadlock

    10/36

    Resource-Allocation Graph (Cont.)

    Process

    Resource Type with 4 instances

    Pi requests instance ofRj

    Pi is holding an instance ofRj

    Pi

    Pi

  • 8/4/2019 Ch 7 Deadlock

    11/36

    Resource-Allocation Graph

  • 8/4/2019 Ch 7 Deadlock

    12/36

    Graph with a deadlock

  • 8/4/2019 Ch 7 Deadlock

    13/36

    Resource allocation graph with a cycle

    but no deadlock

  • 8/4/2019 Ch 7 Deadlock

    14/36

    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.

  • 8/4/2019 Ch 7 Deadlock

    15/36

    Methods for Handling Deadlocks

    Ensure that the system will neverenter a

    deadlock state.

    Allow the system to enter a deadlock state and

    then recover.

    To ensure that deadlock never occur, the

    system can use either a deadlock prevention or

    deadlock avoidance scheme.

  • 8/4/2019 Ch 7 Deadlock

    16/36

    Deadlock Prevention

    Mutual Exclusionnot required for sharable

    resources; must hold for non-sharable resources.

    Hold and Waitmust guarantee that whenever a

    process requests a resource, it does not hold any

    other resources.

    -Require process to request and be allocated all its

    resources before it begins execution, or allow processto request resources only when the process has none.

    -Low resource utilization; starvation possible.

  • 8/4/2019 Ch 7 Deadlock

    17/36

    Deadlock Prevention (Cont.)

    No Preemption If a process that is holding some resources

    requests another resource that cannot be

    immediately allocated to it, then all resources

    currently being held are released.

    Preempted resources are added to the list of

    resources for which the process is waiting.

    Process will be restarted only when it canregain its old resources, as well as the new ones

    that it is requesting.

  • 8/4/2019 Ch 7 Deadlock

    18/36

    Deadlock Prevention (Cont.)Circular Waitimpose a total ordering of all

    resource types, and require that each process

    requests resources in an increasing order of

    enumeration

  • 8/4/2019 Ch 7 Deadlock

    19/36

    Deadlock Avoidance

    Requires that the system has some additional a

    prioriinformation available.Simplest and most useful model requires that each

    process declare the maximum numberof resourcesof each type that it may need.

    The deadlock-avoidance algorithm dynamicallyexamines the resource-allocation state to ensurethat there can never be a circular-wait condition.

    Resource-allocation state is defined by thenumber of available and allocated resources, andthe maximum demands of the processes.

  • 8/4/2019 Ch 7 Deadlock

    20/36

    Safe State

    A state is safe if the system can allocateresources to each process in some order and

    still avoid a deadlock.When a process requests an available resource,

    system must decide if immediate allocationleaves the system in a safe state.

    System is in safe state if there exists a safesequence of all processes.

  • 8/4/2019 Ch 7 Deadlock

    21/36

    Safe State Cont.Sequence is safe if for each Pi, the

    resources that Pi can still request can be satisfied bycurrently available resources + resources held by all

    the Pj If Pi resource needs are not immediately available,

    then Pi can wait until all Pjhave finished.

    When Pj is finished, Pi can obtain needed

    resources, execute, return allocated resources, andterminate.

    When Pi terminates, Pi+1 can obtain its neededresources, and so on.

  • 8/4/2019 Ch 7 Deadlock

    22/36

    Basic FactsA safe state is not a deadlocked state.

    A deadlocked state is an unsafe state.

    Not all unsafe states are deadlock, however anunsafe state may lead to a deadlock.

    To avoid deadlock ensure that a system will

    never enter an unsafe state.

  • 8/4/2019 Ch 7 Deadlock

    23/36

    Safe, Unsafe , Deadlock State

  • 8/4/2019 Ch 7 Deadlock

    24/36

    Example

    Consider system with 12 magnetic tape drives

    3 processes P0 , P1 , P2

    Sequence P1 ,P0 ,P2 satisfy the safety condition

    Processes Maximum

    Needs

    Allocated

    P0 10 5

    P1 4 2

    P2 9 2

  • 8/4/2019 Ch 7 Deadlock

    25/36

    Resource-Allocation Graph Algorithm

    Claim edgePiRj indicated that process Pjmay request resourceRj; represented by a dashed

    line.

    Claim edge converts to request edge when aprocess requests a resource.

    When a resource is released by a process,

    assignment edge reconverts to a claim edge.

    Resources must be claimed a priori in the

    system.

  • 8/4/2019 Ch 7 Deadlock

    26/36

    Resource-Allocation Graph For

    Deadlock Avoidance

  • 8/4/2019 Ch 7 Deadlock

    27/36

    Unsafe State In Resource-Allocation

    Graph

  • 8/4/2019 Ch 7 Deadlock

    28/36

    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.

  • 8/4/2019 Ch 7 Deadlock

    29/36

    Data Structures for the Bankers

    Algorithm

    Available- the number of available resources of

    each type.

    Max- maximum demand of each process

    Allocation- The number of resources of each

    type currently allocated to each process

    Need- the remaining resource need of each

    type

    Safet Algorithm

  • 8/4/2019 Ch 7 Deadlock

    30/36

    Safety Algorithm

    n-No. of processes, m- no of resource type

    1. Let Workand Finish be vectors of length m and n,respectively. Initialize:

    Work=Available

    Finish [i] = false for i= 0,1,3, , n.

    2. Find an i such that both:(a) Finish [i]= =false

    (b)NeediWork

    If no such i exists, go to step 4.

    3. Work= Work+AllocationiFinish[i] = truego to step 2.

    4. IfFinish [i] == true for all i, then the system is in a

  • 8/4/2019 Ch 7 Deadlock

    31/36

    Resource-Request Algorithm for Process Pi

    1. If RequestiNeedigo to step 2. Otherwise, raise

    error condition, since process has exceeded itsmaximum claim.

    2. If RequestiAvailable, go to step 3. Otherwise Pimust wait, since resources are not available.

    3. Pretend to allocate requested resources to Pi bymodifying the state as follows:

    Available =Available =Requesti;

    Allocationi=Allocationi +Requesti;

    Needi= NeediRequesti;;If safe the resources are allocated to Pi.If unsafe Pi must wait, and the old resource-

    allocation state is restored

  • 8/4/2019 Ch 7 Deadlock

    32/36

    Example of Bankers Algorithm5 processes P0 through P4; 3 resource typesA

    (10 instances),B (5instances, and C(7 instances).

    Snapshot at time T0:

    Allocation Max Available

    A B C A B C A B C

    P0 0 1 0 7 5 3 3 3 2

    P1 2 0 0 3 2 2

    P2 3 0 2 9 0 2

    P3 2 1 1 2 2 2

    P4 0 0 2 4 3 3

    E l (C t )

  • 8/4/2019 Ch 7 Deadlock

    33/36

    Example (Cont.)

    The content of the matrix. Need is defined to be

    MaxAllocation.Need

    A B C

    P0 7 4 3P1 1 2 2

    P2 6 0 0

    P3 0 1 1P4 4 3 1

    The system is in a safe state since the sequence satisfies safety criteria.

  • 8/4/2019 Ch 7 Deadlock

    34/36

    Deadlock Detection

    If a system does not employ either a deadlock-

    prevention or a deadlock avoidance, then the

    deadlock situation may occur. In this case

    system must provide

    Deadlock Detection algorithm

    Recovery scheme

  • 8/4/2019 Ch 7 Deadlock

    35/36

    Recovery from Deadlock: Process

    Termination

    Abort all deadlocked processes.Abort one process at a time until the deadlock

    cycle is eliminated.

    In which order should we choose to abort? Priority of the process.

    How long process has computed, and how muchlonger to completion.

    Resources the process has used.

    Resources process needs to complete.

    How many processes will need to be terminated.

    Is process interactive or batch?

  • 8/4/2019 Ch 7 Deadlock

    36/36

    Recovery from Deadlock: Resource

    Preemption

    Selecting a victimminimize cost.

    Rollbackreturn to some safe state, restart

    process from that state.

    Starvation same process may always be

    picked as victim, include number of rollback in

    cost factor.