[Oberon] a module a page (keeps the mind sane)?
Frans-Pieter Vonck
fp at vonck.nl
Tue Nov 6 17:45:42 CET 2018
Thanks,
F.P.
Charles Perkins schreef op 2018-11-06 16:05:
> I have found a copy here:
> http://norayr.am/papers/WirthTasksVersusThreads.pdf
>
> On Tue, Nov 6, 2018 at 5:00 AM Frans-Pieter Vonck <fp at vonck.nl> wrote:
>
>> 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
>> --
>> 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