>>>>> "RT" == RT Happe <rthappe@web.de> writes:
RT> Is there a tutorial or design paper for s48 threads or a similar system
RT> that describes both the class of computations the thread system should
RT> make straightforward (a requirements analysis of sorts), and the ways in
RT> which the threads library achieves this goal (a collection of idioms)?
RT> I am mainly interested to understand the choice of basic facilities
RT> (without having to think myself), and to see typical examples of
RT> communicating threads that require a complex use of those facilities.
Unfortunately, no.
Of the standard facilities for programming with threads, scsh provides
locks (AKA binary semaphores) and placeholders (AKA ID-90
I-structures). There are some bonuses, mainly that the number of
threads in the system is unbounded, and that each thread takes only on
the order of 1k of memory---this enables applications not doable with,
say, your typical POSIX threads implementation.
Intended programming practice is just about what any book on
concurrent programming tells you. Not that this is so great: the
existing literature on the practice of concurrent programming is
mostly atrociously bad and out-dated, with the one sole exception of
John Reppy's "Concurrent Programming in ML." Which won't help you
much, because the abstractions Reppy's invented aren't available in
scsh.
Now, one of the reasons why there's basically no docs is that the
situation is changing, and thus any documentation we do now would soon
be outdated: Scheme 48 has, in recent versions, already switched to a
lockless synchronization model for dealing with shared memory. (Scsh
still uses a lock-based model.) Moreover, I've been doing work on
implementing Reppy's abstractions in Scheme 48/scsh. The basic
framework is already done, but some work remains.
So we need to get the whole act together in order to provide coherent
information on the usage of the thread system. A lot of it exists in
my mind already, but it will take some time to put it on paper.
Meanwhile, feel free to ask questions :-)
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
|