home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.22 / text0070.txt < prev    next >
Encoding:
Text File  |  1991-03-06  |  1.6 KB  |  35 lines

  1. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  2.  
  3. In article <16895@cs.utexas.edu> jfh@rpp386.cactus.org (John F Haugh II) writes:
  4.  
  5. > Again, the problem you are alluding to results from the choice of early
  6. > or late allocation of paging space.  If you choose early allocation, you
  7. > are correct - you can't fork() a 30MB process with only 20MB remaining.
  8. > And yes, if you choose late allocation it is possible to deadlock, but
  9. > only in the cases where you are doing more than you are with vfork().
  10.  
  11. This sounds like a good argument for two mechanisms, one with early
  12. allocation and the other with late (or perhaps no) allocation.  If the
  13. OS chooses blindly from a single interface (fork) it will sometimes
  14. choose "wrong" according to the needs of the application.  There could
  15. be an interface to select the behavior of fork() rather than two
  16. separate calls; there are some advantages to each approach.
  17.  
  18. In what I've read in this discussion about qfork(), I'm nervous about
  19. the spec that *nothing* is permitted between it and exec.  If nothing is
  20. permitted portably, then a single spawn call should be defined.  The
  21. whole advantage of separate calls is that things *can* be done in
  22. between.  People will take advantage of this even if the standard calls
  23. the behavior implementation-defined, unspecified, or undefined, and the
  24. result is that people will write less-than-portable code.  If the
  25. standard defines qfork(), I think it should define a useful set of
  26. operations permitted with well-defined results in the child prior to
  27. exec.
  28.  
  29.         Bob Lenk
  30.         rml@fc.hp.com
  31.         {uunet,hplabs}!fc.hp.com!rml
  32.  
  33. Volume-Number: Volume 22, Number 72
  34.  
  35.