Re: [PATCH] O12.2int for interactivity

Timothy Miller
2003-08-12T14:50:39Z

William Lee Irwin III wrote:

>
> Guys, it's _way_ premature to say any of this. AFAICT _no_ alternatives
> to the duelling queues with twiddled priorities have been explored yet,
> nor has the maximum been squeezed out of twiddling the methods for
> priority adjustment in that yet (which is Con Kolivas' area).
>

Ok... this reminds me that there is an aspect of all of this that I
don't understand. Please pardon my ignorance. And furthermore, if
there is some document which answers all of my questions, please direct
me to it so I don't waste your time.

I understand that the O(1) scheduler uses two queues. One is the active
queue, and the other is the expired queue. When a process has exhausted
its timeslice, it gets put into the expired queue (at the end, I
presume). If not, it gets put into the active queue.

Is this the vanilla scheduler?

One thing I don't understand is, for a given queue, how do priorities
affect running of processes? Two possibilities come to mind:

1) All pri 10 processes will be run before any pri 11 processes.
2) A pri 10 process will be run SLIGHTLY more often than a pri 11 process.

For the former, is the active queue scanned for runnable processes of
the highest priority? If that's the case, why not have one queue for
each priority level? Wouldn't that reduce the amount of scanning
through the queue?

What it comes down to that I want to know is if priorities affect
running of processes linearly or exponentially.

How do nice levels affect priorities? (Vanilla and interactive)

How do priorities affect processes in the expired queue?

In the vanilla scheduler, can a low enough nice value keep an expired
process off the expired queue? How is that determined?

Does the vanilla scheduler have priorities? If so, how are they determined?

Thanks.