On Sep 21, 2015, at 3:14 PM, Jerome H. Fine
<jhfinedp3k at compsys.to> wrote:
Recently, there have been a number of references to using
overlays on the PDP-11. There have also been strong suggestions
that overlays were structured differently under the 3 operating
systems: RSTS/E, RSX-11 and RT-11.
Obviously, I understand how RT-11 overlays were set up, but
for those readers who don't:
ROOT
- contains overlay code subroutines and data tables
- data used by more than one overlay
FIRST Overlay Region - size of the largest overlay in the region
- one or more overlays and the data used by just that overlay
SECOND Overlay Region - size of the largest overlay in the region
- one or more overlays and the data used by just that overlay
THIRD Overlay Region - size of the largest overlay in the region
- one or more overlays and the data used by just that overlay
FREE MEMORY
Any overlay could be called from any location. About the only
requirement was that the calling instruction code (specifically the
code which followed the calling instruction) had to be in memory
when the code returned from the overlay. In practice, the usual
protocol was that an overlay in a higher region was only called
from a lower region or the root.
I understand that RSTS/E and RSX-11 were a bit more complex.
Can anyone briefly summarize and also provide a link to the
details in the appropriate manual if it is available on the internet?
RSTS has no specific structure of its own. It provided both RT-11 and RSX emulation, and
as a result would offer the structures from both of those, depending on which environment
you chose for a particular application.
RSX uses a tree structure. For details (lots of details) see the TKB manual.
Suppose you have main which calls o1. o1 calls o2 which calls o3, and o1 also calls o5
which calls o6.
In the RSX case, you could specify a tree with two branches: main to o1 and from there o2
to o3, and o5 to o6. In the RT11 case, you might put o1 in region 1, o2 and o5 in region
2, and o3 and o6 in region 3.
The memory requirements would be:
rt11: main + o1 + max (o2, o5) + max (o3, o6)
rsx: main + o1 + max (o2 + o3, o5 + o6)
If o2 and o6 are large while o3 and o5 are small, then the RSX case gives you a smaller
memory footprint.
paul