In thinking of specific cases of the types of things that would need to be "prioritized" against each other, there are a lot of variables and unknowns. Which I guess is why there is no "best" generic scheduler.
The question is how tools in the wild allow you to customize the scheduling, so you can add your own heuristics. I can see how generic scheduling algorithms are not best, because there are so many application-specific things you might want to prioritize for. For example, give more time to the UI rendering logic than to computationally intensive number crunching. Within UI rendering, make sure the main screen renders before the side panels, etc. You can go many places with this.
So I was wondering if there is a technique or system people have come up with for allowing software-developer-defined configuration for scheduling. The types of parameters involved, some examples on heuristics they encountered, etc. Basically the question is about resources on scheduling configuration, or if there is a standard / common practice, what is done.
I am imagining things like, say you have queues for 100 different types of objects, and you want to prioritize x before y sometimes and y before x in other cases, etc. So sort of a logical framework for defining these priority/condition heuristics. Maybe it is defined per process "group" sorta thing, that's basically along the lines of what I'm wondering.