Starvation: Why Can Work Wait Forever While Resources Keep Moving?

Starvation: Why Can Work Wait Forever While Resources Keep Moving?

Starvation does not mean that no resource exists. It means resources keep being allocated while one piece of work is repeatedly denied a turn. Imagine a printer queue that always serves “urgent” documents first. If new urgent jobs keep arriving, an ordinary document may wait indefinitely even though the printer never sits idle.

This differs from deadlock. In deadlock, tasks wait on one another and the whole system stops making progress. Under starvation, the system continues working, but progress is distributed unfairly. Nor is starvation merely a long wait: the defining problem is that the scheduling rule provides no reliable bound on waiting.

The remedy is not necessarily to abolish priorities. A scheduler can gradually raise a task’s priority as it waits, or guarantee each class of work a minimum share. The concept matters because throughput tells us how much work a system completes, not who is persistently excluded. Fairness need not give every task immediate equal treatment; it must ensure that no eligible task can be postponed forever.


Discover more from Geoffrey Chen

Subscribe to get the latest posts sent to your email.