Re: How do Linux handle process priority inversion?
- From: Robert Redelmeier <redelm@xxxxxxxxxxxxxxx>
- Date: Thu, 06 Jul 2006 20:54:22 GMT
Chris Friesen <cbf123@xxxxxxxxxxxxx> wrote in part:
Both RR and FIFO still use the scheduler and thus priorities
still apply.
Certainly. But _when_ they apply is the question.
The scheduling _policies_ are very different, including
run-to-completion[or block] (FIFO).
Consider the following, where all tasks are either RR
or FIFO.
If I have task B that is a cpu hog, and something happens
to wake up task A (which is higher priority than B), then
task A should run. Do we agree so far?
No, we do not agree. Task A doesn't "wake up" under RR or FIFO.
If it unblocks, then it waits for RR or FIFO to time-out/complete
(respectively) Task B and the scheduler to run again. These are
not pre-emptive scheduling policies and certainly can block
the system. That's why they require root to set.
You may find more at:
http://www.opengroup.org/onlinepubs/000095399/xrat/xsh_chap02.html#tag_03_02_08_16
Of course some people don't like these primative policies,
however POSIX they may be. So various patches have been
written (SCHED_SOFTRR).
These scheduling policies have been designed for stochastic system
throughput under relatively fixed conditions, like on a realtime
system. Co-operative multitasking techniques are mandatory.
-- Robert
.
- Follow-Ups:
- Re: How do Linux handle process priority inversion?
- From: Chris Friesen
- Re: How do Linux handle process priority inversion?
- References:
- Re: How do Linux handle process priority inversion?
- From: Robert Redelmeier
- Re: How do Linux handle process priority inversion?
- From: Chris Friesen
- Re: How do Linux handle process priority inversion?
- Prev by Date: Re: Bug in kernel 2.6.17?
- Next by Date: Re: How do Linux handle process priority inversion?
- Previous by thread: Re: How do Linux handle process priority inversion?
- Next by thread: Re: How do Linux handle process priority inversion?
- Index(es):
Relevant Pages
|