Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!adm!rbj@icst-cmr.arpa From: rbj@icst-cmr.arpa (Root Boy Jim) Newsgroups: comp.unix.wizards Subject: Shared Memory in BSD4.3 is lacking? Message-ID: <12418@brl-adm.ARPA> Date: 15 Mar 88 20:18:28 GMT Sender: news@brl-adm.ARPA Lines: 33 From: Bob Beck In article <12137@brl-adm.ARPA> rbj@icst-cmr.arpa (Root Boy Jim) writes: > >Your friends at Sequent do the same thing. However, what they are >really doing is marking certain pieces of the buffer cache resident >and non-reclaimable, then mapping them into the processes space. Not true. mmap() works in Dynix by mapping portions of files into address spaces on page boundaries. The file acts as a paging source and store for the data; the pages of the file are demand loaded directly into user addressible memory, no buffer cache involved. The buffer cache does remain coherent, however, so read/write system calls see the latest data. I am speaking loosely. Your implementation may not actually be as I have suggested, but it *could* be implemented that way. And of course you'd have to align everything on page boundarys to make it work. Once upon a time (and possibly now) I believe the buffer structures were prefixed with a header, so their addresses didn't align. This could be fixed by stuffing a pointer to the real page aligned buffer in the header. Bob Beck Sequent Computer Systems 15450 SW Koll Parkway Beaverton, Oregon 97006 ...{tektronix,ogcvax}!sequent!rbk (503)626-5700 (Root Boy) Jim Cottrell National Bureau of Standards Flamer's Hotline: (301) 975-5688