[okl4-developer] spatial and temporal partitioning control?
Gernot Heiser
gernot at ok-labs.com
Mon Sep 7 09:01:53 EST 2009
>>>>> On Sat, 5 Sep 2009 14:33:42 +0200, "Jean-Christophe Dubois" <jcd at tribudubois.net> said:
>> Still this let the temporal partitioning issue. OKL4 is mostly based on
>> priority. If a high priority cell goes mad, we are stuck because it will
>> eat up all of our CPU without any possibility for other cells to try to fix
>> the problem. And even if we have an even higher priority cell controlling
>> the all thing, how could it find that one specific cell has gone mad and
>> all others cells are starving on CPU resource.
You have discovered the inherent limitations of priority-based
scheduling. Every priority scheme suffers from this in one form or
another.
>> Last if we are considering cells with threads of equal priority, OKL4 shall
>> run these various threads in round-robin mode. But all threads will
>> necessarily get the same scheduling time. I can't find an easy way to
>> instruct OKL4 that for 2 threads of the same priority, one should get twice
>> as much CPU time than the other one. Is there a way to allocate CPU
>> resource to the various cells/threads in a fine grained way?
If one has twice the time slice length of the other, then it should
get twice as much time (as long as they do not get
preempted). Standard prio stuff.
Priority-based scheduling is what is used almost exclusively in the
real world (except for domains like automotive where time-triggered
approaches are used).
As Stefan pointed out, there are alternatives (such as RBED) which are
nicer in many ways (and we're looking at implementing such schemes in
OKL4) but at this time, industry by and large expects to use prios.
Gernot
More information about the Developer
mailing list