Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!adm!aglew%fang@xenurus.gould.com From: aglew%fang@xenurus.gould.com (Andy Glew) Newsgroups: comp.unix.wizards Subject: Re: ZFOD before COW Message-ID: <13273@brl-adm.ARPA> Date: 4 May 88 18:43:23 GMT Sender: news@brl-adm.ARPA Lines: 20 >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.