[coyotos-dev] Coyotos kernel update

Christopher Nelson nadiasvertex at gmail.com
Wed Apr 18 10:41:47 CDT 2007


>
>
> Items you can do:
>
>   + If there is a scheduler you think we need to look at, please let us
>     know ASAP.


You have probably already considered this information:
http://www-md.e-technik.uni-rostock.de/ma/gol/rtsys-bib/91-rtoss-dm.pdf

There's no need to respond to the following, but I thought that it might be
somewhat useful.

A scheduling technique I've been experimenting with splits the scheduler up
into two resource domains: hard real-time threads and soft real-time
threads.  The first group have absolute timing requirements that are
guaranteed to be met, the second group have simple priority metrics.

The hard real-time threads have a 16-level queue indicating priority.
During each rescheduling quantum, the scheduler starts at the highest
priority queue and schedules the first thread in the queue with respect to
it's timing constraints.  That thread is placed at the back of the queue.
The end result is that hard real-time threads monopolize the processor until
they are done, but no one hard thread monopolizes the processor.

Soft threads are executed similarly, but have more granularity, and are not
scheduled with any hard timing constraints.

Priority inversion is handled by having two scheduling entities: default
priority and current priority.  Threads often wait around at exchanges.  If
they receive a request at an exchange from a higher priority thread, the
service thread's current priority is cloned from the requestor's current
priority.  When the request has been serviced, the thread is reset back to
it's default priority.

IIRC, Coyotos has exchanges, so this sort of technique might be useful.

-={C}=-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.coyotos.org/pipermail/coyotos-dev/attachments/20070418/1db4d4dd/attachment.html 


More information about the coyotos-dev mailing list