OS scheduling vs. VM scheduling
Thu Jan 22 14:49:01 CET 2004
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
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