HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

What does starvation freedom exactly mean?

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
whatstarvationmeanfreedomdoesexactly

Problem

Galvin offers the following definitions of starvation:

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

-
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).

Solution

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

Context

StackExchange Computer Science Q#131786, answer score: 4

Revisions (0)

No revisions yet.