A LIVELOCK differs from a DEADLOCK in that
Alivelock threads keep changing state but make no progress
Blivelock is the same as starvation
Cdeadlock requires three or more threads; livelock only two
Dthey are identical phenomena
Answer & Solution
Correct answer: A. livelock threads keep changing state but make no progress
1. DEADLOCK: threads are permanently STUCK, none making progress, all waiting.
2. LIVELOCK: threads ARE doing work (changing state), but the overall system makes NO PROGRESS — like two people trying to pass each other in a narrow corridor, both stepping aside in the same direction indefinitely.
3. Example: both threads grab one lock, then release it because they can't get the second, then retry — both keep doing this forever, achieving nothing.
4. Detection: deadlock can be detected (resource allocation graph cycle). Livelock is harder — the system 'looks busy'.
5. STARVATION (option B) is a long-term unfairness — one thread always loses races but progresses occasionally. Livelock is global.
6. The N-thread count argument (option C) doesn't apply.
_Source: OSTEP Ch 32 (referenced) + concurrent programming literature. OSTEP discusses livelock briefly in advanced chapters._
Keep practising Operating Systems
Browse all Operating Systems questions for GATE CSE, or explore more Computer Science topics.
Related questions
On a MULTI-CORE system, a SPIN LOCK is generallySuppose thread A acquires lock L1, then thread B acquires lock L2. Now A tries to acquire A CRITICAL SECTION isA LOCK is considered FAIR ifA LOCK (mutex) is used by concurrent threads toWhich of the following is NOT typically minimised by a CPU scheduler?The PRIMARY DISADVANTAGE of FIFO scheduling isJobs A (run time 100, arrival 0), B (run time 10, arrival 0), C (run time 10, arrival 0) u