Re: on the concept of COW

Bill Davidsen
2004-11-23T03:31:46Z

Jagadeesh Bhaskar P wrote:
> Hi,
>
> When a process forks, every resource of the parent, including the
> virtual memory is copied to the child process. The copying of VM uses
> copy-on-write(COW). I know that COW comes when a write request comes,
> and then the copy is made. Now my query follows:
>
> How will the copy be distributed. Whether giving the child process a new
> copy of VM be permanent or whether they will be merged anywhere? And
> shouldn't the operations/updations by one process be visible to the
> other which inherited the copy of the same VM?

The copies are separate and distinct, and the whole concept of the fork
is to have an independent process. Operations are (deliberately) not
visible from one process to another, that need can be met by the
shmget/shmat system calls (share on swap), mmap call (share on
filesystem), or by just using threads instead of fork. There may be
performance hits one way or the other, on large systems swap may be
faster than a filesystem, particularly /tmp if you use that.
>
> How can this work? Can someone please help me on this regard?
>
Man pages on shmget and mmap will get you started.
--
-bill davidsen (davidsen@tmr.com)
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me