Shared Memory in BSD4.3 is lacking?
Root Boy Jim
rbj at icst-cmr.arpa
Sat Mar 5 08:15:01 AEST 1988
In article <12033 at brl-adm.ARPA> rbj at icst-cmr.arpa (Root Boy Jim) writes:
> From: Chris Torek <chris at trantor.umd.EDU>
> Nobody was quite sure how mmap `ought' to work, and it never got
> implemented....
>
>.... in BSD. So those vendors who needed it, SUN and Sequent, implemented
>it *differently*. Encore probably has another variation.
^^^^^^
If you're currently running Umax4.2, you get a very simple shared
memory semantic which basically says, "Share this piece of my address
space with any processes that I fork off". This shared memory does
not survive across an exec, so basically any programs that try to make
use of shared memory have to be monolithic. Seems crude and ugly, I
know, but you'd be surprised how many programs can be parallelized very
nicely using just this semantic.
Great! Somebody actually implemented my idea! I hadn't thought about
sharing only *some* of the data space, my idea was to share it all.
Trivia bowl time (related to another comp.unix.wizards topic). Some have
argued that a great way to access shared-memory regions is through the
filesystem namespace. Well, there is at least one operating system out
there that does just that. Which OS is that?
[sound of Jeopardy theme music...]
VMS. They're called "global segments". Of course, VMS has the
interesting "feature" of not just treating the filesystem object as
a handle for the shared memory region, but also using it to
reference a FILE that the region is paged from/to. Whether this is
good or bad is a mixed bag. Once the last person detaches from the
global segment, voila` -- you have a regular file containing the
data that was in the global segment (when the file is actually in
use for paging it's inaccessible as a regular file). This can be
seen as either a benefit or a security risk. One of the benefits
is that once the last process detaches from the region it remains
with its data intact to be attached by another process, consuming
only filesystem space in the interim. Hell, you could even survive
system shutdowns that way! (clean shutdowns only; no telling what
state the file will be in after a crash!)
[sound of Twilight Zone (Grateful Dead!) music...]
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.
+----------------+ Jim Paradis linus--+
+--+-------------+ | Encore Computer Corp. necntc--|
| | E N C O R E | | 257 Cedar Hill St. ihnp4--+-encore!paradis
| +-------------+--+ Marlboro MA 01752 decvax--|
+----------------+ (617) 460-0500 talcott--+
Well, what's the pleasure in THAT??!!
(Root Boy) Jim Cottrell <rbj at icst-cmr.arpa>
National Bureau of Standards
Flamer's Hotline: (301) 975-5688
All of a sudden, I want to THROW OVER my promising ACTING CAREER,
grow a LONG BLACK BEARD and wear a BASEBALL HAT!!
... Although I don't know WHY!!
More information about the Comp.unix.wizards
mailing list