Global scheduling in RTEMS

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Apr 24 06:57:02 UTC 2015


Hello,

On 23/04/15 15:55, Biermans Joeri wrote:
>
> Hey everyone,
>
>
> I'm a student at the University of Antwerp and I'm
>
> currently working on my master's project.
>
> My master's project is about the comparison
>
> of real-time multicore scheduling algorithms
>
> on embedded systems.
>
>
> I'm currently looking for an RTOS on which
>
> I can add a few global schedulers like G-EDF,
>
> G-RM, RM-US, EDF-US and EDF(k).
>
>
> I came across RTEMS and I have the following
>
> question about the OS:
>
>
> * Is it possible to globally schedule jobs of tasks
>
> in RTEMS?
>
>
> (ie released/suspended jobs are placed
>
> into a global queue shared between all processors.
>
> The scheduler calculates their priority and decides
>
> on which m cores the m highest priority jobs should
>
> run. Jobs can migrate between different cores.)
>

it should be moderately easy to add new SMP schedulers to RTEMS. There 
is some documentation available here:

https://docs.rtems.org/doc-current/share/rtems/html/c_user/Scheduling-Concepts.html#Scheduling-Concepts

https://docs.rtems.org/doc-current/share/rtems/html/c_user/Configuring-a-System-Configuring-Clustered_002fPartitioned-Schedulers.html#Configuring-a-System-Configuring-Clustered_002fPartitioned-Schedulers

New schedulers can use a framework which deals with the low level 
aspects (like thread migration) and is customized via function pointers:

https://git.rtems.org/rtems/tree/cpukit/score/include/rtems/score/schedulersmpimpl.h

Example:

https://git.rtems.org/rtems/tree/cpukit/score/src/schedulersimplesmp.c

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.




More information about the users mailing list