Support for native OS threads ?
Mario.Wolczko at Eng.Sun.COM
Fri Apr 28 22:56:26 UTC 1995
Thanks for the explanation of your scenario. A few of points may
be worth mentioning:
- The doesNotUnderstand trick exacts a high price in performance.
However, in Smalltalk it's hard to avoid it.
In Self, it may be possible to build your active objects without
relying on doesNotUnderstand quite so much (using dynamic
inheritance or delegation, for example). I haven't tried this
myself, so cannot be certain, but I think it's possible.
- As Dave points out, the whole Self scheduler is written in Self
(down to a single primitive), so in principle you can add your own
policies and mechanisms.
- The Self I/O system is built on non-blocking calls, so doing I/O
within one Self process does not block the others.
I don't really understand your point about lower latency in OS
threads. If you have to page something in, you have to page it in. I
can't see how OS threads will help here.
Adding anything to the Self language (except perhaps new primitives)
to support active objects would probably be a very large piece of
work. I would experiment entirely within the language at first, to
see if you can get what you need.
I'd be willing to provide some assistance if necessary (particularly
in explaining parts of the system [like the scheduler]).
More information about the Self-interest