[Oberon] a module a page (keeps the mind sane)?

Frans-Pieter Vonck fp at vonck.nl
Tue Nov 6 14:00:11 CET 2018


Hi Chris,

do you have by any chance a link for the article "Tasks versus Threads 
[..]"
I cannot find it on the net.

 From Wirth: "Embedded Systems and Real-Time Programming"

" The next decision was to eliminate the RT-OS, as it seemed possible
to  do  essentially  without  concurrent  processes  in  the  form  of  
threads.  The  third
decision was to program the entire software in Oberon [2], which is very 
suitable for
programming close to the hardware."
So he probably used Tasks vs Threads concept for the helicopter.

> "Tasks, called commands, are a conceptual pillar of the Oberon
> operating environment. Making them interruptible adds significant
> power to the concept
In the oberon loop the commands are already interrupted by input events: 
keyboard, mouse, network communication. Does he mean, tat a task can 
interrupt another task?
Explanation must be found in his article.

Greets,
F.P.



Chris Burrows schreef op 2018-11-06 11:48:
> I recommend that you read Wirth's 1996 paper titled "Tasks versus
> Threads: An Alternative Multiprocessing Paradigm". The relative merits
> of tasks, processes, coroutines and threads are discussed.
> 
> "An alternative to threads is presented as a paradigm for
> single-processor multi-tasking systems. It avoids complex and hidden
> mechanisms for process scheduling, and is therefore particularly
> suitable for realtime systems requiring fast response times, and for
> small systems in general."
> 
> "Tasks, called commands, are a conceptual pillar of the Oberon
> operating environment. Making them interruptible adds significant
> power to the concept and is shown to require surprisingly few changes
> and additions to the existing system, hence retaining its basic
> compactness and efficiency."
> 
> An implementation of these ideas (called System7) on Native Oberon can
> be downloaded from the ETH Oberon site:
> 
> ftp://ftp.ethoberon.ethz.ch
> 
> by following the path:
> 
> ETHOberon/Contrib/System7/
> 
> Now that interrupts are working on Project Oberon 2013 it would be an
> interesting exercise to try out these concepts there as well,
> 
> Regards,
> Chris
> 
> Chris Burrows
> CFB Software
> http://www.astrobe.com/RISC5
> 
>> -----Original Message-----
>> From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of
>> Frans-Pieter Vonck
>> Sent: Tuesday, 6 November 2018 6:39 PM
>> To: Jörg Straube
>> Cc: ETH Oberon and related systems; paulreed at paddedcell.com
>> Subject: Re: [Oberon] a module a page (keeps the mind sane)?
>> 
>> Hi J rg,
>> 
>> I saw the coroutine module is not yet written for project oberon.
>> But that does not keep me from trying out the concept of cooperatieve
>> multitasking.
>> I will look into that,
>> 
>> Thanks.
>> F.P.
>> 
>> J rg Straube schreef op 2018-11-05 23:22:
>> > F.P.
>> >
>> > Installing tasks in the Oberon loop is THE way to enable multi
>> tasking
>> > in Oberon.
>> >
>> > T := Oberon.NewTask(myHandler, 1000);
>> > Oberon.Install(T);
>> >
>> > Every 1000 ms the procedure  myHandler  will be called.
>> >
>> > Another way to have cooperative multitasking is to implement module
>> >  Coroutines .
>> >
>> > br
>> > J rg
>> >
> 
> 
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
> systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon


More information about the Oberon mailing list