[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
point?
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