Threads

Rafael Kaufmann rnedal@olimpo.com.br
Thu, 14 Sep 2000 06:22:10 -0300


Right now I'm reading about Synthesis, which is an interesting OS whose
design is based on dynamic compilation of custom kernel code. Synthesis
adopts an "everything is a thread" task management concept, which makes
the model much more lightweight than the customary "processes with
threads" model of today's OSs. However, it still retains some problems,
namely unsafety (sp?) (arbitrary machine code is still allowed to run)
and overhead from context-switching (even though there's no longer a
distinction between kernel- and user-level threads).

IIRC, there has been some discussion in the Tunes midst about applying
this philosophy to the whole system (this reminds me of Squeak a bit,
now that I think about it): a small executive that dynamically compiles
_everything_ (presumably source code in a variant of Lisp) into a single
stream of machine code which is continuously run; besides the
performance advantages that Synthesis shows are possible, this evidently
avoids context-switching, and, by compiling only source that is
guaranteed to be correct, the safety problem is also solved. However, I
don't know if that ever got anywhere.

(Disclaimer: I'm not paying much attention to what the Tunes guys have
been doing; I may be misrepresenting you :)

-- Kaufmann