livelock


Also found in: Dictionary, Wikipedia.

livelock

(parallel)
/li:v'lok/ When two or more processes continuously change their state in response to changes in the other process(es) without doing any useful work.

This is similar to deadlock in that no progress is made but differs in that neither process is blocked or waiting for anything.

A human example of livelock would be two people who meet face-to-face in a corridor and each moves aside to let the other pass, but they end up swaying from side to side without making any progress because they always move the same way at the same time.

livelock

An endless loop in program execution. It occurs when a process repeats itself, because it continues to receive erroneous information. It can also occur when a process that calls another process is itself called by that process, and there is no logic to detect this situation and stop the operation. A livelock differs from a "deadlock," in that processing continues to take place, rather than just waiting in an idle loop. See deadly embrace.
References in periodicals archive ?
Livelock puts you in control of a huge mechanical monster that has a human consciousness.
Note that the net may be unsound if it contains a deadlock (a nonterminal marking where there are not enough resources to proceed any further even with one single step) or a livelock (there are always enough resources to make a following step, but all possible steps are not "progress"-steps, i.e.
Mogul and Ramakrishan [1997] describe a system that uses interrupts under normal network load and polling under overload, in order to avoid receiver livelock. Their scheme disables interrupts during the network packet processing and polls for additional packets whenever the processing of a packet completes; when no further packets are found, interrupts are reenabled.
While designing nonminimal routing algorithms, care should be taken to avoid livelock situations where a message continues to be routed through the network but never reaches its destination.
(Careful readers will notice that, if the Linda kernel is "unfair"--if it can repeatedly bypass one process blocked on in in favor of others--the Linda solution allows indefinite overtaking or livelock. A slow philosopher could remain blocked on an in ("room ticket") statement while a speedy one repeatedly outs a room ticket and then grabs it again, leaving the slow philosopher still blocked.
For low-priority applications, privilege-age should be small enough to avoid livelock.
In addition, Click processed packets at a lower priority than interrupts, leading to receive livelock [Mogul and Ramakrishnan 1997]: with increasing numbers of input packets, interrupt processing eventually starved all other system tasks, leading to reduced throughput.
Jade programmers need not deal with the complex phenomena such as deadlock, livelock, and starvation that characterize explicitly parallel programming.
Problems such as deadlock and livelock among processes are completely hardware independent.