Re: on the concept of COW

From: Bill Davidsen
Date: Mon Nov 22 2004 - 22:38:18 EST


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@xxxxxxx)
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/