🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.unix
Article #703

Re: qfork()

#703
From: John F Haugh II
Date: Mon, 14 Jan 1991 04:34
41 lines
2831 bytes
Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)

In article <16873@cs.utexas.edu> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes:
>You should also know that copy-on-write fork(), unlike vfork(), is inherently
>buggy and can not be a general-purpose useful memory management mechanism.

You are confusing theory with implementation.  There is nothing "inherently"
buggy with either vfork() or copy-on-write fork().  vfork() is fairly
inflexible, and as pointed out by other writers, completely superfluous
given a properly implemented fork().

>If you have 50MB swap space and want to fork() 30MB process to exec less
>than 1MB shell, you can't. With COW fork(), there is workaround. But the
>workaround is so incomplete that the system sometimes deadlocks.

Again, the problem you are alluding to results from the choice of early
or late allocation of paging space.  If you choose early allocation, you
are correct - you can't fork() a 30MB process with only 20MB remaining.
And yes, if you choose late allocation it is possible to deadlock, but
only in the cases where you are doing more than you are with vfork().
Thus your complaint is simply invalid.  If I modify no pages between
fork() and exec() with late allocated COW fork(), I will =never= run
out of page space simply because I required no additional pages.  Any
scenario where I do modify a page is unsuitable for vfork(), so there
is no room for comparision of the merits of fork() with vfork().

>Thus, fork(), even COW fork(), is not a proper mechanism to fork-exec
>other processes.

If you wish to describe some operation which is a simple fork-exec
then you are correct.  However, process creation frequently involves
more than forking and execing a new command.  It often involves the
creation of IPC mechanisms (pipes, etc), signal manipulation, I/O
redirection, ad nauseum.
-- 
John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
"While you are here, your wives and girlfriends are dating handsome American
 movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."

Volume-Number: Volume 22, Number 67
Technical Details
Message-ID: <16895@cs.utexas.edu>
Path: arc1-ca.pugleaf.net!utzoo!censor!geac!torsqnt!hybrid!scifi!bywater!uunet!cs.utexas.edu!jsq
References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!censor!geac!torsqnt!hybrid!scifi!bywater!uunet!cs.utexas.edu!jsq
From: jfh@rpp386.cactus.org (John F Haugh II)
Newsgroups: comp.std.unix
Subject: Re: qfork()
Message-ID: <16895@cs.utexas.edu>
Date: 14 Jan 91 04:34:31 GMT
References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu>
Sender: jsq@cs.utexas.edu
Reply-To: jfh@rpp386.cactus.org (John F Haugh II)
Organization: Lone Star Cafe and BBS Service
Lines: 41
Approved: jsq@cs.utexas.edu (Moderator, John S. Quarterman)
X-Submissions: std-unix@uunet.uu.net