<div dir="ltr">hallo,<div>There is Tinyos, it would fit very well onto the Oberon loop:</div><div><br></div><div><a href="http://www.cs.berkeley.edu/~culler/papers/ai-tinyos.pdf">http://www.cs.berkeley.edu/~culler/papers/ai-tinyos.pdf</a><br></div><div><br></div><div>an chapter4 of the v2.0 programming manual:</div><div><br></div><div><a href="http://www.tinyos.net/tinyos-2.x/doc/pdf/tinyos-programming.pdf">http://www.tinyos.net/tinyos-2.x/doc/pdf/tinyos-programming.pdf</a><br></div><div><br></div><div>Unfortunately it is also getting more and more complex these days. But version 1 scales well.</div><div>I have implemented some version of it in Ada on an ARM. Once you get the idea it is not too hard.</div><div>Execution time prognosis is the word. And you need to be sure not to create endless loops.</div><div><br></div><div>j.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 26, 2015 at 4:46 PM, chris <span dir="ltr"><<a href="mailto:chris@gcjd.org" target="_blank">chris@gcjd.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 26 Aug 2015 09:41:10 -0400, David Hunter wrote:<br>
> I like the straight forward multi-tasking loop concept in Oberon which I<br>
> think makes it a good candidate for an embedded OS. I've been thinking<br>
> of re-working the 'Oberon Loop' with "high priority" and "low priority"<br>
> tasks to replace the "user" and "other" tasks. The high priority tasks<br>
> could involve the user interface, but I think it should be more<br>
> abstracted as generic user input and user output.<br>
<br>
There were two attempts on this in the 90s. I recommend to check them<br>
out.<br>
The article from Wirth is hard to get on the net.<br>
<br>
Greetings, Chris<br>
<br>
----------------------------------<br>
<br>
@inproceedings{ls94,<br>
Address = {Zurich, Switzerland},<br>
Author = {Spiros Lalis and Beverly A. Sanders},<br>
Booktitle = {Proceedings of Programming Languages and System<br>
Architectures},<br>
Number = {LNCS {\#782}},<br>
Publisher = {Springer Verlag},<br>
Series = {Lecture Notes in Computer Science},<br>
Title = {Adding Concurrency to the Oberon System},<br>
Url =<br>
{<a href="ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/concurrentOberon.ps" rel="noreferrer" target="_blank">ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/concurrentOberon.ps</a>},<br>
Year = 1994}<br>
<br>
@article{wtask,<br>
Author = {Niklaus Wirth},<br>
Journal = {Software - Concepts and Tools},<br>
Pages = {6-12},<br>
Title = {Tasks versus Threads: An Alternative Multiprocessing<br>
Paradigm},<br>
Volume = {17},<br>
Year = {1996}}<br>
<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
</blockquote></div><br></div>