Starvation¶
Core Idea¶
Starvation is the pattern in which an eligible, queued participant is perpetually denied service — not by exclusion, but because a priority rule always finds someone else more deserving. The system as a whole can run perfectly (high throughput) while one participant makes no progress: safety holds, liveness fails.
How would you explain it like I'm…
Always Skipped
Never Your Turn
Perpetual Denial
Broad Use¶
- Operating systems (origin): a low-priority thread that never gets the processor because higher-priority threads are always ready.
- Networks and databases: low-priority packets deferred under unfair queuing; a long transaction repeatedly aborted by short ones.
- Legal systems: cases that languish for years because each cycle brings higher-priority filings.
- Healthcare: chronic, non-emergent conditions perpetually deferred by emergent ones — the deferred-care pattern.
- Education: applicants who meet every criterion but are never the highest-priority candidate.
- Ecology and funding: subordinate animals excluded from feeding by dominants; research lines ranked just below the funding line.
Clarity¶
It names a third failure mode distinct from scarcity and exclusion, and exposes the distinction between outcome fairness at a snapshot (throughput, average wait) and liveness fairness across time (every participant eventually progresses).
Manages Complexity¶
It compresses "the system works but some never progress" phenomena into one family — priority-induced perpetual deferral — with a transferable intervention menu (aging, guaranteed minimum, lottery, rate-limiting), and rules out the scarcity reflex of adding capacity.
Abstract Reasoning¶
It enables reasoning about the safety/liveness split, the local-rationality/global-pathology gap (each decision is correct yet the sum is pathological), the intervention asymmetry (prevention cheap, detection hard, cure expensive), and the visibility problem.
Knowledge Transfer¶
- Human scheduling: aging, guaranteed quanta, and lottery scheduling transfer from processors into shift-scheduling and court-docket management.
- Bureaucratic process: aging moves into case-scheduling (priority rising with case age) and waitlists (uplift after a threshold).
- Representation: network quality-of-service ideas like guaranteed minimum bandwidth port into guaranteed minimum representation for under-served groups.
- Organizational design: behavioural-ecology subordinate-starvation analysis ports into preventing perpetual non-promotion under up-or-out rules.
Example¶
A low-priority background thread is admitted to the ready queue but, because higher-priority threads are continuously ready, never runs — aggregate utilisation looks excellent and a snapshot always shows it "next," so the failure is visible only by tracking its flat progress trajectory, and a faster CPU does nothing.
Relationships to Other Primes¶
Parents (1) — more general patterns this builds on
- Starvation presupposes Interference and Contention — The file: starvation is 'a particular liveness outcome that contention can produce' — a failure mode of contention under a locally-rational priority rule (the 0.91 embedding-nearest). It presupposes contention; contention is the general condition, starvation the specific liveness violation.
Path to root: Starvation → Interference and Contention → Constraint
Not to Be Confused With¶
- Starvation is not Interference and contention because contention is symmetric friction that degrades everyone, whereas starvation is the asymmetric liveness outcome that contention plus a priority rule can produce — cured only by changing the rule, not adding capacity.
- Starvation is not Deadlock because deadlock is a circular wait in which no one progresses, whereas starvation singles out one participant while the system as a whole runs at high throughput.
- Starvation is not Livelock because livelock is futile activity with no goal-progress, whereas the starved participant is idle-waiting inside a system making genuine, correct progress.