[ell-i-developers] Fixed Priority + Round Robin Scheduler

  • From: Ivan Raul <supra.material@xxxxxxxxx>
  • To: ell-i-developers@xxxxxxxxxxxxx
  • Date: Sat, 8 Feb 2014 23:35:02 +0200

Dear All, Good Evening

For the initial implementation of the scheduler, I'm planning to use only
fixed priority scheduling. In particular, there is only one task that at
any priority level.

The real question goes here: I was planning to design the code in a way
that is prepared for, later, add the possibility of multiple tasks at the
same level scheduled by round robin (As in ChibiOS, FreeRTOS and
uC/OS-III). The point is, will it really be needed in the future?

From what I have seen through the implementations, it increases the
complexity and memory required. In particular, the remake of uC/OS III from
II made the ready list data structure far more complex. In the side of
ChibiOS it was designed like that, and includes a flag to remove that
option, what in theory reduces memory and execution time, but I haven't
checked fully. About FreeRTOS I haven't checked.

In the meanwhile, I send the current state of the analysis I've made of the
schedulers that Pekka kinly suggested (FreeRTOS is still missing). Does
anyone know any other good Open Source RTOS / OS / Scheduler worth
checking?:

N = Number of Tasks

ChibiOS,
     Get Highest Priority Ready Task -> O(1),
     Insert Ready Task -> O(N)
     Underlying Data Structure -> Doubly Linked List

uC/OS-II,
     Get Highest Priority Ready Task -> O(1),
     Insert Ready Task -> O(1)
     Underlying Data Structure -> Bitmap

uC/OS-III,
     Get Highest Priority Ready Task -> O(N),
     Insert Ready Task -> O(1)
     Underlying Data Structure -> Bitmap + Doubly Linked List

Thank you in advance for you comments,


With Warm Regards, Ivan Raul

Other related posts: