The earliest models didn't. See: https://gunkies.org/wiki/PDP-11/20
this also explains a remark in the manual that puzzled me about the break() system call (p. 43, §A1.17):
> To save time, UNIX does not swap all of the 4K user core area when exchanging core images. The locations swapped are those from the beginning of the core image to the initial program break, and from the top of user core down to the stack pointer. The initial program break is determined by the size of the file containing the program. The system’s idea of how much to swap may be altered by using this call:
sys break
newbreak
> newbreak becomes the first location not swapped. If it points beyond the stack, or to the verify first word
in the core image, the entire core image is swapped.in later versions of unix, of course, attempting to access memory after the break would result in a segmentation fault, but evidently in this version whatever you wrote there would just sometimes be lost when 'exchanging core images' — and presumably it wasn't just the segment limit that was missing on the -11/20, but also implicit indexing off the segment base pointer, which would imply that a mere context switch would require swapping the user program out in this way, just as on the pdp-7
i don't suppose anyone else here has knowledge if this inference is correct?
in any case, thank you very much for this correction!