[Oberon] Concurrency support in Oberon

Felix Friedrich felix.friedrich at inf.ethz.ch
Thu Nov 24 12:30:30 CET 2016


Dear all,

with the work of Prof. Gutknecht and our group at ETH a significant 
amount of research has been conducted with regards to how to program 
systems involving many processors/cores/compute units in the spirit of 
Oberon.

Please consider reading the following theses in order to understand how 
a multicore system could be programmed (in the spirit of Oberon)

"The Active Object System Design and Multiprocessor Implementation" by 
Pieter Muller (2001) 
--http://e-collection.library.ethz.ch/eserv/eth:26082/eth-26082-02.pdf
"Combining Lock-Free Programming with Cooperative Multitasking for a 
Portable Multiprocessor Runtime System" by Florian Negele (2014)  
https://e-collection.library.ethz.ch/view/eth:47094

and, if you like, you may also want to have a glance on our papers on 
the FPGA-based / heterogeneous systems high level programming approach:

Felix Friedrich, Oleksii Morozov, Patrick Hunziker, A Compute Model for 
Generating High Performance Computingng SoCs on Hybrid Systems with 
FPGAs. Third International Workshop on FPGAs for Software Programmers 
(FSP 2016), August 29, 2016, Lausanne, Switzerland, 
https://www.inf.ethz.ch/personal/felixf/pdfs/2016_FSP_ComputeModelHPSoCFPGA.pdf
Felix Friedrich, Ling Liu, Jürg Gutknecht: Active Cells: A Computing 
Model for Rapid Construction of On-Chip Multi-core Systems. ACIS-ICIS 
2012: 463-469, 
https://www.inf.ethz.ch/personal/felixf/pdfs/2012_ActiveCells.pdf

Sorry for the advertising. But really, a lot of the questions that I 
currently see on the mailing list might have been answered there.

Rgds
Felix Friedrich




> On Tue, November 22, 2016 4:45 pm, Douglas G Danforth wrote:
>> "process" is the key word, not system.
> But the question is, in order to implement it in oberon, you have to use a
> unsafe/system module, or regular oberon code without using system?
>
> i.e. in oberon the SYSTEM keyword, AFAIR is for low level coding....
>
> So, would this only be implementable if you use SYSTEM to discourage
> dangerous language usage otherwise.
>
> I thought the SYSTEM keyword in oberon was when you were doing C like
> stuff. So if oberon currently lacks something that C has already, then it
> would be something to add to SYSTEM, no?
>
> If SYSTEM ever needed to be expanded to allow even more low level tools
> than it currently has..... SYSTEM is where you would add that, right? The
> question is always how much dangerous features do you offer to the
> programmer in regular oberon, and how many dangerous features do you keep
> in the system.
>
> If oberon cannot currently write a unix operating system and C can, then
> wouldn't you implement process related hacks into System, and not main
> oberon?
>
> Another question is, what will oberon have to compete with GoLang
> goroutines or other language coroutines.
>
>> Every 100 instructions there would be inserted a jump
>> to another set of code corresponding to a different process. One could
>> inhibit that jump by stating SAFE in ones code. One a single CPU platform
>> one simply jumps from one code chunk to another (time share, process
>> share).  I suppose on a multi core chip that could be implemented by
>> runing multiple cores in parallel.
>>
>> On 11/22/2016 6:04 AM, Lars wrote:
>>
>>> Since most operating systems are written in C, and C has nothing like
>>> what Sail had, how does C allow one to tap into processes without being
>>> a full fledged Sail language...
>>>
>>> i.e. Oberon is very similar in functionality to C, but at a slightly
>>> higher level.. and Oberon has the "system" escape capability...
>> --
>> 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