ZFOD before COW
Andy Glew
aglew%fang at xenurus.gould.com
Thu May 5 04:43:23 AEST 1988
>In fact, when a program starts up, such pointers (or descriptors,
>in Burroughs parlance) are initialized to have an address of zero,
>and the 'presence' flag bit is off, causing a page fault when you
>attempt to reference the array. The paging system notes that the
>array hasn't been allocated, allocates it, fills it with zeroes,
>modifies the descriptor, and returns to repeat the operation.
This is zero-fill-on-demand, which many UNIX machines implement.
What I was asking about was ZFOD followed by COW.
Ie. initialize all pages nonallocated, nonpresent. Take a page fault
on reference. If the reference was a read, allocate the PTEs,
pointing to a single globally read-only page of zeroes. On a write
access, actually allocate the page.
I have received much mail from people who misunderstood what I was
asking for. Obviously, I did not describe the problem clearly enough.
The most useful suggestion was that user-writable page fault handlers
in Mach can do this for you.
More information about the Comp.unix.wizards
mailing list