vfork() (was Re: RS6000 questions/comments)

drake at drake.almaden.ibm.com drake at drake.almaden.ibm.com
Sat Jun 29 15:57:24 AEST 1991


In article <351 at devnull.mpd.tandem.com> lance at mpd.tandem.com (Lance Hartmann) writes:
>                                                                The MAIN reason
>to use vfork() is when it is desired to spawn a child that does nothing
>but an execve().  With this scenario, it is unnecessary to copy the
>address space of the parent, so using vfork() is much more efficient.

While some systems with inefficient implementations of "fork()" require
a "vfork" mechanism in order for efficiency's sake, this is not a universal
situation.  Many systems have efficient implementations of "fork()",
making "vfork()" much less necessary, and completely eliminating the
issue mentioned in the referenced article.

The RISC System/6000's fork() implementation is quite efficient, making
"vfork" unnecessary for performance reasons.  Nonetheless, vfork() *is*
provided on the RISC System/6000, in the BSD compatibility library,
for the convenience of those porting BSD sources.


Sam Drake / IBM Almaden Research Center 
Internet:  drake at ibm.com            BITNET:  DRAKE at ALMADEN
Usenet:    ...!uunet!ibmarc!drake   Phone:   (408) 927-1861



More information about the Comp.unix.aix mailing list