Abstract :
Deadlock, livelock, starvation, and other terms have been used to describe undesirable situations involving blocking or not making progress for processes in a concurrent program However, definitions of these terms are inconsistent and often informal This paper provides formal definitions of deadlock, livelock, and starvation in terms of the reachability graph of a concurrent program Also, this paper shows algorithms for the detection of deadlock, livelock, and starvation.