[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