18.3. Livelock and starvation
Before proceeding to further investigation of the problem of deadlock it should be pointed out that processes need not necessarily be in the blocked state for there to be no possibility of progress. An example is busy waiting on a condition that can never become true. The process loops, testing the condition indefinitely. This condition is sometimes referred to as 'livelock'.
Communications protocols must be analysed to make sure they do not degenerate into an indefinite 'ping-pong' behaviour when systems are congested. If communication is attempted between two congested systems, packets are likely to be discarded at both ends because buffer space is exhausted. The congestion is worsened by resending messages, replies, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access