Arachne Priorities and Starvation

PRIORITY DESIGN QUESTIONS

  • Are two priorities sufficient?
  • How do we manage starvation?
  • What is the performance cost of having arbitrary priority levels?

 

HOW TO PREVENT STARVATION

  •  In a priority system, do we want to starve the low priority threads?
    •  Consider specific actual or expected use cases.
  • Idea 1: Ensure that the number of CPU-bound high priority threads is lower than the number of cores.
  • Idea 2: Ensure there is at least one core to run only low priority threads, even if that means putting more than one high-priority thread on the same core.