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