OS scheduling vs. VM scheduling

Joachim Durchholz joachim.durchholz@REDACTED
Thu Jan 22 14:49:01 CET 2004

Hi all,

When leafing through old messages, I hit on Vance Shipley's old "One 
Million Processes" thread, and my mind made a connection to a recent 
information snippet.

The new Linux 2.6 kernels have been reported to spawn processes at a
rate of 100.000 within a relatively short time (seconds or very few

If that's true, one of the features of Erlang could be folded
back into the operating system.

I think that has important ramifications for Erlang (or any VM that does 
its own scheduling because OS scheduling is Just Too Slow).

First, these VMs could interoperate better with other concurrent 
languages. It's easier to start multiple processes and have them 
communicate via shared memory than having to byte-feed the data through 
a network connections. (I think shared memory would have more 
performance than piping stuff through a queue or a network interface, 
even if Erlang copies the data before sending it.)

Second, one of the comparative advantages of Erlang (cheap processes) 
vanishes. (I see this with a laughing and a weeping eye: it's bad for 
Erlang, but it's good for Unix - and since more people benefit from Unix 
than from Erlang, it's still a Good Thing overall.)

BTW this affects not just Erlang but all other languages with a VM 
implementation that does its own scheduling because Unix processes are 
Too D**n Slow. Java and Oz/Alice come to my mind, I'm pretty sure that 
there are more.

Comments? Test reports? Benchmark figures?

Currently looking for a new job.

More information about the erlang-questions mailing list