: "Hoehle, Joerg-Cyril" Joerg-Cyril.Hoehle@t-systems.com
: Dirk Gerrits dirk@dirkgerrits.com
Therefore I was disappointed by your roadmap which talks a lot about OS threads and special (thread-local) variables.
Sorry to hear that, care to elaborate?
After a few tens of thousands of threads (may hundreds of thousands, on modern machines with several gibibytes of RAM?), the performance of most (all) Unix kernels becomes very bad. If only because each thread eats at the very least a few kilobytes of kernel memory, and ultimately the machine runs out of memory. Green thread have a potentially much lower overhead.
- Using continuations as green threads. This would limit the points at which processes can be preempted, but that can be partially alleviated by assigning an operating system thread to every few green threads. Also, less preemption is not necessarily a problem.
With sufficient engineering and code-walking, preemption can remain possible. However, preemption necessitates proper handling of invariants, with locking, roll-back and/or roll-forward. As a cheaper way to do things, cooperative multithreading can do, and can be used automatically or semi-automatically. (Only potentially long-running routines need have (yield) statements inserted, and with proper code-walking, this can be done automatically.)
and a CPS code walker is more work than using an OS thread library.
There already are CPS code walkers, in Screamer and in UCW.
Cf. http://c2.com/cgi/wiki?MessagingAsAlternativeToMultiThreading
http://groups.google.com/groups?selm=87acurudww.fsf%40dirkgerrits.com&rn...
I agree that a better place for discussion is needed. How about a common-lisp.net mailing list?
If you create it, please subscribe me :)
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] ... Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.)