home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / v22 / 067 < prev    next >
Internet Message Format  |  1991-03-07  |  3KB

  1. From jsq@cs.utexas.edu  Mon Jan 14 05:55:20 1991
  2. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3.     id AA15233; Mon, 14 Jan 91 05:55:20 -0500
  4. Posted-Date: 14 Jan 91 04:34:31 GMT
  5. Received: by cs.utexas.edu (5.64/1.93) 
  6. From: jfh@rpp386.cactus.org (John F Haugh II)
  7. Newsgroups: comp.std.unix
  8. Subject: Re: qfork()
  9. Message-Id: <16895@cs.utexas.edu>
  10. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu>
  11. Sender: jsq@cs.utexas.edu
  12. Reply-To: jfh@rpp386.cactus.org (John F Haugh II)
  13. Organization: Lone Star Cafe and BBS Service
  14. X-Submissions: std-unix@uunet.uu.net
  15. Date: 14 Jan 91 04:34:31 GMT
  16. To: std-unix@uunet.UU.NET
  17.  
  18. Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  19.  
  20. In article <16873@cs.utexas.edu> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes:
  21. >You should also know that copy-on-write fork(), unlike vfork(), is inherently
  22. >buggy and can not be a general-purpose useful memory management mechanism.
  23.  
  24. You are confusing theory with implementation.  There is nothing "inherently"
  25. buggy with either vfork() or copy-on-write fork().  vfork() is fairly
  26. inflexible, and as pointed out by other writers, completely superfluous
  27. given a properly implemented fork().
  28.  
  29. >If you have 50MB swap space and want to fork() 30MB process to exec less
  30. >than 1MB shell, you can't. With COW fork(), there is workaround. But the
  31. >workaround is so incomplete that the system sometimes deadlocks.
  32.  
  33. Again, the problem you are alluding to results from the choice of early
  34. or late allocation of paging space.  If you choose early allocation, you
  35. are correct - you can't fork() a 30MB process with only 20MB remaining.
  36. And yes, if you choose late allocation it is possible to deadlock, but
  37. only in the cases where you are doing more than you are with vfork().
  38. Thus your complaint is simply invalid.  If I modify no pages between
  39. fork() and exec() with late allocated COW fork(), I will =never= run
  40. out of page space simply because I required no additional pages.  Any
  41. scenario where I do modify a page is unsuitable for vfork(), so there
  42. is no room for comparision of the merits of fork() with vfork().
  43.  
  44. >Thus, fork(), even COW fork(), is not a proper mechanism to fork-exec
  45. >other processes.
  46.  
  47. If you wish to describe some operation which is a simple fork-exec
  48. then you are correct.  However, process creation frequently involves
  49. more than forking and execing a new command.  It often involves the
  50. creation of IPC mechanisms (pipes, etc), signal manipulation, I/O
  51. redirection, ad nauseum.
  52. -- 
  53. John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
  54. Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
  55. "While you are here, your wives and girlfriends are dating handsome American
  56.  movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."
  57.  
  58. Volume-Number: Volume 22, Number 67
  59.  
  60.