Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #28641
| Path | csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!news.mixmin.net!news2.arglkargh.de!feeder.erje.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <d@davea.name> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.005 |
| X-Spam-Evidence | '*H*': 0.99; '*S*': 0.00; 'subsequent': 0.04; 'fixes': 0.05; 'executable': 0.07; 'over,': 0.07; 'fork': 0.09; 'wraps': 0.09; 'cc:addr:python-list': 0.10; 'size,': 0.13; 'library': 0.15; 'applies': 0.15; 'accesses': 0.16; 'descriptors': 0.16; 'increment': 0.16; 'mapped': 0.16; 'normal,': 0.16; 'pentium': 0.16; 'wrote:': 0.17; 'copied': 0.17; 'memory': 0.18; 'libraries': 0.22; 'smallest': 0.22; 'trace': 0.22; 'cc:2**0': 0.23; 'cc:no real name:2**0': 0.24; 'least': 0.25; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'header :User-Agent:1': 0.26; 'common': 0.26; 'possibly': 0.27; 'execution': 0.27; "doesn't": 0.28; 'initial': 0.28; 'block,': 0.29; 'writes': 0.30; 'resolution': 0.30; 'gets': 0.32; 'not.': 0.32; 'allocated': 0.33; 'much.': 0.33; 'turns': 0.33; 'themselves': 0.33; 'another': 0.33; 'pm,': 0.35; 'table': 0.35; 'there': 0.35; 'but': 0.36; 'itself': 0.37; 'one,': 0.37; 'two': 0.37; 'virtual': 0.37; 'data': 0.37; 'subject:: ': 0.38; 'copying': 0.38; 'description': 0.39; 'received:192': 0.39; 'received:192.168': 0.40; 'first': 0.61; 'is.': 0.62; 'different': 0.63; 'times': 0.63; 'details': 0.63; 'levels': 0.66; 'family': 0.68; 'header:Reply-To:1': 0.68; 'fact,': 0.69; 'received:74.208': 0.71; 'reply-to:no real name:2**0': 0.72; 'cow': 0.84; 'dennis': 0.91 |
| Date | Thu, 06 Sep 2012 16:54:00 -0400 |
| From | Dave Angel <d@davea.name> |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 |
| MIME-Version | 1.0 |
| To | Dennis Lee Bieber <wlfraed@ix.netcom.com> |
| Subject | Re: Looking for an IPC solution |
| References | <50410AD6.7080003@shopzeus.com> <loom.20120831T230411-646@post.gmane.org> <k29q3g$90m$1@ger.gmane.org> <2p0i489b5kq6ad2kc70r82ksjqpcatdsqu@invalid.netcom.com> |
| In-Reply-To | <2p0i489b5kq6ad2kc70r82ksjqpcatdsqu@invalid.netcom.com> |
| Content-Type | text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding | 7bit |
| X-Provags-ID | V02:K0:iVMTmYgSM6mMx5gwGS+1ZjRND4rF1Zkr4Lkr5rW+mpn u8Grmcx5d8Fgijlh9F8Fm/xCu5hZbZR8Yg1W4iVmB26BzbZBJT 421vmRsxxoKWTQ/N2F9Udv9dTByyUaROU0eSiciGN7BeCtOOAl qQrUKu1LdrPSIcDTAw7/NSzC0jtb3pTFbKdq1YgSLhQnc3LTwe M/9z2GFpLjiEylMpiTxMJUVq8lXw9q/gUd4qXkn/9i69jFVuPN pYpOPg5e5IUVlgCrRs+o2ZeALvoZp8QKyoxL9LYkIdbhQhOuer p/du3wVD1ABac2j1Qrr42yXYS02zV9eektQboHfcNO5nGbB8Q= = |
| Cc | python-list@python.org |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| Reply-To | d@davea.name |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.328.1346964870.27098.python-list@python.org> (permalink) |
| Lines | 32 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1346964870 news.xs4all.nl 6869 [2001:888:2000:d::a6]:42155 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:28641 |
Show key headers only | View raw
On 09/06/2012 04:33 PM, Dennis Lee Bieber wrote: > <snip> > Note that this difference mainly applies to how the processes are > themselves are created... How the library wraps shared data is > possibly different (I've never understood how a "fork" process can > avoid memory conflicts if it has write access to common virtual memory > blocks). Here's an approximate description of fork, at least for the memory aspects. During a fork, the virtual memory table is copied (that's descriptors for all mapped and allocated memory) but the memory itself is NOT. All the new descriptors are labeled "COW" (copy-on-write). As that process executes, the first time it writes in a particular memory block, the OS gets a memory fault, which it fixes by allocating a block of the same size, copying the memory block to the new one, and labeling it read/write. Subsequent accesses to the same block are normal, with no trace of the fork remaining. Now, there are lots of details that this blurs over, but it turns out that many times the new process doesn't change very much. For example, all the mappings to the executable and to shared libraries are theoretically readonly. In fact, they might have also been labeled COW even for the initial execution of the program. Another place that's blurry is just what the resolution of this table actually is. There are at least two levels of tables. The smallest increment on the Pentium family is 4k. -- DaveA
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Re: Looking for an IPC solution Dave Angel <d@davea.name> - 2012-09-06 16:54 -0400
Re: Looking for an IPC solution Ramchandra Apte <maniandram01@gmail.com> - 2012-09-08 08:11 -0700
Re: Looking for an IPC solution Andrew Cooper <amc96@cam.ac.uk> - 2012-09-09 20:14 +0100
Re: Looking for an IPC solution Ramchandra Apte <maniandram01@gmail.com> - 2012-09-08 08:11 -0700
csiph-web