1 Biological starvation

Starvation is a severe physiological condition that develops when the body receives too little energy for an extended period or cannot adequately absorb and use nutrients. It may result from insufficient food intake, illness, impaired digestion, or a combination of factors. As reserves are depleted, the body shifts from using readily available glucose to mobilizing fat and, later, protein from muscle and vital tissues.

1.1 Causes and pathways

The most direct cause of starvation is prolonged lack of food. It can also arise when intake is present but nutrient absorption is poor, as in digestive disorders, chronic infections, or conditions that increase metabolic demand. In some cases, the body receives calories but still cannot maintain normal function because of severe deficiency in specific nutrients.

Physiologically, the body first uses glycogen stores, then increases fat breakdown for fuel. If deprivation continues, protein catabolism rises, and essential tissues begin to lose mass. Hormonal changes help conserve energy, but they also slow normal growth, repair, and reproduction.

1.2 Physiological effects

Starvation affects nearly every organ system. Early changes often include fatigue, dizziness, irritability, and reduced physical performance. As the condition worsens, the immune system weakens, body temperature may fall, and the heart and muscles become less efficient.

1.2.1 Short-term responses

In the short term, the body tries to preserve blood glucose for the brain and other vital tissues. Appetite signals may intensify at first, followed later by reduced hunger as metabolism adapts. The person may experience weakness, concentration problems, constipation, and increased sensitivity to cold.

1.2.2 Long-term complications

Prolonged starvation can cause marked weight loss, loss of muscle tissue, electrolyte imbalance, and organ dysfunction. Bone density may decline, wound healing slows, and susceptibility to infection increases. In severe cases, heart failure, severe dehydration, and death may occur.

1.3 Diagnosis and assessment

Assessment usually begins with a clinical history, physical examination, and measurement of body weight, body mass changes, and signs of dehydration or muscle wasting. Healthcare providers may review dietary intake, recent illness, gastrointestinal symptoms, and social circumstances that affect access to food.

Laboratory tests can help identify anemia, electrolyte disturbances, low protein status, and organ stress, though no single test defines starvation by itself. The overall pattern of weight loss, reduced intake, and physical findings is often most important.

1.4 Treatment and recovery

Treatment focuses on restoring nutrition, correcting deficiencies, and addressing the underlying cause. When the condition is severe, care may need to begin gradually, since rapid feeding can destabilize metabolism. Recovery often requires monitoring, especially if starvation has persisted for a long time.

1.4.1 Refeeding considerations

Refeeding after prolonged starvation must be done cautiously because sudden nutrition can trigger dangerous shifts in phosphate, potassium, and magnesium. This risk is known as refeeding syndrome. Food intake is often increased step by step while blood values and fluid balance are closely watched.

1.4.2 Supportive care

Supportive care may include fluids, vitamin supplementation, electrolyte replacement, and treatment of infections or other medical problems. In some cases, psychological or social support is also necessary, particularly when food insecurity, eating disorders, or neglect contribute to the condition. Rehabilitation may continue after the acute phase to rebuild strength and body mass.

2 Starvation in automation and computing

In computing, starvation is a condition in which a task, process, thread, or data operation is repeatedly denied access to a needed resource. The problem typically arises when the system gives preference to other requests for so long that one participant makes little or no progress. Starvation is a concern in operating systems, databases, networking, and other concurrent environments.

2.1 Definition in computer systems

Starvation describes persistent lack of opportunity rather than total impossibility. A task may remain technically runnable or eligible for service, yet still fail to obtain CPU time, locks, bandwidth, or other resources. Unlike deadlock, where multiple entities wait indefinitely in a circular pattern, starvation usually involves one-sided denial caused by scheduling or priority decisions.

2.2 Common causes

Starvation often results from resource allocation policies that favor certain requests over others. It can also appear when high-priority work arrives frequently enough to crowd out lower-priority work. The issue is especially common in systems that lack fairness guarantees.

2.2.1 Unfair scheduling

If a scheduler repeatedly chooses the same class of tasks, lower-priority tasks may never execute. This can happen in fixed-priority systems, highly biased queueing schemes, or any arrangement where selection rules do not ensure eventual service for all participants.

2.2.2 Resource contention

When many processes compete for a limited resource, a few aggressive or faster clients may monopolize access. Threads that request the resource less often, or at disadvantageous times, can wait much longer than intended. The effect becomes more pronounced as contention increases.

Priority inversion occurs when a low-priority task holds a resource needed by a higher-priority task, while medium-priority tasks continue to run. In some situations, this can contribute to starvation or near-starvation, especially if priority rules are not adjusted to let the blocked work proceed. Related problems also occur when locking, synchronization, or queueing policies interact poorly.

