From: Antonio Vargas <windenntw@gmail.com>
To: Jagadeesh Bhaskar P <jbhaskar@hclinsys.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: on the concept of COW
Date: Sat, 20 Nov 2004 12:39:08 +0100 [thread overview]
Message-ID: <69304d110411200339b29177e@mail.gmail.com> (raw)
In-Reply-To: <1100947100.4038.41.camel@myLinux>
On Sat, 20 Nov 2004 16:08:21 +0530, Jagadeesh Bhaskar P
<jbhaskar@hclinsys.com> 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
Permanent. Re-merging (or rather call it UN-COWING ;) is not
considered necesary.
> shouldn't the operations/updations by one process be visible to the
> other which inherited the copy of the same VM?
No, because by default all allocations are marked as private for each
process. The fact is, the original UNIX did not do COW, but did copy
the whole process memory and handed this copy to the child process.
> How can this work? Can someone please help me on this regard?
If you want to share a mapping, the easiest way is to:
1. Create a temp file on /tmp with the size you need.
2. mmap the file, which will get the file contents into your
addressing space. Remeber to ask for shared mapping.
3. Fork.
4. Now both processes have an mmaped file with shared mapping.
Anything written by one is seen by the other, since they use the same
backing space. The contents are also visible by doing a cat on the
shared temporary file (this is great for debugging :).
You may not want to keep the file around. You can delete the file just
after having opened it, so that it's not visible on the filesystem. It
will just keep using the space until you exit all processes which were
using the file.
--
Greetz, Antonio Vargas aka winden of network
Las cosas no son lo que parecen, excepto cuando parecen lo que si son.
next prev parent reply other threads:[~2004-11-20 11:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-20 10:38 on the concept of COW Jagadeesh Bhaskar P
2004-11-20 11:39 ` Antonio Vargas [this message]
2004-11-22 7:35 ` Helge Hafting
2004-11-22 20:44 ` Bill Davidsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=69304d110411200339b29177e@mail.gmail.com \
--to=windenntw@gmail.com \
--cc=jbhaskar@hclinsys.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox