Galvin offers the following definitions of starvation:

  1. Indefinite blocking, or starvation, a situation in which processes wait indefinitely within the semaphore.

  2. A major problem with priority scheduling algorithms is indefinite block-ing, or starvation.A process that is ready to run but waiting for the CPU can be considered blocked. A priority scheduling algorithm can leave some low priority processes waiting indefinitely.

What I understand from this is, starvation happens whenever a process has to wait indefinitely to get resources, the waiting may be finite, but you cannot specify the time limit. So by definition, starvation freedom must be definite waiting.

Michel Raynal defines starvation freedom as following:

If a process wants to execute the critical section code, then that process eventually executes it.

My question is, does starvation freedom mean a given process will have to wait for a specified finite time(definite waiting, according to Galvin) or does it mean that a process must wait for some unknown finite time(eventually executes it, according to Raynal).


1 Answer 1


You cannot imply starvation freedom as definite waiting just because the definition of starvation says that the low priority processes have to wait indefinitely.

From Raynal,

Starvation freedom means that a process that wants to enter the critical section can be bypassed an arbitrary but finite number of times by each other process.

Concurrent Programming: Algorithms, Principles, and Foundations By Michel Raynal

  • $\begingroup$ So there is indefinite waiting in starvation freedom too, with the exception that it will be bypassed an unknown but finite number of times? $\endgroup$
    – Yueor
    Nov 2, 2020 at 6:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.