On 8/17/2020 3:50 PM, Paul Winalski wrote:
VAX/VMS had the equivalent of mmap(2) back in 1978.
You can specify a
range of contiguous pages in virtual memory and associate that with a
(page-aligned) range of blocks in a file. The blocks in the file act
as backing store for the virtual memory.
I, and my boss, took advantage of that
while converting his database
software from TOPS-10 to VMS.
His TOPS-10 implementation used various ways to optimize I/O from/to
disk. On VMS, our benchmarks showed that as long as we understood the
paging size, performance was about the same. RP06 vs. I think something
bigger. Maybe RP07. But even still, it proved the operating system
virtual memory system was up to the task.
I seem to remember there was a way to sync a page after you wrote it
just to make sure it was committed to disk. It worked so well that I
also seem to recall that we used some of that file space as heap.
art k.