2.3 Starvation in operating systems

Operating systems must divide CPU time and other resources among many active entities. If allocation is not balanced, some processes may be delayed far beyond acceptable limits. Starvation in this context can affect responsiveness, fairness, and system throughput.

2.3.1 CPU scheduling

CPU starvation can occur when the scheduler consistently favors interactive, real-time, or high-priority tasks. Lower-priority jobs may wait indefinitely if the system never enforces aging, quota limits, or other fairness mechanisms. Modern schedulers often include protections to reduce this risk.

2.3.2 Process and thread starvation

Threads can starve when lock acquisition, wake-up order, or queue access always favors others. A thread may remain ready but fail to run often enough to complete useful work. This is especially problematic in multithreaded applications that depend on synchronized access to shared data.

2.4 Starvation in databases

Database systems manage access to shared records, tables, and transactional resources. If many transactions compete simultaneously, some may be delayed repeatedly. Starvation can harm latency, reduce throughput, and create unpredictable application behavior.

2.4.1 Lock starvation

Lock starvation occurs when a transaction cannot obtain a lock because other transactions continually acquire it first. This may happen with read-heavy workloads, unfair lock queues, or long-running operations that repeatedly block shorter ones. Fair lock ordering helps reduce the problem.

2.4.2 Transaction scheduling

Transaction schedulers decide which queries or updates run first. If scheduling strongly favors certain users, priorities, or query types, others may be postponed for a long time. Effective systems often use waiting limits, queue balancing, or priority aging to prevent indefinite delay.

2.5 Starvation in networking

Networking systems allocate limited bandwidth, buffer space, and transmission opportunities among many flows or packets. When these resources are unevenly distributed, some traffic may be delayed or dropped repeatedly. Starvation can affect latency-sensitive services and overall network performance.

2.5.1 Bandwidth starvation

Bandwidth starvation occurs when one flow receives so little transmission capacity that it cannot progress efficiently. This can result from priority-based traffic shaping, congestion, or heavy use by competing flows. Quality-of-service policies may be designed to preserve minimum service levels.

2.5.2 Packet and queue starvation

Packets may starve in router or switch queues if higher-priority traffic is always served first. Likewise, entire queues can receive insufficient attention under strict priority schemes. Techniques such as weighted scheduling and queue rotation help distribute service more evenly.

2.6 Detection and monitoring

Starvation is often detected by measuring wait times, service rates, and queue lengths over time. Persistent growth in backlog, repeated timeouts, or unusually low progress for a subset of tasks can indicate the problem. Monitoring tools may track fairness metrics to identify imbalance before it becomes severe.

2.7 Prevention and mitigation

Preventing starvation usually requires explicit fairness mechanisms. Systems are often designed so that no task can be bypassed forever, even if it has lower priority. The right solution depends on whether the issue involves CPU time, locks, network traffic, or another constrained resource.

2.7.1 Fair scheduling

Fair schedulers aim to distribute access more evenly among tasks or flows. They may use round-robin methods, weighted sharing, or aging policies that increase priority the longer a request waits. These approaches reduce the chance that any participant is ignored indefinitely.

2.7.2 Timeouts and backoff

Timeouts limit how long a task waits before taking another action, such as retrying, failing gracefully, or switching strategy. Backoff algorithms spread out repeated attempts so that a single requester does not continually crowd out others. Together, these methods can reduce contention and improve fairness.

2.7.3 Resource allocation strategies

Careful allocation strategies include quotas, reservation systems, admission control, and minimum service guarantees. In concurrent software, designers may also use lock ordering, finer-grained synchronization, or nonblocking algorithms to lower the risk of starvation. Good design balances efficiency with predictable access.

Starvation is closely related to several broader ideas in medicine and computing. Some describe biological deprivation, while others concern scheduling, coordination, and fairness in shared systems.

3.1 Famine and malnutrition

Famine refers to widespread severe food shortage affecting populations, whereas malnutrition is a broader term for inadequate or imbalanced nutrition. Starvation can occur within either context, but it specifically emphasizes the body’s depleted state after prolonged insufficient intake.

3.2 Deadlock and livelock

Deadlock is a condition in which two or more tasks wait indefinitely for one another to release resources. Livelock occurs when tasks continue to change state but still fail to make progress. Starvation differs because one participant is repeatedly bypassed rather than mutually blocked.

3.3 Resource allocation fairness

Resource allocation fairness is the principle that competing users should receive reasonable and predictable access to shared resources. It is central to preventing starvation in both human and machine systems. Fairness mechanisms aim to balance priority, efficiency, and long-term progress.