<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff">curmudgeon warning below.....</font></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 16, 2018 at 11:06 AM, Ethan Dicks <span dir="ltr"><<a href="mailto:ethan.dicks@gmail.com" target="_blank">ethan.dicks@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
I started on a VAX with 2MB of physical memory in a 16MB physical<br>
address space but with 4GB virtual addresses.  Switching over to the<br>
PDP-11 was odd from that.<br></blockquote><div><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff">​Sigh... I fear that is a fault of your education.  </font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff"><br></font></div><div class="gmail_default" style=""><font color="#0000ff" style=""><font face="arial, helvetica, sans-serif">If you ask many (younger) programmers what VM was designed to solve (particularly those that never memory constrained systems such as you get in 8, 12, 16 or 18 bit processors), they will tell you 'So can have more addressable memory.'​  The problem is said programmers never experienced or learned about overlays.   Conceptually, a PDP-11 can allow a lot more than the 64Ks physical limit by 'swapping out' and 'overlaying parts' and calling subroutines through 'thunks' [which to quote my old friend Paul Hilfinger from page 427 of his book:  </font><i style="font-family:arial,helvetica,sans-serif">"an onomatopoetic reference to the sound made by a pointer as it moves instantaneously up and down the stack"</i><font face="arial, helvetica, sans-serif">].  A process has be allowed to be larger that 64K, but only 64K (128K on seperate I/D systems) in the set up memory maps at a time.    If you need to call a subroutine to (optionally) bring in the routines and its data into memory if it is not already there, and then set up the map to point the routine in question.</font></font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff"><br></font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff">BTW: If you play with BSD 2.11 or the like, it uses overlays to allow programs to grow in size.   This was needed as people started to try to move features from 4BSD and later back to the PDP-11.   At this point, I believe you must have what was sometimes referred too as '17th address bit - i.e. I/D space which gives you 128K bytes of mapped in memory at a time.    But you can (with care) let you programs grow.   </font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff"><br></font></div><div class="gmail_default" style=""><font color="#0000ff" style=""><font face="arial, helvetica, sans-serif">The point is that VM is a mechanism<i> to automatically manage overlays</i>.   The implementation of this management gets easier if there are more address bits than physical address bit, but that is the key item that is happening.</font></font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff"><br></font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff">Sadly, since people stopped learning about overlay management, the context of what it was doing under the covers was lost.</font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff"><br></font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><font color="#0000ff">Clem</font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div></div></div></div><div hspace="streak-pt-mark" style="max-height:1px"><img alt="" style="width:0px;max-height:0px;overflow:hidden" src="https://mailfoogae.appspot.com/t?sender=aY2xlbWNAY2NjLmNvbQ%3D%3D&type=zerocontent&guid=2af54c36-95a9-4ddd-b416-69d39ef725f7"><font color="#ffffff" size="1">ᐧ</font></div>