Chapter 13
- Starvation is a problem in concurrent systems in which a process (or thread) cannot gain access to the necessary resources to proceed with its execution, which means it cannot make any progress.
- Most of the time, a poorly coordinated set of scheduling instructions is the main cause of starvation. Some high-level causes for starvation may include the following:
- Processes (or threads) with high priorities dominate the execution flow in the CPU, so low-priority processes (or threads) are not allowed to execute their instructions.
- Processes (or threads) with high priorities dominate the usage of non-shareable resources, so low-priority processes (or threads) are not allowed to execute their instructions. This situation is similar to the first one but addresses the priority of accessing resources, instead of the priority of execution itself.
- Processes (or threads) with low priorities are waiting for resources to execute their instructions, but as soon as the resources become...