On Wed, Aug 17, 2011 at 2:24 PM, Stefan Marr <pharo@stefan-marr.de> wrote:
Hi Andrew:
On 17 Aug 2011, at 22:50, Andrew P. Black wrote:
I can imagine that the increasing process-creation time is due to beating on the memory manager. But why the increasing message-sending time as the number of processes increases? (Recall that exactly one process is runnable at any given time). I'm wondering if the scheduler is somehow getting overwhelmed by all of the non-runable processes that are blocked on Semaphores in SharedQueue. Any ideas? Vague from memory, and might confused things (we have tried too many different things here ;)): Shouldn't the standard interpreter VM remove the process from the scheduler list when it is waiting on a semaphore?
Yes, you're right. And any flavour VM will do this. All the processes in the ring except the running one are waiting on the semaphore.
I think, when there is only a single runable process for a given priority, then the list only contains that one.
Best regards Stefan
(My code is on Squeaksource in project Erlang. But be warned that there
is a simulation of the Erlang "universal server" in there too. To run this code, look for class ErlangRingTest.)
-- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525
-- best, Eliot