Help Measuring Fork/Exec Overhead

Guy Harris guy at sun.uucp
Wed Aug 28 16:09:07 AEST 1985


> > ... there's not much point in copy-on-write if the
> > smallest unit that can be mapped is an entire segment).
> 
> I don't see that.  Most fork()s are almost immediately followed
> by exec(), so that avoiding the useless copying of data segments
> still seems like a big win.

You'll still copy the stack segment, as a bare minimum.  If "exec" touches
the data space in any way, you copy it too.  (Yes, there are systems where
"exec" touches the data space - the PDP-11's system call sequence didn't
involve parameters pushed onto the stack, so they had to be put into a
static area instead.  Also, if you "exec" a lot of shell files and don't
have a system whose kernel can detect that and run a shell (i.e., the
4.xBSD/V8(?) #! stuff), the first "exec" will return an error code, stored
in "errno" - blammo, time to copy the whole data segment.)

	Guy Harris



More information about the Comp.unix mailing list