in reply to (tye)Re: collective unconcious (about shared memory...)
in thread collective unconcious (about shared memory...)
My knowledge of *nix kernel memory management is stale at this point, so take this with a grain of salt.
It used to be the case that the read-only pages were so marked in the executable file. The executable also contained some number of writeable data pages, and info for creating a "blank static storage" section to house uninitialized structures. Additional storage (e.g., allocated by malloc()) grew upwards from writable storage via sbrk(), and the stack grew downwards from high memory.
Perl process build their opcode trees in writeable space. I'm not aware of a mechanism to mark writeable pages as read-only at runtime.
However, depending on how fork() is implemented, writeable pages from the parent process may shared with the child process using a "copy on write" scheme, in which pages are shared until one of the process tries writes into the page, at which point a copy is made for each process. Such a scheme would work well with Perl, allowing the opcode tree to be shared.
Now, will somebody please update me by telling me how this is wrong?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(tye)Re2: collective unconcious (about shared memory...)
by tye (Sage) on Apr 17, 2001 at 08:35 UTC | |
by tilly (Archbishop) on Apr 17, 2001 at 15:27 UTC |