Previous | Next --- Slide 37 of 62
Back to Lecture Thumbnails
pdp

Another thought for eliminating starvation: Processors should specify the priority of every read access. Due to instruction level parallelism a program trying to fetch memory even before the instruction pointer reaches that part of the code. Or if processor is trying to do prefetching of a large chunk of memory which is stalling crucial running processes. These are scenarios where hogging memory by future events could be avoided.

sstritte

The case above, where multiple processors are competing for bus access and the processor with the "lowest id" always wins, is an example of starvation because the system is making overall progress, but some processes will make no progress. Consider the situation where Processor 1 and Processor 2 continually make simultaneous requests for bus access. Processor 1 will always win and thus will be able to make lots of progress, but Processor 2 will never get to complete an operation.

pagerank

Starvation is a problem of fairness, instead of efficiency. When the starvation happens, the system is actually making progress, and the resources have good utilization. When other jobs are done, the starving job will have the chance to get the resource. Even if other jobs are running continually, the resources are not wasted. This is different from deadlock and livelock, which prevents the system making progress.