[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Preemption, Persistence, and Mobility

Greetings All,

    I've found a number of clear explanations of how to use continuations to
support cooperative multitasking in the form of coarse grain coroutines. 

    I've also seen some more vague allusions to their being used to create
'engines' that have formed the basis of some multitasking OS kernel research.

    Can any one explain (or suggest good references on) how to use continuations
to add fine grained preemptive threads to a light weight language? 

    Is it feasible/efficient to do so within the language's interpreter without
invoking native OS services?

    Has anyone made continuations persistent, so a language user could
*transparently* freeze a thread and thaw it during a subsequent execution run
without having to manually tear it down to save its state out to disk and then
read its state back in to rebuild it from scratch?

    Assuming such a facility could be provided, how much more work would it be
to make such a persistent thread mobile, so it could be transfered to a
different network node?

    Are continuations the right abstraction to build on in adding preemption,
persistence, and mobility to a language?

    As always, any thoughts or pointers are most deeply appreciated!
Warmest Regards,