Ok... I think the picture is clearer now...

Linux's modern fork() is copy-on-write by default and thus
involve much less overhead than other Unix's fork()s.
For some of these other *nixes, you can call a different
function, vfork() to get copy-on-write processes.

So Linux fork() and other unices' vfork() would probably
be similarly scalable.

copy-on-write processes are a big improvement over old-style
fork()-ed processes, but still not as efficient as threads.
However, they do have the big advantage of freeing you from a
whole universe of threading problems.

What the degree of efficiency difference is between cow-procs
and threads are, I don't know.


Both the old Linuxthreads and the new NPTL are 1:1 thread models where each userspace thread is mapped onto a kernel thread. However, the new NPTL threads get a massive scalability boost (on benchmarks) because of their use of futexes and the O(1) scheduler (plus some other stuff I don't know about?).

If futexes and the new O(1) scheduler are the two main things
that are largely responsible for NPTL's massive scalability
improvement, then I'm guessing we should also see a big
scalability boost (but not on the scale of NPTL) for Linux 2.6
fork()-ed processes since the O(1) scheduling naturally also
deals with process scheduling.

Would be nice to see a comparison of fork() scalability on
2.4 versus 2.6.



--
reply-to: a n d y @ n e o t i t a n s . c o m
--
Philippine Linux Users' Group (PLUG) Mailing List
[email protected] (#PLUG @ irc.free.net.ph)
Official Website: http://plug.linux.org.ph
Searchable Archives: http://marc.free.net.ph
.
To leave, go to http://lists.q-linux.com/mailman/listinfo/plug
.
Are you a Linux newbie? To join the newbie list, go to
http://lists.q-linux.com/mailman/listinfo/ph-linux-newbie

Reply via email to