Erlang (was: Re: Generics)
Eric Merritt
cyberlync at yahoo.com
Mon Nov 10 21:25:33 UTC 2003
> We have preemptive, priority-based threading.
> Processes will run until they're
> blocked (waiting for a semaphore), explicitly yield,
> or terminate. However,
> they may be preempted by a higher-priority Process
> that has become ready to
> run.
> So we can easily force time-slicing between
> Processes at the same priority, by
> having them periodically preempted by a
> higher-priority Process. So (unlike
> in a straight cooperative model) one Process can't
> keep others at the same
> priority from being able to run.
I guess this would imply some external meta-process
to modify the priorities of the watched processes? I
wonder how much overhead this would create.
> > As regards cheap, from what I understand squeak
> has no
> > problem with tens of thousands of concurrent
> > processes. However, if we are comparing cheapness
> with
> > erlang it would have to run nicely with hundreds
> of
> > thousands of concurrent processes.
>
> Don't know how well this would work, but it should
> work fairly well. Andreas
> may have tried it.
Its easy enought to try I guess. I might have to
throw together a little test.
> We don't block the VM, or at least we don't have to.
>
> We have async file and network support; a Process
> needing to do I/O to a
> resource that isn't ready can be blocked until that
> resource is ready without
> stopping other Processes.
I guess what I am saying is that in erlang and
mozart-oz for that matter. There is no special async
code (at least from the programmer prospective), all
io code is async by default.
__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree
More information about the Squeak-dev
mailing list
|