aleax at aleax.it
Tue Aug 21 12:12:31 CEST 2001
"Andrew Dalke" <dalke at dalkescientific.com> wrote in message
news:9lsj6l$qeu$1 at nntp9.atl.mindspring.net...
> I've been worried about popen2.Popen3.__init__
> In this case, what's the fork/exec overhead? Various
> pages are modified (eg, incref/decrefs to None, 0, 1, 2
> and various variables; a change to the stack, a getitem).
> Do OSes these days only modify-on-write parts of the
> process or does a modification to only a part require
> copying the whole things.
Modern Linux kernels use page-granularity (I'm not sure,
but I think a page is typically 4096 or 8192 bytes, depending
on your hardware). I think I recall that was already the
case in 0.98, way back.
A good discussion of memory management in FreeBSD, with
some contrasting comments re how things are done in Linux,
is at http://www.daemonnews.org/200001/freebsd_vm.html.
> (Hard to grep through my paper copy of the Minux source,
> and that's probably out of date anyway:)
What's Minux, a Minix/Linux hybrid...? Minix was
originally written for 8088 and such chips without
memory-management hardware support, so I doubt it
could afford COW anyway. Linux was originally
written for 80386, with simple but workable hardware
support for paging VM, so COW and page granularity
were pretty much of a natural choice.
More information about the Python-list