--- In AVR-Chat@yahoogroups.com, Robert Adsett <subscriptions@a...> wrote: > >The benefits of a cooperative system, such as ECROS, are: > >*** no need for a stack per task, i.e. more tasks in less RAM > > I don't understand this assertion ... This is a great discussion thread. I confess I have not previously thought at length about differentiating cooperative kernels that can yield at arbitrary points versus those that require a function to run to completion. Mea Cupla. I agree with everything you said. In my defence, I did say "such as ECROS" and ECROS is of the run-to- completion type. This is better for some applications and worse for others as compared to yielding at an arbitrary point. I think it does take the prize for ease-of-use and suitability to machines with very limited resources, though. By rebinding the task function at run time you can get very elegant state machine implementations which are not possible when you yield in the middle of the task. But, sending more text to the UART than can be buffered at any one time is easier if you can yield after each chunk. So perhaps we have these approaches to real-time system design, in ascending order of sophistication/complexity/resource needs: * ad-hoc * super-loop * cooperative run-to-completion RTOS * cooperative yield-when-I-want-tp RTOS * preemptive RTOS Graham.
Message
RTOSs (was Re: Teenagers ...)
2004-09-07 by Graham Davies
Attachments
- No local attachments were found for this message.