Is COW ability of fork important enough with modern memory and operating systems, to maintain two significantly different code paths for spawning children processes?

Background:

One of the things I would like to do on the Simple MPM is unify how child processes are created on win32 and unix.

On Win32, there is no fork, so roughly speaking what the current winnt MPM creates a new process, and feeds the configuration over a pipe to the new child.

On Unix, all of the current MPMs use fork, and do not execute a new process, but instead then drop privileges and continue running.

What I would like to do, is change Unix to use the same pattern as on Windows.

Doing this could also solves some issues with on some platforms[2].

It is common on most unix platforms for fork() to use copy on write[1] for memory pages.

This means when spawning a child it uses much less 'real' memory, compared to spawning a completely new process.

[1] - http://en.wikipedia.org/wiki/Copy-on-write
[2] - https://trac.macports.org/ticket/16340


Reply via email to