1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

What is deadlock?

Discussion in 'Database' started by coderzone, May 25, 2005.

  1. coderzone

    coderzone Super Moderator

    What is deadlock? How can it be avoided? How can it be resolved once it occurs?
     
  2. shabbir

    shabbir Administrator Staff Member

    Deadlock :- This is an inter-blocking that occurs when two processes want to access at shared variables mutually locked. For example, let A and B two locks and P1 and P2 two processes: P1: lock A P2: lock B P1: lock B (so P1 is blocked by P2) P2: lock A (so P2 is blocked by P1) Process P1 is blocked because it is waiting for the unlocking of B variable by P2. However P2 also needs the A variable to finish its computation and free B. So we have a deadlock.

    It can avoided by one of the following options
    1. All the resources are allocated to a process when it starts and cannot request for new resources.
    2. When requesting for more resource the other resources cannot be held up by any processes.
    3. Avoid the cyclic request of resources in a wait for graph.

    You can resolve cycle deadlocks by killing the cheapest process, the one that acquired its lock last or locked for the shortest amount of time.
     

Share This Page