6.3 Non-preemptive scheduling

The scheduler implemented by systemEnv is non-preemptive, and as a consequence control is only transferred between coroutines when an explicit or implicit suspend is executed. Implicit suspend may be done when executing semaphore P operations, when calling submethods of systemenv.monitor.entry, on execution of systemEnv.pause and on communication with remote shells through submethods of remoteable.entry. When this happens, another coroutine may be attached to execute until it suspends implicitly or explicitly.

If any coroutine makes blocking system calls, this will block all coroutines, as the BETA process is seen as a single process from the operating system.


Distributed Objects in BETA - Reference Manual
© 1993-2004 Mjølner Informatics
[Modified: Monday October 23rd 2000 at 11:16]