operating-systems concurrency

Definition

Starvation

Starvation (or indefinite postponement) is a problem encountered in concurrent computing where a process is perpetually denied necessary resources (such as CPU time) to make progress, even though the system as a whole is functioning correctly.

Unlike a deadlock, where all involved processes are stuck, in starvation, other processes may continue to execute while the victim is ignored by the scheduler.

Causes

  • Priority Scheduling: A high-priority process continually arrives, preventing low-priority processes from running.
  • Unfair Mutual Exclusion: A resource is always granted to a specific group of processes.

Prevention

The most common solution to starvation is aging, where the priority of a process increases the longer it waits in the ready queue, eventually ensuring it is scheduled.