I couldn't say whether it was "much", but I can definitely say that it
wasn't "if ever".? If you will look at GLXMEM, the GLXLIB memory
manager, you will see that it implements a page fault handler.? It does
this to keep its un-shared page usage (what would be considered the low
segment) quite low.? When garbage collection happens, private memory is
trimmed down to (I believe) 7 pages.
The reason for the page handler is to allow for greater ease of
implementation of the linked list manager; that is, you don't have to
'burp' the memory to get rid of holes, you just ditch the page.
This is completely different from the Tops-20 GLXMEM, which couldn't
care less.? It results more usage of the backing store (what is called
the paging 'drum') which really shouldn't hurt anything, normally.?
However, if you are writing big piggy extended mode programs like I do,
then you can exhaust the backing page store, even on a hobbyist system.?
This happens to me because my programming style always trades space for
time as I don't currently have any prospects of multi-CPU Tops-20.
I liked Tops-10's GLXMEM handler so much that I adapted it for use on
Tops-20 GLXMEM.? When the garbage collector gets triggered, I delete the
pages from the address space to free drum storage. Nice.
Sections on Tops-20 are altogether different; they have to be explicitly
created and you can write the equivalent of a page handler to do this
outside of regular program memory management. I think I've done it in
one program.
The Tops-10 VM manager paradigm comes in two flavors: you can use
Tops-10's default manager or you can override that to handle the page
faults your own with the PAGE. UUO.? Not sure I'd call that "special",
but it is nice not to have to be bothered with it if you don't feel like it.
How 'stupid' did you guys get?? I think the worst I ever heard was a
very, very, very long chain of indirect memory reference. Since the EA
has to be calculated and resolved before the opcode can be handled, you
can get the situation that you can be paging to do that calculation only
to be stopped by a clock interrupt which then dismisses back into the
same instruction, which has to be restarted, over and over again.
Pretty anti-social usually, I'd have to say, but probably a fantastic
way to slam the hardware around for burn-in.
On 10/18/21 10:58 PM, Robert Armstrong wrote:
Tops10 is also
"special" in the way that the user jobs VM
handler is merged in to user space if needed.. -:)
That's true - under
TOPS-10 you can actually write your own page fault handler. The idea was that, with
knowledge of the application, you could write a more efficient paging algorithm.
Don't think that actually happened much (if ever!) though.
A couple of us did once have a contest to see who could generate the most page faults
per second by writing the stupidest possible page fault handler.
Bob