[Oberon] On Oberon Tasks.

Srinivas Nayak sinu.nayak2001 at gmail.com
Sun Dec 23 20:23:45 CET 2012

Dear All,

 From Project Oberon Book,

    2.2.3 Tasks

    The primary advantage of a system dealing with a single process is
    that task switches occur at *user-defined points* only, where no
    local process state has to be preserved until resumption.
    Furthermore, because the switches are user-chosen, the tasks cannot
    interfere in unexpected and uncontrollable ways by accessing common
    variables. The system designer can therefore omit all kinds of
    protection mechanisms that exclude such interference. This is a
    significant simplification.

I understood that Oberon is a single process system, That means, only a 
single while loop is the whole life of Oberon OS. No scheduler present 
which switches the context of different processes. In Oberon, we rather 
have small small modules which can be called tasks, which are similar to 
processes in Linux. The big loop continuously looks for events. Events 
may be invoking the module.procedure, the tasks. Am I correct till this 

Now, what is the meaning of user-defined points here?

    The essential difference between Oberon and multiprocess-systems is
    that in the former task switches occur between commands only,
    whereas in the latter a switch may be invoked after any single
    instruction. Evidently, the difference is one of granularity of
    action. Oberon's granularity is coarse, which is entirely acceptable
    for a single-user system.

I couldn't understand, how can task switching happen between commands only.
Then how, Oberon runs two tasks simultaneously? Or it is not possible to 
view a movie in video player and read some document simultaneously?

With thanks and best regards,

Yours sincerely,
Srinivas Nayak

Home: http://www.mathmeth.com/sn/
Blog: http://srinivas-nayak.blogspot.in/

More information about the Oberon mailing list