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: Hard-Realtime behaviour


On Mon, 29 May 2006, Wolfgang Köbler wrote:

Hello,

I am also interested in using eCos for hard realtime applications.

So just some thoughts about hard realtime and eCos:
I think that simple hard realtime applications are already possible with
eCos, if you are carefull enough.

With eCos I know all the software that is running on my system. I can strip
it down to the absolute minimum and review the code I use (when necessary).

When creating a hard realtime application I need to make sure I always meet
my deadlines. This means
1. I have to write my time-critical code so that it has deterministic
behaviour (Very few, well known, things should affect its
worst-case execution-time).
2. I have to make sure that no other code disturbs my time-critical
code.

With RTAI and Linux there is usually a whole lot of code that may not
disturb realtime code and is unknown. With eCos usually the whole system is
known and so the problem is much smaller.

So what do we need (or want) for a hard realtime system:

1. Anything that is called by realtime code needs deterministic behaviour
itself. This is probably what you are talking about here:
I am currently working on making eCos hard-real time. As the developers of
RTAI claim that RTAI is hard-realtime, I have been comparing the code of
RTAI and eCos w.r.t the interrupt handling, kernel primitives, system
calls etc.

That is correct. I have been comparing/analyzing the code w.r.t them being deterministic. But as far as the primitives are mentioned, their design is not much different from their RTAI counterparts. i.e somehow or the other I think I can compute the worst case time in executing a particular system call based on known information like (Max. no. of threads etc.. )


So could the designers of eCos please enumerate why eCos isn't deemed as "Hard" realtime. Where and what is eCos missing ?



2. Something to control DMA-transfers, as they may unexpectedly reduce memory bandwidth and so slow down realtime code execution. But usually this is ignored.

Yeah, I think this can be taken care of during design of the real-time application.




3. Something to control interrupts, including special interrupts such as NMI and SMI on PCs. They may not unexpectedly interrupt realtime code. If you only want hard realtime in some IRQs, propper interrupt priorities might be enough. If you want realtime in tasks you need to - know the high priority interrupts and - bound the time needed by low pritority interrupts

RTAI does some interrupt virtualization and thus makes it possible to run
realtime-threads that have a higher priority than the non-realtime-interrupts.
This would certainly be a nice feature for eCos, too.


Maybe this could be one of the reasons why eCos is not "Hard" realtime.



4. One important point is to make sure that no "normal" code can disable
interrupts, as this could add unpredictable additional latencies to interrups
(and the scheduler). Therefore RTAI replaces all cli-commands in the Linux
kernel with its own code.


This we can do. We can check the eCos code for the usage of cli/sti commands.


5. If you want hard realtime in tasks, you need a scheduler that does what
you want. Usually you want a scheduler that only executes the task with the
currently highest priority instead of giving cpu-time to all tasks. (Or you
might even want an EDF scheduler)

eCos already has Bitmap and MLQ schedulers which are pre-emptive priority driven scheduling algorithms.

6. It often helps if you have inter-task-communication mechanisms that support things like priority inheritance and priority ceiling.


Priority inheritance and pririty ceiling have already been implemented.



7. A realtime TCP/IP stack (or rather UDP/IP) would be nice.


Currently I intend to work only on the kernel part although would be nice to have a realtime TCP/IP stack.


8. ...

I have not checked which of these wishes are already fulfilled by eCos.
And I do not claim that the above list is complete.

Bye,
Wolfgang


Could the developers please help us in enumerating, what makes ecos soft real-time.

--
Regards,
Vamshi

-------------------------------------------------
R.Vamshi Krishna,
M.Tech. CSE (II year),
IIT Bombay
Room no. 320, A-wing, Hostel-12
Mobile : +919869781633
-------------------------------------------------

Yesterday is a past, tomorrow is a future , today is a gift that's why it's called 'present'
-- 
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]