[HECnet] A2RTR downtime

Thomas DeBellis tommytimesharing at gmail.com
Mon Oct 18 21:08:55 PDT 2021


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
>


More information about the Hecnet-list mailing list