Article View: comp.arch
Article #22306Re: Multics & Memory mapped files
From: David Collier-Brown
Date: Fri, 09 Feb 1990 19:20
Date: Fri, 09 Feb 1990 19:20
37 lines
2409 bytes
2409 bytes
hammondr@sunroof.crd.ge.com (Richard A Hammond) writes:
| If I recall properly, Multics hardware couldn't address more than 2^18
| words(?) per segment. While that was huge at the time, it isn't all
| that interesting now as an upper limit. What, if anything, did the
| programmer do to handle files > 1 segment in length?
Alas, this was badly handled in the first 9 or so releases... The
segment sizes were really 2^16 (words, I think! I remember
discussion of leaving addressability to the byute in the design) and
the maximum file size was something like 2^72 bits.
The mechanism for doing large files was the so-called multi-segment
file, which was really a directory containing more than one segment.
Applications treating these as sequential constructs just opened
them and read/write. The segment manager looked after having
multiple segments with the "same" name. Applications doing random
I/O (including one of mine) had a harder time, as the structure
could be and occasionally was, manipulated directly by the idiot
programmer. This was both hard and non-portable.
| This is not to say that memory mapped files are a "BAD IDEA", just
| that they have limits that must be considered by the programmer.
The replacement, being worked on when I left, was the "extended
object", which was a generalization of the file and contained the
code for mapping very large segments into the address spaces in
a programmer-independant manner: you said the equivalent of
stdio_$fseek(stream, offset, ptrname) and you were there
--dave (if you have limits, they should be 0, 1, or infinity) c-b
--
David Collier-Brown, | davecb@yunexus, ...!yunexus!davecb or
72 Abitibi Ave., | {toronto area...}lethe!dave
Willowdale, Ontario, | Joyce C-B:
CANADA. 416-223-8968 | He's so smart he's dumb.
Technical Details
Message-ID:
<7434@yunexus.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!helios.physics.utoronto.ca!ists!yunexus!davecbReferences:
<8859@portia.Stanford.EDU> <20571@watdragon.waterloo.edu> <49956@sgi.sgi.com> <4791@helios.ee.lbl.gov> <2093@crdos1.crd.ge.COM> <1990Feb7.221800.804@utzoo.uucp> <2106@crdos1.crd.ge.COM> <5180@crdgw1.crd.ge.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!helios.physics.utoronto.ca!ists!yunexus!davecb From: davecb@yunexus.UUCP (David Collier-Brown) Newsgroups: comp.arch Subject: Re: Multics & Memory mapped files Message-ID: <7434@yunexus.UUCP> Date: 9 Feb 90 19:20:21 GMT References: <8859@portia.Stanford.EDU> <20571@watdragon.waterloo.edu> <49956@sgi.sgi.com> <4791@helios.ee.lbl.gov> <2093@crdos1.crd.ge.COM> <1990Feb7.221800.804@utzoo.uucp> <2106@crdos1.crd.ge.COM> <5180@crdgw1.crd.ge.com> Organization: York U. Computing Services Lines: 37