This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: how to implement EDF scheduling in eCos


Hello everybody,

in my opinion it should be not that difficult to add a new scheduler
using the EDF-algorithm to schedule the different threads ... nothing
like cyg_thread_deadline_wait should be needed therefore. The only
thing you have to be aware of is the relative or absolute deadline of
a thread, then you order all the threads within a simple priority
queue (maybe implemented as heap), where a shorter deadline refers to
a higher priority.
Three problems may arise nevertheless:
1. The eCos-interface knows nothing about thread-specific deadlines
(as far as I know), so deadlines must be added to threads, but this
can be done the same way as priorities are given to threads ... so no
problem
2. The second (real) problem may arise on the side of the application:
in real-time systems one normally uses the notion of a task and
associates tasks with a deadline, but one task can consist of one or
none ISR+DSR and one or more threads within eCos. To find the right
mapping of tasks to an appropriate set of ISRs,DSRs, Threads and
Deadlines within in eCos might be very difficult or in some cases even
impossible
3. Threads/tasks in systems scheduled by EDF normally never block, so
thread synchronisation also has to be taken care of

Ciao, Fabian

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]